Re: Kernel rpm versioning changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Roland McGrath wrote:
> What's Patch5?

D'oh. Meant to nuke that. Inserted for testing purposes -- 'spectool
kernel-2.6.spec -p 5 -d "somemacro value"' to verify expected N-V-R's
being set properly. Disregard the -v2 patch, use this guy instead. :)
(or just drop the Patch5 line out of the resulting spec).



-- 
Jarod Wilson
jwilson@xxxxxxxxxx

Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.3245
diff -u -p -r1.3245 kernel-2.6.spec
--- kernel-2.6.spec	2 Jul 2007 17:07:41 -0000	1.3245
+++ kernel-2.6.spec	2 Jul 2007 21:48:39 -0000
@@ -1,5 +1,50 @@
 Summary: The Linux kernel (the core of the Linux operating system)
 
+# For a stable, released kernel, released_kernel should be 1. For rawhide and/or
+# a kernel built from an rc or git snapshot, released_kernel should be 0.
+%define released_kernel 0
+
+# Versions of various parts
+
+# Polite request for people who spin their own kernel rpms:
+# please modify the "buildid" define in a way that identifies
+# that the kernel isn't the stock distribution kernel, for example,
+# by setting the define to ".local" or ".bz123456"
+#
+#% define buildid .local
+
+# fedora_build defines which build revision of this kernel version we're building. In the
+# non-kernel world, this is analogous to the Release: field, and is formatted similarly.
+%define fedora_build 1%{?dist}
+
+# base_sublevel is the kernel version we're starting with and patching
+# on top of -- for example, 2.6.22-rc7-git1 starts with a 2.6.21 base,
+# which yields a base_sublevel of 21.
+%define base_sublevel 21
+
+# If this is a released kernel
+%if %{released_kernel}
+# Do we have a 2.6.21.y update to apply?
+%define stable_update 5
+# Set rpm version accordingly
+%if 0%{stable_update}
+%define stablerev .%{stable_update}
+%endif
+%define rpmversion 2.6.%{base_sublevel}%{stablerev}
+
+# The not-released-kernel case
+%else
+# The next upstream release sublevel (base_sublevel+1)
+%define upstream_sublevel 22
+# The rc snapshot level
+%define rcrev 7
+# The git snapshot level
+%define gitrev 0
+# Set rpm version accordingly
+%define rpmversion 2.6.%{upstream_sublevel}
+%endif
+# Nb: The above rcrev and gitrev values automagically define Patch00 and Patch01 below.
+
 # What parts do we want to build?  We must build at least one kernel.
 # These are the kernels that are built IF the architecture allows it.
 # All should default to 1 (enabled) and be flipped to 0 (disabled)
