]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
RedHat packaging: Use %{dist} not %{osver}
authorSimon Wilkinson <sxw@your-file-system.com>
Fri, 18 Feb 2011 00:36:33 +0000 (00:36 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 18 Feb 2011 14:14:17 +0000 (06:14 -0800)
There's a standard mechanism for defining a RPMs target
distribution in the Fedora and RedHat worlds. This is to use the
%{dist} macro, and to insert it at the end (not the beginning) of
the release field.

Move over to using this standard mechanism, and modify the build
system to match. Note that this means that RPM names have now
changed slightly.

Reviewed-on: http://gerrit.openafs.org/3981
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 2b094cae6c39bc9e2d8f23f4654e137876b25d57)

Change-Id: I764a91e787acb2d2e3d0595cb344bc5b44465bd9
Reviewed-on: http://gerrit.openafs.org/3984
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/packaging/RedHat/mockbuild.pl
src/packaging/RedHat/openafs.spec.in

index 55dd302f9db102c410057e202a3d8f8b30879013..79d4c733b12614022110f3fc68fd080066eab8e5 100755 (executable)
@@ -213,10 +213,22 @@ if (!$ok || $help || !$srpm || $#platforms==-1) {
 
 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) {
@@ -301,12 +313,18 @@ foreach my $platform (@platforms) {
 
   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) {
@@ -314,27 +332,25 @@ foreach my $platform (@platforms) {
                        ' --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;
@@ -372,6 +388,7 @@ foreach my $platform (@platforms) {
                             " --arch ".$arch.
                             ' --define "fedorakmod 1" '.
                             ' --define "osvers '.$osver.'" '.
+                            ' --define "dist .'.$osver.'" '.
                             ' --define "kernvers '.$version.'" '.
                             ' --define "kvariants '.$variants.'" '.
                             ' --define "build_modules 1" '.
index bc4bf49a91bbb1279f5505e0378761994b28c210..100348f417ce4771c6eb3139a664185d5fcfc413 100644 (file)
@@ -2,15 +2,10 @@
 
 %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}
 
@@ -87,7 +82,7 @@
 # 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
@@ -321,7 +316,7 @@ what gets built:
                                   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
 
 ##############################################################################
 #