macrofied kernel.spec

Roland McGrath roland at redhat.com
Wed Aug 1 02:11:05 UTC 2007


The patch below revamps kernel.spec using macros to minimize duplication.
There is now very little boilerplate to write/update for each variant
built.  It's now just a few %kernel_variant_foo macro lines for each flavor
(plus %description, which is unchanged).  When the common boilerplate
details change, there is just one place to go tweak the spec (in a macro
definition) and no way to forget to update all the flavors.

There was an earlier foray into fancy macro use in the kernel spec
file, which got punted because of troubles with ancient rpmbuild
versions.  But that was then, and this is now.  Since then, the
build systems got fixed to use the proper rpmbuild for each build
version, and anyway are no longer running on RHEL3.  No living (or
recently dead) Fedora, nor AFAIK RHEL>=4, will have problems with
this spec file.

The diff looks large, but that's because kernel.spec got ~500 lines
shorter.  Even with the sprinkling of %%-heavy magic in the macro
definitions, I think the spec file is now overall easier to read.
(I say this, but then, I wrote the glibc makefiles as a child, so
my judgment is clearly suspect, and my breeding a lost cause.)

I think this is a nice cleanup on its own.  The reason I actually
did it is that the debuginfo package details will have to change
soon when a new find-debuginfo.sh comes in rpm, which is cleaned up
generally and does new magic for the build-id stuff.  I really
don't want to have to start dicking with that before it's
consolidated into only one place I have to touch.

I've verified that this is a no-op vs the 0.61 build.  i.e., it
generates rpms with the same files and same rpm magic, modulo a few
typo fixes and cosmetic cleanups/consolidation of rpm script fragments.

In the absence of frothing vitriol, I will commit this after
f8-test1 has sailed.


Thanks,
Roland


