my $oafsversion = `rpm -q --queryformat=%{VERSION} -p $srpm` or die $!;
chomp $oafsversion;
+$oafsversion=~/([0-9]+)\.([0-9]+)\.([0-9]+)/;
+my $major = $1;
+my $minor = $2;
+my $pathlevel = $3;
+
+# OpenAFS SRPMs newer than 1.6.0 use the dist, rather than osvers variable
+
+my $usedist = ($minor >= 6);
+
my $oafsrelease = `rpm -q --queryformat=%{RELEASE} -p $srpm` or die $!;
chomp $oafsrelease;
-$oafsrelease=~s/^[^\.]*\.(.*)$/$1/;
+# Before we used the dist tag, the release variable of the srpm was 1.<release>
+if (!$usedist) {
+ $oafsrelease=~s/^[^\.]*\.(.*)$/$1/;
+}
print "Release is $oafsrelease\n";
if ($platforms[0] eq "all" and $#platforms == 0) {
my $missing = 0;
foreach my $rpm (@rpms) {
- if (! -f $resultdir."/".$rpm."-".$oafsversion."-".$osver.".".
- $oafsrelease.".".$basearch.".rpm") {
+ my $rpmname;
+ if ($usedist) {
+ $rpmname = $rpm."-".$oafsversion."-".$oafsrelease.".".$osver.".".
+ $basearch.".rpm";
+ } else {
+ $rpmname = $rpm."-".$oafsversion."-".$osver.".".$oafsrelease.".".
+ $basearch.".rpm";
+ }
+ if (! -f $resultdir."/".$rpmname) {
$missing++;
- print $resultdir."/".$rpm."-".$oafsversion."-".$osver.".".
- $oafsrelease.".".$basearch.".rpm is missing!\n";
- push @missingrpms, $rpm;
+ print "$resultdir/$rpmname is missing!\n";
+ push @missingrpms, $rpmname;
}
}
if ($missing) {
' --define "fedorakmod 1" '.
' --define "kernvers '.$arbitraryversion.'" '.
' --define "osvers '.$osver.'" '.
+ ' --define "dist .'.$osver.'" '.
' --define "build_modules 0" '.
' --define "build_userspace 1" '.
' --define "build_authlibs 1" '.
$srpm) == 0
or die "build failed with : $!\n";
- foreach my $rpm (@missingrpms) {
- system("cp ".$mockresults."/".$rpm."-".$oafsversion."-".
- $osver.".".$oafsrelease.".".$basearch.".rpm ".
- $resultdir) == 0
+ foreach my $rpmname (@missingrpms) {
+ system("cp ".$mockresults."/".$rpmname." ".$resultdir) == 0
or die "Copy failed with : $!\n";
- push @newrpms, $resultdir."/".$rpm."-".$oafsversion."-".
- $osver.".".$oafsrelease.".".$basearch.".rpm";
+ push @newrpms, $resultdir."/".$rpmname;
}
} else {
print "All userland RPMs present for $platform. Skipping build\n";
}
- print "-------------------------------------------------------------------\n";
+ print "-------------------------------------------------------------------\n";
print "Building kernel modules\n";
- foreach my $arch (keys(%modulelist)) {
+ foreach my $arch (keys(%modulelist)) {
foreach my $version (keys(%{$modulelist{$arch}})) {
my $kversion = $version;
$kversion=~s/-/_/g;
" --arch ".$arch.
' --define "fedorakmod 1" '.
' --define "osvers '.$osver.'" '.
+ ' --define "dist .'.$osver.'" '.
' --define "kernvers '.$version.'" '.
' --define "kvariants '.$variants.'" '.
' --define "build_modules 1" '.
%define afsvers @VERSION@
%define pkgvers @LINUX_PKGVER@
-# for beta/rc releases make pkgrel 0.X.<tag>
+# for beta/rc releases make pkgrel 0.<tag>
# for real releases make pkgrel 1 (or more for extra releases)
-#%define pkgrel 0.1.rc1
%define pkgrel @LINUX_PKGREL@
-%if %{?osvers:0}%{!?osvers:1}
-%define osvers 1
-%endif
-
%{!?fedorakmod: %define fedorakmod 1}
%{!?build_dkmspkg: %define build_dkmspkg 1}
# End legacy kernel build stuff
%endif
-%define dkms_version %{osvers}.%{pkgrel}
+%define dkms_version %{pkgrel}%{?dist}
# Set 'debugspec' to 1 if you want to debug the spec file. This will
# not remove the installed tree as part of the %clean operation
Summary: OpenAFS distributed filesystem
Name: openafs
Version: %{pkgvers}
-Release: %{osvers}.%{pkgrel}
+Release: %{pkgrel}%{?dist}
License: IBM Public License
URL: http://www.openafs.org
BuildRoot: %{_tmppath}/%{name}-%{version}-root
or kdump
To a kernel module for your running kernel, just run:
- rpmbuild --rebuild --target=`uname -m` openafs-%{pkgvers}-%{osvers}.%{pkgrel}.src.rpm
+ rpmbuild --rebuild --target=`uname -m` openafs-%{pkgvers}-%{pkgrel}%{?dist}.src.rpm
##############################################################################
#