Skip to content

Commit

Permalink
normalize whitespace
Browse files Browse the repository at this point in the history
  • Loading branch information
erikogan committed Dec 4, 2010
1 parent 2555115 commit 0472428
Show file tree
Hide file tree
Showing 6 changed files with 236 additions and 237 deletions.
22 changes: 11 additions & 11 deletions rpm/release/build-release.sh
Expand Up @@ -16,17 +16,17 @@ srpm=`ls -1t $stage/SRPMS/*rpm | head -1`


for ver in {epel-5,fedora-{13,14}} for ver in {epel-5,fedora-{13,14}}
do do
echo --------- $ver echo --------- $ver
xdir=$stage/`echo $ver | tr '-' '/'`/x86_64 xdir=$stage/`echo $ver | tr '-' '/'`/x86_64
idir=`echo $xdir | sed -e 's/x86_64/i386/'` idir=`echo $xdir | sed -e 's/x86_64/i386/'`
mock -r passenger-$ver-x86_64 $srpm mock -r passenger-$ver-x86_64 $srpm
mkdir -p $xdir $idir mkdir -p $xdir $idir
cp /var/lib/mock/passenger-$ver-x86_64/result/*noarch.rpm $xdir cp /var/lib/mock/passenger-$ver-x86_64/result/*noarch.rpm $xdir
cp /var/lib/mock/passenger-$ver-x86_64/result/*noarch.rpm $idir cp /var/lib/mock/passenger-$ver-x86_64/result/*noarch.rpm $idir
cd $xdir/.. cd $xdir/..
short=`ls -1t x86_64/*rpm | head -1 | perl -pe 's{.*/(.*)-[^-]+-[^-]+(.noarch.rpm)}{\1\2}'` short=`ls -1t x86_64/*rpm | head -1 | perl -pe 's{.*/(.*)-[^-]+-[^-]+(.noarch.rpm)}{\1\2}'`
ln -s x86_64/*rpm $short ln -s x86_64/*rpm $short
cd - cd -
done done


mv $stage/epel $stage/rhel mv $stage/epel $stage/rhel
Expand Down
301 changes: 150 additions & 151 deletions rpm/release/build.rb
Expand Up @@ -24,15 +24,15 @@


@verbosity = 0 @verbosity = 0


@can_build = { @can_build = {
'i386' => %w{i586 i686}, 'i386' => %w{i586 i686},
'i686' => %w{i586 i686}, 'i686' => %w{i586 i686},
'ppc' => %w{}, 'ppc' => %w{},
'ppc64' => %w{ppc}, 'ppc64' => %w{ppc},
's390x' => %w{}, 's390x' => %w{},
'sparc' => %w{}, 'sparc' => %w{},
'sparc64' => %w{sparc}, 'sparc64' => %w{sparc},
'x86_64' => %w{i386 i586 i686}, 'x86_64' => %w{i386 i586 i686},
} }


#@can_build.keys.each {|k| @can_build[k].push k} #@can_build.keys.each {|k| @can_build[k].push k}
Expand All @@ -44,130 +44,130 @@
configs = Dir["#{mock_etc_dir}/{#{CFGLIMIT.join ','}}*"].map {|f| f.gsub(%r{.*/([^.]*).cfg}, '\1')} configs = Dir["#{mock_etc_dir}/{#{CFGLIMIT.join ','}}*"].map {|f| f.gsub(%r{.*/([^.]*).cfg}, '\1')}


