forked from rpms/kernel
		
	import kernel-5.14.0-70.13.1.el9_0
This commit is contained in:
		
						commit
						3f37331a7b
					
				
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | SOURCES/kernel-abi-stablelists-5.14.0-70.13.1.el9_0.tar.bz2 | ||||||
|  | SOURCES/kernel-kabi-dw-5.14.0-70.13.1.el9_0.tar.bz2 | ||||||
|  | SOURCES/linux-5.14.0-70.13.1.el9_0.tar.xz | ||||||
|  | SOURCES/rheldup3.x509 | ||||||
|  | SOURCES/rhelkpatch1.x509 | ||||||
							
								
								
									
										5
									
								
								.kernel.metadata
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.kernel.metadata
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | c1197ace1d0f19538e93b665dc04950908d34880 SOURCES/kernel-abi-stablelists-5.14.0-70.13.1.el9_0.tar.bz2 | ||||||
|  | 206afe247796a98d6b1f57f4bdabb2d57836e928 SOURCES/kernel-kabi-dw-5.14.0-70.13.1.el9_0.tar.bz2 | ||||||
|  | 7101b2671a4efc2fd6049b207a717c0c4cf54580 SOURCES/linux-5.14.0-70.13.1.el9_0.tar.xz | ||||||
|  | 95b9b811c7b0a6c98b2eafc4e7d6d24f2cb63289 SOURCES/rheldup3.x509 | ||||||
|  | d90885108d225a234a5a9d054fc80893a5bd54d0 SOURCES/rhelkpatch1.x509 | ||||||
							
								
								
									
										67
									
								
								SOURCES/Makefile.rhelver
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								SOURCES/Makefile.rhelver
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,67 @@ | |||||||
|  | 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 = 70.13.1 | ||||||
|  | 
 | ||||||
|  | #
 | ||||||
|  | # ZSTREAM
 | ||||||
|  | # -------
 | ||||||
|  | #
 | ||||||
|  | #  This variable controls whether we use zstream numbering or not for the
 | ||||||
|  | #  package release. The zstream release keeps the build number of the last
 | ||||||
|  | #  build done for ystream for the Beta milestone, and increments a second
 | ||||||
|  | #  number for each build. The third number is used for branched builds
 | ||||||
|  | #  (eg.: for builds with security fixes or hot fixes done outside of the
 | ||||||
|  | #  batch release process).
 | ||||||
|  | #
 | ||||||
|  | #  For example, with ZSTREAM unset or set to "no", all builds will contain
 | ||||||
|  | #  a release with only the build number, eg.: kernel-<kernel version>-X.el*,
 | ||||||
|  | #  where X is the build number. With ZSTREAM set to "yes", we will have
 | ||||||
|  | #  builds with kernel-<kernel version>-X.Y.Z.el*, where X is the last
 | ||||||
|  | #  RHEL_RELEASE number before ZSTREAM flag was set to yes, Y will now be the
 | ||||||
|  | #  build number and Z will always be 1 except if you're doing a branched build
 | ||||||
|  | #  (when you give RHDISTGIT_BRANCH on the command line, in which case the Z
 | ||||||
|  | #  number will be incremented instead of the Y).
 | ||||||
|  | #
 | ||||||
|  | ZSTREAM = yes | ||||||
|  | 
 | ||||||
|  | #
 | ||||||
|  | # 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 | ||||||
							
								
								
									
										0
									
								
								SOURCES/Module.kabi_aarch64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/Module.kabi_aarch64
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								SOURCES/Module.kabi_dup_aarch64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/Module.kabi_dup_aarch64
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								SOURCES/Module.kabi_dup_ppc64le
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/Module.kabi_dup_ppc64le
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								SOURCES/Module.kabi_dup_s390x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/Module.kabi_dup_s390x
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								SOURCES/Module.kabi_dup_x86_64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/Module.kabi_dup_x86_64
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								SOURCES/Module.kabi_ppc64le
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/Module.kabi_ppc64le
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								SOURCES/Module.kabi_s390x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/Module.kabi_s390x
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								SOURCES/Module.kabi_x86_64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/Module.kabi_x86_64
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										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.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" | ||||||
							
								
								
									
										0
									
								
								SOURCES/filter-armv7hl.sh.rhel
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/filter-armv7hl.sh.rhel
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								SOURCES/filter-i686.sh.rhel
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								SOURCES/filter-i686.sh.rhel
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										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 cifs 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.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.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.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 | ||||||
							
								
								
									
										9
									
								
								SOURCES/gating.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								SOURCES/gating.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | --- !Policy | ||||||
