import kernel-rt-5.14.0-1.7.1.rt15.6.el9
This commit is contained in:
commit
e020b9136d
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
SOURCES/linux-5.14.0-1.7.1.rt15.6.el9.tar.xz
|
||||
SOURCES/rheldup3.x509
|
||||
SOURCES/rhelkpatch1.x509
|
3
.kernel-rt.metadata
Normal file
3
.kernel-rt.metadata
Normal file
@ -0,0 +1,3 @@
|
||||
652665aeac1a5e50b3a79e9d34fadbf66b921063 SOURCES/linux-5.14.0-1.7.1.rt15.6.el9.tar.xz
|
||||
95b9b811c7b0a6c98b2eafc4e7d6d24f2cb63289 SOURCES/rheldup3.x509
|
||||
d90885108d225a234a5a9d054fc80893a5bd54d0 SOURCES/rhelkpatch1.x509
|
47
SOURCES/Makefile.rhelver
Normal file
47
SOURCES/Makefile.rhelver
Normal file
@ -0,0 +1,47 @@
|
||||
RHEL_MAJOR = 9
|
||||
RHEL_MINOR = 0
|
||||
|
||||
#
|
||||
# RHEL_RELEASE
|
||||
# -------------
|
||||
#
|
||||
# Represents build number in 'release' part of RPM's name-version-release.
|
||||
# name is <package_name>, e.g. kernel
|
||||
# version is upstream kernel version this kernel is based on, e.g. 4.18.0
|
||||
# release is <RHEL_RELEASE>.<dist_tag>[<buildid>], e.g. 100.el8
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
RHEL_RELEASE = 1.7.1
|
||||
|
||||
#
|
||||
# Early y+1 numbering
|
||||
# --------------------
|
||||
#
|
||||
# In early y+1 process, RHEL_RELEASE consists of 2 numbers: x.y
|
||||
# First is RHEL_RELEASE inherited/merged from y as-is, second number
|
||||
# is incremented with each build starting from 1. After merge from y,
|
||||
# it resets back to 1. This way y+1 nvr reflects status of last merge.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# rhel8.0 rhel-8.1
|
||||
# kernel-4.18.0-58.el8 --> kernel-4.18.0-58.1.el8
|
||||
# kernel-4.18.0-58.2.el8
|
||||
# kernel-4.18.0-59.el8 kernel-4.18.0-59.1.el8
|
||||
# kernel-4.18.0-60.el8
|
||||
# kernel-4.18.0-61.el8 --> kernel-4.18.0-61.1.el8
|
||||
#
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
EARLY_YSTREAM ?= no
|
||||
EARLY_YBUILD:=
|
||||
EARLY_YRELEASE:=
|
||||
ifneq ("$(ZSTREAM)", "yes")
|
||||
ifeq ("$(EARLY_YSTREAM)","yes")
|
||||
RHEL_RELEASE:=$(RHEL_RELEASE).$(EARLY_YRELEASE)
|
||||
endif
|
||||
endif
|
||||
|
||||
RTBUILD:=.6
|
25
SOURCES/README.rst
Normal file
25
SOURCES/README.rst
Normal file
@ -0,0 +1,25 @@
|
||||
===================
|
||||
The Kernel dist-git
|
||||
===================
|
||||
|
||||
The kernel is maintained in a `source tree`_ rather than directly in dist-git.
|
||||
The specfile is maintained as a `template`_ in the source tree along with a set
|
||||
of build scripts to generate configurations, (S)RPMs, and to populate the
|
||||
dist-git repository.
|
||||
|
||||
The `documentation`_ for the source tree covers how to contribute and maintain
|
||||
the tree.
|
||||
|
||||
If you're looking for the downstream patch set it's available in the source
|
||||
tree with "git log master..ark-patches" or
|
||||
`online`_.
|
||||
|
||||
Each release in dist-git is tagged in the source repository so you can easily
|
||||
check out the source tree for a build. The tags are in the format
|
||||
name-version-release, but note release doesn't contain the dist tag since the
|
||||
source can be built in different build roots (Fedora, CentOS, etc.)
|
||||
|
||||
.. _source tree: https://gitlab.com/cki-project/kernel-ark.git
|
||||
.. _template: https://gitlab.com/cki-project/kernel-ark/-/blob/os-build/redhat/kernel.spec.template
|
||||
.. _documentation: https://gitlab.com/cki-project/kernel-ark/-/wikis/home
|
||||
.. _online: https://gitlab.com/cki-project/kernel-ark/-/commits/ark-patches
|
149
SOURCES/check-kabi
Executable file
149
SOURCES/check-kabi
Executable file
@ -0,0 +1,149 @@
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# check-kabi - Red Hat kABI reference checking tool
|
||||
#
|
||||
# We use this script to check against reference Module.kabi files.
|
||||
#
|
||||
# Author: Jon Masters <jcm@redhat.com>
|
||||
# Copyright (C) 2007-2009 Red Hat, Inc.
|
||||
#
|
||||
# This software may be freely redistributed under the terms of the GNU
|
||||
# General Public License (GPL).
|
||||
|
||||
# Changelog:
|
||||
#
|
||||
# 2018/06/01 - Update for python3 by Petr Oros.
|
||||
# 2009/08/15 - Updated for use in RHEL6.
|
||||
# 2007/06/13 - Initial rewrite in python by Jon Masters.
|
||||
|
||||
__author__ = "Jon Masters <jcm@redhat.com>"
|
||||
__version__ = "2.0"
|
||||
__date__ = "2009/08/15"
|
||||
__copyright__ = "Copyright (C) 2007-2009 Red Hat, Inc"
|
||||
__license__ = "GPL"
|
||||
|
||||
import getopt
|
||||
import string
|
||||
import sys
|
||||
|
||||
true = 1
|
||||
false = 0
|
||||
|
||||
|
||||
def load_symvers(symvers, filename):
|
||||
"""Load a Module.symvers file."""
|
||||
|
||||
symvers_file = open(filename, "r")
|
||||
|
||||
while true:
|
||||
in_line = symvers_file.readline()
|
||||
if in_line == "":
|
||||
break
|
||||
if in_line == "\n":
|
||||
continue
|
||||
checksum, symbol, directory, type = in_line.split()
|
||||
|
||||
symvers[symbol] = in_line[0:-1]
|
||||
|
||||
|
||||
def load_kabi(kabi, filename):
|
||||
"""Load a Module.kabi file."""
|
||||
|
||||
kabi_file = open(filename, "r")
|
||||
|
||||
while true:
|
||||
in_line = kabi_file.readline()
|
||||
if in_line == "":
|
||||
break
|
||||
if in_line == "\n":
|
||||
continue
|
||||
checksum, symbol, directory, type = in_line.split()
|
||||
|
||||
kabi[symbol] = in_line[0:-1]
|
||||
|
||||
|
||||
def check_kabi(symvers, kabi):
|
||||
"""Check Module.kabi and Module.symvers files."""
|
||||
|
||||
fail = 0
|
||||
warn = 0
|
||||
changed_symbols = []
|
||||
moved_symbols = []
|
||||
|
||||
for symbol in kabi:
|
||||
abi_hash, abi_sym, abi_dir, abi_type = kabi[symbol].split()
|
||||
if symbol in symvers:
|
||||
sym_hash, sym_sym, sym_dir, sym_type = symvers[symbol].split()
|
||||
if abi_hash != sym_hash:
|
||||
fail = 1
|
||||
changed_symbols.append(symbol)
|
||||
|
||||
if abi_dir != sym_dir:
|
||||
warn = 1
|
||||
moved_symbols.append(symbol)
|
||||
else:
|
||||
fail = 1
|
||||
changed_symbols.append(symbol)
|
||||
|
||||
if fail:
|
||||
print("*** ERROR - ABI BREAKAGE WAS DETECTED ***")
|
||||
print("")
|
||||
print("The following symbols have been changed (this will cause an ABI breakage):")
|
||||
print("")
|
||||
for symbol in changed_symbols:
|
||||
print(symbol)
|
||||
print("")
|
||||
|
||||
if warn:
|
||||
print("*** WARNING - ABI SYMBOLS MOVED ***")
|
||||
print("")
|
||||
print("The following symbols moved (typically caused by moving a symbol from being")
|
||||
print("provided by the kernel vmlinux out to a loadable module):")
|
||||
print("")
|
||||
for symbol in moved_symbols:
|
||||
print(symbol)
|
||||
print("")
|
||||
|
||||
"""Halt the build, if we got errors and/or warnings. In either case,
|
||||
double-checkig is required to avoid introducing / concealing
|
||||
KABI inconsistencies."""
|
||||
if fail or warn:
|
||||
sys.exit(1)
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def usage():
|
||||
print("""
|
||||
check-kabi: check Module.kabi and Module.symvers files.
|
||||
|
||||
check-kabi [ -k Module.kabi ] [ -s Module.symvers ]
|
||||
|
||||
""")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
symvers_file = ""
|
||||
kabi_file = ""
|
||||
|
||||
opts, args = getopt.getopt(sys.argv[1:], 'hk:s:')
|
||||
|
||||
for o, v in opts:
|
||||
if o == "-s":
|
||||
symvers_file = v
|
||||
if o == "-h":
|
||||
usage()
|
||||
sys.exit(0)
|
||||
if o == "-k":
|
||||
kabi_file = v
|
||||
|
||||
if (symvers_file == "") or (kabi_file == ""):
|
||||
usage()
|
||||
sys.exit(1)
|
||||
|
||||
symvers = {}
|
||||
kabi = {}
|
||||
|
||||
load_symvers(symvers, symvers_file)
|
||||
load_kabi(kabi, kabi_file)
|
||||
check_kabi(symvers, kabi)
|
3
SOURCES/cpupower.config
Normal file
3
SOURCES/cpupower.config
Normal file
@ -0,0 +1,3 @@
|
||||
# See 'cpupower help' and cpupower(1) for more info
|
||||
CPUPOWER_START_OPTS="frequency-set -g performance"
|
||||
CPUPOWER_STOP_OPTS="frequency-set -g ondemand"
|
13
SOURCES/cpupower.service
Normal file
13
SOURCES/cpupower.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Configure CPU power related settings
|
||||
After=syslog.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
EnvironmentFile=/etc/sysconfig/cpupower
|
||||
ExecStart=/usr/bin/cpupower $CPUPOWER_START_OPTS
|
||||
ExecStop=/usr/bin/cpupower $CPUPOWER_STOP_OPTS
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
18
SOURCES/filter-aarch64.sh.fedora
Normal file
18
SOURCES/filter-aarch64.sh.fedora
Normal 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 fpga infiniband leds media memstick message mmc mtd nfc ntb pcmcia power ssb soundwire staging tty uio w1"
|
||||
|
||||
ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex marvell micrel myricom neterion nvidia packetengines qlogic rdc 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 tiny vc4"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr rnbd-client rnbd-server mlx5_vdpa dfl-emif octeontx2-cpt octeontx2-cptvf spi-altera-dfl rvu_cptpf rvu_cptvf regmap-sdw regmap-sdw-mbq"
|
18
SOURCES/filter-aarch64.sh.rhel
Normal file
18
SOURCES/filter-aarch64.sh.rhel
Normal 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 infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform 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 radeon rockchip tegra sun4i 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"
|
18
SOURCES/filter-armv7hl.sh.fedora
Normal file
18
SOURCES/filter-armv7hl.sh.fedora
Normal 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 fpga infiniband media memstick message nfc ntb pcmcia ssb soundwire staging tty uio w1"
|
||||
|
||||
ethdrvs="3com adaptec alteon altera amd atheros broadcom cadence chelsio cisco dec dlink emulex mellanox micrel myricom natsemi neterion nvidia packetengines qlogic rdc 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 tegra tilcdc tiny vc4"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr bq27xxx_battery_hdq mlx5_vdpa dfl-emif spi-altera-dfl"
|
0
SOURCES/filter-armv7hl.sh.rhel
Normal file
0
SOURCES/filter-armv7hl.sh.rhel
Normal file
14
SOURCES/filter-i686.sh.fedora
Normal file
14
SOURCES/filter-i686.sh.fedora
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-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 fpga infiniband leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio w1"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys 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 chcr parport_serial regmap-sdw hid-asus"
|
0
SOURCES/filter-i686.sh.rhel
Normal file
0
SOURCES/filter-i686.sh.rhel
Normal file
177
SOURCES/filter-modules.sh.fedora
Executable file
177
SOURCES/filter-modules.sh.fedora
Executable file
@ -0,0 +1,177 @@
|
||||
#! /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.
|
||||
|
||||
# Overrides is individual modules which need to remain in kernel-core due to deps.
|
||||
overrides="cec"
|
||||
|
||||
# Set the default dirs/modules to filter out
|
||||
driverdirs="atm auxdisplay bcma bluetooth firewire fpga infiniband leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio w1"
|
||||
|
||||
chardrvs="mwave pcmcia"
|
||||
|
||||
netdrvs="appletalk can dsa hamradio ieee802154 ppp slip usb wireless"
|
||||
|
||||
ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex marvell mellanox neterion nvidia packetengines qlogic rdc sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
|
||||
|
||||
inputdrvs="gameport tablet touchscreen"
|
||||
|
||||
hiddrvs="surface-hid"
|
||||
|
||||
scsidrvs="aacraid aic7xxx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic isci libsas lpfc megaraid mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf"
|
||||
|
||||
usbdrvs="atm image misc serial"
|
||||
|
||||
fsdrvs="affs befs coda cramfs dlm ecryptfs hfs hfsplus jfs jffs2 minix nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs"
|
||||
|
||||
netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dsa ieee802154 l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless"
|
||||
|
||||
drmdrvs="amd ast bridge gma500 i2c i915 mgag200 nouveau panel radeon"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr parport_serial regmap-sdw regmap-sdw-mbq arizona-micsupp hid-asus iTCO_wdt rnbd-client rnbd-server mlx5_vdpa spi-altera-dfl"
|
||||
|
||||
# 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/${char}
|
||||
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
|
||||
|
||||
# hid
|
||||
for hid in ${hiddrvs}
|
||||
do
|
||||
filter_dir $1 drivers/hid/${hid}
|
||||
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
|
||||
filter_dir $1 kernel/drivers/soundwire
|
||||
|
||||
# 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
|
||||
|
||||
# Now process the override list to bring those modules back into core
|
||||
for mod in ${overrides}
|
||||
do
|
||||
grep -v -e "/${mod}.ko" k-d.list > k-d.list.tmp
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Couldn't save ${mod}.ko Skipping."
|
||||
else
|
||||
grep -e "/${mod}.ko" k-d.list >> $filelist
|
||||
mv k-d.list.tmp k-d.list
|
||||
fi
|
||||
|
||||
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
|
169
SOURCES/filter-modules.sh.rhel
Executable file
169
SOURCES/filter-modules.sh.rhel
Executable file
@ -0,0 +1,169 @@
|
||||
#! /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.
|
||||
|
||||
# Overrides is individual modules which need to remain in kernel-core due to deps.
|
||||
overrides="cec"
|
||||
|
||||
# Set the default dirs/modules to filter out
|
||||
driverdirs="atm auxdisplay bcma bluetooth firewire fmc iio infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb 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 neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
|
||||
|
||||
inputdrvs="gameport tablet touchscreen"
|
||||
|
||||
scsidrvs="aacraid aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic hisi_sas isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf"
|
||||
|
||||
usbdrvs="atm image misc serial wusbcore"
|
||||
|
||||
fsdrvs="affs befs coda cramfs ecryptfs hfs hfsplus jfs 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 gma500 i2c i915 mgag200 nouveau radeon via "
|
||||
|
||||
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 target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial ism regmap-sdw regmap-sdw-mbq arizona-micsupp 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/${char}
|
||||
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
|
||||
filter_dir $1 kernel/drivers/soundwire
|
||||
|
||||
# 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
|
||||
|
||||
# Now process the override list to bring those modules back into core
|
||||
for mod in ${overrides}
|
||||
do
|
||||
grep -v -e "/${mod}.ko" k-d.list > k-d.list.tmp
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Couldn't save ${mod}.ko Skipping."
|
||||
else
|
||||
grep -e "/${mod}.ko" k-d.list >> $filelist
|
||||
mv k-d.list.tmp k-d.list
|
||||
fi
|
||||
|
||||
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
SOURCES/filter-ppc64le.sh.fedora
Normal file
14
SOURCES/filter-ppc64le.sh.fedora
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-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 fpga infiniband leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging tty uio w1"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwpoison-inject target_core_user sbp_target cxgbit chcr rnbd-client rnbd-server mlx5_vdpa"
|
14
SOURCES/filter-ppc64le.sh.rhel
Normal file
14
SOURCES/filter-ppc64le.sh.rhel
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-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 infiniband isdn leds media memstick message mmc mtd mwave 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"
|
12
SOURCES/filter-s390x.sh.fedora
Normal file
12
SOURCES/filter-s390x.sh.fedora
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-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
|
12
SOURCES/filter-s390x.sh.rhel
Normal file
12
SOURCES/filter-s390x.sh.rhel
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-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
|
12
SOURCES/filter-x86_64.sh.fedora
Normal file
12
SOURCES/filter-x86_64.sh.fedora
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-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
|
12
SOURCES/filter-x86_64.sh.rhel
Normal file
12
SOURCES/filter-x86_64.sh.rhel
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-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
|
6
SOURCES/gating.yaml
Normal file
6
SOURCES/gating.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-9
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: manual.sst_kernel_maintainers.kernel-rt.final}
|
40
SOURCES/generate_all_configs.sh
Executable file
40
SOURCES/generate_all_configs.sh
Executable file
@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Adjusts the configuration options to build the variants correctly
|
||||
#
|
||||
# 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 [ -z "$PRIMARY" ]; then
|
||||
PRIMARY=rhel
|
||||
fi
|
||||
|
||||
if [ "$PRIMARY" = "fedora" ]; then
|
||||
SECONDARY=rhel
|
||||
else
|
||||
SECONDARY=fedora
|
||||
fi
|
||||
|
||||
for i in kernel-rt-*-"$PRIMARY".config; do
|
||||
NEW=kernel-rt-"$VERSION"-$(echo "$i" | cut -d - -f3- | sed s/-"$PRIMARY"//)
|
||||
#echo $NEW
|
||||
mv "$i" "$NEW"
|
||||
done
|
||||
|
||||
rm -f kernel-rt-*-"$SECONDARY".config
|
||||
|
||||
if [ "$DEBUGBUILDSENABLED" -eq 0 ]; then
|
||||
for i in kernel-rt-*debug*.config; do
|
||||
base=$(echo "$i" | sed -r s/-?debug//g)
|
||||
NEW=kernel-rt-$(echo "$base" | cut -d - -f3-)
|
||||
mv "$i" "$NEW"
|
||||
done
|
||||
fi
|
25
SOURCES/generate_crashkernel_default.sh
Executable file
25
SOURCES/generate_crashkernel_default.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
kernelver=$1 && shift
|
||||
arch=$1 && shift
|
||||
rootfs=$1 && shift
|
||||
|
||||
output="${rootfs}/lib/modules/${kernelver}/crashkernel.default"
|
||||
|
||||
case $arch in
|
||||
x86_64|s390*)
|
||||
ck_cmdline="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M"
|
||||
;;
|
||||
arm64|aarch64)
|
||||
ck_cmdline="crashkernel=2G-:448M"
|
||||
;;
|
||||
powerpc|ppc64*)
|
||||
ck_cmdline="crashkernel=2G-4G:384M,4G-16G:512M,16G-64G:1G,64G-128G:2G,128G-:4G"
|
||||
;;
|
||||
*)
|
||||
ck_cmdline=""
|
||||
;;
|
||||
esac
|
||||
|
||||
cat > "$output" <<EOF
|
||||
$ck_cmdline
|
||||
EOF
|
2
SOURCES/kernel-local
Normal file
2
SOURCES/kernel-local
Normal file
@ -0,0 +1,2 @@
|
||||
# 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.
|
7228
SOURCES/kernel-rt-x86_64-debug-rhel.config
Normal file
7228
SOURCES/kernel-rt-x86_64-debug-rhel.config
Normal file
File diff suppressed because it is too large
Load Diff
7206
SOURCES/kernel-rt-x86_64-rhel.config
Normal file
7206
SOURCES/kernel-rt-x86_64-rhel.config
Normal file
File diff suppressed because it is too large
Load Diff
11
SOURCES/kvm_stat.logrotate
Normal file
11
SOURCES/kvm_stat.logrotate
Normal file
@ -0,0 +1,11 @@
|
||||
/var/log/kvm_stat.csv {
|
||||
size 10M
|
||||
missingok
|
||||
compress
|
||||
maxage 30
|
||||
rotate 5
|
||||
nodateext
|
||||
postrotate
|
||||
/usr/bin/systemctl try-restart kvm_stat.service
|
||||
endscript
|
||||
}
|
0
SOURCES/linux-kernel-test.patch
Normal file
0
SOURCES/linux-kernel-test.patch
Normal file
72
SOURCES/merge.pl
Executable file
72
SOURCES/merge.pl
Executable file
@ -0,0 +1,72 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
my @args=@ARGV;
|
||||
my %configvalues;
|
||||
my @configoptions;
|
||||
my $configcounter = 0;
|
||||
|
||||
# optionally print out the architecture as the first line of our output
|
||||
my $arch = $args[2];
|
||||
if (defined $arch) {
|
||||
print "# $arch\n";
|
||||
}
|
||||
|
||||
# first, read the override file
|
||||
|
||||
open (FILE,"$args[0]") || die "Could not open $args[0]";
|
||||
while (<FILE>) {
|
||||
my $str = $_;
|
||||
my $configname;
|
||||
|
||||
if (/\# ([\w]+) is not set/) {
|
||||
$configname = $1;
|
||||
} elsif (/^\#/) {
|
||||
# fall through on comments like 'avoid CONFIG_FOO=y'
|
||||
;
|
||||
} elsif (/([\w]+)=/) {
|
||||
$configname = $1;
|
||||
}
|
||||
|
||||
if (defined($configname) && !exists($configvalues{$configname})) {
|
||||
$configvalues{$configname} = $str;
|
||||
$configoptions[$configcounter] = $configname;
|
||||
$configcounter ++;
|
||||
}
|
||||
};
|
||||
|
||||
# now, read and output the entire configfile, except for the overridden
|
||||
# parts... for those the new value is printed.
|
||||
|
||||
open (FILE2,"$args[1]") || die "Could not open $args[1]";
|
||||
while (<FILE2>) {
|
||||
my $configname;
|
||||
|
||||
if (/\# ([\w]+) is not set/) {
|
||||
$configname = $1;
|
||||
} elsif (/^\#/) {
|
||||
# fall through on comments like 'avoid CONFIG_FOO=y'
|
||||
;
|
||||
} elsif (/([\w]+)=/) {
|
||||
$configname = $1;
|
||||
}
|
||||
|
||||
if (defined($configname) && exists($configvalues{$configname})) {
|
||||
print "$configvalues{$configname}";
|
||||
delete($configvalues{$configname});
|
||||
} else {
|
||||
print "$_";
|
||||
}
|
||||
}
|
||||
|
||||
# now print the new values from the overridden configfile
|
||||
my $counter = 0;
|
||||
|
||||
while ($counter < $configcounter) {
|
||||
my $configname = $configoptions[$counter];
|
||||
if (exists($configvalues{$configname})) {
|
||||
print "$configvalues{$configname}";
|
||||
}
|
||||
$counter++;
|
||||
}
|
||||
|
||||
1;
|
164
SOURCES/mod-denylist.sh
Executable file
164
SOURCES/mod-denylist.sh
Executable file
@ -0,0 +1,164 @@
|
||||
#! /bin/bash
|
||||
# shellcheck disable=SC2164
|
||||
|
||||
RpmDir=$1
|
||||
ModDir=$2
|
||||
Dir="$1/$2"
|
||||
# Note the list filename must have the format mod-[PACKAGE].list, for example,
|
||||
# mod-internal.list or mod-extra.list. The PACKAGE is used to create a
|
||||
# override directory for the modules.
|
||||
List=$3
|
||||
Dest="$4"
|
||||
|
||||
blacklist()
|
||||
{
|
||||
cat > "$RpmDir/etc/modprobe.d/$1-blacklist.conf" <<-__EOF__
|
||||
# This kernel module can be automatically loaded by non-root users. To
|
||||
# enhance system security, the module is blacklisted by default to ensure
|
||||
# system administrators make the module available for use as needed.
|
||||
# See https://access.redhat.com/articles/3760101 for more details.
|
||||
#
|
||||
# Remove the blacklist by adding a comment # at the start of the line.
|
||||
blacklist $1
|
||||
__EOF__
|
||||
}
|
||||
|
||||
check_blacklist()
|
||||
{
|
||||
mod=$(find "$RpmDir/$ModDir" -name "$1")
|
||||
[ ! "$mod" ] && return 0
|
||||
if modinfo "$mod" | grep -q '^alias:\s\+net-'; then
|
||||
mod="${1##*/}"
|
||||
mod="${mod%.ko*}"
|
||||
echo "$mod has an alias that allows auto-loading. Blacklisting."
|
||||
blacklist "$mod"
|
||||
fi
|
||||
}
|
||||
|
||||
find_depends()
|
||||
{
|
||||
dep=$1
|
||||
depends=$(modinfo "$dep" | sed -n -e "/^depends/ s/^depends:[ \t]*//p")
|
||||
[ -z "$depends" ] && exit
|
||||
for mod in ${depends//,/ }
|
||||
do
|
||||
match=$(grep "^$mod.ko" "$ListName")
|
||||
[ -z "$match" ] && continue
|
||||
# check if the module we are looking at is in mod-* too.
|
||||
# if so we do not need to mark the dep as required.
|
||||
mod2=${dep##*/} # same as $(basename $dep), but faster
|
||||
match2=$(grep "^$mod2" "$ListName")
|
||||
if [ -n "$match2" ]
|
||||
then
|
||||
#echo $mod2 >> notreq.list
|
||||
continue
|
||||
fi
|
||||
echo "$mod".ko >> req.list
|
||||
done
|
||||
}
|
||||
|
||||
foreachp()
|
||||
{
|
||||
P=$(nproc)
|
||||
bgcount=0
|
||||
while read -r mod; do
|
||||
$1 "$mod" &
|
||||
|
||||
bgcount=$((bgcount + 1))
|
||||
if [ $bgcount -eq "$P" ]; then
|
||||
wait -n
|
||||
bgcount=$((bgcount - 1))
|
||||
fi
|
||||
done
|
||||
|
||||
wait
|
||||
}
|
||||
|
||||
# Destination was specified on the command line
|
||||
test -n "$4" && echo "$0: Override Destination $Dest has been specified."
|
||||
|
||||
pushd "$Dir"
|
||||
|
||||
OverrideDir=$(basename "$List")
|
||||
OverrideDir=${OverrideDir%.*}
|
||||
OverrideDir=${OverrideDir#*-}
|
||||
mkdir -p "$OverrideDir"
|
||||
|
||||
rm -rf modnames
|
||||
find . -name "*.ko" -type f > modnames
|
||||
# Look through all of the modules, and throw any that have a dependency in
|
||||
# our list into the list as well.
|
||||
rm -rf dep.list dep2.list
|
||||
rm -rf req.list req2.list
|
||||
touch dep.list req.list
|
||||
cp "$List" .
|
||||
|
||||
# This variable needs to be exported because it is used in sub-script
|
||||
# executed by xargs
|
||||
ListName=$(basename "$List")
|
||||
export ListName
|
||||
|
||||
foreachp find_depends < modnames
|
||||
|
||||
sort -u req.list > req2.list
|
||||
sort -u "$ListName" > modules2.list
|
||||
join -v 1 modules2.list req2.list > modules3.list
|
||||
|
||||
while IFS= read -r mod
|
||||
do
|
||||
# get the path for the module
|
||||
modpath=$(grep /"$mod" modnames)
|
||||
[ -z "$modpath" ] && continue
|
||||
echo "$modpath" >> dep.list
|
||||
done < modules3.list
|
||||
|
||||
sort -u dep.list > dep2.list
|
||||
|
||||
if [ -n "$Dest" ]; then
|
||||
# now move the modules into the $Dest directory
|
||||
while IFS= read -r mod
|
||||
do
|
||||
newpath=$(dirname "$mod" | sed -e "s/kernel\\//$Dest\//")
|
||||
mkdir -p "$newpath"
|
||||
mv "$mod" "$newpath"
|
||||
echo "$mod" | sed -e "s/kernel\\//$Dest\//" | sed -e "s|^.|${ModDir}|g" >> "$RpmDir"/"$ListName"
|
||||
done < dep2.list
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
# If we're signing modules, we can't leave the .mod files for the .ko files
|
||||
# we've moved in .tmp_versions/. Remove them so the Kbuild 'modules_sign'
|
||||
# target doesn't try to sign a non-existent file. This is kinda ugly, but
|
||||
# so are the modules-* packages.
|
||||
|
||||
while IFS= read -r mod
|
||||
do
|
||||
modfile=$(basename "$mod" | sed -e 's/.ko/.mod/')
|
||||
rm .tmp_versions/"$modfile"
|
||||
done < "$Dir"/dep2.list
|
||||
|
||||
if [ -z "$Dest" ]; then
|
||||
sed -e "s|^.|${ModDir}|g" "$Dir"/dep2.list > "$RpmDir/$ListName"
|
||||
echo "./$RpmDir/$ListName created."
|
||||
[ -d "$RpmDir/etc/modprobe.d/" ] || mkdir -p "$RpmDir/etc/modprobe.d/"
|
||||
foreachp check_blacklist < "$List"
|
||||
fi
|
||||
|
||||
# Many BIOS-es export a PNP-id which causes the floppy driver to autoload
|
||||
# even though most modern systems don't have a 3.5" floppy driver anymore
|
||||
# this replaces the old die_floppy_die.patch which removed the PNP-id from
|
||||
# the module
|
||||
|
||||
floppylist=("$RpmDir"/"$ModDir"/kernel/drivers/block/floppy.ko*)
|
||||
if [[ -n ${floppylist[0]} && -f ${floppylist[0]} ]]; then
|
||||
blacklist "floppy"
|
||||
fi
|
||||
|
||||
# avoid an empty kernel-extra package
|
||||
echo "$ModDir/$OverrideDir" >> "$RpmDir/$ListName"
|
||||
|
||||
pushd "$Dir"
|
||||
rm modnames dep.list dep2.list req.list req2.list
|
||||
rm "$ListName" modules2.list modules3.list
|
||||
popd
|
195
SOURCES/mod-extra.list.fedora
Normal file
195
SOURCES/mod-extra.list.fedora
Normal file
@ -0,0 +1,195 @@
|
||||
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
|
||||
yam.ko
|
||||
zhenhua.ko
|
192
SOURCES/mod-extra.list.rhel
Normal file
192
SOURCES/mod-extra.list.rhel
Normal file
@ -0,0 +1,192 @@
|
||||
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
|
||||
ds1wm.ko
|
||||
ds2482.ko
|
||||
ds2490.ko
|
||||
dss1_divert.ko
|
||||
elsa_cs.ko
|
||||
ems_pci.ko
|
||||
ems_usb.ko
|
||||
esd_usb2.ko
|
||||
esi-sir.ko
|
||||
gamecon.ko
|
||||
gf2k.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_ip6.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
|
||||
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_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_diag.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
|
||||
yam.ko
|
||||
zhenhua.ko
|
20
SOURCES/mod-internal.list
Normal file
20
SOURCES/mod-internal.list
Normal file
@ -0,0 +1,20 @@
|
||||
dmatest
|
||||
locktorture
|
||||
mac80211_hwsim
|
||||
netdevsim
|
||||
pktgen
|
||||
rcutorture
|
||||
rocker
|
||||
scftorture
|
||||
test_klp_atomic_replace
|
||||
test_klp_callbacks_demo
|
||||
test_klp_callbacks_demo2
|
||||
test_klp_callbacks_busy
|
||||
test_klp_callbacks_mod
|
||||
test_klp_livepatch
|
||||
test_klp_shadow_vars
|
||||
test_klp_state
|
||||
test_klp_state2
|
||||
test_klp_state3
|
||||
torture
|
||||
refscale
|
5
SOURCES/mod-kvm.list
Normal file
5
SOURCES/mod-kvm.list
Normal file
@ -0,0 +1,5 @@
|
||||
kvm-amd
|
||||
kvm-intel
|
||||
kvm
|
||||
kvmgt
|
||||
ptp_kvm
|
37
SOURCES/mod-sign.sh
Executable file
37
SOURCES/mod-sign.sh
Executable file
@ -0,0 +1,37 @@
|
||||
#! /bin/bash
|
||||
|
||||
# The modules_sign target checks for corresponding .o files for every .ko that
|
||||
# is signed. This doesn't work for package builds which re-use the same build
|
||||
# directory for every variant, and the .config may change between variants.
|
||||
# So instead of using this script to just sign lib/modules/$KernelVer/extra,
|
||||
# sign all .ko in the buildroot.
|
||||
|
||||
# This essentially duplicates the 'modules_sign' Kbuild target and runs the
|
||||
# same commands for those modules.
|
||||
|
||||
MODSECKEY=$1
|
||||
MODPUBKEY=$2
|
||||
moddir=$3
|
||||
|
||||
modules=$(find "$moddir" -type f -name '*.ko')
|
||||
|
||||
NPROC=$(nproc)
|
||||
[ -z "$NPROC" ] && NPROC=1
|
||||
|
||||
# NB: this loop runs 2000+ iterations. Try to be fast.
|
||||
echo "$modules" | xargs -r -n16 -P $NPROC sh -c "
|
||||
for mod; do
|
||||
./scripts/sign-file sha256 $MODSECKEY $MODPUBKEY \$mod
|
||||
rm -f \$mod.sig \$mod.dig
|
||||
done
|
||||
" DUMMYARG0 # xargs appends ARG1 ARG2..., which go into $mod in for loop.
|
||||
|
||||
RANDOMMOD=$(echo "$modules" | sort -R | head -n 1)
|
||||
if [ "~Module signature appended~" != "$(tail -c 28 "$RANDOMMOD")" ]; then
|
||||
echo "*****************************"
|
||||
echo "*** Modules are unsigned! ***"
|
||||
echo "*****************************"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
26
SOURCES/parallel_xz.sh
Executable file
26
SOURCES/parallel_xz.sh
Executable file
@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
# Reads filenames on stdin, xz-compresses each in place.
|
||||
# Not optimal for "compress relatively few, large files" scenario!
|
||||
|
||||
# How many xz's to run in parallel:
|
||||
procgroup=""
|
||||
while test "$#" != 0; do
|
||||
# Get it from -jNUM
|
||||
N="${1#-j}"
|
||||
if test "$N" = "$1"; then
|
||||
# Not -j<something> - warn and ignore
|
||||
echo "parallel_xz: warning: unrecognized argument: '$1'"
|
||||
else
|
||||
procgroup="$N"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
# If told to use only one cpu:
|
||||
test "$procgroup" || exec xargs -r xz
|
||||
test "$procgroup" = 1 && exec xargs -r xz
|
||||
|
||||
# xz has some startup cost. If files are really small,
|
||||
# this cost might be significant. To combat this,
|
||||
# process several files (in sequence) by each xz process via -n 16:
|
||||
exec xargs -r -n 16 -P "$procgroup" xz
|
0
SOURCES/patch-5.14.0-redhat.patch
Normal file
0
SOURCES/patch-5.14.0-redhat.patch
Normal file
365
SOURCES/process_configs.sh
Executable file
365
SOURCES/process_configs.sh
Executable file
@ -0,0 +1,365 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script takes the merged config files and processes them through oldconfig
|
||||
# and listnewconfig
|
||||
#
|
||||
# Globally disable suggestion of appending '|| exit' or '|| return' to cd/pushd/popd commands
|
||||
# shellcheck disable=SC2164
|
||||
|
||||
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"
|
||||
echo " -z: commit new configs to pending directory"
|
||||
echo ""
|
||||
echo " A special CONFIG file tag, process_configs_known_broken can be added as a"
|
||||
echo " comment to any CONFIG file. This tag indicates that there is no way to "
|
||||
echo " fix a CONFIG's entry. This tag should only be used in extreme cases"
|
||||
echo " and is not to be used as a workaround to solve CONFIG problems."
|
||||
exit 1
|
||||
}
|
||||
|
||||
die()
|
||||
{
|
||||
echo "$1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
get_cross_compile()
|
||||
{
|
||||
arch=$1
|
||||
if [[ "$CC_IS_CLANG" -eq 1 ]]; then
|
||||
echo "$arch"
|
||||
else
|
||||
echo "scripts/dummy-tools/"
|
||||
fi
|
||||
}
|
||||
|
||||
# stupid function to find top of tree to do kernel make configs
|
||||
switch_to_toplevel()
|
||||
{
|
||||
path="$(pwd)"
|
||||
while test -n "$path"
|
||||
do
|
||||
test -e "$path"/MAINTAINERS && \
|
||||
test -d "$path"/drivers && \
|
||||
break
|
||||
|
||||
path=$(dirname "$path")
|
||||
done
|
||||
|
||||
test -n "$path" || die "Can't find toplevel"
|
||||
echo "$path"
|
||||
}
|
||||
|
||||
checkoptions()
|
||||
{
|
||||
/usr/bin/awk '
|
||||
|
||||
/is not set/ {
|
||||
split ($0, a, "#");
|
||||
split(a[2], b);
|
||||
if (NR==FNR) {
|
||||
configs[b[1]]="is not set";
|
||||
} else {
|
||||
if (configs[b[1]] != "" && configs[b[1]] != "is not set")
|
||||
print "Found # "b[1] " is not set, after generation, had " b[1] " " configs[b[1]] " in Source tree";
|
||||
}
|
||||
}
|
||||
|
||||
/=/ {
|
||||
split ($0, a, "=");
|
||||
if (NR==FNR) {
|
||||
configs[a[1]]=a[2];
|
||||
} else {
|
||||
if (configs[a[1]] != "" && configs[a[1]] != a[2])
|
||||
print "Found "a[1]"="a[2]" after generation, had " a[1]"="configs[a[1]]" in Source tree";
|
||||
}
|
||||
}
|
||||
' "$1" "$2" > .mismatches
|
||||
|
||||
checkoptions_error=false
|
||||
if test -s .mismatches
|
||||
then
|
||||
while read -r LINE
|
||||
do
|
||||
if find ./ -name "$(echo "$LINE" | awk -F "=" ' { print $1 } ' | awk ' { print $2 }')" -print0 | xargs -0 grep ^ | grep -q "process_configs_known_broken"; then
|
||||
# This is a known broken config.
|
||||
# See script help warning.
|
||||
checkoptions_error=false
|
||||
else
|
||||
checkoptions_error=true
|
||||
break
|
||||
fi
|
||||
done < .mismatches
|
||||
|
||||
! $checkoptions_error && return
|
||||
|
||||
echo "Error: Mismatches found in configuration files"
|
||||
cat .mismatches
|
||||
RETURNCODE=1
|
||||
[ "$CONTINUEONERROR" ] || exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
parsenewconfigs()
|
||||
{
|
||||
tmpdir=$(mktemp -d)
|
||||
|
||||
# This awk script reads the output of make listnewconfig
|
||||
# and puts it into CONFIG_FOO files. Using the output of
|
||||
# listnewconfig is much easier to ensure we get the default
|
||||
# output.
|
||||
/usr/bin/awk -v BASE="$tmpdir" '
|
||||
/is not set/ {
|
||||
split ($0, a, "#");
|
||||
split(a[2], b);
|
||||
OUT_FILE=BASE"/"b[1];
|
||||
print $0 >> OUT_FILE;
|
||||
}
|
||||
|
||||
/=/ {
|
||||
split ($0, a, "=");
|
||||
OUT_FILE=BASE"/"a[1];
|
||||
if (a[2] == "n")
|
||||
print "# " a[1] " is not set" >> OUT_FILE;
|
||||
else
|
||||
print $0 >> OUT_FILE;
|
||||
}
|
||||
|
||||
' .newoptions
|
||||
|
||||
# This awk script parses the output of helpnewconfig.
|
||||
# Each option is separated between ----- markers
|
||||
# The goal is to put all the help text as a comment in
|
||||
# each CONFIG_FOO file. Because of how awk works
|
||||
# there's a lot of moving files around and catting to
|
||||
# get what we need.
|
||||
/usr/bin/awk -v BASE="$tmpdir" '
|
||||
BEGIN { inpatch=0;
|
||||
outfile="none";
|
||||
symbol="none"; }
|
||||
/^Symbol: .*$/ {
|
||||
split($0, a, " ");
|
||||
symbol="CONFIG_"a[2];
|
||||
outfile=BASE "/fake_"symbol
|
||||
}
|
||||
/-----/ {
|
||||
if (inpatch == 0) {
|
||||
inpatch = 1;
|
||||
}
|
||||
else {
|
||||
if (symbol != "none") {
|
||||
system("cat " outfile " " BASE "/" symbol " > " BASE "/tmpf");
|
||||
system("mv " BASE "/tmpf " BASE "/" symbol);
|
||||
symbol="none"
|
||||
}
|
||||
outfile="none"
|
||||
inpatch = 0;
|
||||
}
|
||||
}
|
||||
!/-----/ {
|
||||
if (inpatch == 1 && outfile != "none") {
|
||||
print "# "$0 >> outfile;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
' .helpnewconfig
|
||||
|
||||
pushd "$tmpdir" &> /dev/null
|
||||
rm fake_*
|
||||
popd &> /dev/null
|
||||
for f in "$tmpdir"/*; do
|
||||
[[ -e "$f" ]] || break
|
||||
cp "$f" "$SCRIPT_DIR/pending$FLAVOR/generic/"
|
||||
done
|
||||
|
||||
rm -rf "$tmpdir"
|
||||
}
|
||||
|
||||
function commit_new_configs()
|
||||
{
|
||||
# assume we are in $source_tree/configs, need to get to top level
|
||||
pushd "$(switch_to_toplevel)" &>/dev/null
|
||||
|
||||
for cfg in "$SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}"*.config
|
||||
do
|
||||
arch=$(head -1 "$cfg" | cut -b 3-)
|
||||
cfgtmp="${cfg}.tmp"
|
||||
cfgorig="${cfg}.orig"
|
||||
cat "$cfg" > "$cfgorig"
|
||||
|
||||
if [ "$arch" = "EMPTY" ]
|
||||
then
|
||||
# This arch is intentionally left blank
|
||||
continue
|
||||
fi
|
||||
echo -n "Checking for new configs in $cfg ... "
|
||||
|
||||
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE=$(get_cross_compile $arch) KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig
|
||||
grep -E 'CONFIG_' .listnewconfig > .newoptions
|
||||
if test -s .newoptions
|
||||
then
|
||||
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE=$(get_cross_compile $arch) KCONFIG_CONFIG="$cfgorig" helpnewconfig >& .helpnewconfig
|
||||
parsenewconfigs
|
||||
fi
|
||||
rm .newoptions
|
||||
echo "done"
|
||||
done
|
||||
|
||||
git add "$SCRIPT_DIR/pending$FLAVOR"
|
||||
git commit -m "[redhat] AUTOMATIC: New configs"
|
||||
}
|
||||
|
||||
function process_configs()
|
||||
{
|
||||
# assume we are in $source_tree/configs, need to get to top level
|
||||
pushd "$(switch_to_toplevel)" &>/dev/null
|
||||
|
||||
for cfg in "$SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}"*.config
|
||||
do
|
||||
arch=$(head -1 "$cfg" | cut -b 3-)
|
||||
cfgtmp="${cfg}.tmp"
|
||||
cfgorig="${cfg}.orig"
|
||||
cat "$cfg" > "$cfgorig"
|
||||
|
||||
if [ "$arch" = "EMPTY" ]
|
||||
then
|
||||
# This arch is intentionally left blank
|
||||
continue
|
||||
fi
|
||||
echo -n "Processing $cfg ... "
|
||||
|
||||
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE=$(get_cross_compile $arch) KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig
|
||||
grep -E 'CONFIG_' .listnewconfig > .newoptions
|
||||
if test -n "$NEWOPTIONS" && test -s .newoptions
|
||||
then
|
||||
echo "Found unset config items, please set them to an appropriate value"
|
||||
cat .newoptions
|
||||
rm .newoptions
|
||||
RETURNCODE=1
|
||||
[ "$CONTINUEONERROR" ] || exit 1
|
||||
fi
|
||||
rm .newoptions
|
||||
|
||||
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 ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE=$(get_cross_compile $arch) KCONFIG_CONFIG="$cfgorig" olddefconfig > /dev/null || exit 1
|
||||
echo "# $arch" > "$cfgtmp"
|
||||
cat "$cfgorig" >> "$cfgtmp"
|
||||
if test -n "$CHECKOPTIONS"
|
||||
then
|
||||
checkoptions "$cfg" "$cfgtmp"
|
||||
fi
|
||||
# if test run, don't overwrite original
|
||||
if test -n "$TESTRUN"
|
||||
then
|
||||
rm -f "$cfgtmp"
|
||||
else
|
||||
mv "$cfgtmp" "$cfg"
|
||||
fi
|
||||
rm -f "$cfgorig"
|
||||
echo "done"
|
||||
done
|
||||
rm "$SCRIPT_DIR"/*.config*.old
|
||||
popd > /dev/null
|
||||
|
||||
echo "Processed config files are in $SCRIPT_DIR"
|
||||
}
|
||||
|
||||
CHECKOPTIONS=""
|
||||
CONTINUEONERROR=""
|
||||
NEWOPTIONS=""
|
||||
TESTRUN=""
|
||||
CHECKWARNINGS=""
|
||||
MAKEOPTS=""
|
||||
CC_IS_CLANG=0
|
||||
|
||||
RETURNCODE=0
|
||||
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
key="$1"
|
||||
case $key in
|
||||
-a)
|
||||
CHECKOPTIONS="x"
|
||||
CONTINUEONERROR="x"
|
||||
NEWOPTIONS="x"
|
||||
CHECKWARNINGS="x"
|
||||
;;
|
||||
-c)
|
||||
CHECKOPTIONS="x"
|
||||
;;
|
||||
-h)
|
||||
usage
|
||||
;;
|
||||
-i)
|
||||
CONTINUEONERROR="x"
|
||||
;;
|
||||
-n)
|
||||
NEWOPTIONS="x"
|
||||
;;
|
||||
-t)
|
||||
TESTRUN="x"
|
||||
;;
|
||||
-w)
|
||||
CHECKWARNINGS="x"
|
||||
;;
|
||||
-z)
|
||||
COMMITNEWCONFIGS="x"
|
||||
;;
|
||||
-m)
|
||||
shift
|
||||
if [ "$1" = "CC=clang" -o "$1" = "LLVM=1" ]; then
|
||||
CC_IS_CLANG=1
|
||||
fi
|
||||
MAKEOPTS="$MAKEOPTS $1"
|
||||
;;
|
||||
*)
|
||||
break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
PACKAGE_NAME="${1:-kernel-rt}" # defines the package name used
|
||||
KVERREL="$(test -n "$2" && echo "-$2" || echo "")"
|
||||
SUBARCH="$(test -n "$3" && echo "-$3" || echo "")"
|
||||
FLAVOR="$(test -n "$4" && echo "-$4" || echo "-common")"
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
SCRIPT_DIR=$(dirname "$SCRIPT")
|
||||
|
||||
# Most RHEL options are options we want in Fedora so RHEL pending settings head
|
||||
# to common/
|
||||
if [ "$FLAVOR" = "-rhel" ]
|
||||
then
|
||||
FLAVOR="-common"
|
||||
fi
|
||||
|
||||
# to handle this script being a symlink
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
if test -n "$COMMITNEWCONFIGS"; then
|
||||
commit_new_configs
|
||||
else
|
||||
process_configs
|
||||
fi
|
||||
|
||||
exit $RETURNCODE
|
BIN
SOURCES/redhatsecureboot302.cer
Normal file
BIN
SOURCES/redhatsecureboot302.cer
Normal file
Binary file not shown.
BIN
SOURCES/redhatsecureboot501.cer
Normal file
BIN
SOURCES/redhatsecureboot501.cer
Normal file
Binary file not shown.
BIN
SOURCES/redhatsecureboot601.cer
Normal file
BIN
SOURCES/redhatsecureboot601.cer
Normal file
Binary file not shown.
BIN
SOURCES/redhatsecurebootca3.cer
Normal file
BIN
SOURCES/redhatsecurebootca3.cer
Normal file
Binary file not shown.
BIN
SOURCES/redhatsecurebootca5.cer
Normal file
BIN
SOURCES/redhatsecurebootca5.cer
Normal file
Binary file not shown.
BIN
SOURCES/redhatsecurebootca6.cer
Normal file
BIN
SOURCES/redhatsecurebootca6.cer
Normal file
Binary file not shown.
13
SOURCES/rpminspect.yaml
Normal file
13
SOURCES/rpminspect.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
# additional rpminspect configuration for this branch
|
||||
|
||||
---
|
||||
emptyrpm:
|
||||
expected_empty:
|
||||
- kernel
|
||||
- kernel-debug
|
||||
- kernel-debug-devel-matched
|
||||
- kernel-devel-matched
|
||||
- kernel-lpae
|
||||
- kernel-zfcpdump
|
||||
- kernel-zfcpdump-devel-matched
|
||||
- kernel-zfcpdump-modules
|
12
SOURCES/update_scripts.sh
Executable file
12
SOURCES/update_scripts.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TARGET="$1"
|
||||
|
||||
for i in "$RPM_SOURCE_DIR"/*."$TARGET"; do
|
||||
NEW=${i%.$TARGET}
|
||||
cp "$i" "$NEW"
|
||||
done
|
16
SOURCES/x509.genkey.fedora
Normal file
16
SOURCES/x509.genkey.fedora
Normal 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
SOURCES/x509.genkey.rhel
Normal file
16
SOURCES/x509.genkey.rhel
Normal 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
|
4602
SPECS/kernel.spec
Executable file
4602
SPECS/kernel.spec
Executable file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user