kernel-rt-5.12.0-0.rc1.163.rt9.1
* Fri Mar 05 2021 Juri Lelli <juri.lelli@redhat.com> [5.12.0-0.rc1.163.rt9.1] - Add localversion for -RT release (Thomas Gleixner) - sysfs: Add /sys/kernel/realtime entry (Clark Williams) - genirq: Disable irqpoll on -rt (Ingo Molnar) - signals: Allow RT tasks to cache one sigqueue struct (Thomas Gleixner) - tpm_tis: fix stall after iowrite*()s (Haris Okanovic) - drivers/block/zram: Replace bit spinlocks with rtmutex for -rt (Mike Galbraith) - POWERPC: Allow to enable RT (Sebastian Andrzej Siewior) - powerpc: Avoid recursive header includes (Sebastian Andrzej Siewior) - powerpc/stackprotector: work around stack-guard init from atomic (Sebastian Andrzej Siewior) - powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT (Bogdan Purcareata) - powerpc/pseries/iommu: Use a locallock instead local_irq_save() (Sebastian Andrzej Siewior) - powerpc: traps: Use PREEMPT_RT (Sebastian Andrzej Siewior) - ARM64: Allow to enable RT (Sebastian Andrzej Siewior) - ARM: Allow to enable RT (Sebastian Andrzej Siewior) - x86: Enable RT also on 32bit (Sebastian Andrzej Siewior) - arm64: fpsimd: Delay freeing memory in fpsimd_flush_thread() (Sebastian Andrzej Siewior) - KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable() (Josh Cartwright) - genirq: update irq_set_irqchip_state documentation (Josh Cartwright) - ARM: enable irq in translation/section permission fault handlers (Yadi.hu) - tty/serial/pl011: Make the locking work on RT (Thomas Gleixner) - tty/serial/omap: Make the locking RT aware (Thomas Gleixner) - leds: trigger: disable CPU trigger on -RT (Sebastian Andrzej Siewior) - jump-label: disable if stop_machine() is used (Thomas Gleixner) - arch/arm64: Add lazy preempt support (Anders Roxell) - arm: Add support for lazy preemption (Thomas Gleixner) - x86: Support for lazy preemption (Thomas Gleixner) - x86/entry: Use should_resched() in idtentry_exit_cond_resched() (Sebastian Andrzej Siewior) - sched: Add support for lazy preemption (Thomas Gleixner) - mm/scatterlist: Do not disable irqs on RT (Thomas Gleixner) - x86: Allow to enable RT (Sebastian Andrzej Siewior) - cpuset: Convert callback_lock to raw_spinlock_t (Mike Galbraith) - drm/i915/gt: Only disable interrupts for the timeline lock on !force-threaded (Sebastian Andrzej Siewior) - drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE (Sebastian Andrzej Siewior) - drm/i915: disable tracing on -RT (Sebastian Andrzej Siewior) - drm/i915: Don't disable interrupts on PREEMPT_RT during atomic updates (Mike Galbraith) - drm,radeon,i915: Use preempt_disable/enable_rt() where recommended (Mike Galbraith) - lockdep: disable self-test (Sebastian Andrzej Siewior) - lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals (Josh Cartwright) - lockdep: selftest: Only do hardirq context test for raw spinlock (Yong Zhang) - lockdep: Make it RT aware (Thomas Gleixner) - net: Remove preemption disabling in netif_rx() (Priyanka Jain) - random: Make it work on rt (Thomas Gleixner) - x86: stackprotector: Avoid random pool on rt (Thomas Gleixner) - panic: skip get_random_bytes for RT_FULL in init_oops_id (Thomas Gleixner) - crypto: cryptd - add a lock instead preempt_disable/local_bh_disable (Sebastian Andrzej Siewior) - crypto: limit more FPU-enabled sections (Sebastian Andrzej Siewior) - irqwork: push most work into softirq context (Sebastian Andrzej Siewior) - net: dev: always take qdisc's busylock in __dev_xmit_skb() (Sebastian Andrzej Siewior) - net: Dequeue in dev_cpu_dead() without the lock (Sebastian Andrzej Siewior) - net: Use skbufhead with raw lock (Thomas Gleixner) - debugobjects: Make RT aware (Thomas Gleixner) - fs: namespace: Use cpu_chill() in trylock loops (Thomas Gleixner) - rt: Introduce cpu_chill() (Thomas Gleixner) - sunrpc: Make svc_xprt_do_enqueue() use get_cpu_light() (Mike Galbraith) - scsi/fcoe: Make RT aware. (Thomas Gleixner) - md: raid5: Make raid5_percpu handling RT aware (Thomas Gleixner) - block/mq: do not invoke preempt_disable() (Sebastian Andrzej Siewior) - mm/vmalloc: Another preempt disable region which sucks (Thomas Gleixner) - rcutorture: Avoid problematic critical section nesting on RT (Scott Wood) - locking: Make spinlock_t and rwlock_t a RCU section on RT (Sebastian Andrzej Siewior) - ptrace: fix ptrace_unfreeze_traced() race with rt-lock (Oleg Nesterov) - ptrace: fix ptrace vs tasklist_lock race (Sebastian Andrzej Siewior) - pid.h: include atomic.h (Grygorii Strashko) - net/core: use local_bh_disable() in netif_rx_ni() (Sebastian Andrzej Siewior) - softirq: Disable softirq stacks for RT (Thomas Gleixner) - softirq: Check preemption after reenabling interrupts (Thomas Gleixner) - sched: Disable TTWU_QUEUE on RT (Thomas Gleixner) - sched: Do not account rcu_preempt_depth on RT in might_sleep() (Thomas Gleixner) - kernel/sched: move stack + kprobe clean up to __put_task_struct() (Sebastian Andrzej Siewior) - sched: Move mmdrop to RCU on RT (Thomas Gleixner) - sched: Limit the number of task migrations per batch (Thomas Gleixner) - wait.h: include atomic.h (Sebastian Andrzej Siewior) - x86: kvm Require const tsc for RT (Thomas Gleixner) - mm/zsmalloc: copy with get_cpu_var() and locking (Mike Galbraith) - mm/memcontrol: Replace local_irq_disable with local locks (Sebastian Andrzej Siewior) - mm/memcontrol: Don't call schedule_work_on in preemption disabled context (Yang Shi) - mm: memcontrol: Provide a local_lock for per-CPU memcg_stock (Sebastian Andrzej Siewior) - mm: slub: Don't enable partial CPU caches on PREEMPT_RT by default (Sebastian Andrzej Siewior) - mm: page_alloc: Use a local_lock instead of explicit local_irq_save(). (Ingo Molnar) - mm: page_alloc: Use migrate_disable() in drain_local_pages_wq() (Sebastian Andrzej Siewior) - mm: slub: Don't resize the location tracking cache on PREEMPT_RT (Sebastian Andrzej Siewior) - mm: slub: Move flush_cpu_slab() invocations __free_slab() invocations out of IRQ context (Sebastian Andrzej Siewior) - mm: slub: Move discard_slab() invocations out of IRQ-off sections (Sebastian Andrzej Siewior) - mm: slub: Enable irqs for __GFP_WAIT (Thomas Gleixner) - mm: slub: Make object_map_lock a raw_spinlock_t (Sebastian Andrzej Siewior) - mm: sl[au]b: Change list_lock to raw_spinlock_t (Thomas Gleixner) - locking: don't check for __LINUX_SPINLOCK_TYPES_H on -RT archs (Sebastian Andrzej Siewior) - trace: Add migrate-disabled counter to tracing output (Thomas Gleixner) - kernel/sched: add {put|get}_cpu_light() (Sebastian Andrzej Siewior) - signal/x86: Delay calling signals in atomic (Oleg Nesterov) - rt: Add local irq locks (Thomas Gleixner) - efi: Allow efi=runtime (Sebastian Andrzej Siewior) - efi: Disable runtime services on RT (Sebastian Andrzej Siewior) - net/core: disable NET_RX_BUSY_POLL on RT (Sebastian Andrzej Siewior) - sched: Disable CONFIG_RT_GROUP_SCHED on RT (Thomas Gleixner) - mm: Allow only SLUB on RT (Ingo Molnar) - kconfig: Disable config options which are not RT compatible (Thomas Gleixner) - net: Properly annotate the try-lock for the seqlock (Sebastian Andrzej Siewior) - net/Qdisc: use a seqlock instead seqcount (Sebastian Andrzej Siewior) - fs/dcache: disable preemption on i_dir_seq's write side (Sebastian Andrzej Siewior) - fs/dcache: use swait_queue instead of waitqueue (Sebastian Andrzej Siewior) - u64_stats: Disable preemption on 32bit-UP/SMP with RT during updates (Sebastian Andrzej Siewior) - xfrm: Use sequence counter with associated spinlock (Ahmed S. Darwish) - mm/memcontrol: Disable preemption in __mod_memcg_lruvec_state() (Sebastian Andrzej Siewior) - mm/vmstat: Protect per cpu variables with preempt disable on RT (Ingo Molnar) - preempt: Provide preempt_*_(no)rt variants (Thomas Gleixner) - signal: Revert ptrace preempt magic (Thomas Gleixner) - locking/rtmutex: Use custom scheduling function for spin-schedule() (Sebastian Andrzej Siewior) - locking/rtmutex: add ww_mutex addon for mutex-rt (Sebastian Andrzej Siewior) - locking/rtmutex: wire up RT's locking (Thomas Gleixner) - locking/rtmutex: add rwlock implementation based on rtmutex (Thomas Gleixner) - locking/rtmutex: add rwsem implementation based on rtmutex (Thomas Gleixner) - locking/rtmutex: add mutex implementation based on rtmutex (Thomas Gleixner) - locking/rtmutex: Allow rt_mutex_trylock() on PREEMPT_RT (Sebastian Andrzej Siewior) - locking/rtmutex: add sleeping lock implementation (Thomas Gleixner) - sched: Add saved_state for tasks blocked on sleeping locks (Thomas Gleixner) - locking/rtmutex: export lockdep-less version of rt_mutex's lock, trylock and unlock (Thomas Gleixner) - locking/rtmutex: Provide rt_mutex_slowlock_locked() (Thomas Gleixner) - locking: split out the rbtree definition (Sebastian Andrzej Siewior) - lockdep: Reduce header files in debug_locks.h (Sebastian Andrzej Siewior) - locking/rtmutex: Avoid include hell (Thomas Gleixner) - locking/spinlock: Split the lock types header (Thomas Gleixner) - locking/rtmutex: Make lock_killable work (Thomas Gleixner) - futex: Fix bug on when a requeued RT task times out (Steven Rostedt) - locking/rtmutex: Handle the various new futex race conditions (Thomas Gleixner) - locking/rtmutex: Remove rt_mutex_timed_lock() (Sebastian Andrzej Siewior) - locking/rtmutex: Move rt_mutex_init() outside of CONFIG_DEBUG_RT_MUTEXES (Sebastian Andrzej Siewior) - locking/rtmutex: Remove output from deadlock detector. (Sebastian Andrzej Siewior) - locking/rtmutex: Remove cruft (Sebastian Andrzej Siewior) - firewire: ohci: Use tasklet_disable_in_atomic() in the two atomic user (Sebastian Andrzej Siewior) - atm: eni: Use tasklet_disable_in_atomic() in the ->send() callback (Sebastian Andrzej Siewior) - PCI: hv: Use tasklet_disable_in_atomic() (Sebastian Andrzej Siewior) - ath9k: Use tasklet_disable_in_atomic(). (Sebastian Andrzej Siewior) - net: sundance: Use tasklet_disable_in_atomic(). (Sebastian Andrzej Siewior) - net: jme: Replace link-change tasklet with a worker (Sebastian Andrzej Siewior) - rcu: Prevent false positive softirq warning on RT (Thomas Gleixner) - tick/sched: Prevent false positive softirq pending warnings on RT (Thomas Gleixner) - softirq: Make softirq control and processing RT aware (Thomas Gleixner) - softirq: Move various protections into inline helpers (Thomas Gleixner) - irqtime: Make accounting correct on RT (Thomas Gleixner) - softirq: Add RT specific softirq accounting (Thomas Gleixner) - tasklets: Prevent tasklet_unlock_spin_wait() deadlock on RT (Thomas Gleixner) - tasklets: Replace spin wait in tasklet_kill() (Peter Zijlstra) - tasklets: Replace spin wait in tasklet_unlock_wait() (Peter Zijlstra) - tasklets: Provide tasklet_disable_in_atomic() (Thomas Gleixner) - tasklets: Use static inlines for stub implementations (Thomas Gleixner) - softirq: Replace barrier() with cpu_relax() in tasklet_unlock_wait() (Thomas Gleixner) - smp: Wake ksoftirqd on PREEMPT_RT instead do_softirq(). (Sebastian Andrzej Siewior) - tcp: Remove superfluous BH-disable around listening_hash (Sebastian Andrzej Siewior) - net: Move lockdep where it belongs (Thomas Gleixner) - shmem: Use raw_spinlock_t for ->stat_lock (Sebastian Andrzej Siewior) - mm: workingset: replace IRQ-off check with a lockdep assert. (Sebastian Andrzej Siewior) - cgroup: use irqsave in cgroup_rstat_flush_locked() (Sebastian Andrzej Siewior) - kcov: Remove kcov include from sched.h and move it to its users. (Sebastian Andrzej Siewior) - printk: add pr_flush() (John Ogness) - printk: add console handover (John Ogness) - printk: remove deferred printing (John Ogness) - printk: move console printing to kthreads (John Ogness) - printk: introduce kernel sync mode (John Ogness) - printk: change @console_seq to atomic64_t (John Ogness) - printk: combine boot_delay_msec() into printk_delay() (John Ogness) - printk: relocate printk_delay() and vprintk_default() (John Ogness) - serial: 8250: implement write_atomic (John Ogness) - console: add write_atomic interface (John Ogness) - printk: convert @syslog_lock to spin_lock (John Ogness) - printk: remove safe buffers (John Ogness) - printk: track/limit recursion (John Ogness) - printk: console: remove unnecessary safe buffer usage (John Ogness) - printk: kmsg_dump: use kmsg_dump_rewind (John Ogness) - printk: kmsg_dump: remove _nolock() variants (John Ogness) - printk: remove logbuf_lock (John Ogness) - um: synchronize kmsg_dumper (John Ogness) - printk: introduce a kmsg_dump iterator (John Ogness) - printk: add syslog_lock (John Ogness) - printk: use atomic64_t for devkmsg_user.seq (John Ogness) - printk: use seqcount_latch for clear_seq (John Ogness) - printk: introduce CONSOLE_LOG_MAX for improved multi-line support (John Ogness) - printk: consolidate kmsg_dump_get_buffer/syslog_print_all code (John Ogness) - printk: refactor kmsg_dump_get_buffer() (John Ogness) - printk: kmsg_dump: remove unused fields (John Ogness) - printk: limit second loop of syslog_print_all (John Ogness) - powerpc/mm: Move the linear_mapping_mutex to the ifdef where it is used (Sebastian Andrzej Siewior) - notifier: Make atomic_notifiers use raw_spinlock (Valentin Schneider) - genirq: Move prio assignment into the newly created thread (Thomas Gleixner) - kthread: Move prio/affinite change into the newly created thread (Sebastian Andrzej Siewior) - timers: Move clearing of base::timer_running under base::lock (Thomas Gleixner) - highmem: Don't disable preemption on RT in kmap_atomic() (Sebastian Andrzej Siewior) Resolves: rhbz#1891873
This commit is contained in:
parent
7560ad69c6
commit
5860f8e815
2
.gitignore
vendored
2
.gitignore
vendored
@ -0,0 +1,2 @@
|
|||||||
|
*.xz
|
||||||
|
*.bz2
|
47
Makefile.rhelver
Normal file
47
Makefile.rhelver
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
RHEL_MAJOR = 8
|
||||||
|
RHEL_MINOR = 99
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 = 163
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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:=.1
|
25
README.rst
Normal file
25
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
check-kabi
Executable file
149
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
cpupower.config
Normal file
3
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
cpupower.service
Normal file
13
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
filter-aarch64.sh.fedora
Normal file
18
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 fmc fpga infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia power ssb soundwire staging tty uio uwb w1"
|
||||||
|
|
||||||
|
ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell micrel myricom neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti via wiznet xircom"
|
||||||
|
|
||||||
|
drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel pl111 radeon rockchip tegra sun4i sun4i-drm-hdmi tinydrm vc4"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls rnbd-client rnbd-server mlx5_vdpa"
|
18
filter-aarch64.sh.rhel
Normal file
18
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
filter-armv7hl.sh.fedora
Normal file
18
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 fmc fpga infiniband isdn media memstick message nfc ntb pcmcia ssb soundwire staging tty uio uwb w1"
|
||||||
|
|
||||||
|
ethdrvs="3com adaptec alteon altera amd atheros broadcom cadence chelsio cisco dec dlink emulex icplus mellanox micrel myricom natsemi neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis sun tehuti via wiznet xircom"
|
||||||
|
|
||||||
|
drmdrvs="amd arm armada bridge ast exynos etnaviv hisilicon i2c imx meson mgag200 msm nouveau omapdrm panel pl111 radeon rockchip sti stm sun4i sun4i-drm-hdmi tegra tilcdc tinydrm vc4"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls bq27xxx_battery_hdq mlx5_vdpa"
|
0
filter-armv7hl.sh.rhel
Normal file
0
filter-armv7hl.sh.rhel
Normal file
14
filter-i686.sh.fedora
Normal file
14
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 fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation hid-sensor-temperature hid-sensor-humidity target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial regmap-sdw hid-asus"
|
0
filter-i686.sh.rhel
Normal file
0
filter-i686.sh.rhel
Normal file
170
filter-modules.sh.fedora
Executable file
170
filter-modules.sh.fedora
Executable file
@ -0,0 +1,170 @@
|
|||||||
|
#! /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 fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1"
|
||||||
|
|
||||||
|
chardrvs="mwave pcmcia"
|
||||||
|
|
||||||
|
netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless"
|
||||||
|
|
||||||
|
ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell mellanox neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
|
||||||
|
|
||||||
|
inputdrvs="gameport tablet touchscreen"
|
||||||
|
|
||||||
|
scsidrvs="aacraid advansys aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf wd719x"
|
||||||
|
|
||||||
|
usbdrvs="atm image misc serial wusbcore"
|
||||||
|
|
||||||
|
fsdrvs="affs befs coda cramfs dlm ecryptfs hfs hfsplus jfs jffs2 minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs"
|
||||||
|
|
||||||
|
netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless"
|
||||||
|
|
||||||
|
drmdrvs="amd ast bridge gma500 i2c i915 mgag200 nouveau panel radeon"
|
||||||
|
|
||||||
|
iiodrvs="accel adc afe common dac gyro health humidity light magnetometer multiplexer orientation potentiometer potentiostat pressure temperature"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial regmap-sdw hid-asus iTCO_wdt rnbd-client rnbd-server mlx5_vdpa"
|
||||||
|
|
||||||
|
# Grab the arch-specific filter list overrides
|
||||||
|
source ./filter-$2.sh
|
||||||
|
|
||||||
|
filter_dir() {
|
||||||
|
filelist=$1
|
||||||
|
dir=$2
|
||||||
|
|
||||||
|
grep -v -e "${dir}/" ${filelist} > ${filelist}.tmp
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "Couldn't remove ${dir}. Skipping."
|
||||||
|
else
|
||||||
|
grep -e "${dir}/" ${filelist} >> k-d.list
|
||||||
|
mv ${filelist}.tmp $filelist
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
filter_ko() {
|
||||||
|
filelist=$1
|
||||||
|
mod=$2
|
||||||
|
|
||||||
|
grep -v -e "${mod}.ko" ${filelist} > ${filelist}.tmp
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "Couldn't remove ${mod}.ko Skipping."
|
||||||
|
else
|
||||||
|
grep -e "${mod}.ko" ${filelist} >> k-d.list
|
||||||
|
mv ${filelist}.tmp $filelist
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Filter the drivers/ subsystems
|
||||||
|
for subsys in ${driverdirs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/${subsys}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filter the networking drivers
|
||||||
|
for netdrv in ${netdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/net/${netdrv}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filter the char drivers
|
||||||
|
for char in ${chardrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/char/${input}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filter the ethernet drivers
|
||||||
|
for eth in ${ethdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/net/ethernet/${eth}
|
||||||
|
done
|
||||||
|
|
||||||
|
# SCSI
|
||||||
|
for scsi in ${scsidrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/scsi/${scsi}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Input
|
||||||
|
for input in ${inputdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/input/${input}
|
||||||
|
done
|
||||||
|
|
||||||
|
# USB
|
||||||
|
for usb in ${usbdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/usb/${usb}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filesystems
|
||||||
|
for fs in ${fsdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 fs/${fs}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Network protocols
|
||||||
|
for prot in ${netprots}
|
||||||
|
do
|
||||||
|
filter_dir $1 kernel/net/${prot}
|
||||||
|
done
|
||||||
|
|
||||||
|
# DRM
|
||||||
|
for drm in ${drmdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/gpu/drm/${drm}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Just kill sound.
|
||||||
|
filter_dir $1 kernel/sound
|
||||||
|
|
||||||
|
# Now go through and filter any single .ko files that might have deps on the
|
||||||
|
# things we filtered above
|
||||||
|
for mod in ${singlemods}
|
||||||
|
do
|
||||||
|
filter_ko $1 ${mod}
|
||||||
|
done
|
||||||
|
|
||||||
|
# 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
|
168
filter-modules.sh.rhel
Executable file
168
filter-modules.sh.rhel
Executable file
@ -0,0 +1,168 @@
|
|||||||
|
#! /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 hid-asus"
|
||||||
|
|
||||||
|
# Grab the arch-specific filter list overrides
|
||||||
|
source ./filter-$2.sh
|
||||||
|
|
||||||
|
filter_dir() {
|
||||||
|
filelist=$1
|
||||||
|
dir=$2
|
||||||
|
|
||||||
|
grep -v -e "${dir}/" ${filelist} > ${filelist}.tmp
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "Couldn't remove ${dir}. Skipping."
|
||||||
|
else
|
||||||
|
grep -e "${dir}/" ${filelist} >> k-d.list
|
||||||
|
mv ${filelist}.tmp $filelist
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
filter_ko() {
|
||||||
|
filelist=$1
|
||||||
|
mod=$2
|
||||||
|
|
||||||
|
grep -v -e "${mod}.ko" ${filelist} > ${filelist}.tmp
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "Couldn't remove ${mod}.ko Skipping."
|
||||||
|
else
|
||||||
|
grep -e "${mod}.ko" ${filelist} >> k-d.list
|
||||||
|
mv ${filelist}.tmp $filelist
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Filter the drivers/ subsystems
|
||||||
|
for subsys in ${driverdirs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/${subsys}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filter the networking drivers
|
||||||
|
for netdrv in ${netdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/net/${netdrv}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filter the char drivers
|
||||||
|
for char in ${chardrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/char/${input}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filter the ethernet drivers
|
||||||
|
for eth in ${ethdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/net/ethernet/${eth}
|
||||||
|
done
|
||||||
|
|
||||||
|
# SCSI
|
||||||
|
for scsi in ${scsidrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/scsi/${scsi}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Input
|
||||||
|
for input in ${inputdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/input/${input}
|
||||||
|
done
|
||||||
|
|
||||||
|
# USB
|
||||||
|
for usb in ${usbdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/usb/${usb}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Filesystems
|
||||||
|
for fs in ${fsdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 fs/${fs}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Network protocols
|
||||||
|
for prot in ${netprots}
|
||||||
|
do
|
||||||
|
filter_dir $1 kernel/net/${prot}
|
||||||
|
done
|
||||||
|
|
||||||
|
# DRM
|
||||||
|
for drm in ${drmdrvs}
|
||||||
|
do
|
||||||
|
filter_dir $1 drivers/gpu/drm/${drm}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Just kill sound.
|
||||||
|
filter_dir $1 kernel/sound
|
||||||
|
|
||||||
|
# Now go through and filter any single .ko files that might have deps on the
|
||||||
|
# things we filtered above
|
||||||
|
for mod in ${singlemods}
|
||||||
|
do
|
||||||
|
filter_ko $1 ${mod}
|
||||||
|
done
|
||||||
|
|
||||||
|
# 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
filter-ppc64le.sh.fedora
Normal file
14
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 fmc fpga infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1"
|
||||||
|
|
||||||
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls rnbd-client rnbd-server mlx5_vdpa"
|
14
filter-ppc64le.sh.rhel
Normal file
14
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
filter-s390x.sh.fedora
Normal file
12
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
filter-s390x.sh.rhel
Normal file
12
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
filter-x86_64.sh.fedora
Normal file
12
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
filter-x86_64.sh.rhel
Normal file
12
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
|
40
generate_all_configs.sh
Executable file
40
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
|
35
generate_bls_conf.sh
Executable file
35
generate_bls_conf.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. /etc/os-release
|
||||||
|
|
||||||
|
kernelver=$1 && shift
|
||||||
|
rootfs=$1 && shift
|
||||||
|
variant=$1 && shift
|
||||||
|
|
||||||
|
output="${rootfs}/lib/modules/${kernelver}/bls.conf"
|
||||||
|
date=$(date -u +%Y%m%d%H%M%S)
|
||||||
|
|
||||||
|
if [ "${variant:-5}" = "debug" ]; then
|
||||||
|
debugname=" with debugging"
|
||||||
|
debugid="-debug"
|
||||||
|
else
|
||||||
|
debugname=""
|
||||||
|
debugid=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# shellcheck will complain about bootprefix being referenced but not assigned,
|
||||||
|
# but that is perfectly OK here.
|
||||||
|
# shellcheck disable=SC2154
|
||||||
|
cat > "$output" <<EOF
|
||||||
|
title ${NAME} (${kernelver}) ${VERSION}${debugname}
|
||||||
|
version ${kernelver}${debugid}
|
||||||
|
linux ${bootprefix}/vmlinuz-${kernelver}
|
||||||
|
initrd ${bootprefix}/initramfs-${kernelver}.img
|
||||||
|
options \$kernelopts
|
||||||
|
id ${ID}-${date}-${kernelver}${debugid}
|
||||||
|
grub_users \$grub_users
|
||||||
|
grub_arg --unrestricted
|
||||||
|
grub_class kernel${variant}
|
||||||
|
EOF
|
2
kernel-local
Normal file
2
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.
|
6869
kernel-rt-x86_64-debug-rhel.config
Normal file
6869
kernel-rt-x86_64-debug-rhel.config
Normal file
File diff suppressed because it is too large
Load Diff
6847
kernel-rt-x86_64-rhel.config
Normal file
6847
kernel-rt-x86_64-rhel.config
Normal file
File diff suppressed because it is too large
Load Diff
6839
kernel.spec
Executable file
6839
kernel.spec
Executable file
File diff suppressed because it is too large
Load Diff
0
linux-kernel-test.patch
Normal file
0
linux-kernel-test.patch
Normal file
72
merge.pl
Executable file
72
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
mod-blacklist.sh
Executable file
164
mod-blacklist.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"/extra/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
mod-extra.list.fedora
Normal file
195
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
|
190
mod-extra.list.rhel
Normal file
190
mod-extra.list.rhel
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
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_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_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
|
15
mod-internal.list
Normal file
15
mod-internal.list
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
dmatest
|
||||||
|
mac80211_hwsim
|
||||||
|
netdevsim
|
||||||
|
pktgen
|
||||||
|
rocker
|
||||||
|
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
|
5
mod-kvm.list
Normal file
5
mod-kvm.list
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
kvm-amd
|
||||||
|
kvm-intel
|
||||||
|
kvm
|
||||||
|
kvmgt
|
||||||
|
ptp_kvm
|
37
mod-sign.sh
Executable file
37
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 flavour, and the .config may change between flavours.
|
||||||
|
# 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
parallel_xz.sh
Executable file
26
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
patch-5.12.0-redhat.patch
Normal file
0
patch-5.12.0-redhat.patch
Normal file
346
process_configs.sh
Executable file
346
process_configs.sh
Executable file
@ -0,0 +1,346 @@
|
|||||||
|
#!/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
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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"; }
|
||||||
|
/^CONFIG_.*:$/ {
|
||||||
|
split($0, a, ":");
|
||||||
|
symbol=a[1];
|
||||||
|
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 ARCH="$arch" KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig
|
||||||
|
grep -E 'CONFIG_' .listnewconfig > .newoptions
|
||||||
|
if test -s .newoptions
|
||||||
|
then
|
||||||
|
make ARCH="$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 ARCH="$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 ARCH="$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=""
|
||||||
|
|
||||||
|
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"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
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
redhatsecureboot003.cer
Normal file
BIN
redhatsecureboot003.cer
Normal file
Binary file not shown.
BIN
redhatsecureboot401.cer
Normal file
BIN
redhatsecureboot401.cer
Normal file
Binary file not shown.
BIN
redhatsecurebootca2.cer
Normal file
BIN
redhatsecurebootca2.cer
Normal file
Binary file not shown.
BIN
redhatsecurebootca4.cer
Normal file
BIN
redhatsecurebootca4.cer
Normal file
Binary file not shown.
BIN
rheldup3.x509
Normal file
BIN
rheldup3.x509
Normal file
Binary file not shown.
BIN
rhelkpatch1.x509
Normal file
BIN
rhelkpatch1.x509
Normal file
Binary file not shown.
3
sources
Normal file
3
sources
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
SHA512 (linux-5.12.0-0.rc1.163.rt9.1.tar.xz) = f8e8d5156050ef0c79409939991f7a853cfedca48cfbbade89ceac6b207c7d1a26647ed0d5fddd17390eb1c0f3369ac99311862e53c543bc854e37131f9422a4
|
||||||
|
SHA512 (kernel-abi-whitelists-5.12.0-0.rc1.163.tar.bz2) = 6aca797eb830d9355db2370ad9929a543127be8d9ade95f300617bc273c2f1a11e18885b1a97d03dc36530c7b21c577a9ae6481bbf2bfe486ebec0a0d25e227d
|
||||||
|
SHA512 (kernel-kabi-dw-5.12.0-0.rc1.163.tar.bz2) = c45f2271ecababa6fce3c21e9db764252dcd361ea3f6703fec8133fe256ee24233b8c8d54dc426431a72c4a06e3e1cfe164bf18bc23fdcce7446479b664cebde
|
12
update_scripts.sh
Executable file
12
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
x509.genkey.fedora
Normal file
16
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
x509.genkey.rhel
Normal file
16
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
|
Loading…
Reference in New Issue
Block a user