--- kernel.spec.~1.44~	2007-07-31 15:01:40.000000000 -0700
+++ kernel.spec	2007-07-31 17:44:57.000000000 -0700
@@ -363,6 +363,11 @@ Summary: The Linux kernel (the core of t
 %define _enable_debug_packages 0
 %endif
 
+%define with_pae_debug 0
+%if %with_pae
+%define with_pae_debug %{with_debug}
+%endif
+
 #
 # Three sets of minimum package version requirements in the form of Conflicts:
 # to versions below the minimum
@@ -385,7 +390,12 @@ Summary: The Linux kernel (the core of t
 #
 # The ld.so.conf.d file we install uses syntax older ldconfig's don't grok.
 #
-%define xen_conflicts glibc < 2.3.5-1, xen < 3.0.1
+%define kernel_xen_conflicts glibc < 2.3.5-1, xen < 3.0.1
+
+# upto and including kernel 2.4.9 rpms, the 4Gb+ kernel was called kernel-enterprise
+# now that the smp kernel offers this capability, obsolete the old kernel
+%define kernel_smp_obsoletes kernel-enterprise < 2.4.10
+%define kernel_PAE_obsoletes kernel-smp < 2.6.17
 
 #
 # Packages that need to be installed before the kernel is, because the %post
@@ -393,6 +403,29 @@ Summary: The Linux kernel (the core of t
 #
 %define kernel_prereq  fileutils, module-init-tools, initscripts >= 8.11.1-1, mkinitrd >= 6.0.9-7
 
+#
+# This macro does requires, provides, conflicts, obsoletes for a kernel package.
+#	%%kernel_reqprovconf <subpackage>
+# It uses any kernel_<subpackage>_conflicts and kernel_<subpackage>_obsoletes
+# macros defined above.
+#
+%define kernel_reqprovconf \
+Provides: kernel = %{rpmversion}-%{pkg_release}\
+Provides: kernel-%{_target_cpu} = %{rpmversion}-%{pkg_release}\
+Provides: kernel-drm = 4.3.0\
+Provides: kernel-drm-nouveau = 6\
+Requires(pre): %{kernel_prereq}\
+Conflicts: %{kernel_dot_org_conflicts}\
+Conflicts: %{package_conflicts}\
+%{?1:%{expand:%%{?kernel_%1_conflicts:Conflicts: %%{kernel_%1_conflicts}}}}\
+%{?1:%{expand:%%{?kernel_%1_obsoletes:Obsoletes: %%{kernel_%1_obsoletes}}}}\
+# We can't let RPM do the dependencies automatic because it'll then pick up\
+# a correct but undesirable perl dependency from the module headers which\
+# isn't required for the kernel proper to function\
+AutoReq: no\
+AutoProv: yes\
+%{nil}
+
 Name: kernel%{?variant}
 Group: System Environment/Kernel
 License: GPLv2
@@ -403,17 +436,11 @@ Release: %{pkg_release}
 # SET %nobuildarches (ABOVE) INSTEAD
 ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 sparc sparc64 s390x alpha alphaev56
 ExclusiveOS: Linux
-Provides: kernel-drm = 4.3.0
-Provides: kernel-drm-nouveau = 6
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}
-Requires(pre): %{kernel_prereq}
-Conflicts: %{kernel_dot_org_conflicts}
-Conflicts: %{package_conflicts}
-# We can't let RPM do the dependencies automatic because it'll then pick up
-# a correct but undesirable perl dependency from the module headers which
-# isn't required for the kernel proper to function
-AutoReq: no
-AutoProv: yes
+
+%kernel_reqprovconf
+%ifarch x86_64
+Obsoletes: kernel-smp
+%endif
 
 
 #
@@ -601,24 +628,37 @@ Patch1230: linux-2.6-powerpc-spu-vicinit
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root-%{_target_cpu}
 
-%ifarch x86_64
-Obsoletes: kernel-smp
-%endif
-
 %description
 The kernel package contains the Linux kernel (vmlinuz), the core of any
 Linux operating system.  The kernel handles the basic functions
-of the operating system:  memory allocation, process allocation, device
+of the operating system: memory allocation, process allocation, device
 input and output, etc.
 
-%package debuginfo
-Summary: Debug information for package %{name}
-Group: Development/Debug
-Requires: %{name}-debuginfo-common-%{_target_cpu} = %{KVERREL}
-Provides: %{name}-debuginfo-%{_target_cpu} = %{KVERREL}
-%description debuginfo
-This package provides debug information for package %{name}
-This is required to use SystemTap with %{name}-%{KVERREL}.
+
+%package doc
+Summary: Various documentation bits found in the kernel source
+Group: Documentation
+%description doc
+This package contains documentation files from the kernel
+source. Various bits of information about the Linux kernel and the
+device drivers shipped with it are documented in these files.
+
+You'll want to install this package if you need a reference to the
+options that can be passed to Linux kernel modules at load time.
+
+
+%package headers
+Summary: Header files for the Linux kernel for use by glibc
+Group: Development/System
+Obsoletes: glibc-kernheaders
+Provides: glibc-kernheaders = 3.0-46
+%description headers
+Kernel-headers includes the C header files that specify the interface
+between the Linux kernel and userspace libraries and programs.  The
+header files define structures and constants that are needed for
+building most standard programs and are also needed for rebuilding the
+glibc package.
+
 
 %package debuginfo-common
 Summary: Kernel source files used by %{name}-debuginfo packages
@@ -628,34 +668,64 @@ Provides: %{name}-debuginfo-common-%{_ta
 This package is required by %{name}-debuginfo subpackages.
 It provides the kernel source files common to all builds.
 
-%package devel
-Summary: Development package for building kernel modules to match the kernel.
-Group: System Environment/Kernel
-AutoReqProv: no
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Requires(pre): /usr/bin/find
-%description devel
-This package provides kernel headers and makefiles sufficient to build modules
-against the kernel package.
 
-%package smp
-Summary: The Linux kernel compiled for SMP machines.
-Group: System Environment/Kernel
-Provides: kernel = %{version}
-Provides: kernel-drm = 4.3.0
-Provides: kernel-drm-nouveau = 6
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}smp
-Requires(pre): %{kernel_prereq}
-Conflicts: %{kernel_dot_org_conflicts}
-Conflicts: %{package_conflicts}
-# upto and including kernel 2.4.9 rpms, the 4Gb+ kernel was called kernel-enterprise
-# now that the smp kernel offers this capability, obsolete the old kernel
-Obsoletes: kernel-enterprise < 2.4.10
-# We can't let RPM do the dependencies automatic because it'll then pick up
-# a correct but undesirable perl dependency from the module headers which
-# isn't required for the kernel proper to function
-AutoReq: no
-AutoProv: yes
+#
+# This macro creates a kernel-<subpackage>-debuginfo package.
+#	%%kernel_debuginfo_package <subpackage>
+#
+%define kernel_debuginfo_package() \
+%package %{?1:%{1}-}debuginfo\
+Summary: Debug information for package %{name}%{?1:-%{1}}\
+Group: Development/Debug\
+Requires: %{name}-debuginfo-common-%{_target_cpu} = %{KVERREL}\
+Provides: %{name}%{?1:-%{1}}-debuginfo-%{_target_cpu} = %{KVERREL}\
+%description -n %{name}%{?1:-%{1}}-debuginfo\
+This package provides debug information for package %{name}%{?1:-%{1}}.\
+This is required to use SystemTap with %{name}%{?1:-%{1}}-%{KVERREL}.\
+%{nil}
+
+#
+# This macro creates a kernel-<subpackage>-devel package.
+#	%%kernel_devel_package <subpackage> <pretty-name>
+#
+%define kernel_devel_package() \
+%package %{?1:%{1}-}devel\
+Summary: Development package for building kernel modules to match the %{?2:%{2} }kernel\
+Group: System Environment/Kernel\
+Provides: kernel%{?1:-%{1}}-devel-%{_target_cpu} = %{rpmversion}-%{release}\
+Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}%{?1}\
+Provides: kernel-devel = %{rpmversion}-%{release}%{?1}\
+AutoReqProv: no\
+Requires(pre): /usr/bin/find\
+%description -n kernel%{?variant}%{?1:-%{1}}-devel\
+This package provides kernel headers and makefiles sufficient to build modules\
+against the %{?2:%{2} }kernel package.\
+%{nil}
+
+#
+# This macro creates a kernel-<subpackage> and its -devel and -debuginfo too.
+#	%%define variant_summary The Linux kernel compiled for <configuration>
+#	%%kernel_variant_package [-n <pretty-name>] <subpackage>
+#
+%define kernel_variant_package(n:) \
+%package %1\
+Summary: %{variant_summary}\
+Group: System Environment/Kernel\
+%kernel_reqprovconf\
+%{expand:%%kernel_devel_package %1 %{!?-n:%1}%{?-n:%{-n*}}}\
+%{expand:%%kernel_debuginfo_package %1}\
+%{nil}
+
+
+# First the auxiliary packages of the main kernel package.
+%kernel_devel_package
+%kernel_debuginfo_package
+
+
+# Now, each variant package.
+
+%define variant_summary The Linux kernel compiled for SMP machines
+%kernel_variant_package -n SMP smp
 %description smp
 This package includes a SMP version of the Linux kernel. It is
 required only on machines with two or more CPUs as well as machines with
@@ -663,83 +733,18 @@ hyperthreading technology.
 
 Install the kernel-smp package if your machine uses two or more CPUs.
 
-%package smp-debuginfo
-Summary: Debug information for package %{name}-smp
-Group: Development/Debug
-Requires: %{name}-debuginfo-common-%{_target_cpu} = %{KVERREL}
-Provides: %{name}-%smp-debuginfo-%{_target_cpu} = %{KVERREL}
-%description smp-debuginfo
-This package provides debug information for package %{name}-smp
-This is required to use SystemTap with %{name}-smp-%{KVERREL}.
-
-%package smp-devel
-Summary: Development package for building kernel modules to match the SMP kernel.
-Group: System Environment/Kernel
-Provides: kernel-smp-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}smp
-Provides: kernel-devel = %{rpmversion}-%{release}smp
-AutoReqProv: no
-Requires(pre): /usr/bin/find
-%description smp-devel
-This package provides kernel headers and makefiles sufficient to build modules
-against the SMP kernel package.
-
 