def limit_configs(configs, limits) def limit_configs(configs, limits)
tree = configs.inject({}) do |m,c| tree = configs.inject({}) do |m,c|
(distro,version,arch) = c.split /-/ (distro,version,arch) = c.split /-/
next m unless @can_build.include?(arch) next m unless @can_build.include?(arch)
[ [
# Rather than construct this list programatically, just spell it out # Rather than construct this list programatically, just spell it out
'', '',
distro, distro,
"#{distro}-#{version}", "#{distro}-#{version}",
"#{distro}-#{version}-#{arch}", "#{distro}-#{version}-#{arch}",
"#{distro}--#{arch}", "#{distro}--#{arch}",
"--#{arch}", "--#{arch}",
# doubtful these will be used, but for completeness # doubtful these will be used, but for completeness
"-#{version}", "-#{version}",
"-#{version}-#{arch}", "-#{version}-#{arch}",
].each do |pattern| ].each do |pattern|
unless m[pattern] unless m[pattern]
m[pattern] = [] m[pattern] = []
end end
m[pattern].push c m[pattern].push c
end end
m m
end end
tree.default = [] tree.default = []
# Special case for no arguments # Special case for no arguments
limits = [nil] if limits.empty? limits = [nil] if limits.empty?
# By splitting and rejoining we normalize the distro--, etc. cases. # By splitting and rejoining we normalize the distro--, etc. cases.
return limits.map do |l| return limits.map do |l|
parts = l.to_s.split(/-/).map {|v| v == '*' ? nil : v} parts = l.to_s.split(/-/).map {|v| v == '*' ? nil : v}
if parts[2] && !@can_build.include?(parts[2]) if parts[2] && !@can_build.include?(parts[2])
abort "ERROR: Cannot build '#{parts[2]}' packages on '#{rpmarch}'" abort "ERROR: Cannot build '#{parts[2]}' packages on '#{rpmarch}'"
end end
tree[parts.join '-'] tree[parts.join '-']
# All of a sudden the i386 mock builds are failing IFF they're run after an # All of a sudden the i386 mock builds are failing IFF they're run after an
# x86_64 build. I don't understand how separate processes in separate # x86_64 build. I don't understand how separate processes in separate
# (chroot'ed!) environments can pollute each other, and I find it rather # (chroot'ed!) environments can pollute each other, and I find it rather
# troubling. But for now the workaround is to sort by arch & do i386 first. # troubling. But for now the workaround is to sort by arch & do i386 first.
end.flatten.sort do |a,b| end.flatten.sort do |a,b|
ap = a.split(/-/) ap = a.split(/-/)
ap.unshift(ap.pop) ap.unshift(ap.pop)
bp = b.split(/-/) bp = b.split(/-/)
bp.unshift(bp.pop) bp.unshift(bp.pop)
ap <=> bp ap <=> bp
end end
end end


def noisy_system(*args) def noisy_system(*args)
puts args.join ' ' if @verbosity > 0 puts args.join ' ' if @verbosity > 0
system(*args) system(*args)
end end




############################################################################ ############################################################################
options = {} options = {}
OptionParser.new do |opts| OptionParser.new do |opts|
opts.banner = "Usage: #{$0} [options] [distro-version-arch] [distro-version] [distro--arch] [*--arch]" opts.banner = "Usage: #{$0} [options] [distro-version-arch] [distro-version] [distro--arch] [*--arch]"


opts.on("-v", "--[no-]verbose", "Run verbosely. Add more -v's to increase @verbosity") do |v| opts.on("-v", "--[no-]verbose", "Run verbosely. Add more -v's to increase @verbosity") do |v|
@verbosity += v ? 1 : -1 @verbosity += v ? 1 : -1
end end


opts.on('-s', '--single', 'Only build a single distro-rev-arch set (for this machine)') do |v| opts.on('-s', '--single', 'Only build a single distro-rev-arch set (for this machine)') do |v|
options[:single] = true options[:single] = true
end end


# Do these with options, because the order matters # Do these with options, because the order matters
opts.on('-b', '--mock-base-dir DIR', "Mock's base directory. Default: #{mock_base_dir}") do |v| opts.on('-b', '--mock-base-dir DIR', "Mock's base directory. Default: #{mock_base_dir}") do |v|
#mock_repo_dir = v #mock_repo_dir = v
options[:mock_base_dir] = v options[:mock_base_dir] = v
end end