|  | product_versions: | ||||||
|  |   - rhel-9 | ||||||
|  | decision_context: osci_compose_gate | ||||||
|  | rules: | ||||||
|  |   - !PassingTestCaseRule {test_case_name: cki.tier1-aarch64.functional} | ||||||
|  |   - !PassingTestCaseRule {test_case_name: cki.tier1-ppc64le.functional} | ||||||
|  |   - !PassingTestCaseRule {test_case_name: cki.tier1-s390x.functional} | ||||||
|  |   - !PassingTestCaseRule {test_case_name: cki.tier1-x86_64.functional} | ||||||
							
								
								
									
										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-*-"$PRIMARY".config; do | ||||||
|  | 	NEW=kernel-"$VERSION"-$(echo "$i" | cut -d - -f2- | sed s/-"$PRIMARY"//) | ||||||
|  | 	#echo $NEW | ||||||
|  | 	mv "$i" "$NEW" | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | rm -f 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 | ||||||
							
								
								
									
										6333
									
								
								SOURCES/kernel-aarch64-debug-rhel.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6333
									
								
								SOURCES/kernel-aarch64-debug-rhel.config
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6309
									
								
								SOURCES/kernel-aarch64-rhel.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6309
									
								
								SOURCES/kernel-aarch64-rhel.config
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										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. | ||||||
							
								
								
									
										6098
									
								
								SOURCES/kernel-ppc64le-debug-rhel.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6098
									
								
								SOURCES/kernel-ppc64le-debug-rhel.config
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6078
									
								
								SOURCES/kernel-ppc64le-rhel.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6078
									
								
								SOURCES/kernel-ppc64le-rhel.config
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6062
									
								
								SOURCES/kernel-s390x-debug-rhel.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6062
									
								
								SOURCES/kernel-s390x-debug-rhel.config
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6042
									
								
								SOURCES/kernel-s390x-rhel.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6042
									
								
								SOURCES/kernel-s390x-rhel.config
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6071
									
								
								SOURCES/kernel-s390x-zfcpdump-rhel.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6071
									
								
								SOURCES/kernel-s390x-zfcpdump-rhel.config
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6359
									
								
								SOURCES/kernel-x86_64-debug-rhel.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6359
									
								
								SOURCES/kernel-x86_64-debug-rhel.config
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6336
									
								
								SOURCES/kernel-x86_64-rhel.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6336
									
								
								SOURCES/kernel-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 | ||||||
							
								
								
									
										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 | ||||||
							
								
								
									
										45
									
								
								SOURCES/mod-internal.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								SOURCES/mod-internal.list
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,45 @@ | |||||||
|  | dmatest | ||||||
|  | kunit | ||||||
|  | kunit-test | ||||||
|  | ext4-inode-test | ||||||
|  | list-test | ||||||
|  | sysctl-test | ||||||
|  | mptcp_crypto_test | ||||||
|  | mptcp_token_test | ||||||
|  | bitfield_kunit | ||||||
|  | cmdline_kunit | ||||||
|  | property-entry-test | ||||||
|  | qos-test | ||||||
|  | resource_kunit | ||||||
|  | soc-topology-test | ||||||
|  | string-stream-test | ||||||
|  | test_linear_ranges | ||||||
|  | test_bits | ||||||
|  | test_kasan | ||||||
|  | time_test | ||||||
|  | fat_test | ||||||
|  | lib_test | ||||||
|  | rational-test | ||||||
|  | test_list_sort | ||||||
|  | slub_kunit | ||||||
|  | memcpy_kunit | ||||||
|  | locktorture | ||||||
|  | mac80211_hwsim | ||||||
|  | netdevsim | ||||||
|  | pktgen | ||||||
|  | rcutorture | ||||||
|  | rocker | ||||||
|  | scftorture | ||||||
|  | test_bpf | ||||||
|  | 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 | ||||||
							
								
								
									
										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 | ||||||
							
								
								
									
										4
									
								
								SOURCES/partial-kgcov-snip.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								SOURCES/partial-kgcov-snip.config
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | # kgcov | ||||||
|  | CONFIG_GCOV_KERNEL=y | ||||||
|  | CONFIG_GCOV_PROFILE_ALL=y | ||||||
|  | # CONFIG_GCOV_PROFILE_FTRACE is not set | ||||||
							
								
								
									
										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}" # 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 | ||||||
							
								
								
									
										21
									
								
								SOURCES/rpminspect.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								SOURCES/rpminspect.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | |||||||
|  | # additional rpminspect configuration for this branch | ||||||
|  | 
 | ||||||
|  | --- | ||||||
|  | inspections: | ||||||
|  |     upstream: off | ||||||
|  | 
 | ||||||
|  | badfuncs: | ||||||
|  |     ignore: | ||||||
|  |         - /usr/libexec/ksamples/* | ||||||
|  |         - /usr/libexec/kselftests/* | ||||||
|  | 
 | ||||||
|  | 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.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 | ||||||
							
								
								
									
										10499
									
								
								SPECS/kernel.spec
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										10499
									
								
								SPECS/kernel.spec
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user