-%package PAE
-Summary: The Linux kernel compiled for PAE capable machines.
-Group: System Environment/Kernel
-Provides: kernel = %{version}
-Provides: kernel-drm = 4.3.0
-Provides: kernel-drm-nouveau = 6
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}PAE
-Requires(pre): %{kernel_prereq}
-Conflicts: %{kernel_dot_org_conflicts}
-Conflicts: %{package_conflicts}
-Obsoletes: kernel-smp < 2.6.17
-# We can't let RPM do the dependencies automatic because it'll then pick up
-# a correct but undesirable perl dependency from the module headers which
-# isn't required for the kernel proper to function
-AutoReq: no
-AutoProv: yes
+%define variant_summary The Linux kernel compiled for PAE capable machines
+%kernel_variant_package PAE
 %description PAE
 This package includes a version of the Linux kernel with support for up to
 64GB of high memory. It requires a CPU with Physical Address Extensions (PAE).
 The non-PAE kernel can only address up to 4GB of memory.
 Install the kernel-PAE package if your machine has more than 4GB of memory.
 
-%package PAE-debuginfo
-Summary: Debug information for package %{name}-PAE
-Group: Development/Debug
-Requires: %{name}-debuginfo-common-%{_target_cpu} = %{KVERREL}
-Provides: %{name}-%PAE-debuginfo-%{_target_cpu} = %{KVERREL}
-%description PAE-debuginfo
-This package provides debug information for package %{name}-PAE
-This is required to use SystemTap with %{name}-PAE-%{KVERREL}.
-
-%package PAE-devel
-Summary: Development package for building kernel modules to match the PAE kernel.
-Group: System Environment/Kernel
-Provides: kernel-PAE-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}PAE
-Provides: kernel-devel = %{rpmversion}-%{release}PAE
-AutoReqProv: no
-Requires(pre): /usr/bin/find
-%description PAE-devel
-This package provides kernel headers and makefiles sufficient to build modules
-against the PAE kernel package.
 
-%package PAE-debug
-Summary: The Linux kernel compiled with extra debugging enabled for PAE capable machines.
-Group: System Environment/Kernel
-Provides: kernel = %{version}
-Provides: kernel-drm = 4.3.0
-Provides: kernel-drm-nouveau = 6
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}PAE-debug
-Requires(pre): %{kernel_prereq}
-Conflicts: %{kernel_dot_org_conflicts}
-Conflicts: %{package_conflicts}
-AutoReq: no
-AutoProv: yes
+%define variant_summary The Linux kernel compiled with extra debugging enabled for PAE capable machines
+%kernel_variant_package PAE-debug
 %description PAE-debug
 This package includes a version of the Linux kernel with support for up to
 64GB of high memory. It requires a CPU with Physical Address Extensions (PAE).
@@ -750,64 +755,9 @@ This variant of the kernel has numerous 
 It should only be installed when trying to gather additional information
 on kernel bugs, as some of these options impact performance noticably.
 
-%package PAE-debug-debuginfo
-Summary: Debug information for package %{name}-PAE-debug
-Group: Development/Debug
-Requires: %{name}-debuginfo-common-%{_target_cpu} = %{KVERREL}
-Provides: %{name}-debug-debuginfo-%{_target_cpu} = %{KVERREL}
-%description PAE-debug-debuginfo
-This package provides debug information for package %{name}-PAE-debug
-
-%package PAE-debug-devel
-Summary: Development package for building kernel modules to match the kernel.
-Group: System Environment/Kernel
-AutoReqProv: no
-Requires(pre): /usr/bin/find
-Provides: kernel-PAE-debug-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}PAE-debug
-Provides: kernel-devel = %{rpmversion}-%{release}PAE-debug
-%description PAE-debug-devel
-This package provides kernel headers and makefiles sufficient to build modules
-against the kernel package.
-
 
-%package doc
-Summary: Various documentation bits found in the kernel source.
-Group: Documentation
-%description doc
-This package contains documentation files from the kernel
-source. Various bits of information about the Linux kernel and the
-device drivers shipped with it are documented in these files.
-
-You'll want to install this package if you need a reference to the
-options that can be passed to Linux kernel modules at load time.
-
-
-%package headers
-Summary: Header files for the Linux kernel for use by glibc
-Group: Development/System
-Obsoletes: glibc-kernheaders
-Provides: glibc-kernheaders = 3.0-46
-%description headers
-Kernel-headers includes the C header files that specify the interface
-between the Linux kernel and userspace libraries and programs.  The
-header files define structures and constants that are needed for
-building most standard programs and are also needed for rebuilding the
-glibc package.
-
-
-%package debug
-Summary: The Linux kernel compiled with extra debugging enabled.
-Group: System Environment/Kernel
-Provides: kernel = %{version}
-Provides: kernel-drm = 4.3.0
-Provides: kernel-drm-nouveau = 6
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}debug
-Requires(pre): %{kernel_prereq}
-Conflicts: %{kernel_dot_org_conflicts}
-Conflicts: %{package_conflicts}
-AutoReq: no
-AutoProv: yes
+%define variant_summary The Linux kernel compiled with extra debugging enabled
+%kernel_variant_package debug
 %description debug
 The kernel package contains the Linux kernel (vmlinuz), the core of any
 Linux operating system.  The kernel handles the basic functions
@@ -818,107 +768,21 @@ This variant of the kernel has numerous 
 It should only be installed when trying to gather additional information
 on kernel bugs, as some of these options impact performance noticably.
 
