Split kernel into kernel-core and kernel-drivers subpackages
This creates kernel-core and kernel-drivers subpackages. The kernel package remains as a meta-package the requires both of the subpackages. This allows most installs to continue on as-is with upgrades working. The contents of the kernel-core and kernel-drivers subpackages are determined at build time through the filter-modules.sh script. This script "removes" pre-defined subsystems and modules and generates a filelist for the %files section of each subpackage. The contents of each are per-arch, with arch override files taken into account. This allows us to make the split useful for varying arches.
This commit is contained in:
parent
32027e071f
commit
94ce4eca27
14
filter-aarch64.sh
Normal file
14
filter-aarch64.sh
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# This is the aarch64 override file for the core/drivers package split. The
|
||||||
|
# module directories listed here and in the generic list in filter-modules.sh
|
||||||
|
# will be moved to the resulting kernel-drivers package for this arch.
|
||||||
|
# Anything not listed in those files will be in the kernel-core package.
|
||||||
|
#
|
||||||
|
# Please review the default list in filter-modules.sh before making
|
||||||
|
# modifications to the overrides below. If something should be removed across
|
||||||
|
# all arches, remove it in the default instead of per-arch.
|
||||||
|
|
||||||
|
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject "
|
14
filter-armv7hl.sh
Normal file
14
filter-armv7hl.sh
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# This is the armv7hl override file for the core/drivers package split. The
|
||||||
|
# module directories listed here and in the generic list in filter-modules.sh
|
||||||
|
# will be moved to the resulting kernel-drivers package for this arch.
|
||||||
|
# Anything not listed in those files will be in the kernel-core package.
|
||||||
|
#
|
||||||
|
# Please review the default list in filter-modules.sh before making
|
||||||
|
# modifications to the overrides below. If something should be removed across
|
||||||
|
# all arches, remove it in the default instead of per-arch.
|
||||||
|
|
||||||
|
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn media memstick message nfc ntb pcmcia platform ssb staging uio uwb"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject"
|
14
filter-i686.sh
Normal file
14
filter-i686.sh
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# This is the i686 override file for the core/drivers package split. The
|
||||||
|
# module directories listed here and in the generic list in filter-modules.sh
|
||||||
|
# will be moved to the resulting kernel-drivers package for this arch.
|
||||||
|
# Anything not listed in those files will be in the kernel-core package.
|
||||||
|
#
|
||||||
|
# Please review the default list in filter-modules.sh before making
|
||||||
|
# modifications to the overrides below. If something should be removed across
|
||||||
|
# all arches, remove it in the default instead of per-arch.
|
||||||
|
|
||||||
|
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als"
|
143
filter-modules.sh
Executable file
143
filter-modules.sh
Executable file
@ -0,0 +1,143 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
#
|
||||||
|
# Called as filter-modules.sh list-of-modules Arch
|
||||||
|
|
||||||
|
# This script filters the modules into the kernel-core and kernel-drivers
|
||||||
|
# subpackages. We list out subsystems/subdirs to prune from the installed
|
||||||
|
# module directory. What is left is put into the kernel-core package. What is
|
||||||
|
# pruned is contained in the kernel-drivers package.
|
||||||
|
#
|
||||||
|
# This file contains the default subsys/subdirs to prune from all architectures.
|
||||||
|
# If an architecture needs to differ, we source a per-arch filter-<arch>.sh file
|
||||||
|
# that contains the set of override lists to be used instead. If a module or
|
||||||
|
# subsys should be in kernel-drivers on all arches, please change the defaults
|
||||||
|
# listed here.
|
||||||
|
|
||||||
|
# Set the default dirs/modules to filter out
|
||||||
|
driverdirs="atm auxdisplay bcma bluetooth fmc iio infiniband isdn leds media memstick message mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||||
|
|
||||||
|
netdrvs="appletalk dsa hamradio ieee802154 irda ppp slip usb wireless"
|
||||||
|
|
||||||
|
ethdrvs="3com adaptec alteon amd atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell mellanox neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
|
||||||
|
|
||||||
|
scsidrvs="aacraid aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs"
|
||||||
|
|
||||||
|
ttydrvs="ipwireless"
|
||||||
|
|
||||||
|
usbdrvs="atm wusbcore"
|
||||||
|
|
||||||
|
fsdrvs="affs befs coda cramfs dlm ecryptfs hfs hfsplus isofs jfs minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs udf ufs"
|
||||||
|
|
||||||
|
netprots="appletalk atm ax25 batman-adv bluetooth dccp dsa ieee802154 irda l2tp mac80211 mac802154 netrom nfc rds rfkill rose sctp wireless"
|
||||||
|
|
||||||
|
drmdrvs="ast gma500 mgag200 via nouveau"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub"
|
||||||
|
|
||||||
|
# Grab the arch-specific filter list overrides
|
||||||
|
source ./filter-$2.sh
|
||||||
|
|
||||||
|
filter_dir() {
|
||||||
|
filelist=$1
|
||||||
|
dir=$2
|
||||||
|
|
||||||
|
grep -v -e "${dir}/" ${filelist} > ${filelist}.tmp
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "Couldn't remove ${dir}. Skipping."
|
||||||
|
else
|
||||||
|
grep -e "${dir}/" ${filelist} >> k-d.list
|
||||||
|
mv ${filelist}.tmp $filelist
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
filter_ko() {
|
||||||
|
filelist=$1
|
||||||
|
mod=$2
|
||||||
|
|
||||||
|
grep -v -e "${mod}.ko" ${filelist} > ${filelist}.tmp
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "Couldn't remove ${mod}.ko Skipping."
|
||||||
|
else
|
||||||
|
grep -e "${mod}.ko" ${filelist} >> k-d.list
|
||||||
|
mv ${filelist}.tmp $filelist
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Filter the drivers/ subsystems
|
||||||
|
for subsys in ${driverdirs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/${subsys}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filter the networking drivers
|
||||||
|
for netdrv in ${netdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/net/${netdrv}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filter the ethernet drivers
|
||||||
|
for eth in ${ethdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/net/ethernet/${eth}
|
||||||
|
done
|
||||||
|
|
||||||
|
# SCSI
|
||||||
|
for scsi in ${scsidrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/scsi/${scsi}
|
||||||
|
done
|
||||||
|
|
||||||
|
# TTY
|
||||||
|
for tty in ${ttydrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/tty/${tty}
|
||||||
|
done
|
||||||
|
|
||||||
|
# USB
|
||||||
|
for usb in ${usbdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/usb/${usb}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filesystems
|
||||||
|
for fs in ${fsdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 fs/${fs}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Network protocols
|
||||||
|
for prot in ${netprots}
|
||||||
|
do
|
||||||
|
filter_dir $1 kernel/net/${prot}
|
||||||
|
done
|
||||||
|
|
||||||
|
# DRM
|
||||||
|
for drm in ${drmdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/gpu/drm/${drm}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Just kill sound.
|
||||||
|
filter_dir $1 kernel/sound
|
||||||
|
|
||||||
|
# Now go through and filter any single .ko files that might have deps on the
|
||||||
|
# things we filtered above
|
||||||
|
for mod in ${singlemods}
|
||||||
|
do
|
||||||
|
filter_ko $1 ${mod}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Go through our generated drivers list and remove the .ko files. We'll
|
||||||
|
# restore them later.
|
||||||
|
for mod in `cat k-d.list`
|
||||||
|
do
|
||||||
|
rm -rf $mod
|
||||||
|
done
|
14
filter-ppc.sh
Normal file
14
filter-ppc.sh
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# This is the ppc override file for the core/drivers package split. The
|
||||||
|
# module directories listed here and in the generic list in filter-modules.sh
|
||||||
|
# will be moved to the resulting kernel-drivers package for this arch.
|
||||||
|
# Anything not listed in those files will be in the kernel-core package.
|
||||||
|
#
|
||||||
|
# Please review the default list in filter-modules.sh before making
|
||||||
|
# modifications to the overrides below. If something should be removed across
|
||||||
|
# all arches, remove it in the default instead of per-arch.
|
||||||
|
|
||||||
|
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject"
|
14
filter-ppc64.sh
Normal file
14
filter-ppc64.sh
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# This is the ppc64 override file for the core/drivers package split. The
|
||||||
|
# module directories listed here and in the generic list in filter-modules.sh
|
||||||
|
# will be moved to the resulting kernel-drivers package for this arch.
|
||||||
|
# Anything not listed in those files will be in the kernel-core package.
|
||||||
|
#
|
||||||
|
# Please review the default list in filter-modules.sh before making
|
||||||
|
# modifications to the overrides below. If something should be removed across
|
||||||
|
# all arches, remove it in the default instead of per-arch.
|
||||||
|
|
||||||
|
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject"
|
14
filter-ppc64le.sh
Normal file
14
filter-ppc64le.sh
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# This is the ppc64le override file for the core/drivers package split. The
|
||||||
|
# module directories listed here and in the generic list in filter-modules.sh
|
||||||
|
# will be moved to the resulting kernel-drivers package for this arch.
|
||||||
|
# Anything not listed in those files will be in the kernel-core package.
|
||||||
|
#
|
||||||
|
# Please review the default list in filter-modules.sh before making
|
||||||
|
# modifications to the overrides below. If something should be removed across
|
||||||
|
# all arches, remove it in the default instead of per-arch.
|
||||||
|
|
||||||
|
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject"
|
12
filter-s390x.sh
Normal file
12
filter-s390x.sh
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# This is the s390x override file for the core/drivers package split. The
|
||||||
|
# module directories listed here and in the generic list in filter-modules.sh
|
||||||
|
# will be moved to the resulting kernel-drivers package for this arch.
|
||||||
|
# Anything not listed in those files will be in the kernel-core package.
|
||||||
|
#
|
||||||
|
# Please review the default list in filter-modules.sh before making
|
||||||
|
# modifications to the overrides below. If something should be removed across
|
||||||
|
# all arches, remove it in the default instead of per-arch.
|
||||||
|
|
||||||
|
# Defaults work so no need to override
|
12
filter-x86_64.sh
Normal file
12
filter-x86_64.sh
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# This is the x86_64 override file for the core/drivers package split. The
|
||||||
|
# module directories listed here and in the generic list in filter-modules.sh
|
||||||
|
# will be moved to the resulting kernel-drivers package for this arch.
|
||||||
|
# Anything not listed in those files will be in the kernel-core package.
|
||||||
|
#
|
||||||
|
# Please review the default list in filter-modules.sh before making
|
||||||
|
# modifications to the overrides below. If something should be removed across
|
||||||
|
# all arches, remove it in the default instead of per-arch.
|
||||||
|
|
||||||
|
# Defaults work so no need to override
|
216
kernel.spec
216
kernel.spec
@ -34,7 +34,7 @@ Summary: The Linux kernel
|
|||||||
# For non-released -rc kernels, this will be appended after the rcX and
|
# For non-released -rc kernels, this will be appended after the rcX and
|
||||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||||
#
|
#
|
||||||
%global baserelease 1
|
%global baserelease 9
|
||||||
%global fedora_build %{baserelease}
|
%global fedora_build %{baserelease}
|
||||||
|
|
||||||
# base_sublevel is the kernel version we're starting with and patching
|
# base_sublevel is the kernel version we're starting with and patching
|
||||||
@ -385,29 +385,6 @@ Summary: The Linux kernel
|
|||||||
%define kernel_prereq fileutils, systemd >= 203-2
|
%define kernel_prereq fileutils, systemd >= 203-2
|
||||||
%define initrd_prereq dracut >= 027
|
%define initrd_prereq dracut >= 027
|
||||||
|
|
||||||
#
|
|
||||||
# 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}%{?1:+%{1}}\
|
|
||||||
Provides: kernel-drm-nouveau = 16\
|
|
||||||
Provides: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\
|
|
||||||
Requires(pre): %{kernel_prereq}\
|
|
||||||
Requires(pre): %{initrd_prereq}\
|
|
||||||
Requires(pre): linux-firmware >= 20130724-29.git31f6b30\
|
|
||||||
Requires(preun): systemd >= 200\
|
|
||||||
%{expand:%%{?kernel%{?1:_%{1}}_conflicts:Conflicts: %%{kernel%{?1:_%{1}}_conflicts}}}\
|
|
||||||
%{expand:%%{?kernel%{?1:_%{1}}_obsoletes:Obsoletes: %%{kernel%{?1:_%{1}}_obsoletes}}}\
|
|
||||||
%{expand:%%{?kernel%{?1:_%{1}}_provides:Provides: %%{kernel%{?1:_%{1}}_provides}}}\
|
|
||||||
# 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\
|
|
||||||
AutoReqProv: no\
|
|
||||||
%{nil}
|
|
||||||
|
|
||||||
Name: kernel%{?variant}
|
Name: kernel%{?variant}
|
||||||
Group: System Environment/Kernel
|
Group: System Environment/Kernel
|
||||||
@ -419,8 +396,9 @@ Release: %{pkg_release}
|
|||||||
# SET %%nobuildarches (ABOVE) INSTEAD
|
# SET %%nobuildarches (ABOVE) INSTEAD
|
||||||
ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ppc64p7 s390 s390x %{arm} aarch64 ppc64le
|
ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ppc64p7 s390 s390x %{arm} aarch64 ppc64le
|
||||||
ExclusiveOS: Linux
|
ExclusiveOS: Linux
|
||||||
|
Requires: kernel-%{?variant:%{variant}-}core-uname-r = %{KVERREL}%{?variant}
|
||||||
|
Requires: kernel-%{?variant:%{variant}-}drivers-uname-r = %{KVERREL}%{?variant}
|
||||||
|
|
||||||
%kernel_reqprovconf
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# List the packages used during the kernel build
|
# List the packages used during the kernel build
|
||||||
@ -464,6 +442,15 @@ Source15: merge.pl
|
|||||||
Source16: mod-extra.list
|
Source16: mod-extra.list
|
||||||
Source17: mod-extra.sh
|
Source17: mod-extra.sh
|
||||||
Source18: mod-sign.sh
|
Source18: mod-sign.sh
|
||||||
|
Source90: filter-x86_64.sh
|
||||||
|
Source91: filter-armv7hl.sh
|
||||||
|
Source92: filter-i686.sh
|
||||||
|
Source93: filter-aarch64.sh
|
||||||
|
Source94: filter-ppc.sh
|
||||||
|
Source95: filter-ppc64.sh
|
||||||
|
Source96: filter-ppc64le.sh
|
||||||
|
Source97: filter-s390x.sh
|
||||||
|
Source99: filter-modules.sh
|
||||||
%define modsign_cmd %{SOURCE18}
|
%define modsign_cmd %{SOURCE18}
|
||||||
|
|
||||||
Source19: Makefile.release
|
Source19: Makefile.release
|
||||||
@ -652,10 +639,31 @@ Patch25068: fanotify-fix-EOVERFLOW-on-64-bit.patch
|
|||||||
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
|
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The kernel package contains the Linux kernel (vmlinuz), the core of any
|
The kernel meta package
|
||||||
Linux operating system. The kernel handles the basic functions
|
|
||||||
of the operating system: memory allocation, process allocation, device
|
#
|
||||||
input and output, etc.
|
# 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}%{?1:+%{1}}\
|
||||||
|
Provides: kernel-drm-nouveau = 16\
|
||||||
|
Provides: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\
|
||||||
|
Requires(pre): %{kernel_prereq}\
|
||||||
|
Requires(pre): %{initrd_prereq}\
|
||||||
|
Requires(pre): linux-firmware >= 20130724-29.git31f6b30\
|
||||||
|
Requires(preun): systemd >= 200\
|
||||||
|
%{expand:%%{?kernel%{?1:_%{1}}_conflicts:Conflicts: %%{kernel%{?1:_%{1}}_conflicts}}}\
|
||||||
|
%{expand:%%{?kernel%{?1:_%{1}}_obsoletes:Obsoletes: %%{kernel%{?1:_%{1}}_obsoletes}}}\
|
||||||
|
%{expand:%%{?kernel%{?1:_%{1}}_provides:Provides: %%{kernel%{?1:_%{1}}_provides}}}\
|
||||||
|
# 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\
|
||||||
|
AutoReqProv: no\
|
||||||
|
%{nil}
|
||||||
|
|
||||||
%package headers
|
%package headers
|
||||||
Summary: Header files for the Linux kernel for use by glibc
|
Summary: Header files for the Linux kernel for use by glibc
|
||||||
@ -837,53 +845,65 @@ Provides: kernel%{?1:-%{1}}-modules-extra = %{version}-%{release}%{?1:+%{1}}\
|
|||||||
Provides: installonlypkg(kernel-module)\
|
Provides: installonlypkg(kernel-module)\
|
||||||
Provides: kernel%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{?1:+%{1}}\
|
Provides: kernel%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{?1:+%{1}}\
|
||||||
Requires: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\
|
Requires: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\
|
||||||
|
Requires: kernel-drivers-uname-r = %{KVERREL}%{?1:+%{1}}\
|
||||||
AutoReqProv: no\
|
AutoReqProv: no\
|
||||||
%description -n kernel%{?variant}%{?1:-%{1}}-modules-extra\
|
%description -n kernel%{?variant}%{?1:-%{1}}-modules-extra\
|
||||||
This package provides less commonly used kernel modules for the %{?2:%{2} }kernel package.\
|
This package provides less commonly used kernel modules for the %{?2:%{2} }kernel package.\
|
||||||
%{nil}
|
%{nil}
|
||||||
|
|
||||||
|
#
|
||||||
|
# This macro creates a kernel-<subpackage>-drivers package.
|
||||||
|
# %%kernel_drivers_package <subpackage> <pretty-name>
|
||||||
|
#
|
||||||
|
%define kernel_drivers_package() \
|
||||||
|
%package %{?1:%{1}-}drivers\
|
||||||
|
Summary: kernel modules to match the %{?2:%{2}-}core kernel\
|
||||||
|
Group: System Environment/Kernel\
|
||||||
|
Provides: kernel%{?1:-%{1}}-drivers-%{_target_cpu} = %{version}-%{release}\
|
||||||
|
Provides: kernel-drivers-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
|
||||||
|
Provides: kernel-drivers = %{version}-%{release}%{?1:+%{1}}\
|
||||||
|
Provides: installonlypkg(kernel-module)\
|
||||||
|
Provides: kernel-drivers-uname-r = %{KVERREL}%{?1:+%{1}}\
|
||||||
|
Requires: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\
|
||||||
|
AutoReqProv: no\
|
||||||
|
%description -n kernel%{?variant}%{?1:-%{1}}-drivers\
|
||||||
|
This package provides commonly used kernel modules for the %{?2:%{2}-}core kernel package.\
|
||||||
|
%{nil}
|
||||||
|
|
||||||
#
|
#
|
||||||
# This macro creates a kernel-<subpackage> and its -devel and -debuginfo too.
|
# This macro creates a kernel-<subpackage> and its -devel and -debuginfo too.
|
||||||
# %%define variant_summary The Linux kernel compiled for <configuration>
|
# %%define variant_summary The Linux kernel compiled for <configuration>
|
||||||
# %%kernel_variant_package [-n <pretty-name>] <subpackage>
|
# %%kernel_variant_package [-n <pretty-name>] <subpackage>
|
||||||
#
|
#
|
||||||
%define kernel_variant_package(n:) \
|
%define kernel_variant_package(n:) \
|
||||||
%package %1\
|
%package %{?1:%{1}-}core\
|
||||||
Summary: %{variant_summary}\
|
Summary: %{variant_summary}\
|
||||||
Group: System Environment/Kernel\
|
Group: System Environment/Kernel\
|
||||||
%kernel_reqprovconf\
|
Provides: kernel-%{?1:%{1}-}core-uname-r = %{KVERREL}%{?1:+%{1}}\
|
||||||
%{expand:%%kernel_devel_package %1 %{!?-n:%1}%{?-n:%{-n*}}}\
|
%{expand:%%kernel_reqprovconf}\
|
||||||
|
%{expand:%%kernel_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
|
||||||
|
%{expand:%%kernel_drivers_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
|
||||||
%if %{with_extra}\
|
%if %{with_extra}\
|
||||||
%{expand:%%kernel_modules_extra_package %1 %{!?-n:%1}%{?-n:%{-n*}}}\
|
%{expand:%%kernel_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
|
||||||
%endif\
|
%endif\
|
||||||
%{expand:%%kernel_debuginfo_package %1}\
|
%{expand:%%kernel_debuginfo_package %{?1:%{1}}}\
|
||||||
%{nil}
|
%{nil}
|
||||||
|
|
||||||
|
|
||||||
# First the auxiliary packages of the main kernel package.
|
|
||||||
%kernel_devel_package
|
|
||||||
%if %{with_extra}
|
|
||||||
%kernel_modules_extra_package
|
|
||||||
%endif
|
|
||||||
%kernel_debuginfo_package
|
|
||||||
|
|
||||||
|
|
||||||
# Now, each variant package.
|
# Now, each variant package.
|
||||||
|
|
||||||
%define variant_summary The Linux kernel compiled for SMP machines
|
%define variant_summary The Linux kernel compiled for SMP machines
|
||||||
%kernel_variant_package -n SMP smp
|
%kernel_variant_package -n SMP smp
|
||||||
%description smp
|
%description smp-core
|
||||||
This package includes a SMP version of the Linux kernel. It is
|
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
|
required only on machines with two or more CPUs as well as machines with
|
||||||
hyperthreading technology.
|
hyperthreading technology.
|
||||||
|
|
||||||
Install the kernel-smp package if your machine uses two or more CPUs.
|
Install the kernel-smp package if your machine uses two or more CPUs.
|
||||||
|
|
||||||
|
|
||||||
%ifnarch armv7hl
|
%ifnarch armv7hl
|
||||||
%define variant_summary The Linux kernel compiled for PAE capable machines
|
%define variant_summary The Linux kernel compiled for PAE capable machines
|
||||||
%kernel_variant_package %{pae}
|
%kernel_variant_package %{pae}
|
||||||
%description %{pae}
|
%description %{pae}-core
|
||||||
This package includes a version of the Linux kernel with support for up to
|
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).
|
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.
|
The non-PAE kernel can only address up to 4GB of memory.
|
||||||
@ -891,7 +911,7 @@ Install the kernel-PAE package if your machine has more than 4GB of memory.
|
|||||||
%else
|
%else
|
||||||
%define variant_summary The Linux kernel compiled for Cortex-A15
|
%define variant_summary The Linux kernel compiled for Cortex-A15
|
||||||
%kernel_variant_package %{pae}
|
%kernel_variant_package %{pae}
|
||||||
%description %{pae}
|
%description %{pae}-core
|
||||||
This package includes a version of the Linux kernel with support for
|
This package includes a version of the Linux kernel with support for
|
||||||
Cortex-A15 devices with LPAE and HW virtualisation support
|
Cortex-A15 devices with LPAE and HW virtualisation support
|
||||||
%endif
|
%endif
|
||||||
@ -900,7 +920,7 @@ Cortex-A15 devices with LPAE and HW virtualisation support
|
|||||||
%define variant_summary The Linux kernel compiled with extra debugging enabled for PAE capable machines
|
%define variant_summary The Linux kernel compiled with extra debugging enabled for PAE capable machines
|
||||||
%kernel_variant_package %{pae}debug
|
%kernel_variant_package %{pae}debug
|
||||||
Obsoletes: kernel-PAE-debug
|
Obsoletes: kernel-PAE-debug
|
||||||
%description %{pae}debug
|
%description %{pae}debug-core
|
||||||
This package includes a version of the Linux kernel with support for up to
|
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).
|
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.
|
The non-PAE kernel can only address up to 4GB of memory.
|
||||||
@ -913,7 +933,7 @@ on kernel bugs, as some of these options impact performance noticably.
|
|||||||
|
|
||||||
%define variant_summary The Linux kernel compiled with extra debugging enabled
|
%define variant_summary The Linux kernel compiled with extra debugging enabled
|
||||||
%kernel_variant_package debug
|
%kernel_variant_package debug
|
||||||
%description debug
|
%description debug-core
|
||||||
The kernel package contains the Linux kernel (vmlinuz), the core of any
|
The kernel package contains the Linux kernel (vmlinuz), the core of any
|
||||||
Linux operating system. The kernel handles the basic functions
|
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
|
||||||
@ -923,6 +943,16 @@ This variant of the kernel has numerous debugging options enabled.
|
|||||||
It should only be installed when trying to gather additional information
|
It should only be installed when trying to gather additional information
|
||||||
on kernel bugs, as some of these options impact performance noticably.
|
on kernel bugs, as some of these options impact performance noticably.
|
||||||
|
|
||||||
|
# And finally the main -core package
|
||||||
|
|
||||||
|
%define variant_summary The Linux kernel
|
||||||
|
%kernel_variant_package
|
||||||
|
%description core
|
||||||
|
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
|
||||||
|
input and output, etc.
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
# do a few sanity-checks for --with *only builds
|
# do a few sanity-checks for --with *only builds
|
||||||
@ -1598,6 +1628,55 @@ BuildKernel() {
|
|||||||
%{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE16}
|
%{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE16}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generate the kernel-core and kernel-drivers files lists
|
||||||
|
#
|
||||||
|
|
||||||
|
# Copy the System.map file for depmod to use, and create a backup of the
|
||||||
|
# full module tree so we can restore it after we're done filtering
|
||||||
|
cp System.map $RPM_BUILD_ROOT/.
|
||||||
|
pushd $RPM_BUILD_ROOT
|
||||||
|
mkdir restore
|
||||||
|
cp -r lib/modules/$KernelVer/* restore/.
|
||||||
|
|
||||||
|
# don't include anything going into k-m-e in the file lists
|
||||||
|
rm -rf lib/modules/$KernelVer/extra
|
||||||
|
|
||||||
|
# Find all the module files and filter them out into the core and drivers
|
||||||
|
# lists. This actually removes anything going into -drivers from the dir.
|
||||||
|
find lib/modules/$KernelVer/kernel -name *.ko | sort -n > modules.list
|
||||||
|
cp $RPM_SOURCE_DIR/filter-*.sh .
|
||||||
|
%{SOURCE99} modules.list %{_target_cpu}
|
||||||
|
rm filter-*.sh
|
||||||
|
|
||||||
|
# Run depmod on the resulting module tree and make sure it isn't broken
|
||||||
|
depmod -b . -aeF ./System.map $KernelVer
|
||||||
|
# remove files that will be auto generated by depmod at rpm -i time
|
||||||
|
pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/
|
||||||
|
rm -f modules.{alias*,builtin.bin,dep*,*map,symbols*,devname,softdep}
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Go back and find all of the various directories in the tree. We use this
|
||||||
|
# for the dir lists in kernel-core
|
||||||
|
find lib/modules/$KernelVer/kernel -type d | sort -n > module-dirs.list
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm System.map
|
||||||
|
cp -r restore/* lib/modules/$KernelVer/.
|
||||||
|
rm -rf restore
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Make sure the files lists start with absolute paths or rpmbuild fails.
|
||||||
|
# Also add in the dir entries
|
||||||
|
sed -e 's/^lib*/\/lib/' $RPM_BUILD_ROOT/k-d.list > ../kernel${Flavour:+-${Flavour}}-drivers.list
|
||||||
|
sed -e 's/^lib*/%dir \/lib/' $RPM_BUILD_ROOT/module-dirs.list > ../kernel${Flavour:+-${Flavour}}-core.list
|
||||||
|
sed -e 's/^lib*/\/lib/' $RPM_BUILD_ROOT/modules.list >> ../kernel${Flavour:+-${Flavour}}-core.list
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -f $RPM_BUILD_ROOT/k-d.list
|
||||||
|
rm -f $RPM_BUILD_ROOT/modules.list
|
||||||
|
rm -f $RPM_BUILD_ROOT/module-dirs.list
|
||||||
|
|
||||||
%if %{signmodules}
|
%if %{signmodules}
|
||||||
# Save the signing keys so we can sign the modules in __modsign_install_post
|
# Save the signing keys so we can sign the modules in __modsign_install_post
|
||||||
cp signing_key.priv signing_key.priv.sign${Flav}
|
cp signing_key.priv signing_key.priv.sign${Flav}
|
||||||
@ -1866,11 +1945,28 @@ fi\
|
|||||||
|
|
||||||
#
|
#
|
||||||
# This macro defines a %%post script for a kernel*-modules-extra package.
|
# This macro defines a %%post script for a kernel*-modules-extra package.
|
||||||
|
# It also defines a %%postun script that does the same thing.
|
||||||
# %%kernel_modules_extra_post [<subpackage>]
|
# %%kernel_modules_extra_post [<subpackage>]
|
||||||
#
|
#
|
||||||
%define kernel_modules_extra_post() \
|
%define kernel_modules_extra_post() \
|
||||||
%{expand:%%post %{?1:%{1}-}modules-extra}\
|
%{expand:%%post %{?1:%{1}-}modules-extra}\
|
||||||
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
|
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
|
||||||
|
%{nil}\
|
||||||
|
%{expand:%%postun %{?1:%{1}-}modules-extra}\
|
||||||
|
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
|
||||||
|
%{nil}
|
||||||
|
|
||||||
|
#
|
||||||
|
# This macro defines a %%post script for a kernel*-drivers package.
|
||||||
|
# It also defines a %%postun script that does the same thing.
|
||||||
|
# %%kernel_drivers_post [<subpackage>]
|
||||||
|
#
|
||||||
|
%define kernel_drivers_post() \
|
||||||
|
%{expand:%%post %{?1:%{1}-}drivers}\
|
||||||
|
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
|
||||||
|
%{nil}\
|
||||||
|
%{expand:%%postun %{?1:%{1}-}drivers}\
|
||||||
|
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
|
||||||
%{nil}
|
%{nil}
|
||||||
|
|
||||||
# This macro defines a %%posttrans script for a kernel package.
|
# This macro defines a %%posttrans script for a kernel package.
|
||||||
@ -1878,7 +1974,7 @@ fi\
|
|||||||
# More text can follow to go at the end of this variant's %%post.
|
# More text can follow to go at the end of this variant's %%post.
|
||||||
#
|
#
|
||||||
%define kernel_variant_posttrans() \
|
%define kernel_variant_posttrans() \
|
||||||
%{expand:%%posttrans %{?1}}\
|
%{expand:%%posttrans %{?1:%{1}-}core}\
|
||||||
/bin/kernel-install add %{KVERREL}%{?1:+%{1}} /%{image_install_path}/vmlinuz-%{KVERREL}%{?1:+%{1}} || exit $?\
|
/bin/kernel-install add %{KVERREL}%{?1:+%{1}} /%{image_install_path}/vmlinuz-%{KVERREL}%{?1:+%{1}} || exit $?\
|
||||||
%{nil}
|
%{nil}
|
||||||
|
|
||||||
@ -1889,11 +1985,12 @@ fi\
|
|||||||
#
|
#
|
||||||
%define kernel_variant_post(v:r:) \
|
%define kernel_variant_post(v:r:) \
|
||||||
%{expand:%%kernel_devel_post %{?-v*}}\
|
%{expand:%%kernel_devel_post %{?-v*}}\
|
||||||
|
%{expand:%%kernel_drivers_post %{?-v*}}\
|
||||||
%if %{with_extra}\
|
%if %{with_extra}\
|
||||||
%{expand:%%kernel_modules_extra_post %{?-v*}}\
|
%{expand:%%kernel_modules_extra_post %{?-v*}}\
|
||||||
%endif\
|
%endif\
|
||||||
%{expand:%%kernel_variant_posttrans %{?-v*}}\
|
%{expand:%%kernel_variant_posttrans %{?-v*}}\
|
||||||
%{expand:%%post %{?-v*}}\
|
%{expand:%%post %{?-v*:%{-v*}-}core}\
|
||||||
%{-r:\
|
%{-r:\
|
||||||
if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\
|
if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\
|
||||||
[ -f /etc/sysconfig/kernel ]; then\
|
[ -f /etc/sysconfig/kernel ]; then\
|
||||||
@ -1906,7 +2003,7 @@ fi}\
|
|||||||
# %%kernel_variant_preun <subpackage>
|
# %%kernel_variant_preun <subpackage>
|
||||||
#
|
#
|
||||||
%define kernel_variant_preun() \
|
%define kernel_variant_preun() \
|
||||||
%{expand:%%preun %{?1}}\
|
%{expand:%%preun %{?1:%{1}-}core}\
|
||||||
/bin/kernel-install remove %{KVERREL}%{?1:+%{1}} /%{image_install_path}/vmlinuz-%{KVERREL}%{?1:+%{1}} || exit $?\
|
/bin/kernel-install remove %{KVERREL}%{?1:+%{1}} /%{image_install_path}/vmlinuz-%{KVERREL}%{?1:+%{1}} || exit $?\
|
||||||
%{nil}
|
%{nil}
|
||||||
|
|
||||||
@ -2007,6 +2104,10 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
%endif # with_perf
|
%endif # with_perf
|
||||||
|
|
||||||
|
# empty meta-package
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root)
|
||||||
|
|
||||||
# This is %%{image_install_path} on an arch where that includes ELF files,
|
# This is %%{image_install_path} on an arch where that includes ELF files,
|
||||||
# or empty otherwise.
|
# or empty otherwise.
|
||||||
%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
|
%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
|
||||||
@ -2018,7 +2119,7 @@ fi
|
|||||||
#
|
#
|
||||||
%define kernel_variant_files(k:) \
|
%define kernel_variant_files(k:) \
|
||||||
%if %{1}\
|
%if %{1}\
|
||||||
%{expand:%%files %{?2}}\
|
%{expand:%%files -f kernel-%{?2:%{2}-}core.list %{?2:%{2}-}core}\
|
||||||
%defattr(-,root,root)\
|
%defattr(-,root,root)\
|
||||||
/%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?2:+%{2}}\
|
/%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?2:+%{2}}\
|
||||||
/%{image_install_path}/.vmlinuz-%{KVERREL}%{?2:+%{2}}.hmac \
|
/%{image_install_path}/.vmlinuz-%{KVERREL}%{?2:+%{2}}.hmac \
|
||||||
@ -2027,9 +2128,10 @@ fi
|
|||||||
%endif\
|
%endif\
|
||||||
%attr(600,root,root) /boot/System.map-%{KVERREL}%{?2:+%{2}}\
|
%attr(600,root,root) /boot/System.map-%{KVERREL}%{?2:+%{2}}\
|
||||||
/boot/config-%{KVERREL}%{?2:+%{2}}\
|
/boot/config-%{KVERREL}%{?2:+%{2}}\
|
||||||
|
%ghost /boot/initramfs-%{KVERREL}%{?2:+%{2}}.img\
|
||||||
%dir /lib/modules\
|
%dir /lib/modules\
|
||||||
%dir /lib/modules/%{KVERREL}%{?2:+%{2}}\
|
%dir /lib/modules/%{KVERREL}%{?2:+%{2}}\
|
||||||
/lib/modules/%{KVERREL}%{?2:+%{2}}/kernel\
|
%dir /lib/modules/%{KVERREL}%{?2:+%{2}}/kernel\
|
||||||
/lib/modules/%{KVERREL}%{?2:+%{2}}/build\
|
/lib/modules/%{KVERREL}%{?2:+%{2}}/build\
|
||||||
/lib/modules/%{KVERREL}%{?2:+%{2}}/source\
|
/lib/modules/%{KVERREL}%{?2:+%{2}}/source\
|
||||||
/lib/modules/%{KVERREL}%{?2:+%{2}}/updates\
|
/lib/modules/%{KVERREL}%{?2:+%{2}}/updates\
|
||||||
@ -2038,7 +2140,8 @@ fi
|
|||||||
/etc/ld.so.conf.d/kernel-%{KVERREL}%{?2:+%{2}}.conf\
|
/etc/ld.so.conf.d/kernel-%{KVERREL}%{?2:+%{2}}.conf\
|
||||||
%endif\
|
%endif\
|
||||||
/lib/modules/%{KVERREL}%{?2:+%{2}}/modules.*\
|
/lib/modules/%{KVERREL}%{?2:+%{2}}/modules.*\
|
||||||
%ghost /boot/initramfs-%{KVERREL}%{?2:+%{2}}.img\
|
%{expand:%%files -f kernel-%{?2:%{2}-}drivers.list %{?2:%{2}-}drivers}\
|
||||||
|
%defattr(-,root,root)\
|
||||||
%{expand:%%files %{?2:%{2}-}devel}\
|
%{expand:%%files %{?2:%{2}-}devel}\
|
||||||
%defattr(-,root,root)\
|
%defattr(-,root,root)\
|
||||||
/usr/src/kernels/%{KVERREL}%{?2:+%{2}}\
|
/usr/src/kernels/%{KVERREL}%{?2:+%{2}}\
|
||||||
@ -2077,6 +2180,9 @@ fi
|
|||||||
# ||----w |
|
# ||----w |
|
||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 29 2014 Josh Boyer <jwboyer@fedoraproject.org>
|
||||||
|
- Introduce kernel-core/kernel-drivers split for F21 Feature work
|
||||||
|
|
||||||
* Tue Apr 29 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.15.0-0.rc3.git1.1
|
* Tue Apr 29 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.15.0-0.rc3.git1.1
|
||||||
- Linux v3.15-rc3-41-g2aafe1a4d451
|
- Linux v3.15-rc3-41-g2aafe1a4d451
|
||||||
- Reenable debugging options.
|
- Reenable debugging options.
|
||||||
|
Loading…
Reference in New Issue
Block a user