opts.on('-r', '--mock-repo-dir DIR', "Directory for special mock yum repository. Default: #{mock_repo_dir}") do |v| opts.on('-r', '--mock-repo-dir DIR', "Directory for special mock yum repository. Default: #{mock_repo_dir}") do |v|
#mock_repo_dir = v #mock_repo_dir = v
options[:mock_repo_dir] = v options[:mock_repo_dir] = v
end end


opts.on("-c", "--mock-config-dir DIR", "Directory for mock configuration. Default: #{mock_etc_dir}") do |v| opts.on("-c", "--mock-config-dir DIR", "Directory for mock configuration. Default: #{mock_etc_dir}") do |v|
if File.directory?(v) if File.directory?(v)
mock_etc_dir=v mock_etc_dir=v
else else
abort "No such directory: #{v}" abort "No such directory: #{v}"
end end
end end


opts.on('-d', '--stage-dir DIR', "Staging directory. Default: #{stage_dir}") do |v| opts.on('-d', '--stage-dir DIR', "Staging directory. Default: #{stage_dir}") do |v|
stage_dir = v stage_dir = v
end end


opts.on('-e', '--extra-packages DIR', "Directory for extra packages to install.") do |v| opts.on('-e', '--extra-packages DIR', "Directory for extra packages to install.") do |v|
#mock_repo_dir = v #mock_repo_dir = v
options[:extra_packages] = v options[:extra_packages] = v
end end


opts.on_tail("-h", "--help", "Show this message") do opts.on_tail("-h", "--help", "Show this message") do
puts opts puts opts
exit exit
end end
end.parse! end.parse!


if options.key?(:mock_base_dir) || options.key?(:mock_repo_dir) if options.key?(:mock_base_dir) || options.key?(:mock_repo_dir)
if options.key?(:mock_base_dir) if options.key?(:mock_base_dir)
mock_base_dir = options[:mock_base_dir] mock_base_dir = options[:mock_base_dir]
mock_repo_dir = "#{mock_base_dir}/passenger-build-repo" mock_repo_dir = "#{mock_base_dir}/passenger-build-repo"
end end
if options.key?(:mock_repo_dir) if options.key?(:mock_repo_dir)
mock_repo_dir = options[:mock_repo_dir] mock_repo_dir = options[:mock_repo_dir]
unless mock_repo_dir[0] == '/'[0] unless mock_repo_dir[0] == '/'[0]
mock_repo_dir = "#{mock_base_dir}/#{mock_repo_dir}" mock_repo_dir = "#{mock_base_dir}/#{mock_repo_dir}"
end end
end end
end end


limit = ARGV limit = ARGV
if options.key?(:single) if options.key?(:single)
# This can probably be simplified # This can probably be simplified
limit = [`rpm --queryformat '%{name}\t%{version}' -qf /etc/redhat-release`.sub(/(\w+)-release\t(\d+)/,'\1-\2').sub(/^(rhel|centos|sl)-/,'epel-') + "-#{`rpm -E '%{_host_cpu}'`.strip}"] limit = [`rpm --queryformat '%{name}\t%{version}' -qf /etc/redhat-release`.sub(/(\w+)-release\t(\d+)/,'\1-\2').sub(/^(rhel|centos|sl)-/,'epel-') + "-#{`rpm -E '%{_host_cpu}'`.strip}"]
end end


configs = limit_configs(configs, limit) configs = limit_configs(configs, limit)


if configs.empty? if configs.empty?
abort "Can't find a set of configs for '#{ARGV[0]}' (hint try 'fedora' or 'fedora-14' or even 'fedora-14-x86_64')" abort "Can't find a set of configs for '#{ARGV[0]}' (hint try 'fedora' or 'fedora-14' or even 'fedora-14-x86_64')"
end end


puts "BUILD:\n " + configs.join("\n ") if @verbosity >= 2 puts "BUILD:\n " + configs.join("\n ") if @verbosity >= 2