@@ -54,23 +99,28 @@ Summary: The Linux kernel (the core of t
 # See also 'make debug' and 'make release'.
 %define debugbuildsenabled 0
 
-%if ! %{debugbuildsenabled}
-%define with_debug 0
+# Want to build a vanilla kernel build without any non-upstream patches?
+# (well, almost none, we need nonintconfig for build purposes). Default to 0 (off).
+%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
+
+# pkg_release is what we'll fill in for the rpm Release: field
+%if %{released_kernel}
+%define pkg_release %{fedora_build}%{?buildid}
+%else
+%if 0%{?rcrev}
+%define rctag .rc%rcrev
+%endif
+%if 0%{?gitrev}
+%define gittag .git%gitrev
+%if !0%{?rcrev}
+%define rctag .rc0
+%endif
+%endif
+%define pkg_release 0%{?rctag}%{?gittag}.%{fedora_build}%{?buildid}
 %endif
 
-# Versions of various parts
-
-# Polite request for people who spin their own kernel rpms:
-# please modify the "buildid" define in a way that identifies
-# that the kernel isn't the stock distribution kernel, for example,
-# by setting the define to ".local" or ".bz123456"
-#
-#% define buildid .local
-%define sublevel 21
-%define kversion 2.6.%{sublevel}
-%define rpmversion 2.6.%{sublevel}
-%define specrelease %(R="$Revision: 1.3245 $"; RR="${R##: }"; echo ${RR%%?})%{?dist}%{?buildid}
-%define release %{specrelease}
+# The kernel tarball/base version
+%define kversion 2.6.%{base_sublevel}
 
 %define make_target bzImage
 %define kernel_image x86
@@ -87,6 +137,10 @@ Summary: The Linux kernel (the core of t
 %define nopatches 0
 %endif
 
+%if %{with_vanilla}
+%define nopatches 1
+%endif
+
 %if %{nopatches}
 %define includexen 0
 %define with_xen 0
@@ -99,7 +153,11 @@ Summary: The Linux kernel (the core of t
 %if 0%{?upstream_branch:1}
 %define using_upstream_branch 1
 %define variant -%{upstream_branch}%{?variant_fedora}
-%define release %{upstream_branch_release}.%{specrelease}
+%define pkg_release %{upstream_branch_release}.%{pkg_release}
+%endif
+
+%if !%{debugbuildsenabled}
+%define with_debug 0
 %endif
 
 # if requested, only build base kernel
@@ -109,7 +167,6 @@ Summary: The Linux kernel (the core of t
 %define with_xen 0
 %define with_kdump 0
 %define with_debug 0
-%define debugbuildsenabled 0
 %endif
 
 # if requested, only build smp kernel
@@ -119,7 +176,6 @@ Summary: The Linux kernel (the core of t
 %define with_xen 0
 %define with_kdump 0
 %define with_debug 0
-%define debugbuildsenabled 0
 %endif
 
 # if requested, only build xen kernel
@@ -129,7 +185,6 @@ Summary: The Linux kernel (the core of t
 %define with_pae 0
 %define with_kdump 0
 %define with_debug 0
-%define debugbuildsenabled 0
 %endif
 
 # don't build xen or kdump kernels for OLPC
@@ -332,7 +387,7 @@ Name: kernel%{?variant}
 Group: System Environment/Kernel
 License: GPLv2
 Version: %{rpmversion}
-Release: %{release}
+Release: %{pkg_release}
 %if 0%{?olpc}
 ExclusiveArch: i386
 %else
@@ -416,7 +471,20 @@ Source82: config-olpc-generic
 ### BRANCH PATCH ###
 %else
 # Here should be only the patches up to the upstream canonical Linus tree.
-Patch00: patch-2.6.22-rc7.bz2
+# These are automagically defined by the rcrev and gitrev values set up 
+# near the top of this spec file.
+%if 0%{?rcrev}
+Patch00: patch-2.6.%{upstream_sublevel}-rc%{rcrev}.bz2
+%if 0%{?gitrev}
+Patch01: patch-2.6.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.bz2
+%endif
+%else
+# pre-{base_sublevel+1}-rc1 case
+%if 0%{?gitrev}
+Patch00: patch-2.6.%{base_sublevel}-git%{gitrev}.bz2
+%endif
+%endif
+
 %endif
 
 %if !%{nopatches}
@@ -861,7 +929,7 @@ against the kdump kernel package.
 if [ ! -d kernel-%{kversion}/vanilla ]; then
   # Ok, first time we do a make prep.
   rm -f pax_global_header
-%setup -q -n kernel-%{version} -c
+%setup -q -n kernel-%{kversion} -c
   mv linux-%{kversion} vanilla
 else
   # We already have a vanilla dir.
@@ -899,9 +967,20 @@ ApplyPatch()
 %else
 
 # Update to latest upstream.
-ApplyPatch patch-2.6.22-rc7.bz2
+%if 0%{?rcrev}
+ApplyPatch patch-2.6.%{upstream_sublevel}-rc%{rcrev}.bz2
+%if 0%{?gitrev}
+ApplyPatch patch-2.6.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.bz2
+%endif
+%else
+# pre-{base_sublevel+1}-rc1 case
+%if 0%{?gitrev}
+ApplyPatch patch-2.6.%{base_sublevel}-git%{gitrev}.bz2
+%endif
+%endif
 
 %endif
+
 %if !%{nopatches}
 
 # Ingo's new scheduler.
@@ -993,7 +1072,7 @@ ApplyPatch linux-2.6-debug-nmi-timeout.p
 ApplyPatch linux-2.6-debug-taint-vm.patch
 ApplyPatch linux-2.6-debug-spinlock-taint.patch
 
-%if ! %{debugbuildsenabled}
+%if !%{debugbuildsenabled}
 # Only spew extra warnings on rawhide builds.
 ApplyPatch linux-2.6-debug-extra-warnings.patch
 # Turn slub debug on by default in rawhide
@@ -1146,7 +1225,7 @@ rm -f kernel-%{kversion}-*PAE*.config
 rm -f kernel-%{kversion}-*xen*.config
 %endif
 
-%if ! %{with_debug}
+%if !%{with_debug}
 rm -f kernel-%{kversion}-*-debug.config
 %endif
 
@@ -1160,12 +1239,6 @@ do
   cat .config >> configs/$i
 done
 
-# make sure the kernel has the sublevel we know it has. This looks weird
-# but for -pre and -rc versions we need it since we only want to use
-# the higher version when the final kernel is released.
-perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
-perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -prep/" Makefile
-
 # get rid of unwanted files resulting from patch fuzz
 find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null
 
@@ -1473,10 +1546,10 @@ BuildKernel %make_target %kernel_image k
 %global __debug_package 1
 %files debuginfo-common
 %defattr(-,root,root)
-/usr/src/debug/%{name}-%{version}/linux-%{kversion}.%{_target_cpu}
+/usr/src/debug/kernel-%{kversion}/linux-%{kversion}.%{_target_cpu}
 %if %{includexen}
 %if %{with_xen}
-/usr/src/debug/%{name}-%{version}/xen
+/usr/src/debug/kernel-%{kversion}/xen
 %endif
 %endif
 %dir /usr/src/debug

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Fedora-kernel-list mailing list
Fedora-kernel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-kernel-list

[Index of Archives]     [Fedora General Discussion]     [Older Fedora Users Archive]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Announce]     [Fedora Package Review]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Coolkey]     [Yum Users]     [Tux]     [Yosemite News]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [USB]     [Asterisk PBX]

  Powered by Linux