-%package debug-debuginfo
-Summary: Debug information for package %{name}-debug
-Group: Development/Debug
-Requires: %{name}-debuginfo-common-%{_target_cpu} = %{KVERREL}
-Provides: %{name}-debug-debuginfo-%{_target_cpu} = %{KVERREL}
-%description debug-debuginfo
-This package provides debug information for package %{name}-debug
-
-%package debug-devel
-Summary: Development package for building kernel modules to match the kernel.
-Group: System Environment/Kernel
-AutoReqProv: no
-Requires(pre): /usr/bin/find
-Provides: kernel-debug-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}debug
-Provides: kernel-devel = %{rpmversion}-%{release}debug
-%description debug-devel
-This package provides kernel headers and makefiles sufficient to build modules
-against the kernel package.
-
 
-%package xen
-Summary: The Linux kernel compiled for Xen VM operations
-Group: System Environment/Kernel
-Provides: kernel = %{version}
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}xen
-Requires(pre): %{kernel_prereq}
-Conflicts: %{kernel_dot_org_conflicts}
-Conflicts: %{package_conflicts}
-Conflicts: %{xen_conflicts}
-# We can't let RPM do the dependencies automatic because it'll then pick up
-# a correct but undesirable perl dependency from the module headers which
-# isn't required for the kernel proper to function
-AutoReq: no
-AutoProv: yes
+%define variant_summary The Linux kernel compiled for Xen VM operations
+%kernel_variant_package -n Xen xen
 %description xen
 This package includes a version of the Linux kernel which
-runs in Xen VM. It works for both priviledged and unpriviledged guests.
-
-%package xen-debuginfo
-Summary: Debug information for package %{name}-xen
-Group: Development/Debug
-Requires: %{name}-debuginfo-common-%{_target_cpu} = %{KVERREL}
-Provides: %{name}-xen-debuginfo-%{_target_cpu} = %{KVERREL}
-%description xen-debuginfo
-This package provides debug information for package %{name}-xen
-This is required to use SystemTap with %{name}-xen-%{KVERREL}.
+runs in a Xen VM. It works for both privileged and unprivileged guests.
 
-%package xen-devel
-Summary: Development package for building kernel modules to match the kernel.
-Group: System Environment/Kernel
-AutoReqProv: no
-Provides: kernel-xen-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}xen
-Provides: kernel-devel = %{rpmversion}-%{release}xen
-Requires(pre): /usr/bin/find
-%description xen-devel
-This package provides kernel headers and makefiles sufficient to build modules
-against the kernel package.
 
-%package kdump
-Summary: A minimal Linux kernel compiled for kernel crash dumps.
-Group: System Environment/Kernel
-Provides: kernel = %{version}
-Provides: kernel-drm = 4.3.0
-Provides: kernel-drm-nouveau = 6
-Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}kdump
-Requires(pre): %{kernel_prereq}
-Conflicts: %{kernel_dot_org_conflicts}
-Conflicts: %{package_conflicts}
-# We can't let RPM do the dependencies automatic because it'll then pick up
-# a correct but undesirable perl dependency from the module headers which
-# isn't required for the kernel proper to function
-AutoReq: no
-AutoProv: yes
+%define variant_summary A minimal Linux kernel compiled for crash dumps
+%kernel_variant_package kdump
 %description kdump
 This package includes a kdump version of the Linux kernel. It is
 required only on machines which will use the kexec-based kernel crash dump
 mechanism.
 
-%package kdump-debuginfo
-Summary: Debug information for package %{name}-kdump
-Group: Development/Debug
-Requires: %{name}-debuginfo-common-%{_target_cpu} = %{KVERREL}
-Provides: %{name}-kdump-debuginfo-%{_target_cpu} = %{KVERREL}
-%description kdump-debuginfo
-This package provides debug information for package %{name}-kdump
-This is required to use SystemTap with %{name}-kdump-%{KVERREL}.
-
-%package kdump-devel
-Summary: Development package for building kernel modules to match the kdump kernel.
-Group: System Environment/Kernel
-Provides: kernel-kdump-devel-%{_target_cpu} = %{rpmversion}-%{release}
-Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}kdump
-Provides: kernel-devel = %{rpmversion}-%{release}kdump
-AutoReqProv: no
-Requires(pre): /usr/bin/find
-%description kdump-devel
-This package provides kernel headers and makefiles sufficient to build modules
-against the kdump kernel package.
-
 
 %prep
 # do a few sanity-checks for --with *only builds
@@ -1665,494 +1529,91 @@ rm -rf $RPM_BUILD_ROOT
 ### scripts
 ###
 