# Too much of what follows expects this. Revisit it later. # Too much of what follows expects this. Revisit it later.
Dir.chdir(File.join(File.dirname(__FILE__), '..')) Dir.chdir(File.join(File.dirname(__FILE__), '..'))
Expand All @@ -180,14 +180,14 @@ def noisy_system(*args)
# Check the ages of the configs for validity # Check the ages of the configs for validity
mtime = File.mtime("#{bindir}/mocksetup.sh") mtime = File.mtime("#{bindir}/mocksetup.sh")
if configs.any? {|c| mtime > File.mtime("#{mock_etc_dir}/passenger-#{c}.cfg") rescue true } if configs.any? {|c| mtime > File.mtime("#{mock_etc_dir}/passenger-#{c}.cfg") rescue true }
unless noisy_system("#{bindir}/mocksetup.sh", mock_repo_dir, mock_etc_dir) unless noisy_system("#{bindir}/mocksetup.sh", mock_repo_dir, mock_etc_dir)
abort <<EndErr abort <<EndErr
Unable to run "#{bindir}/mocksetup.sh #{mock_repo_dir}". It is likely that you Unable to run "#{bindir}/mocksetup.sh #{mock_repo_dir}". It is likely that you
need to run this command as root the first time, but if you have already done need to run this command as root the first time, but if you have already done
that, it could also be that the current user (or this shell) is not in the that, it could also be that the current user (or this shell) is not in the
'mock' group. 'mock' group.
EndErr EndErr
end end
end end


srcdir=`rpm -E '%{_sourcedir}'`.chomp srcdir=`rpm -E '%{_sourcedir}'`.chomp
Expand All @@ -198,19 +198,19 @@ def noisy_system(*args)
specdir="/tmp/#{`whoami`.strip}-specfile-#{Process.pid}" specdir="/tmp/#{`whoami`.strip}-specfile-#{Process.pid}"
FileUtils.rm_rf(specdir, :verbose => @verbosity > 0) FileUtils.rm_rf(specdir, :verbose => @verbosity > 0)
begin begin
FileUtils.mkdir_p(specdir, :verbose => @verbosity > 0) FileUtils.mkdir_p(specdir, :verbose => @verbosity > 0)
FileUtils.cp('passenger.spec', specdir, :verbose => @verbosity > 0) FileUtils.cp('passenger.spec', specdir, :verbose => @verbosity > 0)
# + must be escaped, but * doesn't? And people wonder why I hate sed. # + must be escaped, but * doesn't? And people wonder why I hate sed.
abort "Can't edit specfile" unless noisy_system('sed', '-i', abort "Can't edit specfile" unless noisy_system('sed', '-i',
'-e', "s/^\\(\\([[:space:]]*\\)%define[[:space:]]\\+passenger_version[[:space:]]\\)\\+[0-9.]\\+.*/\\2# From Passenger Source\\n\\1#{PhusionPassenger::VERSION_STRING}/", '-e', "s/^\\(\\([[:space:]]*\\)%define[[:space:]]\\+passenger_version[[:space:]]\\)\\+[0-9.]\\+.*/\\2# From Passenger Source\\n\\1#{PhusionPassenger::VERSION_STRING}/",
'-e', "s/^\\(\\([[:space:]]*\\)%define[[:space:]]\\+nginx_version[[:space:]]\\)\\+[0-9.]\\+.*/\\2# From Passenger Source\\n\\1#{PhusionPassenger::PREFERRED_NGINX_VERSION}/", '-e', "s/^\\(\\([[:space:]]*\\)%define[[:space:]]\\+nginx_version[[:space:]]\\)\\+[0-9.]\\+.*/\\2# From Passenger Source\\n\\1#{PhusionPassenger::PREFERRED_NGINX_VERSION}/",
"#{specdir}/passenger.spec") "#{specdir}/passenger.spec")
# No dist for SRPM # No dist for SRPM
unless noisy_system(rpmbuild, *((@verbosity > 0 ? [] : %w{--quiet}) + ['--define', 'dist %nil', '-bs', "#{specdir}/passenger.spec"])) unless noisy_system(rpmbuild, *((@verbosity > 0 ? [] : %w{--quiet}) + ['--define', 'dist %nil', '-bs', "#{specdir}/passenger.spec"]))
abort "No SRPM was built. See above for the error" abort "No SRPM was built. See above for the error"
end end
ensure ensure
FileUtils.rm_rf(specdir, :verbose => @verbosity > 0) FileUtils.rm_rf(specdir, :verbose => @verbosity > 0)
end end


# I really wish there was a way to query rpmbuild for this via the spec file, # I really wish there was a way to query rpmbuild for this via the spec file,
Expand All @@ -225,36 +225,35 @@ def noisy_system(*args)
mockvolume = @verbosity >= 2 ? %w{-v} : @verbosity < 0 ? %w{-q} : [] mockvolume = @verbosity >= 2 ? %w{-v} : @verbosity < 0 ? %w{-q} : []


configs.each do |cfg| configs.each do |cfg|
puts "---------------------- Building #{cfg}" if @verbosity >= 0 puts "---------------------- Building #{cfg}" if @verbosity >= 0
pcfg = 'passenger-' + cfg pcfg = 'passenger-' + cfg


idir = './pkg' idir = './pkg'


unless options.key?(:single) unless options.key?(:single)
idir = File.join stage_dir, cfg.split(/-/) idir = File.join stage_dir, cfg.split(/-/)
end end


# Move *mockvolume to the end, since it causes Ruby to cry in the middle # Move *mockvolume to the end, since it causes Ruby to cry in the middle
# Alt sol'n: *(foo + ['bar'] ) # Alt sol'n: *(foo + ['bar'] )
if noisy_system('mock', '-r', pcfg, "#{stage_dir}/SRPMS/#{srpm}", *mockvolume) unless noisy_system('mock', '-r', pcfg, "#{stage_dir}/SRPMS/#{srpm}", *mockvolume)
else abort "Mock failed. See above for details"
abort "Mock failed. See above for details" end
end FileUtils.mkdir_p(idir, :verbose => @verbosity > 0)
FileUtils.mkdir_p(idir, :verbose => @verbosity > 0) FileUtils.cp(Dir["#{mock_base_dir}/#{pcfg}/result/*.rpm"],
FileUtils.cp(Dir["#{mock_base_dir}/#{pcfg}/result/*.rpm"], idir, :verbose => @verbosity > 0)
idir, :verbose => @verbosity > 0) if options.key?(:extra_packages)
if options.key?(:extra_packages) FileUtils.cp(Dir["#{options[:extra_packages]}/*.rpm"], idir, :verbose => @verbosity > 0)
FileUtils.cp(Dir["#{options[:extra_packages]}/*.rpm"], idir, :verbose => @verbosity > 0) end
end FileUtils.rm_f(Dir["#{idir}/*.src.rpm"], :verbose => @verbosity > 1) unless options.key?(:single)
FileUtils.rm_f(Dir["#{idir}/*.src.rpm"], :verbose => @verbosity > 1) unless options.key?(:single)
end end


unless options.key?(:single) unless options.key?(:single)
if File.directory?("#{stage_dir}/epel") if File.directory?("#{stage_dir}/epel")
FileUtils.mv "#{stage_dir}/epel", "#{stage_dir}/rhel", :verbose => @verbosity > 0 FileUtils.mv "#{stage_dir}/epel", "#{stage_dir}/rhel", :verbose => @verbosity > 0
end end
end end


unless `rpm -E '%{?_signature}'`.strip == '' unless `rpm -E '%{?_signature}'`.strip == ''
noisy_system('rpm', '--addsign', *Dir["#{options.key?(:single) ? stage_dir : 'pkg'}/**/*.rpm"]) noisy_system('rpm', '--addsign', *Dir["#{options.key?(:single) ? stage_dir : 'pkg'}/**/*.rpm"])
end end

0 comments on commit 0472428

Please sign in to comment.