Sync up on adding a bunch of files

This commit is contained in:
Laura Abbott 2019-11-05 17:10:53 -05:00
parent c96dd52bfc
commit d0a82f1e0f
65 changed files with 803 additions and 106 deletions

5
.gitignore vendored
View File

@ -9,3 +9,8 @@ kernel-[2345]*/
perf-man-*.tar.gz perf-man-*.tar.gz
kernel-headers/ kernel-headers/
kernel-tools/ kernel-tools/
# because of how we manage having two sets of files we copy these
# over depending on Fedora vs. RHEL. Just ignore the one that gets
# used at runtime.
filter-*.sh
x509.genkey

0
Module.kabi_aarch64 Normal file
View File

0
Module.kabi_dup_aarch64 Normal file
View File

0
Module.kabi_dup_ppc64le Normal file
View File

0
Module.kabi_dup_s390x Normal file
View File

0
Module.kabi_dup_x86_64 Normal file
View File

0
Module.kabi_ppc64le Normal file
View File

0
Module.kabi_s390x Normal file
View File

0
Module.kabi_x86_64 Normal file
View File

0
check-kabi Normal file
View File

View File

@ -19,8 +19,6 @@ cd $SCRIPT_DIR
set errexit set errexit
set nounset set nounset
control_file="config_generation"
cleanup() cleanup()
{ {
rm -f config-* rm -f config-*
@ -52,7 +50,9 @@ function merge_configs()
arch=$(echo "$archvar" | cut -f1 -d"-") arch=$(echo "$archvar" | cut -f1 -d"-")
configs=$2 configs=$2
order=$3 order=$3
name=$OUTPUT_DIR/$PACKAGE_NAME-$archvar.config flavor=$4
name=$OUTPUT_DIR/$PACKAGE_NAME-$archvar-$flavor.config
echo -n "Building $name ... " echo -n "Building $name ... "
touch config-merging config-merged touch config-merging config-merged
@ -95,33 +95,55 @@ function merge_configs()
echo "done" echo "done"
} }
function build_flavor()
{
flavor=$1
control_file="priority".$flavor
while read line
do
if [ $(echo "$line" | grep -c "^#") -ne 0 ]; then
continue
elif [ $(echo "$line" | grep -c "^$") -ne 0 ]; then
continue
elif [ $(echo "$line" | grep -c "^EMPTY") -ne 0 ]; then
empty=$(echo "$line" | cut -f2 -d"=")
for a in $empty
do
echo "# EMPTY" > $OUTPUT_DIR/$PACKAGE_NAME-$a-$flavor.config
done
elif [ $(echo "$line" | grep -c "^ORDER") -ne 0 ]; then
order=$(echo "$line" | cut -f2 -d"=")
for o in $order
do
glist=$(find $o -type d)
for d in $glist
do
combine_config_layer $d
done
done
else
arch=$(echo "$line" | cut -f1 -d"=")
configs=$(echo "$line" | cut -f2 -d"=")
if [ -n "$SUBARCH" ]; then
case $arch in
$SUBARCH*)
;;
*)
continue
esac
fi
merge_configs $arch $configs "$order" $flavor
fi
done < $control_file
}
while read line while read line
do do
if [ $(echo "$line" | grep -c "^#") -ne 0 ]; then build_flavor $line
continue done < flavors
elif [ $(echo "$line" | grep -c "^$") -ne 0 ]; then
continue
elif [ $(echo "$line" | grep -c "^ORDER") -ne 0 ]; then
order=$(echo "$line" | cut -f2 -d"=")
for o in $order
do
glist=$(find $o -type d)
for d in $glist
do
combine_config_layer $d
done
done
else
arch=$(echo "$line" | cut -f1 -d"=")
configs=$(echo "$line" | cut -f2 -d"=")
if [ -n "$SUBARCH" -a "$SUBARCH" != "$arch" ]; then
continue
fi
merge_configs $arch $configs "$order"
fi
done < $control_file
# A passed in kernel version implies copy to final location # A passed in kernel version implies copy to final location
# otherwise defer to another script # otherwise defer to another script

1
configs/flavors Normal file
View File

@ -0,0 +1 @@
fedora

View File