-%post
-if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ]; then
-  if [ -f /etc/sysconfig/kernel ]; then
-    /bin/sed -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel/' /etc/sysconfig/kernel || exit $?
-  fi
-fi
-/sbin/new-kernel-pkg --package kernel --mkinitrd --depmod --install %{KVERREL} || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --add-kernel %{KVERREL} || exit $?
-#fi
-
-%post devel
-if [ -f /etc/sysconfig/kernel ]
-then
-    . /etc/sysconfig/kernel || exit $?
-fi
-if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
-  pushd /usr/src/kernels/%{KVERREL}-%{_target_cpu} > /dev/null
-  /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
-  popd > /dev/null
-fi
-
-%post smp
-/sbin/new-kernel-pkg --package kernel-smp --mkinitrd --depmod --install %{KVERREL}smp || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --add-kernel %{KVERREL}smp || exit $?
-#fi
-
-%post smp-devel
-if [ -f /etc/sysconfig/kernel ]
-then
-    . /etc/sysconfig/kernel || exit $?
-fi
-if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
-  pushd /usr/src/kernels/%{KVERREL}-smp-%{_target_cpu} > /dev/null
-  /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
-  popd > /dev/null
-fi
-
-%post PAE
-if [ -f /etc/sysconfig/kernel ]; then
-    /bin/sed -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel-PAE/' /etc/sysconfig/kernel
-fi
-/sbin/new-kernel-pkg --package kernel-PAE --mkinitrd --depmod --install %{KVERREL}PAE || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --add-kernel %{KVERREL}PAE || exit $?
-#fi
-
-%post PAE-devel
-if [ -f /etc/sysconfig/kernel ]
-then
-    . /etc/sysconfig/kernel || exit $?
-fi
-if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
-  pushd /usr/src/kernels/%{KVERREL}-PAE-%{_target_cpu} > /dev/null
-  /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
-  popd > /dev/null
-fi
-
-
-%post debug
-/sbin/new-kernel-pkg --package kernel-debug --mkinitrd --depmod --install %{KVERREL}debug || exit $?
-if [ -x /sbin/weak-modules ]
-then
-    /sbin/weak-modules --add-kernel %{KVERREL}debug || exit $?
-fi
+#
+# This macro defines a %%post script for a kernel*-devel package.
+#	%%kernel_devel_post <subpackage>
+#
+%define kernel_devel_post() \
+%{expand:%%post %{?1:%{1}-}devel}\
+if [ -f /etc/sysconfig/kernel ]\
+then\
+    . /etc/sysconfig/kernel || exit $?\
+fi\
+if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ]\
+then\
+    (cd /usr/src/kernels/%{KVERREL}-%{?1:%{1}-}%{_target_cpu} &&\
+     /usr/bin/find . -type f | while read f; do\
+       hardlink -c /usr/src/kernels/*.fc*-*/$f $f\
+     done)\
+fi\
+%{nil}
+
+#
+# This macro defines a %%post script for a kernel package and its devel package.
+#	%%kernel_variant_post [-v <subpackage>] [-s <s> -r <r>] <mkinitrd-args>
+# More text can follow to go at the end of this variant's %%post.
+#
+%define kernel_variant_post(s:r:v:) \
+%{expand:%%kernel_devel_post %{?-v*}}\
+%{expand:%%post %{?-v*}}\
+%{-s:\
+if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\
+   [ -f /etc/sysconfig/kernel ]; then\
+  /bin/sed -i -e 's/^DEFAULTKERNEL=%{-s*}$/DEFAULTKERNEL=%{-r*}/' /etc/sysconfig/kernel || exit $?\
+fi}\
+/sbin/new-kernel-pkg --package kernel%{?1:-%{1}} --mkinitrd --depmod --install %{?2} %{KVERREL}%{?1} || exit $?\
+if [ -x /sbin/weak-modules ]\
+then\
+    /sbin/weak-modules --add-kernel %{KVERREL}%{?1} || exit $?\
+fi\
+%{nil}
+
+#
+# This macro defines a %%preun script for a kernel package.
+#	%%kernel_variant_preun <subpackage>
+#
+%define kernel_variant_preun() \
+%{expand:%%preun %{?1}}\
+/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}%{?1} || exit $?\
+if [ -x /sbin/weak-modules ]\
+then\
+    /sbin/weak-modules --remove-kernel %{KVERREL}%{?1} || exit $?\
+fi\
+%{nil}
+
+%kernel_variant_preun
+%kernel_variant_post -s kernel-smp -r kernel
+
+%kernel_variant_preun smp
+%kernel_variant_post -v smp
+
+%kernel_variant_preun PAE
+%kernel_variant_post -v PAE -s kernel-smp -r kernel-PAE
 
-%post debug-devel
-if [ -f /etc/sysconfig/kernel ]
-then
-    . /etc/sysconfig/kernel || exit $?
-fi
-if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
-  pushd /usr/src/kernels/%{KVERREL}-debug-%{_target_cpu} > /dev/null
-  /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
-  popd > /dev/null
-fi
+%kernel_variant_preun debug
+%kernel_variant_post -v debug
 
-%post PAE-debug
-if [ -f /etc/sysconfig/kernel ]; then
-    /bin/sed -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel-PAE/' /etc/sysconfig/kernel
-fi
-/sbin/new-kernel-pkg --package kernel-PAE --mkinitrd --depmod --install %{KVERREL}PAE-debug || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --add-kernel %{KVERREL}PAE || exit $?
-#fi
+%kernel_variant_post -v PAE-debug -s kernel-smp -r kernel-PAE-debug
+%kernel_variant_preun PAE-debug
 
