diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
commit | d0233291bc8a5068e52c69c210e5979e5324b5bc (patch) | |
tree | 7d9459449c33792c63eeb7baa071e76352e0baab /trunk/tool/make-snapshot | |
parent | 0dc342de848a642ecce8db697b8fecd83a63e117 (diff) | |
parent | 72eaacaa15256ab95c3b52ea386f88586fb9da40 (diff) |
re-adding tag v1_9_0_4 as an alias of trunk@18848v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/tool/make-snapshot')
-rwxr-xr-x | trunk/tool/make-snapshot | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/trunk/tool/make-snapshot b/trunk/tool/make-snapshot deleted file mode 100755 index 65f5bd024d..0000000000 --- a/trunk/tool/make-snapshot +++ /dev/null @@ -1,183 +0,0 @@ -#!/usr/bin/ruby -s -require 'uri' -require 'digest/md5' -require 'digest/sha2' -require 'fileutils' -require 'tmpdir' -STDOUT.sync = true - -ENV["LC_ALL"] = ENV["LANG"] = "C" -SVNURL = URI.parse("http://svn.ruby-lang.org/repos/ruby/") -RUBY_VERSION_PATTERN = /^\#define\s+RUBY_VERSION\s+"([\d.]+)"/ - -ENV["VPATH"] ||= "include/ruby" -YACC = ENV["YACC"] ||= "bison" -ENV["BASERUBY"] ||= "ruby" -ENV["RUBY"] ||= "ruby" -ENV["MV"] ||= "mv" -ENV["MINIRUBY"] ||= "ruby" - -$patch_file &&= File.expand_path($patch_file) -path = ENV["PATH"].split(File::PATH_SEPARATOR) -%w[YACC BASERUBY RUBY MV MINIRUBY].each do |var| - cmd = ENV[var] - unless path.any? {|dir| - file = File.join(dir, cmd) - File.file?(file) and File.executable?(file) - } - abort "#{File.basename $0}: #{var} command not found - #{cmd}" - end -end - -unless destdir = ARGV.shift - abort "usage: #{File.basename $0} new-directory-to-save [version ...]" -end -revisions = ARGV.empty? ? ["trunk"] : ARGV -unless tmp = $exported - FileUtils.mkpath(destdir) - destdir = File.expand_path(destdir) - tmp = Dir.mktmpdir("ruby-snapshot") - FileUtils.mkpath(tmp) - at_exit { - Dir.chdir "/" - FileUtils.rm_rf(tmp) - } unless $keep_temp -end -Dir.chdir tmp - -def package(rev, destdir) - patchlevel = false - case rev - when /\Atrunk\z/, /\Abranches\//, /\Atags\// - url = SVNURL + rev - when /\Astable\z/ - url = SVNURL + "branches/" - url = url + `svn ls #{url}`[/.*^(ruby_\d+_\d+)\//m, 1] - when /\A\(.*\..*\..*\)-/ - patchlevel = true - url = SVNURL + "tags/v#{rev.sub(/-p?/, '_').tr('.', '_')}" - when /\./ - url = SVNURL + "branches/ruby_#{rev.tr('.', '_')}" - else - warn "#{$0}: unknown version - #{rev}" - return - end - revision = `svn info #{url} 2>&1`[/Last Changed Rev: (\d+)/, 1] - version = nil - unless revision - url = SVNURL + "trunk" - version = `svn cat #{url + "version.h"}`[RUBY_VERSION_PATTERN, 1] - unless rev == version - warn "#{$0}: #{rev} not found" - return - end - revision = `svn info #{url}`[/Last Changed Rev: (\d+)/, 1] - end - unless $exported - puts "Exporting #{rev}@#{revision}" - IO.popen("svn export #{url} ruby") do |pipe| - pipe.each {|line| /^A/ =~ line or print line} - end - unless $?.success? - warn("Export failed") - return - end - end - - if !File.directory?(v = "ruby") - v = Dir.glob("ruby-*").select(&File.method(:directory?)) - v.size == 1 or abort "not exported" - v = v[0] - end - open("#{v}/revision.h", "wb") {|f| f.puts "#define RUBY_REVISION #{revision}"} - version ||= (versionhdr = IO.read("#{v}/version.h"))[RUBY_VERSION_PATTERN, 1] - version or return - if patchlevel - versionhdr ||= IO.read("#{v}/version.h") - patchlevel = versionhdr[/^\#define\s+RUBY_PATCHLEVEL\s+(\d+)/, 1] - tag = (patchlevel ? "p#{patchlevel}" : "r#{revision}") - else - tag = "r#{revision}" - end - v = "ruby-#{version}-#{tag}" - File.directory?(v) or File.rename "ruby", v - system("patch -d #{v} -p0 -i #{$patch_file}") if $patch_file - def (clean = []).add(n) push(n); n end - Dir.chdir(v) do - File.open(clean.add("cross.rb"), "w") {|f| f.puts "CROSS_COMPILING=true"} - unless File.exist?("configure") - print "creating configure..." - unless system("autoconf") - puts " failed" - return - end - puts " done" - end - clean.add("autom4te.cache") - print "creating prerequisites..." - if File.file?("common.mk") && /^prereq/ =~ commonmk = IO.read("common.mk") - puts - extout = clean.add('tmp') - File.open(clean.add("config.status"), "w") {|f| - f.puts "s,@configure_args@,|#_!!_#|,g" - f.puts "s,@EXTOUT@,|#_!!_#|#{extout},g" - f.puts "s,@bindir@,|#_!!_#|,g" - f.puts "s,@ruby_install_name@,|#_!!_#|,g" - f.puts "s,@ARCH_FLAG@,|#_!!_#|,g" - f.puts "s,@CFLAGS@,|#_!!_#|,g" - f.puts "s,@CPPFLAGS@,|#_!!_#|,g" - f.puts "s,@LDFLAGS@,|#_!!_#|,g" - f.puts "s,@DLDFLAGS@,|#_!!_#|,g" - f.puts "s,@LIBEXT@,|#_!!_#|a,g" - f.puts "s,@OBJEXT@,|#_!!_#|o,g" - f.puts "s,@LIBRUBY@,|#_!!_#|liburyb.a,g" - f.puts "s,@LIBRUBY_A@,|#_!!_#|liburyb.a,g" - } - FileUtils.mkpath(hdrdir = "#{extout}/include/ruby") - File.open("#{hdrdir}/config.h", "w") {} - miniruby = ENV['MINIRUBY'] + " -rcross" - IO.popen("make -f - prereq srcdir=. IFCHANGE=tool/ifchange 'MINIRUBY=#{miniruby}'", "w") do |f| - f.puts(IO.read("Makefile.in")[/^lex\.c.*?^$/m]) - f.puts(commonmk.gsub(/\{[^{}]*\}/, "")) - end - clean.push("rbconfig.rb", ".rbconfig.time") - print "prerequisites" - else - system("#{YACC} -o parse.c parse.y") - end - FileUtils.rm_rf(clean) - unless $?.success? - puts " failed" - return - end - puts " done" - end - - return [["bzip tarball", ".tar.bz2", %w"tar cjf"], - ["gzip tarball", ".tar.gz", %w"tar czf"], - ["zip archive", ".zip", %w"zip -qr"] - ].collect do |mesg, ext, cmd| - file = "#{destdir}/#{v}#{ext}" - print "creating #{mesg}... #{file}" - if system(*(cmd + [file, v])) - puts " done" - file - else - puts " failed" - nil - end - end.compact -ensure - FileUtils.rm_rf(v) if v and !$exported and !$keep_temp -end - -revisions.collect {|rev| package(rev, destdir)}.flatten.each do |name| - name or next - str = open(name, "rb") {|f| f.read} - md5 = Digest::MD5.hexdigest str - sha = Digest::SHA256.hexdigest str - puts "MD5(#{name})= #{md5}" - puts "SHA256(#{name})= #{sha}" - puts "SIZE(name)= #{str.size}" - puts -end |