my $cellservdb = shift;
if (!$srcball && !$docball) {
- printf "Usage: <version> <src.tar.gz> <doc.tar.gz> [<relnotes> [<changelog> [<cellservdb>]]]\n";
+ printf "Usage: makesrpm <src.tar.gz> <doc.tar.gz> [<relnotes> [<changelog> [<cellservdb>]]]\n";
exit(1);
}
my $tmpdir = File::Temp::tempdir(CLEANUP => 1);
-system("tar -C $tmpdir -xvjf $srcball \*/configure.in ".
- "\*/src/packaging/RedHat > /dev/null")==0
+system("tar -C $tmpdir -xvjf $srcball '\*/configure.in' ".
+ "'\*/src/packaging/RedHat' > /dev/null")==0
or die "Unable to unpack src tar ball\n";
my $dirh = IO::Dir->new($tmpdir);
my $srcdir = $tmpdir."/".$vdir;
# Work out which version we're dealing with from the configure.in file
-my $version;
+my $afsversion;
+my $linuxver;
+my $linuxrel;
my $fh = new IO::File $srcdir."/configure.in"
or die "Unable to find unpacked configure.in file";
while(<$fh>) {
+ next if (/^\s*\#/);
+
if (/AM_INIT_AUTOMAKE\(openafs,(.*)\)/) {
- $version = $1;
- last;
+ $afsversion = $1;
+ next;
+ }
+ if (/LINUX_PKGVER=(.*)/) {
+ $linuxver = $1;
+ next;
+ }
+ if (/LINUX_PKGREL=(.*)/) {
+ $linuxrel = $1;
+ next;
}
}
undef $fh;
# Build the RPM root
-print "Building version $version\n";
+print "Building version $afsversion\n";
File::Path::mkpath([ $tmpdir."/rpmdir/SPECS",
$tmpdir."/rpmdir/SRPMS",
$tmpdir."/rpmdir/SOURCES"], 0, 0755);
File::Copy::copy($srcball,
- $tmpdir."/rpmdir/SOURCES/openafs-$version-src.tar.bz2")
+ $tmpdir."/rpmdir/SOURCES/openafs-$afsversion-src.tar.bz2")
or die "Unable to copy $srcball into position\n";
File::Copy::copy($docball,
- $tmpdir."/rpmdir/SOURCES/openafs-$version-doc.tar.bz2")
+ $tmpdir."/rpmdir/SOURCES/openafs-$afsversion-doc.tar.bz2")
or die "Unable to copy $docball into position\n";
# Populate it with all the stuff in the packaging directory, except the
# Create the specfile. Use sed for this, cos its easier
system("cat ".$srcdir."/src/packaging/RedHat/openafs.spec.in | ".
- "sed -e 's/\@VERSION\@/$version/g' ".
- " -e 's/\%define afsvers.*/%define afsvers $version/g' ".
- " -e 's/\%define pkgvers.*/%define pkgvers $version/g' > ".
+ "sed -e 's/\@VERSION\@/$afsversion/g' ".
+ " -e 's/\@LINUX_PKGVER\@/$linuxver/g' ".
+ " -e 's/\@LINUX_PKGREL\@/$linuxrel/g' ".
+ " -e 's/\%define afsvers.*/%define afsvers $afsversion/g' ".
+ " -e 's/\%define pkgvers.*/%define pkgvers $linuxver/g' > ".
$tmpdir."/rpmdir/SPECS/openafs.spec") == 0
or die "sed failed : $!\n";
if ($relnotes) {
File::Copy::copy($relnotes,
- $tmpdir."/rpmdir/SOURCES/RELNOTES-$version")
+ $tmpdir."/rpmdir/SOURCES/RELNOTES-$afsversion")
or die "Unable to copy $relnotes into position\n";
} else {
print "WARNING: No release notes provided. Using empty file\n";
- system("touch $tmpdir/rpmdir/SOURCES/RELNOTES-$version");
+ system("touch $tmpdir/rpmdir/SOURCES/RELNOTES-$afsversion");
}
if ($changelog) {
or die "rpmbuild failed : $!\n";
# Copy it out to somewhere useful
-File::Copy::copy("$tmpdir/rpmdir/SRPMS/openafs-$version-1.1.src.rpm",
- "openafs-$version-1.1.src.rpm")
+File::Copy::copy("$tmpdir/rpmdir/SRPMS/openafs-$linuxver-1.$linuxrel.src.rpm",
+ "openafs-$linuxver-1.$linuxrel.src.rpm")
or die "Unable to copy output RPM : $!\n";
-print "SRPM is openafs-$version-1.1.src.rpm\n";
+print "SRPM is openafs-$linuxver-1.$linuxrel.src.rpm\n";