-%post PAE-debug-devel
-if [ -f /etc/sysconfig/kernel ]
-then
-    . /etc/sysconfig/kernel || exit $?
-fi
-if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
-  pushd /usr/src/kernels/%{KVERREL}-PAE-debug-%{_target_cpu} > /dev/null
-  /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
-  popd > /dev/null
-fi
-
-%post xen
-if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ]; then
-  if [ -f /etc/sysconfig/kernel ]; then
-    /bin/sed -i -e 's/^DEFAULTKERNEL=kernel-xen[0U]/DEFAULTKERNEL=kernel-xen/' /etc/sysconfig/kernel || exit $?
-  fi
-fi
-if [ -e /proc/xen/xsd_kva -o ! -d /proc/xen ]; then
-	/sbin/new-kernel-pkg --package kernel-xen --mkinitrd --depmod --install --multiboot=/%{image_install_path}/xen.gz-%{KVERREL} %{KVERREL}xen || exit $?
-else
-	/sbin/new-kernel-pkg --package kernel-xen --mkinitrd --depmod --install %{KVERREL}xen || exit $?
-fi
+%kernel_variant_preun xen
+%kernel_variant_post xen -v xen -s kernel-xen[0U] -r kernel-xen -- `[ -d /proc/xen -a ! -e /proc/xen/xsd_kva ] || echo --multiboot=/%{image_install_path}/xen.gz-%{KVERREL}`
 if [ -x /sbin/ldconfig ]
 then
     /sbin/ldconfig -X || exit $?
 fi
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --add-kernel %{KVERREL}xen || exit $?
-#fi
-
-%post xen-devel
-if [ -f /etc/sysconfig/kernel ]
-then
-    . /etc/sysconfig/kernel || exit $?
-fi
-if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
-  pushd /usr/src/kernels/%{KVERREL}-xen-%{_target_cpu} > /dev/null
-  /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
-  popd > /dev/null
-fi
-
-%post kdump
-/sbin/new-kernel-pkg --package kernel-kdump --mkinitrd --depmod --install %{KVERREL}kdump || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --add-kernel %{KVERREL}kdump || exit $?
-#fi
-
-%post kdump-devel
-if [ -f /etc/sysconfig/kernel ]
-then
-    . /etc/sysconfig/kernel || exit $?
-fi
-if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] ; then
-  pushd /usr/src/kernels/%{KVERREL}-kdump-%{_target_cpu} > /dev/null
-  /usr/bin/find . -type f | while read f; do hardlink -c /usr/src/kernels/*FC*/$f $f ; done
-  popd > /dev/null
-fi
-
-
-%preun
-/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL} || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --remove-kernel %{KVERREL} || exit $?
-#fi
-
-%preun smp
-/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}smp || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --remove-kernel %{KVERREL}smp || exit $?
-#fi
-
-%preun PAE
-/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}PAE || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --remove-kernel %{KVERREL}PAE || exit $?
-#fi
-
-%preun kdump
-/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}kdump || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --remove-kernel %{KVERREL}kdump || exit $?
-#fi
-
-%preun debug
-/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}debug || exit $?
-if [ -x /sbin/weak-modules ]
-then
-    /sbin/weak-modules --remove-kernel %{KVERREL}debug || exit $?
-fi
-
-%preun PAE-debug
-/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}PAE-debug || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --remove-kernel %{KVERREL}PAE || exit $?
-#fi
-
-%preun xen
-/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}xen || exit $?
-#if [ -x /sbin/weak-modules ]
-#then
-#    /sbin/weak-modules --remove-kernel %{KVERREL}xen || exit $?
-#fi
 
 ###
 ### file lists
 ###
 