@ -2,7 +2,20 @@
# #
# This script takes the merged config files and processes them through oldconfig # This script takes the merged config files and processes them through oldconfig
# and listnewconfig # and listnewconfig
#
usage()
{
# alphabetical order please
echo "process_configs.sh [ options ] package_name kernel_version"
echo " -a: report all errors, equivalent to [-c -n -w -i]"
echo " -c: error on mismatched config options"
echo " -i: continue on error"
echo " -n: error on unset config options"
echo " -t: test run, do not overwrite original config"
echo " -w: error on misconfigured config options"
exit 1
}
die() die()
{ {
@ -14,16 +27,16 @@ die()
switch_to_toplevel() switch_to_toplevel()
{ {
path="$(pwd)" path="$(pwd)"
while test "$path" != "/" while test -n "$path"
do do
test -e $path/MAINTAINERS && \ test -e $path/MAINTAINERS && \
test -d $path/drivers && \ test -d $path/drivers && \
break break
path="$(dirname $path)" path="$(dirname $path)"
done done
test "$path" != "/" || die "Can't find toplevel" test -n "$path" || die "Can't find toplevel"
echo "$path" echo "$path"
} }
@ -48,7 +61,7 @@ checkoptions()
configs[a[1]]=a[2]; configs[a[1]]=a[2];
} else { } else {
if (configs[a[1]] != "" && configs[a[1]] != a[2]) if (configs[a[1]] != "" && configs[a[1]] != a[2])
print "Found "a[1]"="configs[a[1]]" after generation, had " a[1]"="a[2]" in Source tree"; print "Found "a[1]"="a[2]" after generation, had " a[1]"="configs[a[1]]" in Source tree";
} }
} }
' $1 $2 > .mismatches ' $1 $2 > .mismatches
@ -57,14 +70,15 @@ checkoptions()
then then
echo "Error: Mismatches found in configuration files" echo "Error: Mismatches found in configuration files"
cat .mismatches cat .mismatches
exit 1 RETURNCODE=1
[ "$CONTINUEONERROR" ] || exit 1
fi fi
} }
function process_configs() function process_configs()
{ {
# assume we are in $source_tree/configs, need to get to top level # assume we are in $source_tree/configs, need to get to top level
pushd $(switch_to_toplevel) pushd $(switch_to_toplevel) &>/dev/null
for cfg in $SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}*.config for cfg in $SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}*.config
do do
@ -73,49 +87,97 @@ function process_configs()
cfgorig="${cfg}.orig" cfgorig="${cfg}.orig"
cat $cfg > $cfgorig cat $cfg > $cfgorig
if [ "$arch" = "EMPTY" ]
then
# This arch is intentionally left blank
continue
fi
echo -n "Processing $cfg ... " echo -n "Processing $cfg ... "
# an empty grep is good but leaves a return value, so use # 'true' to bypass make ARCH=$arch KCONFIG_CONFIG=$cfgorig listnewconfig >& .listnewconfig
make ARCH=$arch KCONFIG_CONFIG=$cfg listnewconfig | grep -E 'CONFIG_' > .newoptions || true grep -E 'CONFIG_' .listnewconfig > .newoptions
if test -n "$NEWOPTIONS" && test -s .newoptions if test -n "$NEWOPTIONS" && test -s .newoptions
then then
echo "Found unset config items, please set them to an appropriate value" echo "Found unset config items, please set them to an appropriate value"
cat .newoptions cat .newoptions
rm .newoptions rm .newoptions
exit 1 RETURNCODE=1
[ "$CONTINUEONERROR" ] || exit 1
fi fi
rm .newoptions rm .newoptions
make ARCH=$arch KCONFIG_CONFIG=$cfg olddefconfig > /dev/null || exit 1 grep -E 'config.*warning' .listnewconfig > .warnings
if test -n "$CHECKWARNINGS" && test -s .warnings
then
echo "Found misconfigured config items, please set them to an appropriate value"
cat .warnings
rm .warnings
RETURNCODE=1
[ "$CONTINUEONERROR" ] || exit 1
fi
rm .warnings
rm .listnewconfig
make ARCH=$arch KCONFIG_CONFIG=$cfgorig olddefconfig > /dev/null || exit 1
echo "# $arch" > ${cfgtmp} echo "# $arch" > ${cfgtmp}
cat "${cfg}" >> ${cfgtmp} cat "${cfgorig}" >> ${cfgtmp}
if test -n "$CHECKOPTIONS" if test -n "$CHECKOPTIONS"
then then
checkoptions $cfgtmp $cfgorig checkoptions $cfg $cfgtmp
fi
# if test run, don't overwrite original
if test -n "$TESTRUN"
then
rm ${cfgtmp}
else
mv ${cfgtmp} ${cfg}
fi fi
mv ${cfgtmp} ${cfg}
rm ${cfgorig} rm ${cfgorig}
echo "done" echo "done"
done done
rm "$SCRIPT_DIR"/*.config.old rm "$SCRIPT_DIR"/*.config*.old
popd > /dev/null popd > /dev/null
echo "Processed config files are in $SCRIPT_DIR" echo "Processed config files are in $SCRIPT_DIR"
} }
NEWOPTIONS=""
CHECKOPTIONS="" CHECKOPTIONS=""
CONTINUEONERROR=""
NEWOPTIONS=""
TESTRUN=""
CHECKWARNINGS=""
RETURNCODE=0
while [[ $# -gt 0 ]] while [[ $# -gt 0 ]]
do do
key="$1" key="$1"
case $key in case $key in
-n) -a)
CHECKOPTIONS="x"
CONTINUEONERROR="x"
NEWOPTIONS="x" NEWOPTIONS="x"
CHECKWARNINGS="x"
;; ;;
-c) -c)
CHECKOPTIONS="x" CHECKOPTIONS="x"
;; ;;
-h)
usage
;;
-i)
CONTINUEONERROR="x"
;;
-n)
NEWOPTIONS="x"
;;
-t)
TESTRUN="x"
;;
-w)
CHECKWARNINGS="x"
;;
*) *)
break;; break;;
esac esac
@ -133,3 +195,4 @@ SCRIPT_DIR="$(dirname $SCRIPT)"
cd $SCRIPT_DIR cd $SCRIPT_DIR
process_configs process_configs
exit $RETURNCODE

0
cpupower.config Normal file
View File

0
cpupower.service Normal file
View File

18
filter-aarch64.sh.fedora Normal file
View File

@ -0,0 +1,18 @@
#! /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-modules 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 firewire fmc fpga infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia power ssb staging tty uio uwb w1"
ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell micrel myricom neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti via wiznet xircom"
drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel pl111 radeon rockchip tegra sun4i sun4i-drm-hdmi tinydrm vc4"
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls"

0
filter-aarch64.sh.rhel Normal file
View File

18
filter-armv7hl.sh.fedora Normal file
View File

@ -0,0 +1,18 @@
#! /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-modules 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 firewire fmc fpga infiniband isdn media memstick message nfc ntb pcmcia ssb staging tty uio uwb w1"
ethdrvs="3com adaptec alteon altera amd atheros broadcom cadence chelsio cisco dec dlink emulex icplus mellanox micrel myricom natsemi neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis sun tehuti via wiznet xircom"
drmdrvs="amd arm armada bridge ast exynos etnaviv hisilicon i2c imx meson mgag200 msm nouveau omapdrm panel pl111 radeon rockchip sti stm sun4i sun4i-drm-hdmi tegra tilcdc tinydrm vc4"
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls bq27xxx_battery_hdq"

0
filter-armv7hl.sh.rhel Normal file
View File

14
filter-i686.sh.fedora Normal file
View 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-modules 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 firewire fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1"
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma 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 hid-sensor-rotation hid-sensor-temperature hid-sensor-humidity target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial regmap-sdw hid-asus"

0
filter-i686.sh.rhel Normal file
View File

153
filter-modules.sh.fedora Executable file
View File

@ -0,0 +1,153 @@
#! /bin/bash
#
# Called as filter-modules.sh list-of-modules Arch
# This script filters the modules into the kernel-core and kernel-modules
# 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-modules 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-modules on all arches, please change the defaults
# listed here.
# Set the default dirs/modules to filter out
driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1"
chardrvs="mwave pcmcia"
netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless"
ethdrvs="3com adaptec alteon amd aquantia 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"
inputdrvs="gameport tablet touchscreen"
scsidrvs="aacraid advansys aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf wd719x"
usbdrvs="atm image misc serial wusbcore"
fsdrvs="affs befs coda cramfs dlm ecryptfs hfs hfsplus jfs jffs2 minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs"
netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless"
drmdrvs="amd ast bridge gma500 i2c i915 mgag200 nouveau panel radeon"
iiodrvs="accel adc afe common dac gyro health humidity light magnetometer multiplexer orientation potentiometer potentiostat pressure temperature"
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial regmap-sdw hid-asus"
# 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 char drivers
for char in ${chardrvs}
do
filter_dir $1 drivers/char/${input}
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
# Input
for input in ${inputdrvs}
do
filter_dir $1 drivers/input/${input}
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

0
filter-modules.sh.rhel Normal file
View File

14
filter-ppc64le.sh.fedora Normal file
View 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-modules 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 firewire fmc fpga infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1"
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls"

0
filter-ppc64le.sh.rhel Normal file
View File

12
filter-s390x.sh.fedora Normal file
View 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-modules 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

0
filter-s390x.sh.rhel Normal file
View File

12
filter-x86_64.sh.fedora Normal file
View 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-modules 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

0
filter-x86_64.sh.rhel Normal file
View File

View File

@ -1,6 +1,36 @@
#!/bin/sh #!/bin/sh
for i in kernel-*.config; do # Adjusts the configuration options to build the variants correctly
NEW=kernel-$VERSION-`echo $i | cut -d - -f2-` #
# arg1: configuration to go in the primary variant
# arg2: are we only generating debug configs
PRIMARY=$1
DEBUGBUILDSENABLED=$2
if [ -z $2 ]; then
exit 1
fi
if [ $PRIMARY == "fedora" ]; then
SECONDARY=rhel
else
SECONDARY=fedora
fi
for i in kernel-*-$PRIMARY.config; do
NEW=kernel-$VERSION-`echo $i | cut -d - -f2- | sed s/-$PRIMARY//`
#echo $NEW
mv $i $NEW mv $i $NEW
done done
rm kernel-*-$SECONDARY.config
if [ $DEBUGBUILDSENABLED -eq 0 ]; then
for i in kernel-*debug*.config; do
base=`echo $i | sed -r s/-?debug//g`
NEW=kernel-`echo $base | cut -d - -f2-`
mv $i $NEW
done
fi

View File

@ -0,0 +1 @@
# EMPTY

View File

@ -0,0 +1 @@
# EMPTY

View File

@ -0,0 +1 @@
# EMPTY

View File

@ -0,0 +1 @@
# EMPTY

View File

@ -0,0 +1 @@
# EMPTY

1
kernel-s390x-rhel.config Normal file
View File

@ -0,0 +1 @@
# EMPTY

View File

@ -0,0 +1 @@
# EMPTY

View File

@ -0,0 +1 @@
# EMPTY

View File

@ -0,0 +1 @@
# EMPTY

View File

@ -57,6 +57,12 @@ Summary: The Linux kernel
# define buildid .local # define buildid .local
%if 0%{?fedora}
%define primary_target fedora
%else
%define primary_target rhel
%endif
# baserelease defines which build revision of this kernel version we're # baserelease defines which build revision of this kernel version we're
# building. We used to call this fedora_build, but the magical name # building. We used to call this fedora_build, but the magical name
# baserelease is matched by the rpmdev-bumpspec tool, which you should use. # baserelease is matched by the rpmdev-bumpspec tool, which you should use.
@ -573,43 +579,133 @@ BuildRequires: binutils-%{_build_arch}-linux-gnu, gcc-%{_build_arch}-linux-gnu
Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%{kversion}.tar.xz Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%{kversion}.tar.xz
Source11: x509.genkey # Name of the packaged file containing signing key
Source15: merge.pl %ifarch ppc64le
Source16: mod-extra.list %define signing_key_filename kernel-signing-ppc.cer
%endif
%ifarch s390x
%define signing_key_filename kernel-signing-s390.cer
%endif
Source10: x509.genkey.rhel
Source11: x509.genkey.fedora
%if %{?released_kernel}
Source12: securebootca.cer
Source13: secureboot.cer
Source14: secureboot_s390.cer
Source15: secureboot_ppc.cer
%define secureboot_ca %{SOURCE12}
%ifarch x86_64 aarch64
%define secureboot_key %{SOURCE13}
%define pesign_name redhatsecureboot301
%endif
%ifarch s390x
%define secureboot_key %{SOURCE14}
%define pesign_name redhatsecureboot302
%endif
%ifarch ppc64le
%define secureboot_key %{SOURCE15}
%define pesign_name redhatsecureboot303
%endif
%else # released_kernel
Source12: redhatsecurebootca2.cer
Source13: redhatsecureboot003.cer
%define secureboot_ca %{SOURCE12}
%define secureboot_key %{SOURCE13}
%define pesign_name redhatsecureboot003
%endif # released_kernel
Source15: mod-extra.list.rhel
Source16: mod-extra.list.fedora
Source17: mod-extra.sh Source17: mod-extra.sh
Source18: mod-sign.sh Source18: mod-sign.sh
Source19: mod-extra-blacklist.sh Source19: mod-extra-blacklist.sh
Source90: filter-x86_64.sh Source79: parallel_xz.sh
Source91: filter-armv7hl.sh
Source92: filter-i686.sh Source80: filter-x86_64.sh.fedora
Source93: filter-aarch64.sh Source81: filter-armv7hl.sh.fedora
Source94: filter-ppc64le.sh Source82: filter-i686.sh.fedora
Source95: filter-s390x.sh Source83: filter-aarch64.sh.fedora
Source99: filter-modules.sh Source86: filter-ppc64le.sh.fedora
Source87: filter-s390x.sh.fedora
Source89: filter-modules.sh.fedora
Source90: filter-x86_64.sh.rhel
Source91: filter-armv7hl.sh.rhel
Source92: filter-i686.sh.rhel
Source93: filter-aarch64.sh.rhel
Source96: filter-ppc64le.sh.rhel
Source97: filter-s390x.sh.rhel
Source99: filter-modules.sh.rhel
%define modsign_cmd %{SOURCE18} %define modsign_cmd %{SOURCE18}
Source20: kernel-aarch64.config Source20: kernel-aarch64-rhel.config
Source21: kernel-aarch64-debug.config Source21: kernel-aarch64-debug-rhel.config
Source22: kernel-armv7hl.config Source30: kernel-ppc64le-rhel.config
Source23: kernel-armv7hl-debug.config Source31: kernel-ppc64le-debug-rhel.config
Source24: kernel-armv7hl-lpae.config Source32: kernel-s390x-rhel.config
Source25: kernel-armv7hl-lpae-debug.config Source33: kernel-s390x-debug-rhel.config
Source26: kernel-i686.config Source34: kernel-s390x-zfcpdump-rhel.config
Source27: kernel-i686-debug.config Source35: kernel-x86_64-rhel.config
Source30: kernel-ppc64le.config Source36: kernel-x86_64-debug-rhel.config
Source31: kernel-ppc64le-debug.config
Source32: kernel-s390x.config
Source33: kernel-s390x-debug.config
Source34: kernel-x86_64.config
Source35: kernel-x86_64-debug.config
Source40: generate_all_configs.sh Source37: kernel-aarch64-fedora.config
Source41: generate_debug_configs.sh Source38: kernel-aarch64-debug-fedora.config
Source39: kernel-armv7hl-fedora.config
Source40: kernel-armv7hl-debug-fedora.config
Source41: kernel-armv7hl-lpae-fedora.config
Source42: kernel-armv7hl-lpae-debug-fedora.config
Source43: kernel-i686-fedora.config
Source44: kernel-i686-debug-fedora.config
Source45: kernel-ppc64le-fedora.config
Source46: kernel-ppc64le-debug-fedora.config
Source47: kernel-s390x-fedora.config
Source48: kernel-s390x-debug-fedora.config
Source49: kernel-x86_64-fedora.config
Source50: kernel-x86_64-debug-fedora.config
Source42: process_configs.sh
Source43: generate_bls_conf.sh
Source44: mod-internal.list
Source51: generate_all_configs.sh
Source52: process_configs.sh
Source53: generate_bls_conf.sh
Source56: update_scripts.sh
Source54: mod-internal.list
Source55: merge.pl
Source200: check-kabi
Source201: Module.kabi_aarch64
Source202: Module.kabi_ppc64le
Source203: Module.kabi_s390x
Source204: Module.kabi_x86_64
Source210: Module.kabi_dup_aarch64
Source211: Module.kabi_dup_ppc64le
Source212: Module.kabi_dup_s390x
Source213: Module.kabi_dup_x86_64
# Source300: kernel-abi-whitelists-%{rpmversion}-%{distro_build}.tar.bz2
# Source301: kernel-kabi-dw-%{rpmversion}-%{distro_build}.tar.bz2
# Sources for kernel-tools
Source2000: cpupower.service
Source2001: cpupower.config
## Patches needed for building this package
# Patch1: patch-%{rpmversion}-redhat.patch
# empty final patch to facilitate testing of kernel patches
# Patch999999: linux-kernel-test.patch
# This file is intentionally left empty in the stock kernel. Its a nicety # This file is intentionally left empty in the stock kernel. Its a nicety
# added for those wanting to do custom rebuilds with altered config opts. # added for those wanting to do custom rebuilds with altered config opts.
@ -1281,23 +1377,10 @@ cd configs
# Drop some necessary files from the source dir into the buildroot # Drop some necessary files from the source dir into the buildroot
cp $RPM_SOURCE_DIR/kernel-*.config . cp $RPM_SOURCE_DIR/kernel-*.config .
cp %{SOURCE1000} . cp %{SOURCE1000} .
cp %{SOURCE15} . cp %{SOURCE55} .
cp %{SOURCE40} . cp %{SOURCE51} .
cp %{SOURCE41} . VERSION=%{version} ./generate_all_configs.sh %{primary_target} %{debugbuildsenabled}
cp %{SOURCE43} .
%if !%{debugbuildsenabled}
# The normal build is a really debug build and the user has explicitly requested
# a release kernel. Change the config files into non-debug versions.
%if !%{with_release}
VERSION=%{version} ./generate_debug_configs.sh
%else
VERSION=%{version} ./generate_all_configs.sh
%endif
%else
VERSION=%{version} ./generate_all_configs.sh
%endif
# Merge in any user-provided local config option changes # Merge in any user-provided local config option changes
%ifnarch %nobuildarches %ifnarch %nobuildarches
@ -1324,17 +1407,16 @@ do
done done
%endif %endif
cp %{SOURCE42} . cp %{SOURCE52} .
OPTS="" OPTS=""
%if %{with_configchecks} %if %{with_configchecks}
%if 0%{?fedora}
OPTS="$OPTS -n -c"
%else
OPTS="$OPTS -w -n -c" OPTS="$OPTS -w -n -c"
%endif %endif
%endif
./process_configs.sh $OPTS kernel %{rpmversion} ./process_configs.sh $OPTS kernel %{rpmversion}
cp %{SOURCE56} .
RPM_SOURCE_DIR=$RPM_SOURCE_DIR ./update_scripts.sh %{primary_target}
# end of kernel config # end of kernel config
%endif %endif
@ -1435,7 +1517,7 @@ BuildKernel() {
cp configs/$Config .config cp configs/$Config .config
%if %{signkernel}%{signmodules} %if %{signkernel}%{signmodules}
cp %{SOURCE11} certs/. cp $RPM_SOURCE_DIR/x509.genkey certs/.
%endif %endif
Arch=`head -1 .config | cut -b 3-` Arch=`head -1 .config | cut -b 3-`
@ -1788,11 +1870,11 @@ BuildKernel() {
popd popd
# Call the modules-extra script to move things around # Call the modules-extra script to move things around
%{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE16} %{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer $RPM_SOURCE_DIR/mod-extra.list
# Blacklist net autoloadable modules in modules-extra # Blacklist net autoloadable modules in modules-extra
%{SOURCE19} $RPM_BUILD_ROOT lib/modules/$KernelVer %{SOURCE19} $RPM_BUILD_ROOT lib/modules/$KernelVer
# Call the modules-extra script for internal modules # Call the modules-extra script for internal modules
%{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE44} internal %{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE54} internal
# #
# Generate the kernel-core and kernel-modules files lists # Generate the kernel-core and kernel-modules files lists
@ -1815,7 +1897,7 @@ BuildKernel() {
# from the dir. # from the dir.
find lib/modules/$KernelVer/kernel -name *.ko | sort -n > modules.list find lib/modules/$KernelVer/kernel -name *.ko | sort -n > modules.list
cp $RPM_SOURCE_DIR/filter-*.sh . cp $RPM_SOURCE_DIR/filter-*.sh .
%{SOURCE99} modules.list %{_target_cpu} ./filter-modules.sh modules.list %{_target_cpu}
rm filter-*.sh rm filter-*.sh
# Run depmod on the resulting module tree and make sure it isn't broken # Run depmod on the resulting module tree and make sure it isn't broken
@ -1886,9 +1968,8 @@ BuildKernel() {
find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -delete find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -delete
# build a BLS config for this kernel # build a BLS config for this kernel
%{SOURCE43} "$KernelVer" "$RPM_BUILD_ROOT" "%{?variant}" %{SOURCE53} "$KernelVer" "$RPM_BUILD_ROOT" "%{?variant}"
%if 0
# Red Hat UEFI Secure Boot CA cert, which can be used to authenticate the kernel # Red Hat UEFI Secure Boot CA cert, which can be used to authenticate the kernel
mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer
install -m 0644 %{secureboot_ca} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer install -m 0644 %{secureboot_ca} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
@ -1903,7 +1984,6 @@ BuildKernel() {
fi fi
fi fi
%endif %endif
%endif
%if %{with_ipaclones} %if %{with_ipaclones}
MAXPROCS=$(echo %{?_smp_mflags} | sed -n 's/-j\s*\([0-9]\+\)/\1/p') MAXPROCS=$(echo %{?_smp_mflags} | sed -n 's/-j\s*\([0-9]\+\)/\1/p')
@ -2324,7 +2404,7 @@ fi
# #
# This macro defines the %%files sections for a kernel package # This macro defines the %%files sections for a kernel package
# and its devel and debuginfo packages. # and its devel and debuginfo packages.
# %%kernel_variant_files [-k vmlinux] <condition> <subpackage> # %%kernel_variant_files [-k vmlinux] <condition> <subpackage> <without_modules>
# #
%define kernel_variant_files(k:) \ %define kernel_variant_files(k:) \
%if %{2}\ %if %{2}\
@ -2353,6 +2433,12 @@ fi
/lib/modules/%{KVERREL}%{?3:+%{3}}/source\ /lib/modules/%{KVERREL}%{?3:+%{3}}/source\
/lib/modules/%{KVERREL}%{?3:+%{3}}/updates\ /lib/modules/%{KVERREL}%{?3:+%{3}}/updates\
/lib/modules/%{KVERREL}%{?3:+%{3}}/bls.conf\ /lib/modules/%{KVERREL}%{?3:+%{3}}/bls.conf\
%{_datadir}/doc/kernel-keys/%{KVERREL}%{?3:+%{3}}/kernel-signing-ca.cer\
%ifarch s390x ppc64le\
%if 0%{!?4:1}\
%{_datadir}/doc/kernel-keys/%{KVERREL}%{?3:+%{3}}/%{signing_key_filename} \
%endif\
%endif\
%if %{1}\ %if %{1}\
/lib/modules/%{KVERREL}%{?3:+%{3}}/vdso\ /lib/modules/%{KVERREL}%{?3:+%{3}}/vdso\
%endif\ %endif\
@ -2383,7 +2469,7 @@ fi
%kernel_variant_files %{_use_vdso} %{with_up} %kernel_variant_files %{_use_vdso} %{with_up}
%kernel_variant_files %{_use_vdso} %{with_debug} debug %kernel_variant_files %{_use_vdso} %{with_debug} debug
%kernel_variant_files %{use_vdso} %{with_pae} lpae %kernel_variant_files %{use_vdso} %{with_pae} lpae
%kernel_variant_files %{_use_vdso} %{with_zfcpdump} zfcpdump %kernel_variant_files %{_use_vdso} %{with_zfcpdump} zfcpdump 1
%define kernel_variant_ipaclones(k:) \ %define kernel_variant_ipaclones(k:) \
%if %{1}\ %if %{1}\

196
mod-extra.list.fedora Normal file
View File

@ -0,0 +1,196 @@
6pack.ko
a3d.ko
act200l-sir.ko
actisys-sir.ko
adi.ko
aer_inject.ko
af_802154.ko
affs.ko
ali-ircc.ko
analog.ko
appletalk.ko
atm.ko
avma1_cs.ko
avm_cs.ko
avmfritz.ko
ax25.ko
b1.ko
bas_gigaset.ko
batman-adv.ko
baycom_par.ko
baycom_ser_fdx.ko
baycom_ser_hdx.ko
befs.ko
bpqether.ko
br2684.ko
capi.ko
c_can.ko
c_can_platform.ko
clip.ko
cobra.ko
coda.ko
cuse.ko
db9.ko
dccp_diag.ko
dccp_ipv4.ko
dccp_ipv6.ko
dccp.ko
dccp_probe.ko
diva_idi.ko
divas.ko
dlm.ko
ds1wm.ko
ds2482.ko
ds2490.ko
dss1_divert.ko
elsa_cs.ko
ems_pci.ko
ems_usb.ko
esd_usb2.ko
esi-sir.ko
floppy.ko
gamecon.ko
gf2k.ko
gfs2.ko
gigaset.ko
girbil-sir.ko
grip.ko
grip_mp.ko
guillemot.ko
hdlcdrv.ko
hfc4s8s_l1.ko
hfcmulti.ko
hfcpci.ko
hisax.ko
hwa-rc.ko
hysdn.ko
i2400m.ko
i2400m-sdio.ko
i2400m-usb.ko
ieee802154.ko
iforce.ko
interact.ko
ipddp.ko
ipx.ko
isdn.ko
joydump.ko
kingsun-sir.ko
ks959-sir.ko
ksdazzle-sir.ko
kvaser_pci.ko
l2tp_core.ko
l2tp_debugfs.ko
l2tp_eth.ko
l2tp_ip.ko
l2tp_netlink.ko
l2tp_ppp.ko
lec.ko
ma600-sir.ko
magellan.ko
mcp2120-sir.ko
mISDN_core.ko
mISDN_dsp.ko
mkiss.ko
mptbase.ko
mptctl.ko
mptfc.ko
nci.ko
ncpfs.ko
netjet.ko
netrom.ko
nfc.ko
nilfs2.ko
ocfs2_dlmfs.ko
ocfs2_dlm.ko
ocfs2.ko
ocfs2_nodemanager.ko
ocfs2_stackglue.ko
ocfs2_stack_o2cb.ko
ocfs2_stack_user.ko
old_belkin-sir.ko
orinoco_cs.ko
orinoco.ko
orinoco_nortel.ko
orinoco_pci.ko
orinoco_plx.ko
orinoco_usb.ko
pcspkr.ko
plx_pci.ko
pn_pep.ko
pppoatm.ko
rds.ko
rds_rdma.ko
rds_tcp.ko
rose.ko
sch_atm.ko
sch_cbq.ko
sch_choke.ko
sch_drr.ko
sch_dsmark.ko
sch_etf.ko
sch_gred.ko
sch_mqprio.ko
sch_multiq.ko
sch_netem.ko
sch_qfq.ko
sch_red.ko
sch_sfb.ko
sch_teql.ko
sctp.ko
sctp_probe.ko
sidewinder.ko
sja1000.ko
sja1000_platform.ko
slcan.ko
slip.ko
softing_cs.ko
softing.ko
spaceball.ko
spaceorb.ko
stinger.ko
sysv.ko
tcp_bic.ko
tcp_highspeed.ko
tcp_htcp.ko
tcp_hybla.ko
tcp_illinois.ko
tcp_lp.ko
tcp_scalable.ko
tcp_vegas.ko
tcp_veno.ko
tcp_westwood.ko
tcp_yeah.ko
tekram-sir.ko
tmdc.ko
toim3232-sir.ko
trancevibrator.ko
turbografx.ko
twidjoy.ko
ubifs.ko
ufs.ko
umc.ko
usbip-core.ko
usbip-host.ko
uwb.ko
vcan.ko
vhci-hcd.ko
w1_bq27000.ko
w1_ds2408.ko
w1_ds2423.ko
w1_ds2431.ko
w1_ds2433.ko
w1_ds2760.ko
w1_ds2780.ko
w1_ds2781.ko
w1_ds28e04.ko
w1_smem.ko
w1_therm.ko
w6692.ko
walkera0701.ko
wanrouter.ko
warrior.ko
whci.ko
wire.ko
xpad.ko
yam.ko
zhenhua.ko

0
mod-extra.list.rhel Normal file
View File

0
parallel_xz.sh Normal file
View File

BIN
redhatsecureboot003.cer Normal file

Binary file not shown.

BIN
redhatsecurebootca2.cer Normal file

Binary file not shown.

BIN
secureboot.cer Normal file

Binary file not shown.

BIN
securebootca.cer Normal file

Binary file not shown.

12
update_scripts.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
if [ -z $1 ]; then
exit 1
fi
TARGET=$1
for i in $RPM_SOURCE_DIR/*.$TARGET; do
NEW=$(echo $i | sed -e "s/\.$TARGET//")
cp $i $NEW
done

16
x509.genkey.fedora Normal file
View File

@ -0,0 +1,16 @@
[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
prompt = no
x509_extensions = myexts
[ req_distinguished_name ]
O = Fedora
CN = Fedora kernel signing key
emailAddress = kernel-team@fedoraproject.org
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid

16
x509.genkey.rhel Normal file
View File

@ -0,0 +1,16 @@
[ req ]
default_bits = 3072
distinguished_name = req_distinguished_name
prompt = no
x509_extensions = myexts
[ req_distinguished_name ]
O = Red Hat
CN = Red Hat Enterprise Linux kernel signing key
emailAddress = secalert@redhat.com
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid