From 1b3ecae23c87a0d97b561169ca33a6e7eca449ee Mon Sep 17 00:00:00 2001 From: Simon Wilkinson Date: Fri, 26 Oct 2007 17:20:22 +0000 Subject: [PATCH] redhat-fedora-build-driver-20071026 driver script for fedora builds --- src/packaging/RedHat/openafs-buildfedora.pl | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 src/packaging/RedHat/openafs-buildfedora.pl diff --git a/src/packaging/RedHat/openafs-buildfedora.pl b/src/packaging/RedHat/openafs-buildfedora.pl new file mode 100755 index 0000000..69e3721 --- /dev/null +++ b/src/packaging/RedHat/openafs-buildfedora.pl @@ -0,0 +1,46 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +my $specdir="/usr/src/redhat/SPECS"; + +my $fedoraversion=`rpm -q fedora-release --queryformat %{VERSION}`; +die "Unable to determine fedora version" if !$fedoraversion; + +my %list; +foreach my $variant ('', 'PAE', 'kdump', 'xen') { + print "Working out variants - currently processing $variant\n"; + my $append = ""; + $append="-$variant" if $variant; + my @results=split(' ', `rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH} " kernel$append-devel`); + if ($?) { + print "RPM lookup for variant $variant failed. Skipping\n"; + next; + } + print join(' ', @results)."\n"; + foreach my $package (@results) { + print "Got $package\n"; + $package=~/([^\-]*\-[^\-]*)\.([^\.]*)$/; + my ($version, $arch) = ($1,$2); + die "Couldn't extract version and architecture" if !$version or !$arch; + $list{$arch} = {} if !$list{$arch}; + $list{$arch}{$version} =[] if !$list{$arch}{$version}; + push @{$list{$arch}{$version}}, $variant; + } +} + +# Build the base package +print "Building the base system\n"; +system("rpmbuild -ba --define \"fedorakmod 1\" --define \"osvers fc$fedoraversion\" $specdir/openafs.spec") == 0 or exit 1; + +print "Building kernel modules\n"; + +foreach my $arch (keys(%list)) { + foreach my $version (keys(%{$list{$arch}})) { + my $variants = join(" ", map {$_ or "''"} @{$list{$arch}{$version}}); + print "Building with $version for $arch with variants $variants\n"; + system("rpmbuild -bb --define \"fedorakmod 1\" --define \"osvers fc$fedoraversion\" --target $arch --define \"build_modules 1\" --define \"kernvers $version\" --define \"kvariants $variants\" $specdir/openafs.spec") == 0 or exit 1; + } +} + -- 1.9.4