-# This is %{image_install_path} on an arch where that includes ELF files,
-# or empty otherwise.
-%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
-
-%if %{with_up}
-%if %{with_debuginfo}
-%ifnarch noarch
-%files debuginfo
-%defattr(-,root,root)
-%if "%{elf_image_install_path}" != ""
-%{debuginfodir}/%{elf_image_install_path}/*-%{KVERREL}.debug
-%endif
-%{debuginfodir}/lib/modules/%{KVERREL}
-%{debuginfodir}/usr/src/kernels/%{KVERREL}-%{_target_cpu}
-%endif
-%endif
-
-%files
-%defattr(-,root,root)
-/%{image_install_path}/vmlinuz-%{KVERREL}
-/boot/System.map-%{KVERREL}
-#/boot/symvers-%{KVERREL}.gz
-/boot/config-%{KVERREL}
-%dir /lib/modules/%{KVERREL}
-/lib/modules/%{KVERREL}/kernel
-/lib/modules/%{KVERREL}/build
-/lib/modules/%{KVERREL}/source
-/lib/modules/%{KVERREL}/extra
-/lib/modules/%{KVERREL}/updates
-/lib/modules/%{KVERREL}/weak-updates
-/lib/modules/%{KVERREL}/modules.scsi
-/lib/modules/%{KVERREL}/modules.libata
-/lib/modules/%{KVERREL}/modules.networking
-%ghost /boot/initrd-%{KVERREL}.img
-
-%files devel
-%defattr(-,root,root)
-%verify(not mtime) /usr/src/kernels/%{KVERREL}-%{_target_cpu}
-%endif
-
-
 %if %{with_headers}
 %files headers
 %defattr(-,root,root)
 /usr/include/*
 %endif
 
-
-%if %{with_debug}
-%if %{with_debuginfo}
-%ifnarch noarch
-%files debug-debuginfo
-%defattr(-,root,root)
-%if "%{elf_image_install_path}" != ""
-%{debuginfodir}/%{elf_image_install_path}/*-%{KVERREL}debug.debug
-%endif
-%{debuginfodir}/lib/modules/%{KVERREL}debug
-%{debuginfodir}/usr/src/kernels/%{KVERREL}-debug-%{_target_cpu}
-%endif
-
-%files debug
-%defattr(-,root,root)
-/%{image_install_path}/vmlinuz-%{KVERREL}debug
-/boot/System.map-%{KVERREL}debug
-#/boot/symvers-%{KVERREL}debug.gz
-/boot/config-%{KVERREL}debug
-%dir /lib/modules/%{KVERREL}debug
-/lib/modules/%{KVERREL}debug/kernel
-/lib/modules/%{KVERREL}debug/build
-/lib/modules/%{KVERREL}debug/source
-/lib/modules/%{KVERREL}debug/extra
-/lib/modules/%{KVERREL}debug/updates
-/lib/modules/%{KVERREL}debug/weak-updates
-/lib/modules/%{KVERREL}debug/modules.scsi
-/lib/modules/%{KVERREL}debug/modules.libata
-/lib/modules/%{KVERREL}debug/modules.networking
-%ghost /boot/initrd-%{KVERREL}debug.img
-
-%files debug-devel
-%defattr(-,root,root)
-%verify(not mtime) /usr/src/kernels/%{KVERREL}-debug-%{_target_cpu}
-/usr/src/kernels/%{KVERREL}debug-%{_target_cpu}
-%endif
-%endif
-
-
-
-%if %{with_pae}
-%if %{with_debuginfo}
-%ifnarch noarch
-%files PAE-debuginfo
-%defattr(-,root,root)
-%if "%{elf_image_install_path}" != ""
-%{debuginfodir}/%{elf_image_install_path}/*-%{KVERREL}PAE.debug
-%endif
-%{debuginfodir}/lib/modules/%{KVERREL}PAE
-%{debuginfodir}/usr/src/kernels/%{KVERREL}-PAE-%{_target_cpu}
-%endif
-%endif
-
-%files PAE
-%defattr(-,root,root)
-/%{image_install_path}/vmlinuz-%{KVERREL}PAE
-/boot/System.map-%{KVERREL}PAE
-#/boot/symvers-%{KVERREL}PAE.gz
-/boot/config-%{KVERREL}PAE
-%dir /lib/modules/%{KVERREL}PAE
-/lib/modules/%{KVERREL}PAE/kernel
-/lib/modules/%{KVERREL}PAE/build
-/lib/modules/%{KVERREL}PAE/source
-/lib/modules/%{KVERREL}PAE/extra
-/lib/modules/%{KVERREL}PAE/updates
-/lib/modules/%{KVERREL}PAE/weak-updates
-/lib/modules/%{KVERREL}PAE/modules.scsi
-/lib/modules/%{KVERREL}PAE/modules.libata
-/lib/modules/%{KVERREL}PAE/modules.networking
-%ghost /boot/initrd-%{KVERREL}PAE.img
-
-%files PAE-devel
-%defattr(-,root,root)
-%verify(not mtime) /usr/src/kernels/%{KVERREL}-PAE-%{_target_cpu}
-/usr/src/kernels/%{KVERREL}PAE-%{_target_cpu}
-
-%if %{with_debug}
-%if %{with_debuginfo}
-%ifnarch noarch
-%files PAE-debug-debuginfo
-%defattr(-,root,root)
-%if "%{elf_image_install_path}" != ""
-%{debuginfodir}/%{elf_image_install_path}/*-%{KVERREL}PAE-debug.debug
-%endif
-%{debuginfodir}/lib/modules/%{KVERREL}PAE-debug
-%{debuginfodir}/usr/src/kernels/%{KVERREL}-PAE-debug-%{_target_cpu}
-%endif
-
-%files PAE-debug
-%defattr(-,root,root)
-/%{image_install_path}/vmlinuz-%{KVERREL}PAE-debug
-/boot/System.map-%{KVERREL}PAE-debug
-#/boot/symvers-%{KVERREL}PAE-debug.gz
-/boot/config-%{KVERREL}PAE-debug
-%dir /lib/modules/%{KVERREL}PAE-debug
-/lib/modules/%{KVERREL}PAE-debug/kernel
-/lib/modules/%{KVERREL}PAE-debug/build
-/lib/modules/%{KVERREL}PAE-debug/source
-/lib/modules/%{KVERREL}PAE-debug/extra
-/lib/modules/%{KVERREL}PAE-debug/updates
-/lib/modules/%{KVERREL}PAE-debug/weak-updates
-/lib/modules/%{KVERREL}PAE-debug/modules.scsi
-/lib/modules/%{KVERREL}PAE-debug/modules.libata
-/lib/modules/%{KVERREL}PAE-debug/modules.networking
-%ghost /boot/initrd-%{KVERREL}PAE-debug.img
-
-%files PAE-debug-devel
-%defattr(-,root,root)
-%verify(not mtime) /usr/src/kernels/%{KVERREL}-PAE-debug-%{_target_cpu}
-/usr/src/kernels/%{KVERREL}PAE-debug-%{_target_cpu}
-%endif
-%endif
-# PAE
-%endif
-
-
-%if %{with_smp}
-%if %{with_debuginfo}
-%ifnarch noarch
-%files smp-debuginfo
-%defattr(-,root,root)
-%if "%{elf_image_install_path}" != ""
-%{debuginfodir}/%{elf_image_install_path}/*-%{KVERREL}smp.debug
-%endif
-%{debuginfodir}/lib/modules/%{KVERREL}smp
-%{debuginfodir}/usr/src/kernels/%{KVERREL}-smp-%{_target_cpu}
-%endif
-%endif
-
-%files smp
-%defattr(-,root,root)
-/%{image_install_path}/vmlinuz-%{KVERREL}smp
-/boot/System.map-%{KVERREL}smp
-#/boot/symvers-%{KVERREL}smp.gz
-/boot/config-%{KVERREL}smp
-%dir /lib/modules/%{KVERREL}smp
-/lib/modules/%{KVERREL}smp/kernel
-/lib/modules/%{KVERREL}smp/build
-/lib/modules/%{KVERREL}smp/source
-/lib/modules/%{KVERREL}smp/extra
-/lib/modules/%{KVERREL}smp/updates
-/lib/modules/%{KVERREL}smp/weak-updates
-/lib/modules/%{KVERREL}smp/modules.scsi
-/lib/modules/%{KVERREL}smp/modules.libata
-/lib/modules/%{KVERREL}smp/modules.networking
-%ghost /boot/initrd-%{KVERREL}smp.img
-
-%files smp-devel
-%defattr(-,root,root)
-%verify(not mtime) /usr/src/kernels/%{KVERREL}-smp-%{_target_cpu}
-/usr/src/kernels/%{KVERREL}smp-%{_target_cpu}
-%endif
-
-
-%if %{includexen}
-%if %{with_xen}
-%if %{with_debuginfo}
-%ifnarch noarch
-%files xen-debuginfo
-%defattr(-,root,root)
-%if "%{elf_image_install_path}" != ""
-%{debuginfodir}/%{elf_image_install_path}/*-%{KVERREL}xen.debug
-%endif
-%{debuginfodir}/lib/modules/%{KVERREL}xen
-%{debuginfodir}/usr/src/kernels/%{KVERREL}-xen-%{_target_cpu}
-%{debuginfodir}/boot/xen*-%{KVERREL}.debug
-%endif
-%endif
-
-%files xen
-%defattr(-,root,root)
-/%{image_install_path}/vmlinuz-%{KVERREL}xen
-/boot/System.map-%{KVERREL}xen
-#/boot/symvers-%{KVERREL}xen.gz
-/boot/config-%{KVERREL}xen
-/%{image_install_path}/xen.gz-%{KVERREL}
-/boot/xen-syms-%{KVERREL}
-%dir /lib/modules/%{KVERREL}xen
-/lib/modules/%{KVERREL}xen/kernel
-%verify(not mtime) /lib/modules/%{KVERREL}xen/build
-/lib/modules/%{KVERREL}xen/source
-/etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf
-/lib/modules/%{KVERREL}xen/extra
-/lib/modules/%{KVERREL}xen/updates
-/lib/modules/%{KVERREL}xen/weak-updates
-/lib/modules/%{KVERREL}xen/modules.scsi
-/lib/modules/%{KVERREL}xen/modules.libata
-/lib/modules/%{KVERREL}xen/modules.networking
-%ghost /boot/initrd-%{KVERREL}xen.img
-
-%files xen-devel
-%defattr(-,root,root)
-%verify(not mtime) /usr/src/kernels/%{KVERREL}-xen-%{_target_cpu}
-/usr/src/kernels/%{KVERREL}xen-%{_target_cpu}
-%endif
-%endif
-
-%if %{with_kdump}
-%if %{with_debuginfo}
-%ifnarch noarch
-%files kdump-debuginfo
-%defattr(-,root,root)
-%if "%{image_install_path}" != ""
-%{debuginfodir}/%{image_install_path}/*-%{KVERREL}kdump.debug
-%endif
-%{debuginfodir}/lib/modules/%{KVERREL}kdump
-%{debuginfodir}/usr/src/kernels/%{KVERREL}-kdump-%{_target_cpu}
-%endif
-%endif
-
-%files kdump
-%defattr(-,root,root)
-/%{image_install_path}/vmlinux-%{KVERREL}kdump
-/boot/System.map-%{KVERREL}kdump
-#/boot/symvers-%{KVERREL}kdump.gz
-/boot/config-%{KVERREL}kdump
-%dir /lib/modules/%{KVERREL}kdump
-/lib/modules/%{KVERREL}kdump/kernel
-/lib/modules/%{KVERREL}kdump/build
-/lib/modules/%{KVERREL}kdump/source
-/lib/modules/%{KVERREL}kdump/extra
-/lib/modules/%{KVERREL}kdump/updates
-/lib/modules/%{KVERREL}kdump/weak-updates
-/lib/modules/%{KVERREL}kdump/modules.scsi
-/lib/modules/%{KVERREL}kdump/modules.libata
-/lib/modules/%{KVERREL}kdump/modules.networking
-%ghost /boot/initrd-%{KVERREL}kdump.img
-
-%files kdump-devel
-%defattr(-,root,root)
-%verify(not mtime) /usr/src/kernels/%{KVERREL}-kdump-%{_target_cpu}
-/usr/src/kernels/%{KVERREL}kdump-%{_target_cpu}
-%endif
-
 # only some architecture builds need kernel-doc
-
 %if %{with_doc}
 %files doc
 %defattr(-,root,root)
@@ -2161,6 +1622,64 @@ fi
 %dir %{_datadir}/doc/kernel-doc-%{kversion}
 %endif
 
+# This is %{image_install_path} on an arch where that includes ELF files,
+# or empty otherwise.
+%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
+
+#
+# This macro defines the %files sections for a kernel package
+# and its devel and debuginfo packages.
+#	%%kernel_variant_files [-a <extra-files-glob>] [-e <extra-nonbinary>] <condition> <subpackage>
+#
+%define kernel_variant_files(a:e:) \
+%if %{1}\
+%{expand:%%files %{?2}}\
+%defattr(-,root,root)\
+/%{image_install_path}/vmlinuz-%{KVERREL}%{?2}\
+/boot/System.map-%{KVERREL}%{?2}\
+#/boot/symvers-%{KVERREL}%{?2}.gz\
+/boot/config-%{KVERREL}%{?2}\
+%{?-a:%{-a*}}\
+%dir /lib/modules/%{KVERREL}%{?2}\
+/lib/modules/%{KVERREL}%{?2}/kernel\
+/lib/modules/%{KVERREL}%{?2}/build\
+/lib/modules/%{KVERREL}%{?2}/source\
+/lib/modules/%{KVERREL}%{?2}/extra\
+/lib/modules/%{KVERREL}%{?2}/updates\
+/lib/modules/%{KVERREL}%{?2}/weak-updates\
+/lib/modules/%{KVERREL}%{?2}/modules.scsi\
+/lib/modules/%{KVERREL}%{?2}/modules.libata\
+/lib/modules/%{KVERREL}%{?2}/modules.networking\
+%ghost /boot/initrd-%{KVERREL}%{?2}.img\
+%{?-e:%{-e*}}\
+%{expand:%%files %{?2:%{2}-}devel}\
+%defattr(-,root,root)\
+%verify(not mtime) /usr/src/kernels/%{KVERREL}%{?2:-%{2}}-%{_target_cpu}\
+/usr/src/kernels/%{KVERREL}%{?2}-%{_target_cpu}\
+%if %{with_debuginfo}\
+%ifnarch noarch\
+%{expand:%%files %{?2:%{2}-}debuginfo}\
+%defattr(-,root,root)\
+%if "%{elf_image_install_path}" != ""\
+%{debuginfodir}/%{elf_image_install_path}/*-%{KVERREL}%{?2}.debug\
+%endif\
+%{debuginfodir}/lib/modules/%{KVERREL}%{?2}\
+%{debuginfodir}/usr/src/kernels/%{KVERREL}%{?2:-%{2}}-%{_target_cpu}\
+%{?-a:%{debuginfodir}%{-a*}.debug}\
+%endif\
+%endif\
+%endif\
+%{nil}
+
+%kernel_variant_files %{with_up}
+%kernel_variant_files %{with_smp} smp
+%kernel_variant_files %{with_debug} debug
+%kernel_variant_files %{with_pae} PAE
+%kernel_variant_files %{with_pae_debug} PAE-debug
+%kernel_variant_files %{with_kdump} kdump
+%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
+
+
 %changelog
 * Tue Jul 31 2007 John W. Linville <linville at redhat.com>
 - Update git-wireless-dev.patch (iwlwifi, rt2x00, & zd1211rw updates)




More information about the kernel mailing list