Pablo Greco 7b2c62
# We have to override the new %%install behavior because, well... the kernel is special.
Pablo Greco 7b2c62
%global __spec_install_pre %{___build_pre}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# this should go away soon
Pablo Greco 7b2c62
%define _legacy_common_support 1
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# At the time of this writing (2019-03), RHEL8 packages use w2.xzdio
Pablo Greco 7b2c62
# compression for rpms (xz, level 2).
Pablo Greco 7b2c62
# Kernel has several large (hundreds of mbytes) rpms, they take ~5 mins
Pablo Greco 7b2c62
# to compress by single-threaded xz. Switch to threaded compression,
Pablo Greco 7b2c62
# and from level 2 to 3 to keep compressed sizes close to "w2" results.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# NB: if default compression in /usr/lib/rpm/redhat/macros ever changes,
Pablo Greco 7b2c62
# this one might need tweaking (e.g. if default changes to w3.xzdio,
Pablo Greco 7b2c62
# change below to w4T.xzdio):
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This is disabled on i686 as it triggers oom errors
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifnarch i686
Pablo Greco 7b2c62
%define _binary_payload w3T.xzdio
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Summary: The Linux kernel
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# For a kernel released for public testing, released_kernel should be 1.
Pablo Greco 7b2c62
# For internal testing builds during development, it should be 0.
Pablo Greco 7b2c62
# For rawhide and/or a kernel built from an rc or git snapshot,
Pablo Greco 7b2c62
# released_kernel should be 0.
Pablo Greco 7b2c62
# For a stable, released kernel, released_kernel should be 1.
Pablo Greco 7b2c62
%global released_kernel 1
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if 0%{?fedora}
Pablo Greco 7b2c62
%define secure_boot_arch x86_64
Pablo Greco 7b2c62
%else
26035c
%define secure_boot_arch x86_64 aarch64
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Signing for secure boot authentication
Pablo Greco 7b2c62
%ifarch %{secure_boot_arch}
Pablo Greco 7b2c62
%global signkernel 1
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%global signkernel 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Sign modules on all arches
Pablo Greco 7b2c62
%global signmodules 1
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Compress modules only for architectures that build modules
Pablo Greco 7b2c62
%ifarch noarch
Pablo Greco 7b2c62
%global zipmodules 0
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%global zipmodules 1
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{zipmodules}
Pablo Greco 7b2c62
%global zipsed -e 's/\.ko$/\.ko.xz/'
Pablo Greco 7b2c62
# for parallel xz processes, replace with 1 to go back to single process
Pablo Greco 7b2c62
%global zcpu `nproc --all`
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# define buildid .local
Pablo Greco 7b2c62
Pablo Greco 418f01
%if 0%{?fedora}%{?centos}
Pablo Greco 7b2c62
%define primary_target fedora
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define primary_target rhel
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# baserelease defines which build revision of this kernel version we're
Pablo Greco 7b2c62
# building.  We used to call this fedora_build, but the magical name
Pablo Greco 7b2c62
# baserelease is matched by the rpmdev-bumpspec tool, which you should use.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# We used to have some extra magic weirdness to bump this automatically,
Pablo Greco 7b2c62
# but now we don't.  Just use: rpmdev-bumpspec -c 'comment for changelog'
Pablo Greco 7b2c62
# When changing base_sublevel below or going from rc to a final kernel,
Pablo Greco 7b2c62
# reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec).
Pablo Greco 7b2c62
# scripts/rebase.sh should be made to do that for you, actually.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# NOTE: baserelease must be > 0 or bad things will happen if you switch
Pablo Greco 7b2c62
#       to a released kernel (released version will be < rc version)
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# For non-released -rc kernels, this will be appended after the rcX and
Pablo Greco 7b2c62
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%global baserelease 200
Pablo Greco 7b2c62
%global fedora_build %{baserelease}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# base_sublevel is the kernel version we're starting with and patching
Pablo Greco 7b2c62
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
Pablo Greco 7b2c62
# which yields a base_sublevel of 0.
Pablo Greco 7b2c62
%define base_sublevel 10
Pablo Greco 7b2c62
Pablo Greco 7b2c62
## If this is a released kernel ##
Pablo Greco 7b2c62
%if 0%{?released_kernel}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Do we have a -stable update to apply?
Pablo Greco 54f30c
%define stable_update 156
Pablo Greco 7b2c62
# Set rpm version accordingly
Pablo Greco 7b2c62
%if 0%{?stable_update}
Pablo Greco 7b2c62
%define stablerev %{stable_update}
Pablo Greco 7b2c62
%define stable_base %{stable_update}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%define rpmversion 5.%{base_sublevel}.%{stable_update}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
## The not-released-kernel case ##
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
# The next upstream release sublevel (base_sublevel+1)
Pablo Greco 7b2c62
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
Pablo Greco 7b2c62
# The rc snapshot level
Pablo Greco 7b2c62
%global rcrev 0
Pablo Greco 7b2c62
# The git snapshot level
Pablo Greco 7b2c62
%define gitrev 0
Pablo Greco 7b2c62
# Set rpm version accordingly
Pablo Greco 7b2c62
%define rpmversion 5.%{upstream_sublevel}.0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
# Nb: The above rcrev and gitrev values automagically define Patch00 and Patch01 below.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# What parts do we want to build?  We must build at least one kernel.
Pablo Greco 7b2c62
# These are the kernels that are built IF the architecture allows it.
Pablo Greco 7b2c62
# All should default to 1 (enabled) and be flipped to 0 (disabled)
Pablo Greco 7b2c62
# by later arch-specific checks.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# The following build options are enabled by default.
Pablo Greco 7b2c62
# Use either --without <opt> in your rpmbuild command or force values
Pablo Greco 7b2c62
# to 0 in here to disable them.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# standard kernel
Pablo Greco 7b2c62
%define with_up        %{?_without_up:        0} %{?!_without_up:        1}
Pablo Greco 7b2c62
# kernel PAE (only valid for ARM (lpae))
Pablo Greco 7b2c62
%define with_pae       %{?_without_pae:       0} %{?!_without_pae:       1}
Pablo Greco 7b2c62
# kernel-debug
Pablo Greco 7b2c62
%define with_debug     %{?_without_debug:     0} %{?!_without_debug:     1}
Pablo Greco 7b2c62
# kernel-doc
Pablo Greco 7b2c62
%define with_doc       %{?_without_doc:       0} %{?!_without_doc:       1}
Pablo Greco 7b2c62
# kernel-headers
Pablo Greco 7b2c62
%define with_headers   %{?_without_headers:   0} %{?!_without_headers:   1}
Pablo Greco 7b2c62
%define with_cross_headers   %{?_without_cross_headers:   0} %{?!_without_cross_headers:   1}
Pablo Greco 7b2c62
# perf
Pablo Greco 7b2c62
%define with_perf      %{?_without_perf:      0} %{?!_without_perf:      1}
Pablo Greco 7b2c62
# tools
Pablo Greco 7b2c62
%define with_tools     %{?_without_tools:     0} %{?!_without_tools:     1}
Pablo Greco 7b2c62
# bpf tool
Pablo Greco 7b2c62
%define with_bpftool   %{?_without_bpftool:   0} %{?!_without_bpftool:   1}
Pablo Greco 7b2c62
# kernel-debuginfo
Pablo Greco 7b2c62
%define with_debuginfo %{?_without_debuginfo: 0} %{?!_without_debuginfo: 1}
Pablo Greco 7b2c62
# Want to build a the vsdo directories installed
Pablo Greco 7b2c62
%define with_vdso_install %{?_without_vdso_install: 0} %{?!_without_vdso_install: 1}
Pablo Greco 7b2c62
# kernel-zfcpdump (s390 specific kernel for zfcpdump)
Pablo Greco 7b2c62
%define with_zfcpdump  %{?_without_zfcpdump:  0} %{?!_without_zfcpdump:  1}
Pablo Greco 7b2c62
# kernel-abi-whitelists
Pablo Greco 7b2c62
%define with_kernel_abi_whitelists %{?_without_kernel_abi_whitelists: 0} %{?!_without_kernel_abi_whitelists: 1}
Pablo Greco 7b2c62
# internal samples and selftests
Pablo Greco 7b2c62
%define with_selftests %{?_without_selftests: 0} %{?!_without_selftests: 1}
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# Additional options for user-friendly one-off kernel building:
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# Only build the base kernel (--with baseonly):
Pablo Greco 7b2c62
%define with_baseonly  %{?_with_baseonly:     1} %{?!_with_baseonly:     0}
Pablo Greco 7b2c62
# Only build the pae kernel (--with paeonly):
Pablo Greco 7b2c62
%define with_paeonly   %{?_with_paeonly:      1} %{?!_with_paeonly:      0}
Pablo Greco 7b2c62
# Only build the debug kernel (--with dbgonly):
Pablo Greco 7b2c62
%define with_dbgonly   %{?_with_dbgonly:      1} %{?!_with_dbgonly:      0}
Pablo Greco 7b2c62
# Control whether we perform a compat. check against published ABI.
Pablo Greco 7b2c62
%define with_kabichk   %{?_without_kabichk:   0} %{?!_without_kabichk:   1}
Pablo Greco 7b2c62
# Temporarily disable kabi checks until RC.
Pablo Greco 7b2c62
%define with_kabichk 0
Pablo Greco 7b2c62
# Control whether we perform a compat. check against DUP ABI.
Pablo Greco 7b2c62
%define with_kabidupchk %{?_with_kabidupchk:  1} %{?!_with_kabidupchk:   0}
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# Control whether to run an extensive DWARF based kABI check.
Pablo Greco 7b2c62
# Note that this option needs to have baseline setup in SOURCE300.
Pablo Greco 7b2c62
%define with_kabidwchk %{?_without_kabidwchk: 0} %{?!_without_kabidwchk: 1}
Pablo Greco 7b2c62
%define with_kabidw_base %{?_with_kabidw_base: 1} %{?!_with_kabidw_base: 0}
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# should we do C=1 builds with sparse
Pablo Greco 7b2c62
%define with_sparse    %{?_with_sparse:       1} %{?!_with_sparse:       0}
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# Cross compile requested?
Pablo Greco 7b2c62
%define with_cross    %{?_with_cross:         1} %{?!_with_cross:        0}
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# build a release kernel on rawhide
Pablo Greco 7b2c62
%define with_release   %{?_with_release:      1} %{?!_with_release:      0}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# verbose build, i.e. no silent rules and V=1
Pablo Greco 7b2c62
%define with_verbose %{?_with_verbose:        1} %{?!_with_verbose:      0}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# check for mismatched config options
Pablo Greco 7b2c62
%define with_configchecks %{?_without_configchecks:        0} %{?!_without_configchecks:        1}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# gcov support
Pablo Greco 7b2c62
%define with_gcov %{?_with_gcov:1}%{?!_with_gcov:0}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# ipa_clone support
Pablo Greco 7b2c62
%define with_ipaclones %{?_without_ipaclones: 0} %{?!_without_ipaclones: 1}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Want to build a vanilla kernel build without any non-upstream patches?
Pablo Greco 7b2c62
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
Pablo Greco 7b2c62
#  and 0 for rawhide (all kernels are debug kernels).
Pablo Greco 7b2c62
# See also 'make debug' and 'make release'.
Pablo Greco 7b2c62
%define debugbuildsenabled 1
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if 0%{?fedora}
Pablo Greco 7b2c62
# Kernel headers are being split out into a separate package
Pablo Greco 7b2c62
%define with_headers 0
Pablo Greco 7b2c62
%define with_cross_headers 0
Pablo Greco 7b2c62
# no selftests for now
Pablo Greco 7b2c62
%define with_selftests 0
Pablo Greco 7b2c62
# no ipa_clone for now
Pablo Greco 7b2c62
%define with_ipaclones 0
Pablo Greco 7b2c62
# no whitelist
Pablo Greco 7b2c62
%define with_kernel_abi_whitelists 0
Pablo Greco 7b2c62
# Fedora builds these separately
Pablo Greco 7b2c62
%define with_perf 0
Pablo Greco 7b2c62
%define with_tools 0
Pablo Greco 7b2c62
%define with_bpftool 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 05f52f
%if 0%{?centos}
Pablo Greco 05f52f
# no selftests for now
Pablo Greco 05f52f
%define with_selftests 0
Pablo Greco 05f52f
# no ipa_clone for now
Pablo Greco 05f52f
%define with_ipaclones 0
Pablo Greco 05f52f
# no whitelist
Pablo Greco 05f52f
%define with_kernel_abi_whitelists 0
Pablo Greco 05f52f
%define with_kabidw_base 0
Pablo Greco 05f52f
%define with_kabidwchk 0
Pablo Greco 05f52f
%endif
Pablo Greco 05f52f
Pablo Greco 7b2c62
%if %{with_verbose}
Pablo Greco 7b2c62
%define make_opts V=1
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define make_opts -s
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# pkg_release is what we'll fill in for the rpm Release: field
Pablo Greco 7b2c62
%if 0%{?released_kernel}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define pkg_release %{fedora_build}%{?buildid}%{?dist}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# non-released_kernel
Pablo Greco 7b2c62
%if 0%{?rcrev}
Pablo Greco 7b2c62
%define rctag .rc%rcrev
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define rctag .rc0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%if 0%{?gitrev}
Pablo Greco 7b2c62
%define gittag .git%gitrev
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define gittag .git0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%define pkg_release 0%{?rctag}%{?gittag}.%{fedora_build}%{?buildid}%{?dist}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# The kernel tarball/base version
Pablo Greco 7b2c62
%define kversion 5.%{base_sublevel}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# turn off debug kernel and kabichk for gcov builds
Pablo Greco 7b2c62
%if %{with_gcov}
Pablo Greco 7b2c62
%define with_debug 0
Pablo Greco 7b2c62
%define with_kabichk 0
Pablo Greco 7b2c62
%define with_kabidupchk 0
Pablo Greco 7b2c62
%define with_kabidwchk 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# turn off kABI DWARF-based check if we're generating the base dataset
Pablo Greco 7b2c62
%if %{with_kabidw_base}
Pablo Greco 7b2c62
%define with_kabidwchk 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# kpatch_kcflags are extra compiler flags applied to base kernel
Pablo Greco 7b2c62
# -fdump-ipa-clones is enabled only for base kernels on selected arches
Pablo Greco 7b2c62
%if %{with_ipaclones}
Pablo Greco 7b2c62
%ifarch x86_64 ppc64le
Pablo Greco 7b2c62
%define kpatch_kcflags -fdump-ipa-clones
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define with_ipaclones 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define make_target bzImage
Pablo Greco 7b2c62
%define image_install_path boot
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define KVERREL %{version}-%{release}.%{_target_cpu}
Pablo Greco 7b2c62
%define KVERREL_RE %(echo %KVERREL | sed 's/+/[+]/g')
Pablo Greco 7b2c62
%define hdrarch %_target_cpu
Pablo Greco 7b2c62
%define asmarch %_target_cpu
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if 0%{!?nopatches:1}
Pablo Greco 7b2c62
%define nopatches 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_vanilla}
Pablo Greco 7b2c62
%define nopatches 1
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{nopatches}
Pablo Greco 7b2c62
%define variant -vanilla
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if !%{debugbuildsenabled}
Pablo Greco 7b2c62
%define with_debug 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if !%{with_debuginfo}
Pablo Greco 7b2c62
%define _enable_debug_packages 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%define debuginfodir /usr/lib/debug
Pablo Greco 7b2c62
# Needed because we override almost everything involving build-ids
Pablo Greco 7b2c62
# and debuginfo generation. Currently we rely on the old alldebug setting.
Pablo Greco 7b2c62
%global _build_id_links alldebug
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# kernel PAE is only built on ARMv7
Pablo Greco 7b2c62
%ifnarch armv7hl
Pablo Greco 7b2c62
%define with_pae 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# if requested, only build base kernel
Pablo Greco 7b2c62
%if %{with_baseonly}
Pablo Greco 7b2c62
%define with_pae 0
Pablo Greco 7b2c62
%define with_debug 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# if requested, only build pae kernel
Pablo Greco 7b2c62
%if %{with_paeonly}
Pablo Greco 7b2c62
%define with_up 0
Pablo Greco 7b2c62
%define with_debug 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# if requested, only build debug kernel
Pablo Greco 7b2c62
%if %{with_dbgonly}
Pablo Greco 7b2c62
%if %{debugbuildsenabled}
Pablo Greco 7b2c62
%define with_up 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%define with_pae 0
Pablo Greco 7b2c62
%define with_tools 0
Pablo Greco 7b2c62
%define with_perf 0
Pablo Greco 7b2c62
%define with_bpftool 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# turn off kABI DUP check and DWARF-based check if kABI check is disabled
Pablo Greco 7b2c62
%if !%{with_kabichk}
Pablo Greco 7b2c62
%define with_kabidupchk 0
Pablo Greco 7b2c62
%define with_kabidwchk 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_vdso_install}
Pablo Greco 7b2c62
%define use_vdso 1
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifnarch noarch
Pablo Greco 7b2c62
%define with_kernel_abi_whitelists 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Overrides for generic default options
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# only package docs noarch
Pablo Greco 7b2c62
%ifnarch noarch
Pablo Greco 7b2c62
%define with_doc 0
Pablo Greco 7b2c62
%define doc_build_fail true
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 05f52f
%if 0%{?fedora}%{?centos}
Pablo Greco 7b2c62
# don't do debug builds on anything but i686 and x86_64
Pablo Greco 7b2c62
%ifnarch i686 x86_64
Pablo Greco 7b2c62
%define with_debug 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# don't build noarch kernels or headers (duh)
Pablo Greco 7b2c62
%ifarch noarch
Pablo Greco 7b2c62
%define with_up 0
Pablo Greco 7b2c62
%define with_headers 0
Pablo Greco 7b2c62
%define with_cross_headers 0
Pablo Greco 7b2c62
%define with_tools 0
Pablo Greco 7b2c62
%define with_perf 0
Pablo Greco 7b2c62
%define with_bpftool 0
Pablo Greco 7b2c62
%define with_selftests 0
Pablo Greco 7b2c62
%define with_debug 0
Pablo Greco 7b2c62
%define all_arch_configs kernel-%{version}-*.config
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# sparse blows up on ppc
Pablo Greco 7b2c62
%ifnarch ppc64le
Pablo Greco 7b2c62
%define with_sparse 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# zfcpdump mechanism is s390 only
Pablo Greco 7b2c62
%ifnarch s390x
Pablo Greco 7b2c62
%define with_zfcpdump 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if 0%{?fedora}
Pablo Greco 7b2c62
# This is not for Fedora
Pablo Greco 7b2c62
%define with_zfcpdump 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Per-arch tweaks
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifarch i686
Pablo Greco 7b2c62
%define asmarch x86
Pablo Greco 7b2c62
%define hdrarch i386
Pablo Greco 7b2c62
%define all_arch_configs kernel-%{version}-i?86*.config
Pablo Greco 7b2c62
%define kernel_image arch/x86/boot/bzImage
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifarch x86_64
Pablo Greco 7b2c62
%define asmarch x86
Pablo Greco 7b2c62
%define all_arch_configs kernel-%{version}-x86_64*.config
Pablo Greco 7b2c62
%define kernel_image arch/x86/boot/bzImage
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifarch ppc64le
Pablo Greco 7b2c62
%define asmarch powerpc
Pablo Greco 7b2c62
%define hdrarch powerpc
Pablo Greco 7b2c62
%define make_target vmlinux
Pablo Greco 7b2c62
%define kernel_image vmlinux
Pablo Greco 7b2c62
%define kernel_image_elf 1
Pablo Greco 7b2c62
%define all_arch_configs kernel-%{version}-ppc64le*.config
Pablo Greco 7b2c62
%define kcflags -O3
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifarch s390x
Pablo Greco 7b2c62
%define asmarch s390
Pablo Greco 7b2c62
%define hdrarch s390
Pablo Greco 7b2c62
%define all_arch_configs kernel-%{version}-s390x.config
Pablo Greco 7b2c62
%define kernel_image arch/s390/boot/bzImage
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifarch %{arm}
Pablo Greco 7b2c62
%define all_arch_configs kernel-%{version}-arm*.config
Pablo Greco 7b2c62
%define skip_nonpae_vdso 1
Pablo Greco 7b2c62
%define asmarch arm
Pablo Greco 7b2c62
%define hdrarch arm
Pablo Greco 7b2c62
%define make_target bzImage
Pablo Greco 7b2c62
%define kernel_image arch/arm/boot/zImage
Pablo Greco 7b2c62
# http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/091404.html
Pablo Greco 7b2c62
%define kernel_mflags KALLSYMS_EXTRA_PASS=1
Pablo Greco 7b2c62
# we only build headers/perf/tools on the base arm arches
Pablo Greco 7b2c62
# just like we used to only build them on i386 for x86
Pablo Greco 7b2c62
%ifnarch armv7hl
Pablo Greco 7b2c62
%define with_headers 0
Pablo Greco 7b2c62
%define with_cross_headers 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
# These currently don't compile on armv7
Pablo Greco 7b2c62
%define with_selftests 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifarch aarch64
Pablo Greco 7b2c62
%define all_arch_configs kernel-%{version}-aarch64*.config
Pablo Greco 7b2c62
%define asmarch arm64
Pablo Greco 7b2c62
%define hdrarch arm64
Pablo Greco 7b2c62
%define make_target Image.gz
Pablo Greco 7b2c62
%define kernel_image arch/arm64/boot/Image.gz
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Should make listnewconfig fail if there's config options
Pablo Greco 7b2c62
# printed out?
Pablo Greco 7b2c62
%if %{nopatches}
Pablo Greco 7b2c62
%define with_configchecks 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# To temporarily exclude an architecture from being built, add it to
Pablo Greco 7b2c62
# %%nobuildarches. Do _NOT_ use the ExclusiveArch: line, because if we
Pablo Greco 7b2c62
# don't build kernel-headers then the new build system will no longer let
Pablo Greco 7b2c62
# us use the previous build of that package -- it'll just be completely AWOL.
Pablo Greco 7b2c62
# Which is a BadThing(tm).
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# We only build kernel-headers on the following...
Pablo Greco 418f01
%if 0%{?fedora}%{?centos}
Pablo Greco 7b2c62
%define nobuildarches i386
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define nobuildarches i386 i686
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifarch %nobuildarches
Pablo Greco 7b2c62
%define with_up 0
Pablo Greco 7b2c62
%define with_debug 0
Pablo Greco 7b2c62
%define with_debuginfo 0
Pablo Greco 7b2c62
%define with_perf 0
Pablo Greco 7b2c62
%define with_tools 0
Pablo Greco 7b2c62
%define with_bpftool 0
Pablo Greco 7b2c62
%define with_selftests 0
Pablo Greco 7b2c62
%define with_pae 0
Pablo Greco 7b2c62
%define _enable_debug_packages 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Architectures we build tools/cpupower on
Pablo Greco 418f01
%if 0%{?fedora}%{?centos}
Pablo Greco 7b2c62
%define cpupowerarchs %{ix86} x86_64 ppc64le %{arm} aarch64
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define cpupowerarchs i686 x86_64 ppc64le aarch64
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{use_vdso}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if 0%{?skip_nonpae_vdso}
Pablo Greco 7b2c62
%define _use_vdso 0
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define _use_vdso 1
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define _use_vdso 0
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# Packages that need to be installed before the kernel is, because the %%post
Pablo Greco 7b2c62
# scripts use them.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_prereq  coreutils, systemd >= 203-2, /usr/bin/kernel-install
Pablo Greco 7b2c62
%define initrd_prereq  dracut >= 027
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Name: kernel%{?variant}
Pablo Greco 7b2c62
License: GPLv2 and Redistributable, no modification permitted
Pablo Greco 7b2c62
URL: https://www.kernel.org/
Pablo Greco 7b2c62
Version: %{rpmversion}
Pablo Greco 7b2c62
Release: %{pkg_release}
Pablo Greco 7b2c62
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
Pablo Greco 7b2c62
# SET %%nobuildarches (ABOVE) INSTEAD
Pablo Greco 7b2c62
%if 0%{?fedora}
Pablo Greco 7b2c62
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
ExclusiveOS: Linux
Pablo Greco 7b2c62
%ifnarch %{nobuildarches}
Pablo Greco 7b2c62
Requires: kernel-core-uname-r = %{KVERREL}%{?variant}
Pablo Greco 7b2c62
Requires: kernel-modules-uname-r = %{KVERREL}%{?variant}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# List the packages used during the kernel build
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
BuildRequires: kmod, patch, bash, tar, git-core
Pablo Greco 7b2c62
BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk
Pablo Greco 7b2c62
BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, bison, flex
Pablo Greco 7b2c62
BuildRequires: net-tools, hostname, bc, elfutils-devel
Pablo Greco 05f52f
%if 0%{?rhel} == 7
Pablo Greco 05f52f
BuildRequires:  devtoolset-8-build
Pablo Greco 05f52f
BuildRequires:  devtoolset-8-binutils
Pablo Greco 05f52f
BuildRequires:  devtoolset-8-gcc
Pablo Greco 05f52f
BuildRequires:  devtoolset-8-make
Pablo Greco 05f52f
BuildRequires:  python3-rpm-macros
Pablo Greco 05f52f
%endif
Pablo Greco 418f01
%if 0%{?fedora} || 0%{?rhel} >= 8
Pablo Greco 7b2c62
BuildRequires: dwarves
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
# Used to mangle unversioned shebangs to be Python 3
Pablo Greco 7b2c62
BuildRequires: python3-devel
Pablo Greco 7b2c62
%if %{with_headers}
Pablo Greco 7b2c62
BuildRequires: rsync
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%if %{with_doc}
Pablo Greco 7b2c62
BuildRequires: xmlto, asciidoc, python3-sphinx
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%if %{with_sparse}
Pablo Greco 7b2c62
BuildRequires: sparse
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%if %{with_perf}
Pablo Greco 7b2c62
BuildRequires: zlib-devel binutils-devel newt-devel perl(ExtUtils::Embed) bison flex xz-devel
Pablo Greco 7b2c62
BuildRequires: audit-libs-devel
Pablo Greco 7b2c62
BuildRequires: java-devel
Pablo Greco 7b2c62
%ifnarch %{arm} s390x
Pablo Greco 7b2c62
BuildRequires: numactl-devel
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%if %{with_tools}
Pablo Greco 7b2c62
BuildRequires: gettext ncurses-devel
Pablo Greco 7b2c62
%ifnarch s390x
Pablo Greco 7b2c62
BuildRequires: pciutils-devel
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%if %{with_bpftool}
Pablo Greco 05f52f
%if 0%{?rhel} == 7
Pablo Greco 05f52f
BuildRequires: python-docutils
Pablo Greco 05f52f
%else
Pablo Greco 7b2c62
BuildRequires: python3-docutils
Pablo Greco 05f52f
%endif
Pablo Greco 7b2c62
BuildRequires: zlib-devel binutils-devel
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%if %{with_selftests}
Pablo Greco 7b2c62
%if 0%{?fedora}
Pablo Greco 7b2c62
BuildRequires: clang llvm
Pablo Greco 7b2c62
%else
Pablo Greco 05f52f
%if 0%{?rhel} == 7
Pablo Greco 05f52f
BuildRequires: llvm-toolset-7.0
Pablo Greco 05f52f
%else
Pablo Greco 7b2c62
BuildRequires: llvm-toolset
Pablo Greco 7b2c62
%endif
Pablo Greco 05f52f
%endif
Pablo Greco 7b2c62
%ifnarch %{arm}
Pablo Greco 7b2c62
BuildRequires: numactl-devel
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
BuildRequires: libcap-devel libcap-ng-devel rsync
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
BuildConflicts: rhbuildsys(DiskFree) < 500Mb
Pablo Greco 7b2c62
%if %{with_debuginfo}
Pablo Greco 7b2c62
BuildRequires: rpm-build, elfutils
Pablo Greco 7b2c62
BuildConflicts: rpm < 4.13.0.1-19
Pablo Greco 7b2c62
%if 0%{?fedora}
Pablo Greco 7b2c62
BuildConflicts: dwarves < 1.13
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
# Most of these should be enabled after more investigation
Pablo Greco 7b2c62
%undefine _include_minidebuginfo
Pablo Greco 7b2c62
%undefine _find_debuginfo_dwz_opts
Pablo Greco 7b2c62
%undefine _unique_build_ids
Pablo Greco 7b2c62
%undefine _unique_debug_names
Pablo Greco 7b2c62
%undefine _unique_debug_srcs
Pablo Greco 7b2c62
%undefine _debugsource_packages
Pablo Greco 7b2c62
%undefine _debuginfo_subpackages
Pablo Greco 7b2c62
%global _find_debuginfo_opts -r
Pablo Greco 7b2c62
%global _missing_build_ids_terminate_build 1
Pablo Greco 7b2c62
%global _no_recompute_build_ids 1
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%if %{with_kabidwchk} || %{with_kabidw_base}
Pablo Greco 7b2c62
BuildRequires: kabi-dw
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{signkernel}%{signmodules}
Pablo Greco 7b2c62
BuildRequires: openssl openssl-devel
Pablo Greco 7b2c62
%if %{signkernel}
Pablo Greco 7b2c62
%ifarch x86_64 aarch64
Pablo Greco 7b2c62
BuildRequires: nss-tools
Pablo Greco 7b2c62
BuildRequires: pesign >= 0.10-4
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_cross}
Pablo Greco 7b2c62
BuildRequires: binutils-%{_build_arch}-linux-gnu, gcc-%{_build_arch}-linux-gnu
Pablo Greco 7b2c62
%define cross_opts CROSS_COMPILE=%{_build_arch}-linux-gnu-
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# These below are required to build man pages
Pablo Greco 7b2c62
%if %{with_perf}
Pablo Greco 7b2c62
BuildRequires: xmlto
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%if %{with_perf} || %{with_tools}
Pablo Greco 7b2c62
BuildRequires: asciidoc
Pablo Greco 7b2c62
%endif
Pablo Greco 6fc767
%if %{with_tools}
Pablo Greco 6fc767
BuildRequires: libcap-devel
Pablo Greco 6fc767
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%{kversion}.tar.xz
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Name of the packaged file containing signing key
Pablo Greco 7b2c62
%ifarch ppc64le
Pablo Greco 7b2c62
%define signing_key_filename kernel-signing-ppc.cer
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%ifarch s390x
Pablo Greco 7b2c62
%define signing_key_filename kernel-signing-s390.cer
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source10: x509.genkey.rhel
Pablo Greco 7b2c62
Source11: x509.genkey.fedora
Pablo Greco 7b2c62
%if %{?released_kernel}
Pablo Greco 7b2c62
26035c
Source12: centossecurebootca2.der
26035c
Source13: centos-ca-secureboot.der
26035c
Source14: centossecureboot201.der
26035c
Source15: centossecureboot001.der
Pablo Greco 7b2c62
Source16: secureboot_s390.cer
Pablo Greco 7b2c62
Source17: secureboot_ppc.cer
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define secureboot_ca_1 %{SOURCE12}
Pablo Greco 7b2c62
%define secureboot_ca_0 %{SOURCE13}
Pablo Greco 7b2c62
%ifarch x86_64 aarch64
Pablo Greco 7b2c62
%define secureboot_key_1 %{SOURCE14}
26035c
%define pesign_name_1 centossecureboot201
Pablo Greco 7b2c62
%define secureboot_key_0 %{SOURCE15}
26035c
%define pesign_name_0 centossecureboot001
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# released_kernel
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
26035c
Source12: centossecurebootca2.der
26035c
Source13: centos-ca-secureboot.der
26035c
Source14: centossecureboot201.der
26035c
Source15: centossecureboot001.der
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define secureboot_ca_1 %{SOURCE12}
Pablo Greco 7b2c62
%define secureboot_ca_0 %{SOURCE13}
Pablo Greco 7b2c62
%define secureboot_key_1 %{SOURCE14}
26035c
%define pesign_name_1 centossecureboot201
Pablo Greco 7b2c62
%define secureboot_key_0 %{SOURCE15}
26035c
%define pesign_name_0 centossecureboot001
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# released_kernel
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source22: mod-extra.list.rhel
Pablo Greco 7b2c62
Source23: mod-extra.list.fedora
Pablo Greco 7b2c62
Source24: mod-extra.sh
Pablo Greco 7b2c62
Source18: mod-sign.sh
Pablo Greco 7b2c62
Source19: mod-extra-blacklist.sh
Pablo Greco 7b2c62
Source79: parallel_xz.sh
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source80: filter-x86_64.sh.fedora
Pablo Greco 7b2c62
Source81: filter-armv7hl.sh.fedora
Pablo Greco 7b2c62
Source82: filter-i686.sh.fedora
Pablo Greco 7b2c62
Source83: filter-aarch64.sh.fedora
Pablo Greco 7b2c62
Source86: filter-ppc64le.sh.fedora
Pablo Greco 7b2c62
Source87: filter-s390x.sh.fedora
Pablo Greco 7b2c62
Source89: filter-modules.sh.fedora
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source90: filter-x86_64.sh.rhel
Pablo Greco 7b2c62
Source91: filter-armv7hl.sh.rhel
Pablo Greco 7b2c62
Source92: filter-i686.sh.rhel
Pablo Greco 7b2c62
Source93: filter-aarch64.sh.rhel
Pablo Greco 7b2c62
Source96: filter-ppc64le.sh.rhel
Pablo Greco 7b2c62
Source97: filter-s390x.sh.rhel
Pablo Greco 7b2c62
Source99: filter-modules.sh.rhel
Pablo Greco 7b2c62
%define modsign_cmd %{SOURCE18}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source20: kernel-aarch64-rhel.config
Pablo Greco 7b2c62
Source21: kernel-aarch64-debug-rhel.config
Pablo Greco 7b2c62
Source30: kernel-ppc64le-rhel.config
Pablo Greco 7b2c62
Source31: kernel-ppc64le-debug-rhel.config
Pablo Greco 7b2c62
Source32: kernel-s390x-rhel.config
Pablo Greco 7b2c62
Source33: kernel-s390x-debug-rhel.config
Pablo Greco 7b2c62
Source34: kernel-s390x-zfcpdump-rhel.config
Pablo Greco 7b2c62
Source35: kernel-x86_64-rhel.config
Pablo Greco 7b2c62
Source36: kernel-x86_64-debug-rhel.config
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source37: kernel-aarch64-fedora.config
Pablo Greco 7b2c62
Source38: kernel-aarch64-debug-fedora.config
Pablo Greco 7b2c62
Source39: kernel-armv7hl-fedora.config
Pablo Greco 7b2c62
Source40: kernel-armv7hl-debug-fedora.config
Pablo Greco 7b2c62
Source41: kernel-armv7hl-lpae-fedora.config
Pablo Greco 7b2c62
Source42: kernel-armv7hl-lpae-debug-fedora.config
Pablo Greco 7b2c62
Source43: kernel-i686-fedora.config
Pablo Greco 7b2c62
Source44: kernel-i686-debug-fedora.config
Pablo Greco 7b2c62
Source45: kernel-ppc64le-fedora.config
Pablo Greco 7b2c62
Source46: kernel-ppc64le-debug-fedora.config
Pablo Greco 7b2c62
Source47: kernel-s390x-fedora.config
Pablo Greco 7b2c62
Source48: kernel-s390x-debug-fedora.config
Pablo Greco 7b2c62
Source49: kernel-x86_64-fedora.config
Pablo Greco 7b2c62
Source50: kernel-x86_64-debug-fedora.config
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source51: generate_all_configs.sh
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source52: process_configs.sh
Pablo Greco 7b2c62
Source53: generate_bls_conf.sh
Pablo Greco 7b2c62
Source56: update_scripts.sh
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source54: mod-internal.list
Pablo Greco 7b2c62
Source55: merge.pl
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source200: check-kabi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source201: Module.kabi_aarch64
Pablo Greco 7b2c62
Source202: Module.kabi_ppc64le
Pablo Greco 7b2c62
Source203: Module.kabi_s390x
Pablo Greco 7b2c62
Source204: Module.kabi_x86_64
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Source210: Module.kabi_dup_aarch64
Pablo Greco 7b2c62
Source211: Module.kabi_dup_ppc64le
Pablo Greco 7b2c62
Source212: Module.kabi_dup_s390x
Pablo Greco 7b2c62
Source213: Module.kabi_dup_x86_64
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Source300: kernel-abi-whitelists-%{rpmversion}-%{distro_build}.tar.bz2
Pablo Greco 7b2c62
# Source301: kernel-kabi-dw-%{rpmversion}-%{distro_build}.tar.bz2
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Sources for kernel-tools
Pablo Greco 7b2c62
Source2000: cpupower.service
Pablo Greco 7b2c62
Source2001: cpupower.config
Pablo Greco 7b2c62
26035c
Source9000: centos.pem
26035c
Pablo Greco 7b2c62
## Patches needed for building this package
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Patch1: patch-%{rpmversion}-redhat.patch
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# empty final patch to facilitate testing of kernel patches
Pablo Greco 7b2c62
# Patch999999: linux-kernel-test.patch
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# This file is intentionally left empty in the stock kernel. Its a nicety
Pablo Greco 7b2c62
# added for those wanting to do custom rebuilds with altered config opts.
Pablo Greco 7b2c62
Source1000: kernel-local
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Here should be only the patches up to the upstream canonical Linus tree.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# For a stable release kernel
Pablo Greco 7b2c62
%if 0%{?stable_update}
Pablo Greco 7b2c62
%if 0%{?stable_base}
Pablo Greco d2736b
%define    stable_patch_00  https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-5.%{base_sublevel}.%{stable_base}.xz
Pablo Greco 7b2c62
Source5000: %{stable_patch_00}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# non-released_kernel case
Pablo Greco 7b2c62
# These are automagically defined by the rcrev and gitrev values set up
Pablo Greco 7b2c62
# near the top of this spec file.
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%if 0%{?rcrev}
Pablo Greco 7b2c62
Source5000: patch-5.%{upstream_sublevel}-rc%{rcrev}.xz
Pablo Greco 7b2c62
%if 0%{?gitrev}
Pablo Greco 7b2c62
Source5001: patch-5.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.xz
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
# pre-{base_sublevel+1}-rc1 case
Pablo Greco 7b2c62
%if 0%{?gitrev}
Pablo Greco 7b2c62
Source5000: patch-5.%{base_sublevel}-git%{gitrev}.xz
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
## Patches needed for building this package
Pablo Greco 7b2c62
Pablo Greco 7b2c62
## compile fixes
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if !%{nopatches}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Patch6: 0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch
Pablo Greco 7b2c62
Patch8: 0001-ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m.patch
Pablo Greco 7b2c62
Patch9: 0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch
Pablo Greco 7b2c62
Patch11: 0001-kdump-round-up-the-total-memory-size-to-128M-for-cra.patch
Pablo Greco 7b2c62
Patch12: 0001-kdump-add-support-for-crashkernel-auto.patch
Pablo Greco 7b2c62
Patch15: 0001-kdump-fix-a-grammar-issue-in-a-kernel-message.patch
Pablo Greco 7b2c62
Patch19: 0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
Pablo Greco 7b2c62
Patch20: 0001-ahci-thunderx2-Fix-for-errata-that-affects-stop-engi.patch
Pablo Greco 7b2c62
Patch24: 0001-scsi-smartpqi-add-inspur-advantech-ids.patch
Pablo Greco 7b2c62
Patch26: 0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch
Pablo Greco 7b2c62
Patch28: 0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch
Pablo Greco 7b2c62
Patch29: 0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch
Pablo Greco 7b2c62
Patch31: 0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
Pablo Greco 7b2c62
Patch32: 0001-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch
Pablo Greco 7b2c62
Patch33: 0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch
Pablo Greco 7b2c62
Patch34: 0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch
Pablo Greco 7b2c62
Patch35: 0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
Pablo Greco 7b2c62
Patch36: 0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch
Pablo Greco 7b2c62
Patch37: 0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch
Pablo Greco 7b2c62
Patch58: 0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch
Pablo Greco 7b2c62
Patch59: 0001-ARM-tegra-usb-no-reset.patch
Pablo Greco 7b2c62
Patch61: 0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch
Pablo Greco 7b2c62
Patch62: 0001-Drop-that-for-now.patch
Pablo Greco 7b2c62
Patch63: 0001-KEYS-Make-use-of-platform-keyring-for-module-signatu.patch
Pablo Greco 7b2c62
Patch64: 0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch
Pablo Greco 7b2c62
Patch66: 0001-dt-bindings-panel-add-binding-for-Xingbangda-XBD599-.patch
Pablo Greco 7b2c62
Patch67: 0001-drm-panel-add-Xingbangda-XBD599-panel.patch
Pablo Greco 7b2c62
Patch68: 0001-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timing-calcu.patch
Pablo Greco 7b2c62
Patch72: 0001-Work-around-for-gcc-bug-https-gcc.gnu.org-bugzilla-s.patch
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Tegra fixes
Pablo Greco 7b2c62
Patch101: 0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# A patch to fix some undocumented things broke a bunch of Allwinner networks due to wrong assumptions
Pablo Greco 7b2c62
Patch102: 0001-update-phy-on-pine64-a64-devices.patch
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# OMAP Pandaboard fix
Pablo Greco 7b2c62
Patch103: arm-pandaboard-fix-add-bluetooth.patch
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Fix for USB on some newer RPi4 / firmware combinations
Pablo Greco 7b2c62
Patch104: 0001-brcm-rpi4-fix-usb-numeration.patch
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# RPi-4 and wifi issues
Pablo Greco 7b2c62
Patch105: arm-dts-rpi-4-disable-wifi-frequencies.patch
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# END OF PATCH DEFINITIONS
Pablo Greco 7b2c62
Pablo Greco bcc11a
Patch10000: linux-5.10-lx2160a-network.patch
Pablo Greco 2179f3
%ifarch aarch64
Pablo Greco 2179f3
Patch10001: azure.patch
Pablo Greco 2179f3
%else
Pablo Greco 2179f3
Source10001: azure.patch
Pablo Greco 2179f3
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%description
Pablo Greco 7b2c62
The kernel meta package
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro does requires, provides, conflicts, obsoletes for a kernel package.
Pablo Greco 7b2c62
#	%%kernel_reqprovconf <subpackage>
Pablo Greco 7b2c62
# It uses any kernel_<subpackage>_conflicts and kernel_<subpackage>_obsoletes
Pablo Greco 7b2c62
# macros defined above.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_reqprovconf \
Pablo Greco 7b2c62
Provides: kernel = %{rpmversion}-%{pkg_release}\
Pablo Greco 7b2c62
Provides: kernel-%{_target_cpu} = %{rpmversion}-%{pkg_release}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: kernel-drm-nouveau = 16\
Pablo Greco 7b2c62
Provides: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
Requires(pre): %{kernel_prereq}\
Pablo Greco 7b2c62
Requires(pre): %{initrd_prereq}\
Pablo Greco 7b2c62
Requires(pre): linux-firmware >= 20150904-56.git6ebf5d57\
Pablo Greco 7b2c62
Requires(preun): systemd >= 200\
Pablo Greco 7b2c62
Conflicts: xfsprogs < 4.3.0-1\
Pablo Greco 7b2c62
Conflicts: xorg-x11-drv-vmmouse < 13.0.99\
Pablo Greco 7b2c62
%{expand:%%{?kernel%{?1:_%{1}}_conflicts:Conflicts: %%{kernel%{?1:_%{1}}_conflicts}}}\
Pablo Greco 7b2c62
%{expand:%%{?kernel%{?1:_%{1}}_obsoletes:Obsoletes: %%{kernel%{?1:_%{1}}_obsoletes}}}\
Pablo Greco 7b2c62
%{expand:%%{?kernel%{?1:_%{1}}_provides:Provides: %%{kernel%{?1:_%{1}}_provides}}}\
Pablo Greco 7b2c62
# We can't let RPM do the dependencies automatic because it'll then pick up\
Pablo Greco 7b2c62
# a correct but undesirable perl dependency from the module headers which\
Pablo Greco 7b2c62
# isn't required for the kernel proper to function\
Pablo Greco 7b2c62
AutoReq: no\
Pablo Greco 7b2c62
AutoProv: yes\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package doc
Pablo Greco 7b2c62
Summary: Various documentation bits found in the kernel source
Pablo Greco 7b2c62
Group: Documentation
Pablo Greco 7b2c62
%description doc
Pablo Greco 7b2c62
This package contains documentation files from the kernel
Pablo Greco 7b2c62
source. Various bits of information about the Linux kernel and the
Pablo Greco 7b2c62
device drivers shipped with it are documented in these files.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
You'll want to install this package if you need a reference to the
Pablo Greco 7b2c62
options that can be passed to Linux kernel modules at load time.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package headers
Pablo Greco 7b2c62
Summary: Header files for the Linux kernel for use by glibc
Pablo Greco 7b2c62
Obsoletes: glibc-kernheaders < 3.0-46
Pablo Greco 7b2c62
Provides: glibc-kernheaders = 3.0-46
Pablo Greco 7b2c62
%if "0%{?variant}"
Pablo Greco 7b2c62
Obsoletes: kernel-headers < %{rpmversion}-%{pkg_release}
Pablo Greco 7b2c62
Provides: kernel-headers = %{rpmversion}-%{pkg_release}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%description headers
Pablo Greco 7b2c62
Kernel-headers includes the C header files that specify the interface
Pablo Greco 7b2c62
between the Linux kernel and userspace libraries and programs.  The
Pablo Greco 7b2c62
header files define structures and constants that are needed for
Pablo Greco 7b2c62
building most standard programs and are also needed for rebuilding the
Pablo Greco 7b2c62
glibc package.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package cross-headers
Pablo Greco 7b2c62
Summary: Header files for the Linux kernel for use by cross-glibc
Pablo Greco 7b2c62
%description cross-headers
Pablo Greco 7b2c62
Kernel-cross-headers includes the C header files that specify the interface
Pablo Greco 7b2c62
between the Linux kernel and userspace libraries and programs.  The
Pablo Greco 7b2c62
header files define structures and constants that are needed for
Pablo Greco 7b2c62
building most standard programs and are also needed for rebuilding the
Pablo Greco 7b2c62
cross-glibc package.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package debuginfo-common-%{_target_cpu}
Pablo Greco 7b2c62
Summary: Kernel source files used by %{name}-debuginfo packages
Pablo Greco 7b2c62
Provides: installonlypkg(kernel)
Pablo Greco 7b2c62
%description debuginfo-common-%{_target_cpu}
Pablo Greco 7b2c62
This package is required by %{name}-debuginfo subpackages.
Pablo Greco 7b2c62
It provides the kernel source files common to all builds.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_perf}
Pablo Greco 7b2c62
%package -n perf
Pablo Greco 7b2c62
Summary: Performance monitoring for the Linux kernel
Pablo Greco 7b2c62
License: GPLv2
Pablo Greco 7b2c62
%description -n perf
Pablo Greco 7b2c62
This package contains the perf tool, which enables performance monitoring
Pablo Greco 7b2c62
of the Linux kernel.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package -n perf-debuginfo
Pablo Greco 7b2c62
Summary: Debug information for package perf
Pablo Greco 7b2c62
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}
Pablo Greco 7b2c62
AutoReqProv: no
Pablo Greco 7b2c62
%description -n perf-debuginfo
Pablo Greco 7b2c62
This package provides debug information for the perf package.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Note that this pattern only works right to match the .build-id
Pablo Greco 7b2c62
# symlinks because of the trailing nonmatching alternation and
Pablo Greco 7b2c62
# the leading .*, because of find-debuginfo.sh's buggy handling
Pablo Greco 7b2c62
# of matching the pattern against the symlinks file.
Pablo Greco 7b2c62
%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_bindir}/perf(\.debug)?|.*%%{_libexecdir}/perf-core/.*|.*%%{_libdir}/traceevent/plugins/.*|.*%%{_libdir}/libperf-jvmti.so(\.debug)?|XXX' -o perf-debuginfo.list}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package -n python3-perf
Pablo Greco 7b2c62
Summary: Python bindings for apps which will manipulate perf events
Pablo Greco 7b2c62
%description -n python3-perf
Pablo Greco 7b2c62
The python3-perf package contains a module that permits applications
Pablo Greco 7b2c62
written in the Python programming language to use the interface
Pablo Greco 7b2c62
to manipulate perf events.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package -n python3-perf-debuginfo
Pablo Greco 7b2c62
Summary: Debug information for package perf python bindings
Pablo Greco 7b2c62
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}
Pablo Greco 7b2c62
AutoReqProv: no
Pablo Greco 7b2c62
%description -n python3-perf-debuginfo
Pablo Greco 7b2c62
This package provides debug information for the perf python bindings.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# the python_sitearch macro should already be defined from above
Pablo Greco 7b2c62
%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{python3_sitearch}/perf.*so(\.debug)?|XXX' -o python3-perf-debuginfo.list}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# with_perf
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_tools}
Pablo Greco 7b2c62
%package -n kernel-tools
Pablo Greco 7b2c62
Summary: Assortment of tools for the Linux kernel
Pablo Greco 7b2c62
License: GPLv2
Pablo Greco 7b2c62
%ifarch %{cpupowerarchs}
Pablo Greco 7b2c62
Provides:  cpupowerutils = 1:009-0.6.p1
Pablo Greco 7b2c62
Obsoletes: cpupowerutils < 1:009-0.6.p1
Pablo Greco 7b2c62
Provides:  cpufreq-utils = 1:009-0.6.p1
Pablo Greco 7b2c62
Provides:  cpufrequtils = 1:009-0.6.p1
Pablo Greco 7b2c62
Obsoletes: cpufreq-utils < 1:009-0.6.p1
Pablo Greco 7b2c62
Obsoletes: cpufrequtils < 1:009-0.6.p1
Pablo Greco 7b2c62
Obsoletes: cpuspeed < 1:1.5-16
Pablo Greco 7b2c62
Requires: kernel-tools-libs = %{version}-%{release}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%define __requires_exclude ^%{_bindir}/python
Pablo Greco 7b2c62
%description -n kernel-tools
Pablo Greco 7b2c62
This package contains the tools/ directory from the kernel source
Pablo Greco 7b2c62
and the supporting documentation.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package -n kernel-tools-libs
Pablo Greco 7b2c62
Summary: Libraries for the kernels-tools
Pablo Greco 7b2c62
License: GPLv2
Pablo Greco 7b2c62
%description -n kernel-tools-libs
Pablo Greco 7b2c62
This package contains the libraries built from the tools/ directory
Pablo Greco 7b2c62
from the kernel source.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package -n kernel-tools-libs-devel
Pablo Greco 7b2c62
Summary: Assortment of tools for the Linux kernel
Pablo Greco 7b2c62
License: GPLv2
Pablo Greco 7b2c62
Requires: kernel-tools = %{version}-%{release}
Pablo Greco 7b2c62
%ifarch %{cpupowerarchs}
Pablo Greco 7b2c62
Provides:  cpupowerutils-devel = 1:009-0.6.p1
Pablo Greco 7b2c62
Obsoletes: cpupowerutils-devel < 1:009-0.6.p1
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Requires: kernel-tools-libs = %{version}-%{release}
Pablo Greco 7b2c62
Provides: kernel-tools-devel
Pablo Greco 7b2c62
%description -n kernel-tools-libs-devel
Pablo Greco 7b2c62
This package contains the development files for the tools/ directory from
Pablo Greco 7b2c62
the kernel source.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package -n kernel-tools-debuginfo
Pablo Greco 7b2c62
Summary: Debug information for package kernel-tools
Pablo Greco 7b2c62
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}
Pablo Greco 7b2c62
AutoReqProv: no
Pablo Greco 7b2c62
%description -n kernel-tools-debuginfo
Pablo Greco 7b2c62
This package provides debug information for package kernel-tools.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Note that this pattern only works right to match the .build-id
Pablo Greco 7b2c62
# symlinks because of the trailing nonmatching alternation and
Pablo Greco 7b2c62
# the leading .*, because of find-debuginfo.sh's buggy handling
Pablo Greco 7b2c62
# of matching the pattern against the symlinks file.
Pablo Greco 7b2c62
%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_bindir}/centrino-decode(\.debug)?|.*%%{_bindir}/powernow-k8-decode(\.debug)?|.*%%{_bindir}/cpupower(\.debug)?|.*%%{_libdir}/libcpupower.*|.*%%{_bindir}/turbostat(\.debug)?|.*%%{_bindir}/x86_energy_perf_policy(\.debug)?|.*%%{_bindir}/tmon(\.debug)?|.*%%{_bindir}/lsgpio(\.debug)?|.*%%{_bindir}/gpio-hammer(\.debug)?|.*%%{_bindir}/gpio-event-mon(\.debug)?|.*%%{_bindir}/iio_event_monitor(\.debug)?|.*%%{_bindir}/iio_generic_buffer(\.debug)?|.*%%{_bindir}/lsiio(\.debug)?|XXX' -o kernel-tools-debuginfo.list}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# with_tools
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_bpftool}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package -n bpftool
Pablo Greco 7b2c62
Summary: Inspection and simple manipulation of eBPF programs and maps
Pablo Greco 7b2c62
License: GPLv2
Pablo Greco 7b2c62
%description -n bpftool
Pablo Greco 7b2c62
This package contains the bpftool, which allows inspection and simple
Pablo Greco 7b2c62
manipulation of eBPF programs and maps.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package -n bpftool-debuginfo
Pablo Greco 7b2c62
Summary: Debug information for package bpftool
Pablo Greco 7b2c62
Group: Development/Debug
Pablo Greco 7b2c62
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}
Pablo Greco 7b2c62
AutoReqProv: no
Pablo Greco 7b2c62
%description -n bpftool-debuginfo
Pablo Greco 7b2c62
This package provides debug information for the bpftool package.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_sbindir}/bpftool(\.debug)?|XXX' -o bpftool-debuginfo.list}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# with_bpftool
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_selftests}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package selftests-internal
Pablo Greco 7b2c62
Summary: Kernel samples and selftests
Pablo Greco 7b2c62
License: GPLv2
Pablo Greco 7b2c62
Requires: binutils, bpftool, iproute-tc, nmap-ncat
Pablo Greco 7b2c62
Requires: kernel-modules-internal = %{version}-%{release}
Pablo Greco 7b2c62
%description selftests-internal
Pablo Greco 7b2c62
Kernel sample programs and selftests.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Note that this pattern only works right to match the .build-id
Pablo Greco 7b2c62
# symlinks because of the trailing nonmatching alternation and
Pablo Greco 7b2c62
# the leading .*, because of find-debuginfo.sh's buggy handling
Pablo Greco 7b2c62
# of matching the pattern against the symlinks file.
Pablo Greco 7b2c62
%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_libexecdir}/(ksamples|kselftests)/.*|XXX' -o selftests-debuginfo.list}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# with_selftests
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_gcov}
Pablo Greco 7b2c62
%package gcov
Pablo Greco 7b2c62
Summary: gcov graph and source files for coverage data collection.
Pablo Greco 7b2c62
%description gcov
Pablo Greco 7b2c62
kernel-gcov includes the gcov graph and source files for gcov coverage collection.
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%package -n kernel-abi-whitelists
Pablo Greco 7b2c62
Summary: The Red Hat Enterprise Linux kernel ABI symbol whitelists
Pablo Greco 7b2c62
AutoReqProv: no
Pablo Greco 7b2c62
%description -n kernel-abi-whitelists
Pablo Greco 7b2c62
The kABI package contains information pertaining to the Red Hat Enterprise
Pablo Greco 7b2c62
Linux kernel ABI, including lists of kernel symbols that are needed by
Pablo Greco 7b2c62
external Linux kernel modules, and a yum plugin to aid enforcement.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_kabidw_base}
Pablo Greco 7b2c62
%package kabidw-base
Pablo Greco 7b2c62
Summary: The baseline dataset for kABI verification using DWARF data
Pablo Greco 7b2c62
Group: System Environment/Kernel
Pablo Greco 7b2c62
AutoReqProv: no
Pablo Greco 7b2c62
%description kabidw-base
Pablo Greco 7b2c62
The kabidw-base package contains data describing the current ABI of the Red Hat
Pablo Greco 7b2c62
Enterprise Linux kernel, suitable for the kabi-dw tool.
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro creates a kernel-<subpackage>-debuginfo package.
Pablo Greco 7b2c62
#	%%kernel_debuginfo_package <subpackage>
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# Explanation of the find_debuginfo_opts: We build multiple kernels (debug
Pablo Greco 7b2c62
# pae etc.) so the regex filters those kernels appropriately. We also
Pablo Greco 7b2c62
# have to package several binaries as part of kernel-devel but getting
Pablo Greco 7b2c62
# unique build-ids is tricky for these userspace binaries. We don't really
Pablo Greco 7b2c62
# care about debugging those so we just filter those out and remove it.
Pablo Greco 7b2c62
%define kernel_debuginfo_package() \
Pablo Greco 7b2c62
%package %{?1:%{1}-}debuginfo\
Pablo Greco 7b2c62
Summary: Debug information for package %{name}%{?1:-%{1}}\
Pablo Greco 7b2c62
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}\
Pablo Greco 7b2c62
Provides: %{name}%{?1:-%{1}}-debuginfo-%{_target_cpu} = %{version}-%{release}\
Pablo Greco 7b2c62
Provides: installonlypkg(kernel)\
Pablo Greco 7b2c62
AutoReqProv: no\
Pablo Greco 7b2c62
%description %{?1:%{1}-}debuginfo\
Pablo Greco 7b2c62
This package provides debug information for package %{name}%{?1:-%{1}}.\
Pablo Greco 7b2c62
This is required to use SystemTap with %{name}%{?1:-%{1}}-%{KVERREL}.\
Pablo Greco 7b2c62
%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*\/usr\/src\/kernels/.*|XXX' -o ignored-debuginfo.list -p '/.*/%%{KVERREL_RE}%{?1:[+]%{1}}/.*|/.*%%{KVERREL_RE}%{?1:\+%{1}}(\.debug)?' -o debuginfo%{?1}.list}\
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro creates a kernel-<subpackage>-devel package.
Pablo Greco 7b2c62
#	%%kernel_devel_package <subpackage> <pretty-name>
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_devel_package() \
Pablo Greco 7b2c62
%package %{?1:%{1}-}devel\
Pablo Greco 7b2c62
Summary: Development package for building kernel modules to match the %{?2:%{2} }kernel\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-devel-%{_target_cpu} = %{version}-%{release}\
Pablo Greco 7b2c62
Provides: kernel-devel-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: kernel-devel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: installonlypkg(kernel)\
Pablo Greco 7b2c62
AutoReqProv: no\
Pablo Greco 7b2c62
Requires(pre): findutils\
Pablo Greco 7b2c62
Requires: findutils\
Pablo Greco 7b2c62
Requires: perl-interpreter\
Pablo Greco 7b2c62
%description %{?1:%{1}-}devel\
Pablo Greco 7b2c62
This package provides kernel headers and makefiles sufficient to build modules\
Pablo Greco 7b2c62
against the %{?2:%{2} }kernel package.\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# kernel-<variant>-ipaclones-internal package
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_ipaclones_package() \
Pablo Greco 7b2c62
%package %{?1:%{1}-}ipaclones-internal\
Pablo Greco 7b2c62
Summary: *.ipa-clones files generated by -fdump-ipa-clones for kernel%{?1:-%{1}}\
Pablo Greco 7b2c62
Group: System Environment/Kernel\
Pablo Greco 7b2c62
AutoReqProv: no\
Pablo Greco 7b2c62
%description %{?1:%{1}-}ipaclones-internal\
Pablo Greco 7b2c62
This package provides *.ipa-clones files.\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro creates a kernel-<subpackage>-modules-internal package.
Pablo Greco 7b2c62
#	%%kernel_modules_internal_package <subpackage> <pretty-name>
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_modules_internal_package() \
Pablo Greco 7b2c62
%package %{?1:%{1}-}modules-internal\
Pablo Greco 7b2c62
Summary: Extra kernel modules to match the %{?2:%{2} }kernel\
Pablo Greco 7b2c62
Group: System Environment/Kernel\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-internal = %{version}-%{release}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: installonlypkg(kernel-module)\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-internal-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
AutoReq: no\
Pablo Greco 7b2c62
AutoProv: yes\
Pablo Greco 7b2c62
%description %{?1:%{1}-}modules-internal\
Pablo Greco 7b2c62
This package provides kernel modules for the %{?2:%{2} }kernel package for Red Hat internal usage.\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro creates a kernel-<subpackage>-modules-extra package.
Pablo Greco 7b2c62
#	%%kernel_modules_extra_package <subpackage> <pretty-name>
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_modules_extra_package() \
Pablo Greco 7b2c62
%package %{?1:%{1}-}modules-extra\
Pablo Greco 7b2c62
Summary: Extra kernel modules to match the %{?2:%{2} }kernel\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-extra = %{version}-%{release}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: installonlypkg(kernel-module)\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
AutoReq: no\
Pablo Greco 7b2c62
AutoProv: yes\
Pablo Greco 7b2c62
%description %{?1:%{1}-}modules-extra\
Pablo Greco 7b2c62
This package provides less commonly used kernel modules for the %{?2:%{2} }kernel package.\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro creates a kernel-<subpackage>-modules package.
Pablo Greco 7b2c62
#	%%kernel_modules_package <subpackage> <pretty-name>
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_modules_package() \
Pablo Greco 7b2c62
%package %{?1:%{1}-}modules\
Pablo Greco 7b2c62
Summary: kernel modules to match the %{?2:%{2}-}core kernel\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-%{_target_cpu} = %{version}-%{release}\
Pablo Greco 7b2c62
Provides: kernel-modules-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: kernel-modules = %{version}-%{release}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: installonlypkg(kernel-module)\
Pablo Greco 7b2c62
Provides: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
AutoReq: no\
Pablo Greco 7b2c62
AutoProv: yes\
Pablo Greco 7b2c62
%description %{?1:%{1}-}modules\
Pablo Greco 7b2c62
This package provides commonly used kernel modules for the %{?2:%{2}-}core kernel package.\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# this macro creates a kernel-<subpackage> meta package.
Pablo Greco 7b2c62
#	%%kernel_meta_package <subpackage>
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_meta_package() \
Pablo Greco 7b2c62
%package %{1}\
Pablo Greco 7b2c62
summary: kernel meta-package for the %{1} kernel\
Pablo Greco 7b2c62
Requires: kernel-%{1}-core-uname-r = %{KVERREL}%{?variant}+%{1}\
Pablo Greco 7b2c62
Requires: kernel-%{1}-modules-uname-r = %{KVERREL}%{?variant}+%{1}\
Pablo Greco 7b2c62
Provides: installonlypkg(kernel)\
Pablo Greco 7b2c62
%description %{1}\
Pablo Greco 7b2c62
The meta-package for the %{1} kernel\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro creates a kernel-<subpackage> and its -devel and -debuginfo too.
Pablo Greco 7b2c62
#	%%define variant_summary The Linux kernel compiled for <configuration>
Pablo Greco 7b2c62
#	%%kernel_variant_package [-n <pretty-name>] <subpackage>
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_variant_package(n:) \
Pablo Greco 7b2c62
%package %{?1:%{1}-}core\
Pablo Greco 7b2c62
Summary: %{variant_summary}\
Pablo Greco 7b2c62
Provides: kernel-%{?1:%{1}-}core-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Pablo Greco 7b2c62
Provides: installonlypkg(kernel)\
Pablo Greco 7b2c62
%ifarch ppc64le\
Pablo Greco 7b2c62
Obsoletes: kernel-bootwrapper\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%{expand:%%kernel_reqprovconf}\
Pablo Greco 7b2c62
%if %{?1:1} %{!?1:0} \
Pablo Greco 7b2c62
%{expand:%%kernel_meta_package %{?1:%{1}}}\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%{expand:%%kernel_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
Pablo Greco 7b2c62
%{expand:%%kernel_modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
Pablo Greco 7b2c62
%{expand:%%kernel_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
Pablo Greco 7b2c62
%{expand:%%kernel_modules_internal_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
Pablo Greco 7b2c62
%{expand:%%kernel_debuginfo_package %{?1:%{1}}}\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Now, each variant package.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_pae}
Pablo Greco 7b2c62
%define variant_summary The Linux kernel compiled for Cortex-A15
Pablo Greco 7b2c62
%kernel_variant_package lpae
Pablo Greco 7b2c62
%description lpae-core
Pablo Greco 7b2c62
This package includes a version of the Linux kernel with support for
Pablo Greco 7b2c62
Cortex-A15 devices with LPAE and HW virtualisation support
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_zfcpdump}
Pablo Greco 7b2c62
%define variant_summary The Linux kernel compiled for zfcpdump usage
Pablo Greco 7b2c62
%kernel_variant_package zfcpdump
Pablo Greco 7b2c62
%description zfcpdump-core
Pablo Greco 7b2c62
The kernel package contains the Linux kernel (vmlinuz) for use by the
Pablo Greco 7b2c62
zfcpdump infrastructure.
Pablo Greco 7b2c62
# with_zfcpdump
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define variant_summary The Linux kernel compiled with extra debugging enabled
Pablo Greco 7b2c62
%kernel_variant_package debug
Pablo Greco 7b2c62
%description debug-core
Pablo Greco 7b2c62
The kernel package contains the Linux kernel (vmlinuz), the core of any
Pablo Greco 7b2c62
Linux operating system.  The kernel handles the basic functions
Pablo Greco 7b2c62
of the operating system:  memory allocation, process allocation, device
Pablo Greco 7b2c62
input and output, etc.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
This variant of the kernel has numerous debugging options enabled.
Pablo Greco 7b2c62
It should only be installed when trying to gather additional information
Pablo Greco 7b2c62
on kernel bugs, as some of these options impact performance noticably.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# And finally the main -core package
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define variant_summary The Linux kernel
Pablo Greco 7b2c62
%kernel_variant_package
Pablo Greco 7b2c62
%description core
Pablo Greco 7b2c62
The kernel package contains the Linux kernel (vmlinuz), the core of any
Pablo Greco 7b2c62
Linux operating system.  The kernel handles the basic functions
Pablo Greco 7b2c62
of the operating system: memory allocation, process allocation, device
Pablo Greco 7b2c62
input and output, etc.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_ipaclones}
Pablo Greco 7b2c62
%kernel_ipaclones_package
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%prep
Pablo Greco 05f52f
%if 0%{?rhel} == 7
Pablo Greco 05f52f
source scl_source enable devtoolset-8 || :
Pablo Greco 05f52f
source scl_source enable llvm-toolset-7.0 || :
Pablo Greco 05f52f
%endif
Pablo Greco 7b2c62
# do a few sanity-checks for --with *only builds
Pablo Greco 7b2c62
%if %{with_baseonly}
Pablo Greco 7b2c62
%if !%{with_up}%{with_pae}
Pablo Greco 7b2c62
echo "Cannot build --with baseonly, up build is disabled"
Pablo Greco 7b2c62
exit 1
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if "%{baserelease}" == "0"
Pablo Greco 7b2c62
echo "baserelease must be greater than zero"
Pablo Greco 7b2c62
exit 1
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# more sanity checking; do it quietly
Pablo Greco 7b2c62
if [ "%{patches}" != "%%{patches}" ] ; then
Pablo Greco 7b2c62
  for patch in %{patches} ; do
Pablo Greco 7b2c62
    if [ ! -f $patch ] ; then
Pablo Greco 7b2c62
      echo "ERROR: Patch  ${patch##/*/}  listed in specfile but is missing"
Pablo Greco 7b2c62
      exit 1
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
  done
Pablo Greco 7b2c62
fi 2>/dev/null
Pablo Greco 7b2c62
Pablo Greco 7b2c62
patch_command='patch -p1 -F1 -s'
Pablo Greco 7b2c62
ApplyPatch()
Pablo Greco 7b2c62
{
Pablo Greco 7b2c62
  local patch=$1
Pablo Greco 7b2c62
  shift
Pablo Greco 7b2c62
  if [ ! -f $RPM_SOURCE_DIR/$patch ]; then
Pablo Greco 7b2c62
    exit 1
Pablo Greco 7b2c62
  fi
Pablo Greco 7b2c62
  if ! grep -E "^Patch[0-9]+: $patch\$" %{_specdir}/${RPM_PACKAGE_NAME%%%%%{?variant}}.spec ; then
Pablo Greco 7b2c62
    if [ "${patch:0:8}" != "patch-5." ] ; then
Pablo Greco 7b2c62
      echo "ERROR: Patch  $patch  not listed as a source patch in specfile"
Pablo Greco 7b2c62
      exit 1
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
  fi 2>/dev/null
Pablo Greco 7b2c62
  case "$patch" in
Pablo Greco 7b2c62
  *.bz2) bunzip2 < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
Pablo Greco 7b2c62
  *.gz)  gunzip  < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
Pablo Greco 7b2c62
  *.xz)  unxz    < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
Pablo Greco 7b2c62
  *) $patch_command ${1+"$@"} < "$RPM_SOURCE_DIR/$patch" ;;
Pablo Greco 7b2c62
  esac
Pablo Greco 7b2c62
}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# don't apply patch if it's empty
Pablo Greco 7b2c62
ApplyOptionalPatch()
Pablo Greco 7b2c62
{
Pablo Greco 7b2c62
  local patch=$1
Pablo Greco 7b2c62
  shift
Pablo Greco 7b2c62
  if [ ! -f $RPM_SOURCE_DIR/$patch ]; then
Pablo Greco 7b2c62
    exit 1
Pablo Greco 7b2c62
  fi
Pablo Greco 7b2c62
  local C=$(wc -l $RPM_SOURCE_DIR/$patch | awk '{print $1}')
Pablo Greco 7b2c62
  if [ "$C" -gt 9 ]; then
Pablo Greco 7b2c62
    ApplyPatch $patch ${1+"$@"}
Pablo Greco 7b2c62
  fi
Pablo Greco 7b2c62
}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# First we unpack the kernel tarball.
Pablo Greco 7b2c62
# If this isn't the first make prep, we use links to the existing clean tarball
Pablo Greco 7b2c62
# which speeds things up quite a bit.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Update to latest upstream.
Pablo Greco 7b2c62
%if 0%{?released_kernel}
Pablo Greco 7b2c62
%define vanillaversion 5.%{base_sublevel}
Pablo Greco 7b2c62
# non-released_kernel case
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%if 0%{?rcrev}
Pablo Greco 7b2c62
%define vanillaversion 5.%{upstream_sublevel}-rc%{rcrev}
Pablo Greco 7b2c62
%if 0%{?gitrev}
Pablo Greco 7b2c62
%define vanillaversion 5.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
# pre-{base_sublevel+1}-rc1 case
Pablo Greco 7b2c62
%if 0%{?gitrev}
Pablo Greco 7b2c62
%define vanillaversion 5.%{base_sublevel}-git%{gitrev}
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%define vanillaversion 5.%{base_sublevel}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# %%{vanillaversion} : the full version name, e.g. 2.6.35-rc6-git3
Pablo Greco 7b2c62
# %%{kversion}       : the base version, e.g. 2.6.34
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Use kernel-%%{kversion}%%{?dist} as the top-level directory name
Pablo Greco 7b2c62
# so we can prep different trees within a single git directory.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Build a list of the other top-level kernel tree directories.
Pablo Greco 7b2c62
# This will be used to hardlink identical vanilla subdirs.
Pablo Greco 7b2c62
sharedirs=$(find "$PWD" -maxdepth 1 -type d -name 'kernel-5.*' \
Pablo Greco 7b2c62
            | grep -x -v "$PWD"/kernel-%{kversion}%{?dist}) ||:
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Delete all old stale trees.
Pablo Greco 7b2c62
if [ -d kernel-%{kversion}%{?dist} ]; then
Pablo Greco 7b2c62
  cd kernel-%{kversion}%{?dist}
Pablo Greco 7b2c62
  for i in linux-*
Pablo Greco 7b2c62
  do
Pablo Greco 7b2c62
     if [ -d $i ]; then
Pablo Greco 7b2c62
       # Just in case we ctrl-c'd a prep already
Pablo Greco 7b2c62
       rm -rf deleteme.%{_target_cpu}
Pablo Greco 7b2c62
       # Move away the stale away, and delete in background.
Pablo Greco 7b2c62
       mv $i deleteme-$i
Pablo Greco 7b2c62
       rm -rf deleteme* &
Pablo Greco 7b2c62
     fi
Pablo Greco 7b2c62
  done
Pablo Greco 7b2c62
  cd ..
Pablo Greco 7b2c62
fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Generate new tree
Pablo Greco 7b2c62
if [ ! -d kernel-%{kversion}%{?dist}/vanilla-%{vanillaversion} ]; then
Pablo Greco 7b2c62
Pablo Greco 7b2c62
  if [ -d kernel-%{kversion}%{?dist}/vanilla-%{kversion} ]; then
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # The base vanilla version already exists.
Pablo Greco 7b2c62
    cd kernel-%{kversion}%{?dist}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Any vanilla-* directories other than the base one are stale.
Pablo Greco 7b2c62
    for dir in vanilla-*; do
Pablo Greco 7b2c62
      [ "$dir" = vanilla-%{kversion} ] || rm -rf $dir &
Pablo Greco 7b2c62
    done
Pablo Greco 7b2c62
Pablo Greco 7b2c62
  else
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    rm -f pax_global_header
Pablo Greco 7b2c62
    # Look for an identical base vanilla dir that can be hardlinked.
Pablo Greco 7b2c62
    for sharedir in $sharedirs ; do
Pablo Greco 7b2c62
      if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{kversion} ]] ; then
Pablo Greco 7b2c62
        break
Pablo Greco 7b2c62
      fi
Pablo Greco 7b2c62
    done
Pablo Greco 7b2c62
    if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{kversion} ]] ; then
Pablo Greco 7b2c62
%setup -q -n kernel-%{kversion}%{?dist} -c -T
Pablo Greco 7b2c62
      cp -al $sharedir/vanilla-%{kversion} .
Pablo Greco 7b2c62
    else
Pablo Greco 7b2c62
%setup -q -n kernel-%{kversion}%{?dist} -c
Pablo Greco 7b2c62
      mv linux-%{kversion} vanilla-%{kversion}
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
  fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if "%{kversion}" != "%{vanillaversion}"
Pablo Greco 7b2c62
Pablo Greco 7b2c62
  for sharedir in $sharedirs ; do
Pablo Greco 7b2c62
    if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{vanillaversion} ]] ; then
Pablo Greco 7b2c62
      break
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
  done
Pablo Greco 7b2c62
  if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{vanillaversion} ]] ; then
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    cp -al $sharedir/vanilla-%{vanillaversion} .
Pablo Greco 7b2c62
Pablo Greco 7b2c62
  else
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Need to apply patches to the base vanilla version.
Pablo Greco 7b2c62
    cp -al vanilla-%{kversion} vanilla-%{vanillaversion}
Pablo Greco 7b2c62
    cd vanilla-%{vanillaversion}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
cp %{SOURCE12} .
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Update vanilla to the latest upstream.
Pablo Greco 7b2c62
# (non-released_kernel case only)
Pablo Greco 7b2c62
%if 0%{?rcrev}
Pablo Greco 7b2c62
    xzcat %{SOURCE5000} | patch -p1 -F1 -s
Pablo Greco 7b2c62
%if 0%{?gitrev}
Pablo Greco 7b2c62
    xzcat %{SOURCE5001} | patch -p1 -F1 -s
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
# pre-{base_sublevel+1}-rc1 case
Pablo Greco 7b2c62
%if 0%{?gitrev}
Pablo Greco 7b2c62
    xzcat %{SOURCE5000} | patch -p1 -F1 -s
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
    git init
Pablo Greco 7b2c62
    git config user.email "kernel-team@fedoraproject.org"
Pablo Greco 7b2c62
    git config user.name "Fedora Kernel Team"
Pablo Greco 7b2c62
    git config gc.auto 0
Pablo Greco 7b2c62
    git add .
Pablo Greco 7b2c62
    git commit -a -q -m "baseline"
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    cd ..
Pablo Greco 7b2c62
Pablo Greco 7b2c62
  fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
else
Pablo Greco 7b2c62
Pablo Greco 7b2c62
  # We already have all vanilla dirs, just change to the top-level directory.
Pablo Greco 7b2c62
  cd kernel-%{kversion}%{?dist}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Now build the fedora kernel tree.
Pablo Greco 7b2c62
cp -al vanilla-%{vanillaversion} linux-%{KVERREL}
26035c
cp -v %{SOURCE9000} linux-%{KVERREL}/certs/rhel.pem
Pablo Greco 7b2c62
Pablo Greco 7b2c62
cd linux-%{KVERREL}
Pablo Greco 7b2c62
if [ ! -d .git ]; then
Pablo Greco 7b2c62
    git init
Pablo Greco 7b2c62
    git config user.email "kernel-team@fedoraproject.org"
Pablo Greco 7b2c62
    git config user.name "Fedora Kernel Team"
Pablo Greco 7b2c62
    git config gc.auto 0
Pablo Greco 7b2c62
    git add .
Pablo Greco 7b2c62
    git commit -a -q -m "baseline"
Pablo Greco 7b2c62
fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# released_kernel with possible stable updates
Pablo Greco 7b2c62
%if 0%{?stable_base}
Pablo Greco 7b2c62
# This is special because the kernel spec is hell and nothing is consistent
Pablo Greco 7b2c62
xzcat %{SOURCE5000} | patch -p1 -F1 -s
Pablo Greco 7b2c62
git commit -a -m "Stable update"
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Note: Even in the "nopatches" path some patches (build tweaks and compile
Pablo Greco 7b2c62
# fixes) will always get applied; see patch defition above for details
Pablo Greco 7b2c62
Pablo Greco 7b2c62
git am %{patches}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# END OF PATCH APPLICATIONS
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Any further pre-build tree manipulations happen here.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
chmod +x scripts/checkpatch.pl
Pablo Greco 7b2c62
mv COPYING COPYING-%{version}-%{release}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# This Prevents scripts/setlocalversion from mucking with our version numbers.
Pablo Greco 7b2c62
touch .scmversion
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Mangle /usr/bin/python shebangs to /usr/bin/python3
Pablo Greco 7b2c62
# Mangle all Python shebangs to be Python 3 explicitly
Pablo Greco 7b2c62
# -p preserves timestamps
Pablo Greco 7b2c62
# -n prevents creating ~backup files
Pablo Greco 7b2c62
# -i specifies the interpreter for the shebang
Pablo Greco 7b2c62
# This fixes errors such as
Pablo Greco 7b2c62
# *** ERROR: ambiguous python shebang in /usr/bin/kvm_stat: #!/usr/bin/python. Change it to python3 (or python2) explicitly.
Pablo Greco 7b2c62
# We patch all sources below for which we got a report/error.
Pablo Greco 7b2c62
pathfix.py -i "%{__python3} %{py3_shbang_opts}" -p -n \
Pablo Greco 7b2c62
	tools/kvm/kvm_stat/kvm_stat \
Pablo Greco 7b2c62
	scripts/show_delta \
Pablo Greco 7b2c62
	scripts/diffconfig \
Pablo Greco 7b2c62
	scripts/bloat-o-meter \
Pablo Greco 7b2c62
	scripts/jobserver-exec \
Pablo Greco 7b2c62
	tools/perf/tests/attr.py \
Pablo Greco 7b2c62
	tools/perf/scripts/python/stat-cpi.py \
Pablo Greco 7b2c62
	tools/perf/scripts/python/sched-migration.py \
Pablo Greco 418f01
	tools/testing/selftests/drivers/net/mlxsw/sharedbuffer_configuration.py \
Pablo Greco 7b2c62
	Documentation \
Pablo Greco 418f01
	scripts/clang-tools/*.py
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# only deal with configs if we are going to build for the arch
Pablo Greco 7b2c62
%ifnarch %nobuildarches
Pablo Greco 7b2c62
Pablo Greco 7b2c62
if [ -L configs ]; then
Pablo Greco 7b2c62
	rm -f configs
Pablo Greco 7b2c62
fi
Pablo Greco 7b2c62
# Deal with configs stuff
Pablo Greco 7b2c62
mkdir configs
Pablo Greco 7b2c62
cd configs
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Drop some necessary files from the source dir into the buildroot
Pablo Greco 7b2c62
cp $RPM_SOURCE_DIR/kernel-*.config .
Pablo Greco 7b2c62
cp %{SOURCE1000} .
Pablo Greco 7b2c62
cp %{SOURCE55} .
Pablo Greco 7b2c62
cp %{SOURCE51} .
Pablo Greco 7b2c62
VERSION=%{version} ./generate_all_configs.sh %{primary_target} %{debugbuildsenabled}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Merge in any user-provided local config option changes
Pablo Greco 7b2c62
%ifnarch %nobuildarches
Pablo Greco 7b2c62
for i in %{all_arch_configs}
Pablo Greco 7b2c62
do
Pablo Greco 7b2c62
  mv $i $i.tmp
Pablo Greco 7b2c62
  ./merge.pl %{SOURCE1000} $i.tmp > $i
Pablo Greco 7b2c62
  rm $i.tmp
Pablo Greco 7b2c62
done
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if !%{debugbuildsenabled}
Pablo Greco 7b2c62
rm -f kernel-%{version}-*debug.config
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# enable GCOV kernel config options if gcov is on
Pablo Greco 7b2c62
%if %{with_gcov}
Pablo Greco 7b2c62
for i in *.config
Pablo Greco 7b2c62
do
Pablo Greco 7b2c62
  sed -i 's/# CONFIG_GCOV_KERNEL is not set/CONFIG_GCOV_KERNEL=y\nCONFIG_GCOV_PROFILE_ALL=y\n/' $i
Pablo Greco 7b2c62
done
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
cp %{SOURCE52} .
Pablo Greco 7b2c62
OPTS=""
Pablo Greco 7b2c62
%if %{with_configchecks}
Pablo Greco 7b2c62
	OPTS="$OPTS -w -n -c"
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
./process_configs.sh $OPTS kernel %{rpmversion}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
cp %{SOURCE56} .
Pablo Greco 7b2c62
RPM_SOURCE_DIR=$RPM_SOURCE_DIR ./update_scripts.sh %{primary_target}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# end of kernel config
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
cd ..
Pablo Greco 7b2c62
# # End of Configs stuff
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# get rid of unwanted files resulting from patch fuzz
Pablo Greco 7b2c62
find . \( -name "*.orig" -o -name "*~" \) -delete >/dev/null
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# remove unnecessary SCM files
Pablo Greco 7b2c62
find . -name .gitignore -delete >/dev/null
Pablo Greco 7b2c62
Pablo Greco 7b2c62
cd ..
Pablo Greco 7b2c62
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
### build
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
%build
Pablo Greco 05f52f
%if 0%{?rhel} == 7
Pablo Greco 05f52f
source scl_source enable devtoolset-8 || :
Pablo Greco 05f52f
source scl_source enable llvm-toolset-7.0 || :
Pablo Greco 05f52f
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_sparse}
Pablo Greco 7b2c62
%define sparse_mflags	C=1
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
cp_vmlinux()
Pablo Greco 7b2c62
{
Pablo Greco 7b2c62
  eu-strip --remove-comment -o "$2" "$1"
Pablo Greco 7b2c62
}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# These are for host programs that get built as part of the kernel and
Pablo Greco 7b2c62
# are required to be packaged in kernel-devel for building external modules.
Pablo Greco 7b2c62
# Since they are userspace binaries, they are required to pickup the hardening
Pablo Greco 7b2c62
# flags defined in the macros. The --build-id=uuid is a trick to get around
Pablo Greco 7b2c62
# debuginfo limitations: Typically, find-debuginfo.sh will update the build
Pablo Greco 7b2c62
# id of all binaries to allow for parllel debuginfo installs. The kernel
Pablo Greco 7b2c62
# can't use this because it breaks debuginfo for the vDSO so we have to
Pablo Greco 7b2c62
# use a special mechanism for kernel and modules to be unique. Unfortunately,
Pablo Greco 7b2c62
# we still have userspace binaries which need unique debuginfo and because
Pablo Greco 7b2c62
# they come from the kernel package, we can't just use find-debuginfo.sh to
Pablo Greco 7b2c62
# rewrite only those binaries. The easiest option right now is just to have
Pablo Greco 7b2c62
# the build id be a uuid for the host programs.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# Note we need to disable these flags for cross builds because the flags
Pablo Greco 7b2c62
# from redhat-rpm-config assume that host == target so target arch
Pablo Greco 7b2c62
# flags cause issues with the host compiler.
Pablo Greco 7b2c62
%if !%{with_cross}
Pablo Greco 7b2c62
%define build_hostcflags  %{?build_cflags}
Pablo Greco 7b2c62
%define build_hostldflags %{?build_ldflags}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define make make %{?cross_opts} %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}"
Pablo Greco 7b2c62
Pablo Greco 7b2c62
BuildKernel() {
Pablo Greco 7b2c62
    MakeTarget=$1
Pablo Greco 7b2c62
    KernelImage=$2
Pablo Greco 7b2c62
    Flavour=$4
Pablo Greco 7b2c62
    DoVDSO=$3
Pablo Greco 7b2c62
    Flav=${Flavour:++${Flavour}}
Pablo Greco 7b2c62
    InstallName=${5:-vmlinuz}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    DoModules=1
Pablo Greco 7b2c62
    if [ "$Flavour" = "zfcpdump" ]; then
Pablo Greco 7b2c62
	    DoModules=0
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Pick the right config file for the kernel we're building
Pablo Greco 7b2c62
    Config=kernel-%{version}-%{_target_cpu}${Flavour:+-${Flavour}}.config
Pablo Greco 7b2c62
    DevelDir=/usr/src/kernels/%{KVERREL}${Flav}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # When the bootable image is just the ELF kernel, strip it.
Pablo Greco 7b2c62
    # We already copy the unstripped file into the debuginfo package.
Pablo Greco 7b2c62
    if [ "$KernelImage" = vmlinux ]; then
Pablo Greco 7b2c62
      CopyKernel=cp_vmlinux
Pablo Greco 7b2c62
    else
Pablo Greco 7b2c62
      CopyKernel=cp
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    KernelVer=%{version}-%{release}.%{_target_cpu}${Flav}
Pablo Greco 7b2c62
    echo BUILDING A KERNEL FOR ${Flavour} %{_target_cpu}...
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    %if 0%{?stable_update}
Pablo Greco 7b2c62
    # make sure SUBLEVEL is incremented on a stable release.  Sigh 3.x.
Pablo Greco 7b2c62
    perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{?stablerev}/" Makefile
Pablo Greco 7b2c62
    %endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # make sure EXTRAVERSION says what we want it to say
Pablo Greco 7b2c62
    perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}${Flav}/" Makefile
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # if pre-rc1 devel kernel, must fix up PATCHLEVEL for our versioning scheme
Pablo Greco 7b2c62
    %if !0%{?rcrev}
Pablo Greco 7b2c62
    %if 0%{?gitrev}
Pablo Greco 7b2c62
    perl -p -i -e 's/^PATCHLEVEL.*/PATCHLEVEL = %{upstream_sublevel}/' Makefile
Pablo Greco 7b2c62
    %endif
Pablo Greco 7b2c62
    %endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # and now to start the build process
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    %{make} %{?_smp_mflags} mrproper
Pablo Greco 7b2c62
    cp configs/$Config .config
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    %if %{signkernel}%{signmodules}
Pablo Greco 7b2c62
    cp $RPM_SOURCE_DIR/x509.genkey certs/.
Pablo Greco 7b2c62
    %endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    Arch=`head -1 .config | cut -b 3-`
Pablo Greco 7b2c62
    echo USING ARCH=$Arch
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    KCFLAGS="%{?kcflags}"
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # add kpatch flags for base kernel
Pablo Greco 7b2c62
    if [ "$Flavour" == "" ]; then
Pablo Greco 7b2c62
        KCFLAGS="$KCFLAGS %{?kpatch_kcflags}"
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    %{make} ARCH=$Arch olddefconfig >/dev/null
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # This ensures build-ids are unique to allow parallel debuginfo
Pablo Greco 7b2c62
    perl -p -i -e "s/^CONFIG_BUILD_SALT.*/CONFIG_BUILD_SALT=\"%{KVERREL}\"/" .config
Pablo Greco 7b2c62
    %{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" %{?_smp_mflags} $MakeTarget %{?sparse_mflags} %{?kernel_mflags}
Pablo Greco 7b2c62
    if [ $DoModules -eq 1 ]; then
Pablo Greco 7b2c62
	%{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" %{?_smp_mflags} modules %{?sparse_mflags} || exit 1
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/%{image_install_path}
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
Pablo Greco 7b2c62
%if %{with_debuginfo}
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/%{image_install_path}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifarch %{arm} aarch64
Pablo Greco 7b2c62
    %{make} ARCH=$Arch dtbs INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer
Pablo Greco 7b2c62
    %{make} ARCH=$Arch dtbs_install INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer
Pablo Greco 7b2c62
    cp -r $RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer $RPM_BUILD_ROOT/lib/modules/$KernelVer/dtb
Pablo Greco 7b2c62
    find arch/$Arch/boot/dts -name '*.dtb' -type f -delete
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Start installing the results
Pablo Greco 7b2c62
    install -m 644 .config $RPM_BUILD_ROOT/boot/config-$KernelVer
Pablo Greco 7b2c62
    install -m 644 .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/config
Pablo Greco 7b2c62
    install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer
Pablo Greco 7b2c62
    install -m 644 System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/System.map
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # We estimate the size of the initramfs because rpm needs to take this size
Pablo Greco 7b2c62
    # into consideration when performing disk space calculations. (See bz #530778)
Pablo Greco 7b2c62
    dd if=/dev/zero of=$RPM_BUILD_ROOT/boot/initramfs-$KernelVer.img bs=1M count=20
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    if [ -f arch/$Arch/boot/zImage.stub ]; then
Pablo Greco 7b2c62
      cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || :
Pablo Greco 7b2c62
      cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/lib/modules/$KernelVer/zImage.stub-$KernelVer || :
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    %if %{signkernel}
Pablo Greco 7b2c62
    if [ "$KernelImage" = vmlinux ]; then
Pablo Greco 7b2c62
        # We can't strip and sign $KernelImage in place, because
Pablo Greco 7b2c62
        # we need to preserve original vmlinux for debuginfo.
Pablo Greco 7b2c62
        # Use a copy for signing.
Pablo Greco 7b2c62
        $CopyKernel $KernelImage $KernelImage.tosign
Pablo Greco 7b2c62
        KernelImage=$KernelImage.tosign
Pablo Greco 7b2c62
        CopyKernel=cp
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Sign the image if we're using EFI
Pablo Greco 7b2c62
    # aarch64 kernels are gziped EFI images
Pablo Greco 7b2c62
    KernelExtension=${KernelImage##*.}
Pablo Greco 7b2c62
    if [ "$KernelExtension" == "gz" ]; then
Pablo Greco 7b2c62
        SignImage=${KernelImage%.*}
Pablo Greco 7b2c62
    else
Pablo Greco 7b2c62
        SignImage=$KernelImage
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    %ifarch x86_64 aarch64
Pablo Greco 7b2c62
    %pesign -s -i $SignImage -o vmlinuz.tmp -a %{secureboot_ca_0} -c %{secureboot_key_0} -n %{pesign_name_0}
Pablo Greco 7b2c62
    %pesign -s -i vmlinuz.tmp -o vmlinuz.signed -a %{secureboot_ca_1} -c %{secureboot_key_1} -n %{pesign_name_1}
Pablo Greco 7b2c62
    rm vmlinuz.tmp
Pablo Greco 7b2c62
    %endif
Pablo Greco 7b2c62
    %ifarch s390x ppc64le
Pablo Greco 7b2c62
    if [ -x /usr/bin/rpm-sign ]; then
Pablo Greco 7b2c62
	rpm-sign --key "%{pesign_name_0}" --lkmsign $SignImage --output vmlinuz.signed
Pablo Greco 7b2c62
    elif [ $DoModules -eq 1 ]; then
Pablo Greco 7b2c62
	chmod +x scripts/sign-file
Pablo Greco 7b2c62
	./scripts/sign-file -p sha256 certs/signing_key.pem certs/signing_key.x509 $SignImage vmlinuz.signed
Pablo Greco 7b2c62
    else
Pablo Greco 7b2c62
	mv $SignImage vmlinuz.signed
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    %endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    if [ ! -s vmlinuz.signed ]; then
Pablo Greco 7b2c62
        echo "pesigning failed"
Pablo Greco 7b2c62
        exit 1
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    mv vmlinuz.signed $SignImage
Pablo Greco 7b2c62
    if [ "$KernelExtension" == "gz" ]; then
Pablo Greco 7b2c62
        gzip -f9 $SignImage
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    # signkernel
Pablo Greco 7b2c62
    %endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    $CopyKernel $KernelImage \
Pablo Greco 7b2c62
                $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
Pablo Greco 7b2c62
    chmod 755 $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
Pablo Greco 7b2c62
    cp $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer $RPM_BUILD_ROOT/lib/modules/$KernelVer/$InstallName
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # hmac sign the kernel for FIPS
Pablo Greco 7b2c62
    echo "Creating hmac file: $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac"
Pablo Greco 7b2c62
    ls -l $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
Pablo Greco 7b2c62
    sha512hmac $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer | sed -e "s,$RPM_BUILD_ROOT,," > $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac;
Pablo Greco 7b2c62
    cp $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac $RPM_BUILD_ROOT/lib/modules/$KernelVer/.vmlinuz.hmac
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    if [ $DoModules -eq 1 ]; then
Pablo Greco 7b2c62
	# Override $(mod-fw) because we don't want it to install any firmware
Pablo Greco 7b2c62
	# we'll get it from the linux-firmware package and we don't want conflicts
Pablo Greco 7b2c62
	%{make} %{?_smp_mflags} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT %{?_smp_mflags} modules_install KERNELRELEASE=$KernelVer mod-fw=
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_gcov}
Pablo Greco 7b2c62
    # install gcov-needed files to $BUILDROOT/$BUILD/...:
Pablo Greco 7b2c62
    #   gcov_info->filename is absolute path
Pablo Greco 7b2c62
    #   gcno references to sources can use absolute paths (e.g. in out-of-tree builds)
Pablo Greco 7b2c62
    #   sysfs symlink targets (set up at compile time) use absolute paths to BUILD dir
Pablo Greco 7b2c62
    find . \( -name '*.gcno' -o -name '*.[chS]' \) -exec install -D '{}' "$RPM_BUILD_ROOT/$(pwd)/{}" \;
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # add an a noop %%defattr statement 'cause rpm doesn't like empty file list files
Pablo Greco 7b2c62
    echo '%%defattr(-,-,-)' > ../kernel${Flavour:+-${Flavour}}-ldsoconf.list
Pablo Greco 7b2c62
    if [ $DoVDSO -ne 0 ]; then
Pablo Greco 7b2c62
        %{make} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
Pablo Greco 7b2c62
        if [ -s ldconfig-kernel.conf ]; then
Pablo Greco 7b2c62
             install -D -m 444 ldconfig-kernel.conf \
Pablo Greco 7b2c62
                $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernel-$KernelVer.conf
Pablo Greco 7b2c62
	     echo /etc/ld.so.conf.d/kernel-$KernelVer.conf >> ../kernel${Flavour:+-${Flavour}}-ldsoconf.list
Pablo Greco 7b2c62
        fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
        rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/vdso/.build-id
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # And save the headers/makefiles etc for building modules against
Pablo Greco 7b2c62
    #
Pablo Greco 7b2c62
    # This all looks scary, but the end result is supposed to be:
Pablo Greco 7b2c62
    # * all arch relevant include/ files
Pablo Greco 7b2c62
    # * all Makefile/Kconfig files
Pablo Greco 7b2c62
    # * all script/ files
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/source
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    (cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source)
Pablo Greco 7b2c62
    # dirs for additional modules per module-init-tools, kbuild/modules.txt
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/internal
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates
Pablo Greco 7b2c62
%if 0%{!?fedora:1}
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/weak-updates
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
    # CONFIG_KERNEL_HEADER_TEST generates some extra files in the process of
Pablo Greco 7b2c62
    # testing so just delete
Pablo Greco 7b2c62
    find . -name *.h.s -delete
Pablo Greco 7b2c62
    # first copy everything
Pablo Greco 7b2c62
    cp --parents `find  -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    cp System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    if [ -s Module.markers ]; then
Pablo Greco 7b2c62
      cp Module.markers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # create the kABI metadata for use in packaging
Pablo Greco 7b2c62
    # NOTENOTE: the name symvers is used by the rpm backend
Pablo Greco 7b2c62
    # NOTENOTE: to discover and run the /usr/lib/rpm/fileattrs/kabi.attr
Pablo Greco 7b2c62
    # NOTENOTE: script which dynamically adds exported kernel symbol
Pablo Greco 7b2c62
    # NOTENOTE: checksums to the rpm metadata provides list.
Pablo Greco 7b2c62
    # NOTENOTE: if you change the symvers name, update the backend too
Pablo Greco 7b2c62
    echo "**** GENERATING kernel ABI metadata ****"
Pablo Greco 7b2c62
    gzip -c9 < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz
Pablo Greco 7b2c62
    cp $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz $RPM_BUILD_ROOT/lib/modules/$KernelVer/symvers.gz
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_kabichk}
Pablo Greco 7b2c62
    echo "**** kABI checking is enabled in kernel SPEC file. ****"
Pablo Greco 7b2c62
    chmod 0755 $RPM_SOURCE_DIR/check-kabi
Pablo Greco 7b2c62
    if [ -e $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour ]; then
Pablo Greco 7b2c62
        cp $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour $RPM_BUILD_ROOT/Module.kabi
Pablo Greco 7b2c62
        $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1
Pablo Greco 7b2c62
        # for now, don't keep it around.
Pablo Greco 7b2c62
        rm $RPM_BUILD_ROOT/Module.kabi
Pablo Greco 7b2c62
    else
Pablo Greco 7b2c62
        echo "**** NOTE: Cannot find reference Module.kabi file. ****"
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_kabidupchk}
Pablo Greco 7b2c62
    echo "**** kABI DUP checking is enabled in kernel SPEC file. ****"
Pablo Greco 7b2c62
    if [ -e $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Flavour ]; then
Pablo Greco 7b2c62
        cp $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Flavour $RPM_BUILD_ROOT/Module.kabi
Pablo Greco 7b2c62
        $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1
Pablo Greco 7b2c62
        # for now, don't keep it around.
Pablo Greco 7b2c62
        rm $RPM_BUILD_ROOT/Module.kabi
Pablo Greco 7b2c62
    else
Pablo Greco 7b2c62
        echo "**** NOTE: Cannot find DUP reference Module.kabi file. ****"
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_kabidw_base}
Pablo Greco 7b2c62
    # Don't build kabi base for debug kernels
Pablo Greco 7b2c62
    if [ "$Flavour" != "kdump" -a "$Flavour" != "debug" ]; then
Pablo Greco 7b2c62
        mkdir -p $RPM_BUILD_ROOT/kabi-dwarf
Pablo Greco 7b2c62
        tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf
Pablo Greco 7b2c62
Pablo Greco 7b2c62
        mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/whitelists
Pablo Greco 7b2c62
        tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/whitelists
Pablo Greco 7b2c62
Pablo Greco 7b2c62
        echo "**** GENERATING DWARF-based kABI baseline dataset ****"
Pablo Greco 7b2c62
        chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh
Pablo Greco 7b2c62
        $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \
Pablo Greco 7b2c62
            "$RPM_BUILD_ROOT/kabi-dwarf/whitelists/kabi-current/kabi_whitelist_%{_target_cpu}" \
Pablo Greco 7b2c62
            "$(pwd)" \
Pablo Greco 7b2c62
            "$RPM_BUILD_ROOT/kabidw-base/%{_target_cpu}${Flavour:+.${Flavour}}" || :
Pablo Greco 7b2c62
Pablo Greco 7b2c62
        rm -rf $RPM_BUILD_ROOT/kabi-dwarf
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_kabidwchk}
Pablo Greco 7b2c62
    if [ "$Flavour" != "kdump" ]; then
Pablo Greco 7b2c62
        mkdir -p $RPM_BUILD_ROOT/kabi-dwarf
Pablo Greco 7b2c62
        tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf
Pablo Greco 7b2c62
        if [ -d "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}" ]; then
Pablo Greco 7b2c62
            mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/whitelists
Pablo Greco 7b2c62
            tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/whitelists
Pablo Greco 7b2c62
Pablo Greco 7b2c62
            echo "**** GENERATING DWARF-based kABI dataset ****"
Pablo Greco 7b2c62
            chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh
Pablo Greco 7b2c62
            $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \
Pablo Greco 7b2c62
                "$RPM_BUILD_ROOT/kabi-dwarf/whitelists/kabi-current/kabi_whitelist_%{_target_cpu}" \
Pablo Greco 7b2c62
                "$(pwd)" \
Pablo Greco 7b2c62
                "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}.tmp" || :
Pablo Greco 7b2c62
Pablo Greco 7b2c62
            echo "**** kABI DWARF-based comparison report ****"
Pablo Greco 7b2c62
            $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh compare \
Pablo Greco 7b2c62
                "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}" \
Pablo Greco 7b2c62
                "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}.tmp" || :
Pablo Greco 7b2c62
            echo "**** End of kABI DWARF-based comparison report ****"
Pablo Greco 7b2c62
        else
Pablo Greco 7b2c62
            echo "**** Baseline dataset for kABI DWARF-BASED comparison report not found ****"
Pablo Greco 7b2c62
        fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
        rm -rf $RPM_BUILD_ROOT/kabi-dwarf
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # then drop all but the needed Makefiles/Kconfig files
Pablo Greco 7b2c62
    rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts
Pablo Greco 7b2c62
    rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
Pablo Greco 7b2c62
    cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/tracing
Pablo Greco 7b2c62
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/spdxcheck.py
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Files for 'make scripts' to succeed with kernel-devel.
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/security/selinux/include
Pablo Greco 7b2c62
    cp -a --parents security/selinux/include/classmap.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    cp -a --parents security/selinux/include/initial_sid_to_string.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/include/tools
Pablo Greco 7b2c62
    cp -a --parents tools/include/tools/be_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
    cp -a --parents tools/include/tools/le_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    if [ -f tools/objtool/objtool ]; then
Pablo Greco 7b2c62
      cp -a tools/objtool/objtool $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/objtool/ || :
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    if [ -d arch/$Arch/scripts ]; then
Pablo Greco 7b2c62
      cp -a arch/$Arch/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || :
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    if [ -f arch/$Arch/*lds ]; then
Pablo Greco 7b2c62
      cp -a arch/$Arch/*lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/ || :
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    if [ -f arch/%{asmarch}/kernel/module.lds ]; then
Pablo Greco 7b2c62
      cp -a --parents arch/%{asmarch}/kernel/module.lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o
Pablo Greco 7b2c62
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o
Pablo Greco 7b2c62
%ifarch ppc64le
Pablo Greco 7b2c62
    cp -a --parents arch/powerpc/lib/crtsavres.[So] $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
    if [ -d arch/%{asmarch}/include ]; then
Pablo Greco 7b2c62
      cp -a --parents arch/%{asmarch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
%ifarch aarch64
Pablo Greco 7b2c62
    # arch/arm64/include/asm/xen references arch/arm
Pablo Greco 7b2c62
    cp -a --parents arch/arm/include/asm/xen $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    # arch/arm64/include/asm/opcodes.h references arch/arm
Pablo Greco 7b2c62
    cp -a --parents arch/arm/include/asm/opcodes.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
    # include the machine specific headers for ARM variants, if available.
Pablo Greco 7b2c62
%ifarch %{arm}
Pablo Greco 7b2c62
    if [ -d arch/%{asmarch}/mach-${Flavour}/include ]; then
Pablo Greco 7b2c62
      cp -a --parents arch/%{asmarch}/mach-${Flavour}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    # include a few files for 'make prepare'
Pablo Greco 7b2c62
    cp -a --parents arch/arm/tools/gen-mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/arm/tools/mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
    cp -a include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
Pablo Greco 7b2c62
%ifarch i686 x86_64
Pablo Greco 7b2c62
    # files for 'make prepare' to succeed with kernel-devel
Pablo Greco 7b2c62
    cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/entry/syscalls/syscalltbl.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/entry/syscalls/syscallhdr.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/entry/syscalls/syscall_64.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/tools/relocs_32.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/tools/relocs_64.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/tools/relocs.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/tools/relocs_common.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/tools/relocs.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents tools/include/tools/le_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/purgatory/purgatory.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/purgatory/stack.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/purgatory/setup-x86_64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/purgatory/entry64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/boot/string.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/boot/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
    cp -a --parents arch/x86/boot/ctype.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
    # Make sure the Makefile and version.h have a matching timestamp so that
Pablo Greco 7b2c62
    # external modules can be built
Pablo Greco 7b2c62
    touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/generated/uapi/linux/version.h
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Copy .config to include/config/auto.conf so "make prepare" is unnecessary.
Pablo Greco 7b2c62
    cp $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/config/auto.conf
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_debuginfo}
Pablo Greco 7b2c62
    eu-readelf -n vmlinux | grep "Build ID" | awk '{print $NF}' > vmlinux.id
Pablo Greco 7b2c62
    cp vmlinux.id $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/vmlinux.id
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    #
Pablo Greco 7b2c62
    # save the vmlinux file for kernel debugging into the kernel-debuginfo rpm
Pablo Greco 7b2c62
    #
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer
Pablo Greco 7b2c62
    cp vmlinux $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # mark modules executable so that strip-to-file can strip them
Pablo Greco 7b2c62
    xargs --no-run-if-empty chmod u+x < modnames
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Generate a list of modules for block and networking.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    grep -F /drivers/ modnames | xargs --no-run-if-empty nm -upA |
Pablo Greco 7b2c62
    sed -n 's,^.*/\([^/]*\.ko\):  *U \(.*\)$,\1 \2,p' > drivers.undef
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    collect_modules_list()
Pablo Greco 7b2c62
    {
Pablo Greco 7b2c62
      sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef |
Pablo Greco 7b2c62
        LC_ALL=C sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1
Pablo Greco 7b2c62
      if [ ! -z "$3" ]; then
Pablo Greco 7b2c62
        sed -r -e "/^($3)\$/d" -i $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1
Pablo Greco 7b2c62
      fi
Pablo Greco 7b2c62
    }
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    collect_modules_list networking \
Pablo Greco 7b2c62
      'register_netdev|ieee80211_register_hw|usbnet_probe|phy_driver_register|rt(l_|2x00)(pci|usb)_probe|register_netdevice'
Pablo Greco 7b2c62
    collect_modules_list block \
Pablo Greco 7b2c62
      'ata_scsi_ioctl|scsi_add_host|scsi_add_host_with_dma|blk_alloc_queue|blk_init_queue|register_mtd_blktrans|scsi_esp_register|scsi_register_device_handler|blk_queue_physical_block_size' 'pktcdvd.ko|dm-mod.ko'
Pablo Greco 7b2c62
    collect_modules_list drm \
Pablo Greco 7b2c62
      'drm_open|drm_init'
Pablo Greco 7b2c62
    collect_modules_list modesetting \
Pablo Greco 7b2c62
      'drm_crtc_init'
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # detect missing or incorrect license tags
Pablo Greco 7b2c62
    ( find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name '*.ko' | xargs /sbin/modinfo -l | \
Pablo Greco 7b2c62
        grep -E -v 'GPL( v2)?$|Dual BSD/GPL$|Dual MPL/GPL$|GPL and additional rights$' ) && exit 1
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # remove files that will be auto generated by depmod at rpm -i time
Pablo Greco 7b2c62
    pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/
Pablo Greco 7b2c62
        rm -f modules.{alias*,builtin.bin,dep*,*map,symbols*,devname,softdep}
Pablo Greco 7b2c62
    popd
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Call the modules-extra script to move things around
Pablo Greco 7b2c62
    %{SOURCE24} $RPM_BUILD_ROOT/lib/modules/$KernelVer $RPM_SOURCE_DIR/mod-extra.list
Pablo Greco 7b2c62
    # Blacklist net autoloadable modules in modules-extra
Pablo Greco 7b2c62
    %{SOURCE19} $RPM_BUILD_ROOT lib/modules/$KernelVer
Pablo Greco 7b2c62
    # Call the modules-extra script for internal modules
Pablo Greco 7b2c62
    %{SOURCE24} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE54} internal
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    #
Pablo Greco 7b2c62
    # Generate the kernel-core and kernel-modules files lists
Pablo Greco 7b2c62
    #
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Copy the System.map file for depmod to use, and create a backup of the
Pablo Greco 7b2c62
    # full module tree so we can restore it after we're done filtering
Pablo Greco 7b2c62
    cp System.map $RPM_BUILD_ROOT/.
Pablo Greco 7b2c62
    pushd $RPM_BUILD_ROOT
Pablo Greco 7b2c62
    mkdir restore
Pablo Greco 7b2c62
    cp -r lib/modules/$KernelVer/* restore/.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # don't include anything going into k-m-e and k-m-i in the file lists
Pablo Greco 7b2c62
    rm -rf lib/modules/$KernelVer/{extra,internal}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    if [ $DoModules -eq 1 ]; then
Pablo Greco 7b2c62
	# Find all the module files and filter them out into the core and
Pablo Greco 7b2c62
	# modules lists.  This actually removes anything going into -modules
Pablo Greco 7b2c62
	# from the dir.
Pablo Greco 7b2c62
	find lib/modules/$KernelVer/kernel -name *.ko | sort -n > modules.list
Pablo Greco 7b2c62
	cp $RPM_SOURCE_DIR/filter-*.sh .
Pablo Greco 7b2c62
	./filter-modules.sh modules.list %{_target_cpu}
Pablo Greco 7b2c62
	rm filter-*.sh
Pablo Greco 7b2c62
Pablo Greco 7b2c62
	# Run depmod on the resulting module tree and make sure it isn't broken
Pablo Greco 7b2c62
	depmod -b . -aeF ./System.map $KernelVer &> depmod.out
Pablo Greco 7b2c62
	if [ -s depmod.out ]; then
Pablo Greco 7b2c62
	    echo "Depmod failure"
Pablo Greco 7b2c62
	    cat depmod.out
Pablo Greco 7b2c62
	    exit 1
Pablo Greco 7b2c62
	else
Pablo Greco 7b2c62
	    rm depmod.out
Pablo Greco 7b2c62
	fi
Pablo Greco 7b2c62
    else
Pablo Greco 7b2c62
	# Ensure important files/directories exist to let the packaging succeed
Pablo Greco 7b2c62
	echo '%%defattr(-,-,-)' > modules.list
Pablo Greco 7b2c62
	echo '%%defattr(-,-,-)' > k-d.list
Pablo Greco 7b2c62
	mkdir -p lib/modules/$KernelVer/kernel
Pablo Greco 7b2c62
	# Add files usually created by make modules, needed to prevent errors
Pablo Greco 7b2c62
	# thrown by depmod during package installation
Pablo Greco 7b2c62
	touch lib/modules/$KernelVer/modules.order
Pablo Greco 7b2c62
	touch lib/modules/$KernelVer/modules.builtin
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # remove files that will be auto generated by depmod at rpm -i time
Pablo Greco 7b2c62
    pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/
Pablo Greco 7b2c62
        rm -f modules.{alias*,builtin.bin,dep*,*map,symbols*,devname,softdep}
Pablo Greco 7b2c62
    popd
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Go back and find all of the various directories in the tree.  We use this
Pablo Greco 7b2c62
    # for the dir lists in kernel-core
Pablo Greco 7b2c62
    find lib/modules/$KernelVer/kernel -mindepth 1 -type d | sort -n > module-dirs.list
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Cleanup
Pablo Greco 7b2c62
    rm System.map
Pablo Greco 7b2c62
    cp -r restore/* lib/modules/$KernelVer/.
Pablo Greco 7b2c62
    rm -rf restore
Pablo Greco 7b2c62
    popd
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Make sure the files lists start with absolute paths or rpmbuild fails.
Pablo Greco 7b2c62
    # Also add in the dir entries
Pablo Greco 7b2c62
    sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/k-d.list > ../kernel${Flavour:+-${Flavour}}-modules.list
Pablo Greco 7b2c62
    sed -e 's/^lib*/%dir \/lib/' %{?zipsed} $RPM_BUILD_ROOT/module-dirs.list > ../kernel${Flavour:+-${Flavour}}-core.list
Pablo Greco 7b2c62
    sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/modules.list >> ../kernel${Flavour:+-${Flavour}}-core.list
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Cleanup
Pablo Greco 7b2c62
    rm -f $RPM_BUILD_ROOT/k-d.list
Pablo Greco 7b2c62
    rm -f $RPM_BUILD_ROOT/modules.list
Pablo Greco 7b2c62
    rm -f $RPM_BUILD_ROOT/module-dirs.list
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{signmodules}
Pablo Greco 7b2c62
    if [ $DoModules -eq 1 ]; then
Pablo Greco 7b2c62
	# Save the signing keys so we can sign the modules in __modsign_install_post
Pablo Greco 7b2c62
	cp certs/signing_key.pem certs/signing_key.pem.sign${Flav}
Pablo Greco 7b2c62
	cp certs/signing_key.x509 certs/signing_key.x509.sign${Flav}
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Move the devel headers out of the root file system
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT/usr/src/kernels
Pablo Greco 7b2c62
    mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # This is going to create a broken link during the build, but we don't use
Pablo Greco 7b2c62
    # it after this point.  We need the link to actually point to something
Pablo Greco 7b2c62
    # when kernel-devel is installed, and a relative link doesn't work across
Pablo Greco 7b2c62
    # the F17 UsrMove feature.
Pablo Greco 7b2c62
    ln -sf $DevelDir $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # prune junk from kernel-devel
Pablo Greco 7b2c62
    find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -delete
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # build a BLS config for this kernel
Pablo Greco 7b2c62
    %{SOURCE53} "$KernelVer" "$RPM_BUILD_ROOT" "%{?variant}"
Pablo Greco 7b2c62
Pablo Greco 7b2c62
    # Red Hat UEFI Secure Boot CA cert, which can be used to authenticate the kernel
Pablo Greco 7b2c62
    mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer
Pablo Greco 7b2c62
    %ifarch x86_64 aarch64
Pablo Greco 7b2c62
       install -m 0644 %{secureboot_ca_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca-20200609.cer
Pablo Greco 7b2c62
       install -m 0644 %{secureboot_ca_1} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca-20140212.cer
Pablo Greco 7b2c62
       ln -s kernel-signing-ca-20200609.cer $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
Pablo Greco 7b2c62
    %else
Pablo Greco 7b2c62
       install -m 0644 %{secureboot_ca_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
Pablo Greco 7b2c62
    %endif
Pablo Greco 7b2c62
    %ifarch s390x ppc64le
Pablo Greco 7b2c62
    if [ $DoModules -eq 1 ]; then
Pablo Greco 7b2c62
	if [ -x /usr/bin/rpm-sign ]; then
Pablo Greco 7b2c62
	    install -m 0644 %{secureboot_key_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename}
Pablo Greco 7b2c62
	else
Pablo Greco 7b2c62
	    install -m 0644 certs/signing_key.x509.sign${Flav} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
Pablo Greco 7b2c62
	    openssl x509 -in certs/signing_key.pem.sign${Flav} -outform der -out $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename}
Pablo Greco 7b2c62
	    chmod 0644 $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename}
Pablo Greco 7b2c62
	fi
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    %endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_ipaclones}
Pablo Greco 7b2c62
    MAXPROCS=$(echo %{?_smp_mflags} | sed -n 's/-j\s*\([0-9]\+\)/\1/p')
Pablo Greco 7b2c62
    if [ -z "$MAXPROCS" ]; then
Pablo Greco 7b2c62
        MAXPROCS=1
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
    if [ "$Flavour" == "" ]; then
Pablo Greco 7b2c62
        mkdir -p $RPM_BUILD_ROOT/$DevelDir-ipaclones
Pablo Greco 7b2c62
        find . -name '*.ipa-clones' | xargs -i{} -r -n 1 -P $MAXPROCS install -m 644 -D "{}" "$RPM_BUILD_ROOT/$DevelDir-ipaclones/{}"
Pablo Greco 7b2c62
    fi
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
# DO it...
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# prepare directories
Pablo Greco 7b2c62
rm -rf $RPM_BUILD_ROOT
Pablo Greco 7b2c62
mkdir -p $RPM_BUILD_ROOT/boot
Pablo Greco 7b2c62
mkdir -p $RPM_BUILD_ROOT%{_libexecdir}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
cd linux-%{KVERREL}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_debug}
Pablo Greco 7b2c62
BuildKernel %make_target %kernel_image %{_use_vdso} debug
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_zfcpdump}
Pablo Greco 7b2c62
BuildKernel %make_target %kernel_image %{_use_vdso} zfcpdump
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_pae}
Pablo Greco 7b2c62
BuildKernel %make_target %kernel_image %{use_vdso} lpae
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_up}
Pablo Greco 7b2c62
BuildKernel %make_target %kernel_image %{_use_vdso}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%global perf_make \
Pablo Greco 7b2c62
  make -s EXTRA_CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" %{?cross_opts} -C tools/perf V=1 NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=%{_prefix} PYTHON=%{__python3}
Pablo Greco 7b2c62
%if %{with_perf}
Pablo Greco 7b2c62
# perf
Pablo Greco 7b2c62
# make sure check-headers.sh is executable
Pablo Greco 7b2c62
chmod +x tools/perf/check-headers.sh
Pablo Greco 7b2c62
%{perf_make} DESTDIR=$RPM_BUILD_ROOT all
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%global tools_make \
Pablo Greco 7b2c62
  %{make} CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" V=1
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_tools}
Pablo Greco 7b2c62
%ifarch %{cpupowerarchs}
Pablo Greco 7b2c62
# cpupower
Pablo Greco 7b2c62
# make sure version-gen.sh is executable.
Pablo Greco 7b2c62
chmod +x tools/power/cpupower/utils/version-gen.sh
Pablo Greco 7b2c62
%{tools_make} %{?_smp_mflags} -C tools/power/cpupower CPUFREQ_BENCH=false
Pablo Greco 7b2c62
%ifarch x86_64
Pablo Greco 7b2c62
    pushd tools/power/cpupower/debug/x86_64
Pablo Greco 7b2c62
    %{tools_make} %{?_smp_mflags} centrino-decode powernow-k8-decode
Pablo Greco 7b2c62
    popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%ifarch x86_64
Pablo Greco 7b2c62
   pushd tools/power/x86/x86_energy_perf_policy/
Pablo Greco 7b2c62
   %{tools_make}
Pablo Greco 7b2c62
   popd
Pablo Greco 7b2c62
   pushd tools/power/x86/turbostat
Pablo Greco 7b2c62
   %{tools_make}
Pablo Greco 7b2c62
   popd
Pablo Greco 7b2c62
   pushd tools/power/x86/intel-speed-select
Pablo Greco 7b2c62
   %{make}
Pablo Greco 7b2c62
   popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
pushd tools/thermal/tmon/
Pablo Greco 7b2c62
%{tools_make}
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
pushd tools/iio/
Pablo Greco 7b2c62
%{make}
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
pushd tools/gpio/
Pablo Greco 7b2c62
%{make}
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%global bpftool_make \
Pablo Greco 7b2c62
  make EXTRA_CFLAGS="${RPM_OPT_FLAGS}" EXTRA_LDFLAGS="%{__global_ldflags}" DESTDIR=$RPM_BUILD_ROOT V=1
Pablo Greco 7b2c62
%if %{with_bpftool}
Pablo Greco 7b2c62
pushd tools/bpf/bpftool
Pablo Greco 7b2c62
%{bpftool_make}
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_selftests}
Pablo Greco 7b2c62
%{make} -s ARCH=$Arch V=1 samples/bpf/
Pablo Greco 7b2c62
pushd tools/testing/selftests
Pablo Greco 7b2c62
# We need to install here because we need to call make with ARCH set which
Pablo Greco 7b2c62
# doesn't seem possible to do in the install section.
Pablo Greco 7b2c62
%{make} -s ARCH=$Arch V=1 TARGETS="bpf livepatch net" INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests install
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_doc}
Pablo Greco 7b2c62
# Make the HTML pages.
Pablo Greco 7b2c62
make PYTHON=/usr/bin/python3 htmldocs || %{doc_build_fail}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# sometimes non-world-readable files sneak into the kernel source tree
Pablo Greco 7b2c62
chmod -R a=rX Documentation
Pablo Greco 7b2c62
find Documentation -type d | xargs chmod u+w
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# In the modsign case, we do 3 things.  1) We check the "flavour" and hard
Pablo Greco 7b2c62
# code the value in the following invocations.  This is somewhat sub-optimal
Pablo Greco 7b2c62
# but we're doing this inside of an RPM macro and it isn't as easy as it
Pablo Greco 7b2c62
# could be because of that.  2) We restore the .tmp_versions/ directory from
Pablo Greco 7b2c62
# the one we saved off in BuildKernel above.  This is to make sure we're
Pablo Greco 7b2c62
# signing the modules we actually built/installed in that flavour.  3) We
Pablo Greco 7b2c62
# grab the arch and invoke mod-sign.sh command to actually sign the modules.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# We have to do all of those things _after_ find-debuginfo runs, otherwise
Pablo Greco 7b2c62
# that will strip the signature off of the modules.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# Don't sign modules for the zfcpdump flavour as it is monolithic.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define __modsign_install_post \
Pablo Greco 7b2c62
  if [ "%{signmodules}" -eq "1" ]; then \
Pablo Greco 7b2c62
    if [ "%{with_pae}" -ne "0" ]; then \
Pablo Greco 7b2c62
       %{modsign_cmd} certs/signing_key.pem.sign+lpae certs/signing_key.x509.sign+lpae $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+lpae/ \
Pablo Greco 7b2c62
    fi \
Pablo Greco 7b2c62
    if [ "%{with_debug}" -ne "0" ]; then \
Pablo Greco 7b2c62
      %{modsign_cmd} certs/signing_key.pem.sign+debug certs/signing_key.x509.sign+debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+debug/ \
Pablo Greco 7b2c62
    fi \
Pablo Greco 7b2c62
    if [ "%{with_up}" -ne "0" ]; then \
Pablo Greco 7b2c62
      %{modsign_cmd} certs/signing_key.pem.sign certs/signing_key.x509.sign $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/ \
Pablo Greco 7b2c62
    fi \
Pablo Greco 7b2c62
  fi \
Pablo Greco 7b2c62
  if [ "%{zipmodules}" -eq "1" ]; then \
Pablo Greco 7b2c62
    find $RPM_BUILD_ROOT/lib/modules/ -type f -name '*.ko' | xargs -P%{zcpu} xz; \
Pablo Greco 7b2c62
  fi \
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
### Special hacks for debuginfo subpackages.
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# This macro is used by %%install, so we must redefine it before that.
Pablo Greco 7b2c62
%define debug_package %{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_debuginfo}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifnarch noarch
Pablo Greco 7b2c62
%global __debug_package 1
Pablo Greco 7b2c62
%files -f debugfiles.list debuginfo-common-%{_target_cpu}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# We don't want to package debuginfo for self-tests and samples but
Pablo Greco 7b2c62
# we have to delete them to avoid an error messages about unpackaged
Pablo Greco 7b2c62
# files.
Pablo Greco 7b2c62
# Delete the debuginfo for for kernel-devel files
Pablo Greco 7b2c62
%define __remove_unwanted_dbginfo_install_post \
Pablo Greco 7b2c62
  if [ "%{with_selftests}" -ne "0" ]; then \
Pablo Greco 7b2c62
    rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/ksamples; \
Pablo Greco 7b2c62
    rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/kselftests; \
Pablo Greco 7b2c62
  fi \
Pablo Greco 7b2c62
  rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/src; \
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# Disgusting hack alert! We need to ensure we sign modules *after* all
Pablo Greco 7b2c62
# invocations of strip occur, which is in __debug_install_post if
Pablo Greco 7b2c62
# find-debuginfo.sh runs, and __os_install_post if not.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define __spec_install_post \
Pablo Greco 7b2c62
  %{?__debug_package:%{__debug_install_post}}\
Pablo Greco 7b2c62
  %{__arch_install_post}\
Pablo Greco 7b2c62
  %{__os_install_post}\
Pablo Greco 7b2c62
  %{__remove_unwanted_dbginfo_install_post}\
Pablo Greco 7b2c62
  %{__modsign_install_post}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
### install
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%install
Pablo Greco 05f52f
%if 0%{?rhel} == 7
Pablo Greco 05f52f
source scl_source enable devtoolset-8 || :
Pablo Greco 05f52f
source scl_source enable llvm-toolset-7.0 || :
Pablo Greco 05f52f
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
cd linux-%{KVERREL}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_doc}
Pablo Greco 7b2c62
docdir=$RPM_BUILD_ROOT%{_datadir}/doc/kernel-doc-%{rpmversion}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# copy the source over
Pablo Greco 7b2c62
mkdir -p $docdir
Pablo Greco 7b2c62
tar -h -f - --exclude=man --exclude='.*' -c Documentation | tar xf - -C $docdir
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# with_doc
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# We have to do the headers install before the tools install because the
Pablo Greco 7b2c62
# kernel headers_install will remove any header files in /usr/include that
Pablo Greco 7b2c62
# it doesn't install itself.
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_headers}
Pablo Greco 7b2c62
# Install kernel headers
Pablo Greco 7b2c62
make ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_install
Pablo Greco 7b2c62
Pablo Greco 7b2c62
find $RPM_BUILD_ROOT/usr/include \
Pablo Greco 7b2c62
     \( -name .install -o -name .check -o \
Pablo Greco 7b2c62
        -name ..install.cmd -o -name ..check.cmd \) -delete
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_cross_headers}
Pablo Greco 7b2c62
%if 0%{?fedora}
Pablo Greco 7b2c62
HDR_ARCH_LIST='arm arm64 powerpc s390 x86'
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
HDR_ARCH_LIST='arm64 powerpc s390 x86'
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
mkdir -p $RPM_BUILD_ROOT/usr/tmp-headers
Pablo Greco 7b2c62
Pablo Greco 7b2c62
for arch in $HDR_ARCH_LIST; do
Pablo Greco 7b2c62
	mkdir $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch}
Pablo Greco 7b2c62
	make ARCH=${arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch} headers_install
Pablo Greco 7b2c62
done
Pablo Greco 7b2c62
Pablo Greco 7b2c62
find $RPM_BUILD_ROOT/usr/tmp-headers \
Pablo Greco 7b2c62
     \( -name .install -o -name .check -o \
Pablo Greco 7b2c62
        -name ..install.cmd -o -name ..check.cmd \) -delete
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# Copy all the architectures we care about to their respective asm directories
Pablo Greco 7b2c62
for arch in $HDR_ARCH_LIST ; do
Pablo Greco 7b2c62
	mkdir -p $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include
Pablo Greco 7b2c62
	mv $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch}/include/* $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/
Pablo Greco 7b2c62
done
Pablo Greco 7b2c62
Pablo Greco 7b2c62
rm -rf $RPM_BUILD_ROOT/usr/tmp-headers
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_kernel_abi_whitelists}
Pablo Greco 7b2c62
# kabi directory
Pablo Greco 7b2c62
INSTALL_KABI_PATH=$RPM_BUILD_ROOT/lib/modules/
Pablo Greco 7b2c62
mkdir -p $INSTALL_KABI_PATH
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# install kabi releases directories
Pablo Greco 7b2c62
tar xjvf %{SOURCE300} -C $INSTALL_KABI_PATH
Pablo Greco 7b2c62
# with_kernel_abi_whitelists
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_perf}
Pablo Greco 7b2c62
# perf tool binary and supporting scripts/binaries
Pablo Greco 7b2c62
%{perf_make} DESTDIR=$RPM_BUILD_ROOT lib=%{_lib} install-bin install-traceevent-plugins
Pablo Greco 7b2c62
# remove the 'trace' symlink.
Pablo Greco 7b2c62
rm -f %{buildroot}%{_bindir}/trace
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# For both of the below, yes, this should be using a macro but right now
Pablo Greco 7b2c62
# it's hard coded and we don't actually want it anyway right now.
Pablo Greco 7b2c62
# Whoever wants examples can fix it up!
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# remove examples
Pablo Greco 7b2c62
rm -rf %{buildroot}/usr/lib/perf/examples
Pablo Greco 7b2c62
# remove the stray files that somehow got packaged
Pablo Greco 7b2c62
rm -rf %{buildroot}/usr/lib/perf/include/bpf/bpf.h
Pablo Greco 7b2c62
rm -rf %{buildroot}/usr/lib/perf/include/bpf/stdio.h
Pablo Greco 7b2c62
rm -rf %{buildroot}/usr/lib/perf/include/bpf/linux/socket.h
Pablo Greco 7b2c62
rm -rf %{buildroot}/usr/lib/perf/include/bpf/pid_filter.h
Pablo Greco 7b2c62
rm -rf %{buildroot}/usr/lib/perf/include/bpf/unistd.h
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# python-perf extension
Pablo Greco 7b2c62
%{perf_make} DESTDIR=$RPM_BUILD_ROOT install-python_ext
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# perf man pages (note: implicit rpm magic compresses them later)
Pablo Greco 7b2c62
mkdir -p %{buildroot}/%{_mandir}/man1
Pablo Greco 7b2c62
%{perf_make} DESTDIR=$RPM_BUILD_ROOT install-man
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_tools}
Pablo Greco 7b2c62
%ifarch %{cpupowerarchs}
Pablo Greco 7b2c62
%{make} -C tools/power/cpupower DESTDIR=$RPM_BUILD_ROOT libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
Pablo Greco 7b2c62
rm -f %{buildroot}%{_libdir}/*.{a,la}
Pablo Greco 7b2c62
%find_lang cpupower
Pablo Greco 7b2c62
mv cpupower.lang ../
Pablo Greco 7b2c62
%ifarch x86_64
Pablo Greco 7b2c62
    pushd tools/power/cpupower/debug/x86_64
Pablo Greco 7b2c62
    install -m755 centrino-decode %{buildroot}%{_bindir}/centrino-decode
Pablo Greco 7b2c62
    install -m755 powernow-k8-decode %{buildroot}%{_bindir}/powernow-k8-decode
Pablo Greco 7b2c62
    popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
chmod 0755 %{buildroot}%{_libdir}/libcpupower.so*
Pablo Greco 7b2c62
mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
Pablo Greco 7b2c62
install -m644 %{SOURCE2000} %{buildroot}%{_unitdir}/cpupower.service
Pablo Greco 7b2c62
install -m644 %{SOURCE2001} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%ifarch x86_64
Pablo Greco 7b2c62
   mkdir -p %{buildroot}%{_mandir}/man8
Pablo Greco 7b2c62
   pushd tools/power/x86/x86_energy_perf_policy
Pablo Greco 7b2c62
   %{tools_make} DESTDIR=%{buildroot} install
Pablo Greco 7b2c62
   popd
Pablo Greco 7b2c62
   pushd tools/power/x86/turbostat
Pablo Greco 7b2c62
   %{tools_make} DESTDIR=%{buildroot} install
Pablo Greco 7b2c62
   popd
Pablo Greco 7b2c62
   pushd tools/power/x86/intel-speed-select
Pablo Greco 7b2c62
   %{tools_make} CFLAGS+="-D_GNU_SOURCE -Iinclude" DESTDIR=%{buildroot} install
Pablo Greco 7b2c62
   popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
pushd tools/thermal/tmon
Pablo Greco 7b2c62
%{tools_make} INSTALL_ROOT=%{buildroot} install
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
pushd tools/iio
Pablo Greco 7b2c62
make DESTDIR=%{buildroot} install
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
pushd tools/gpio
Pablo Greco 7b2c62
make DESTDIR=%{buildroot} install
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
pushd tools/kvm/kvm_stat
Pablo Greco 7b2c62
make INSTALL_ROOT=%{buildroot} install-tools
Pablo Greco 7b2c62
make INSTALL_ROOT=%{buildroot} install-man
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_bpftool}
Pablo Greco 7b2c62
pushd tools/bpf/bpftool
Pablo Greco 7b2c62
%{bpftool_make} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_selftests}
Pablo Greco 7b2c62
pushd samples
Pablo Greco 7b2c62
install -d %{buildroot}%{_libexecdir}/ksamples
Pablo Greco 7b2c62
# install bpf samples
Pablo Greco 7b2c62
pushd bpf
Pablo Greco 7b2c62
install -d %{buildroot}%{_libexecdir}/ksamples/bpf
Pablo Greco 7b2c62
find -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/bpf \;
Pablo Greco 7b2c62
install -m755 *.sh %{buildroot}%{_libexecdir}/ksamples/bpf
Pablo Greco 7b2c62
# test_lwt_bpf.sh compiles test_lwt_bpf.c when run; this works only from the
Pablo Greco 7b2c62
# kernel tree. Just remove it.
Pablo Greco 7b2c62
rm %{buildroot}%{_libexecdir}/ksamples/bpf/test_lwt_bpf.sh
Pablo Greco 7b2c62
install -m644 tcp_bpf.readme %{buildroot}%{_libexecdir}/ksamples/bpf
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
# install pktgen samples
Pablo Greco 7b2c62
pushd pktgen
Pablo Greco 7b2c62
install -d %{buildroot}%{_libexecdir}/ksamples/pktgen
Pablo Greco 7b2c62
find . -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \;
Pablo Greco 7b2c62
find . -type f ! -executable -exec install -m644 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \;
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
# install drivers/net/mlxsw selftests
Pablo Greco 7b2c62
pushd tools/testing/selftests/drivers/net/mlxsw
Pablo Greco 7b2c62
find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \;
Pablo Greco 7b2c62
find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \;
Pablo Greco 7b2c62
find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \;
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
# install net/forwarding selftests
Pablo Greco 7b2c62
pushd tools/testing/selftests/net/forwarding
Pablo Greco 7b2c62
find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \;
Pablo Greco 7b2c62
find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \;
Pablo Greco 7b2c62
find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \;
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
# install tc-testing selftests
Pablo Greco 7b2c62
pushd tools/testing/selftests/tc-testing
Pablo Greco 7b2c62
find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \;
Pablo Greco 7b2c62
find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \;
Pablo Greco 7b2c62
find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \;
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
# install livepatch selftests
Pablo Greco 7b2c62
pushd tools/testing/selftests/livepatch
Pablo Greco 7b2c62
find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \;
Pablo Greco 7b2c62
find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \;
Pablo Greco 7b2c62
find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \;
Pablo Greco 7b2c62
popd
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# We have to do the headers checksum calculation after the tools install because
Pablo Greco 7b2c62
# these might end up installing their own set of headers on top of kernel's
Pablo Greco 7b2c62
%if %{with_headers}
Pablo Greco 7b2c62
# compute a content hash to export as Provides: kernel-headers-checksum
Pablo Greco 7b2c62
HEADERS_CHKSUM=$(export LC_ALL=C; find $RPM_BUILD_ROOT/usr/include -type f -name "*.h" \
Pablo Greco 7b2c62
			! -path $RPM_BUILD_ROOT/usr/include/linux/version.h | \
Pablo Greco 7b2c62
		 sort | xargs cat | sha1sum - | cut -f 1 -d ' ');
Pablo Greco 7b2c62
# export the checksum via usr/include/linux/version.h, so the dynamic
Pablo Greco 7b2c62
# find-provides can grab the hash to update it accordingly
Pablo Greco 7b2c62
echo "#define KERNEL_HEADERS_CHECKSUM \"$HEADERS_CHKSUM\"" >> $RPM_BUILD_ROOT/usr/include/linux/version.h
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
### clean
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
### scripts
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_tools}
Pablo Greco 7b2c62
%post -n kernel-tools-libs
Pablo Greco 7b2c62
/sbin/ldconfig
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%postun -n kernel-tools-libs
Pablo Greco 7b2c62
/sbin/ldconfig
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro defines a %%post script for a kernel*-devel package.
Pablo Greco 7b2c62
#	%%kernel_devel_post [<subpackage>]
Pablo Greco 7b2c62
# Note we don't run hardlink if ostree is in use, as ostree is
Pablo Greco 7b2c62
# a far more sophisticated hardlink implementation.
Pablo Greco 7b2c62
# https://github.com/projectatomic/rpm-ostree/commit/58a79056a889be8814aa51f507b2c7a4dccee526
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_devel_post() \
Pablo Greco 7b2c62
%{expand:%%post %{?1:%{1}-}devel}\
Pablo Greco 7b2c62
if [ -f /etc/sysconfig/kernel ]\
Pablo Greco 7b2c62
then\
Pablo Greco 7b2c62
    . /etc/sysconfig/kernel || exit $?\
Pablo Greco 7b2c62
fi\
Pablo Greco 7b2c62
if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink -a ! -e /run/ostree-booted ] \
Pablo Greco 7b2c62
then\
Pablo Greco 7b2c62
    (cd /usr/src/kernels/%{KVERREL}%{?1:+%{1}} &&\
Pablo Greco 7b2c62
     /usr/bin/find . -type f | while read f; do\
Pablo Greco 7b2c62
       hardlink -c /usr/src/kernels/*%{?dist}.*/$f $f\
Pablo Greco 7b2c62
     done)\
Pablo Greco 7b2c62
fi\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro defines a %%post script for a kernel*-modules-extra package.
Pablo Greco 7b2c62
# It also defines a %%postun script that does the same thing.
Pablo Greco 7b2c62
#	%%kernel_modules_extra_post [<subpackage>]
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_modules_extra_post() \
Pablo Greco 7b2c62
%{expand:%%post %{?1:%{1}-}modules-extra}\
Pablo Greco 7b2c62
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
Pablo Greco 7b2c62
%{nil}\
Pablo Greco 7b2c62
%{expand:%%postun %{?1:%{1}-}modules-extra}\
Pablo Greco 7b2c62
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro defines a %%post script for a kernel*-modules-internal package.
Pablo Greco 7b2c62
# It also defines a %%postun script that does the same thing.
Pablo Greco 7b2c62
#	%%kernel_modules_internal_post [<subpackage>]
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_modules_internal_post() \
Pablo Greco 7b2c62
%{expand:%%post %{?1:%{1}-}modules-internal}\
Pablo Greco 7b2c62
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
Pablo Greco 7b2c62
%{nil}\
Pablo Greco 7b2c62
%{expand:%%postun %{?1:%{1}-}modules-internal}\
Pablo Greco 7b2c62
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro defines a %%post script for a kernel*-modules package.
Pablo Greco 7b2c62
# It also defines a %%postun script that does the same thing.
Pablo Greco 7b2c62
#	%%kernel_modules_post [<subpackage>]
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_modules_post() \
Pablo Greco 7b2c62
%{expand:%%post %{?1:%{1}-}modules}\
Pablo Greco 7b2c62
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
Pablo Greco 7b2c62
%{nil}\
Pablo Greco 7b2c62
%{expand:%%postun %{?1:%{1}-}modules}\
Pablo Greco 7b2c62
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# This macro defines a %%posttrans script for a kernel package.
Pablo Greco 7b2c62
#	%%kernel_variant_posttrans [<subpackage>]
Pablo Greco 7b2c62
# More text can follow to go at the end of this variant's %%post.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_variant_posttrans() \
Pablo Greco 7b2c62
%{expand:%%posttrans %{?1:%{1}-}core}\
Pablo Greco 7b2c62
%if 0%{!?fedora:1}\
Pablo Greco 7b2c62
if [ -x %{_sbindir}/weak-modules ]\
Pablo Greco 7b2c62
then\
Pablo Greco 7b2c62
    %{_sbindir}/weak-modules --add-kernel %{KVERREL}%{?1:+%{1}} || exit $?\
Pablo Greco 7b2c62
fi\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
/bin/kernel-install add %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro defines a %%post script for a kernel package and its devel package.
Pablo Greco 7b2c62
#	%%kernel_variant_post [-v <subpackage>] [-r <replace>]
Pablo Greco 7b2c62
# More text can follow to go at the end of this variant's %%post.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_variant_post(v:r:) \
Pablo Greco 7b2c62
%{expand:%%kernel_devel_post %{?-v*}}\
Pablo Greco 7b2c62
%{expand:%%kernel_modules_post %{?-v*}}\
Pablo Greco 7b2c62
%{expand:%%kernel_modules_extra_post %{?-v*}}\
Pablo Greco 7b2c62
%{expand:%%kernel_modules_internal_post %{?-v*}}\
Pablo Greco 7b2c62
%{expand:%%kernel_variant_posttrans %{?-v*}}\
Pablo Greco 7b2c62
%{expand:%%post %{?-v*:%{-v*}-}core}\
Pablo Greco 7b2c62
%{-r:\
Pablo Greco 7b2c62
if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\
Pablo Greco 7b2c62
   [ -f /etc/sysconfig/kernel ]; then\
Pablo Greco 7b2c62
  /bin/sed -r -i -e 's/^DEFAULTKERNEL=%{-r*}$/DEFAULTKERNEL=kernel%{?-v:-%{-v*}}/' /etc/sysconfig/kernel || exit $?\
Pablo Greco 7b2c62
fi}\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro defines a %%preun script for a kernel package.
Pablo Greco 7b2c62
#	%%kernel_variant_preun <subpackage>
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_variant_preun() \
Pablo Greco 7b2c62
%{expand:%%preun %{?1:%{1}-}core}\
Pablo Greco 7b2c62
/bin/kernel-install remove %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\
Pablo Greco 7b2c62
%if 0%{!?fedora:1}\
Pablo Greco 7b2c62
if [ -x %{_sbindir}/weak-modules ]\
Pablo Greco 7b2c62
then\
Pablo Greco 7b2c62
    %{_sbindir}/weak-modules --remove-kernel %{KVERREL}%{?1:+%{1}} || exit $?\
Pablo Greco 7b2c62
fi\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%kernel_variant_preun
Pablo Greco 7b2c62
%kernel_variant_post -r kernel-smp
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_pae}
Pablo Greco 7b2c62
%kernel_variant_preun lpae
Pablo Greco 7b2c62
%kernel_variant_post -v lpae -r (kernel|kernel-smp)
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%kernel_variant_preun debug
Pablo Greco 7b2c62
%kernel_variant_post -v debug
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_zfcpdump}
Pablo Greco 7b2c62
%kernel_variant_preun zfcpdump
Pablo Greco 7b2c62
%kernel_variant_post -v zfcpdump
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
if [ -x /sbin/ldconfig ]
Pablo Greco 7b2c62
then
Pablo Greco 7b2c62
    /sbin/ldconfig -X || exit $?
Pablo Greco 7b2c62
fi
Pablo Greco 7b2c62
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
### file lists
Pablo Greco 7b2c62
###
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_headers}
Pablo Greco 7b2c62
%files headers
Pablo Greco 7b2c62
/usr/include/*
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_cross_headers}
Pablo Greco 7b2c62
%files cross-headers
Pablo Greco 7b2c62
/usr/*-linux-gnu/include/*
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_kernel_abi_whitelists}
Pablo Greco 7b2c62
%files -n kernel-abi-whitelists
Pablo Greco 7b2c62
/lib/modules/kabi-*
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_kabidw_base}
Pablo Greco 7b2c62
%ifarch x86_64 s390x ppc64 ppc64le aarch64
Pablo Greco 7b2c62
%files kabidw-base
Pablo Greco 7b2c62
%defattr(-,root,root)
Pablo Greco 7b2c62
/kabidw-base/%{_target_cpu}/*
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# only some architecture builds need kernel-doc
Pablo Greco 7b2c62
%if %{with_doc}
Pablo Greco 7b2c62
%files doc
Pablo Greco 7b2c62
%defattr(-,root,root)
Pablo Greco 7b2c62
%{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation/*
Pablo Greco 7b2c62
%dir %{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation
Pablo Greco 7b2c62
%dir %{_datadir}/doc/kernel-doc-%{rpmversion}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_perf}
Pablo Greco 7b2c62
%files -n perf
Pablo Greco 7b2c62
%{_bindir}/perf
Pablo Greco 7b2c62
%{_libdir}/libperf-jvmti.so
Pablo Greco 7b2c62
%dir %{_libdir}/traceevent/plugins
Pablo Greco 7b2c62
%{_libdir}/traceevent/plugins/*
Pablo Greco 7b2c62
%dir %{_libexecdir}/perf-core
Pablo Greco 7b2c62
%{_libexecdir}/perf-core/*
Pablo Greco 7b2c62
%{_datadir}/perf-core/*
Pablo Greco 7b2c62
%{_mandir}/man[1-8]/perf*
Pablo Greco 7b2c62
%{_sysconfdir}/bash_completion.d/perf
Pablo Greco 7b2c62
%doc linux-%{KVERREL}/tools/perf/Documentation/examples.txt
Pablo Greco 7b2c62
%{_docdir}/perf-tip/tips.txt
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%files -n python3-perf
Pablo Greco 7b2c62
%{python3_sitearch}/*
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_debuginfo}
Pablo Greco 7b2c62
%files -f perf-debuginfo.list -n perf-debuginfo
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%files -f python3-perf-debuginfo.list -n python3-perf-debuginfo
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
# with_perf
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_tools}
Pablo Greco 7b2c62
%ifnarch %{cpupowerarchs}
Pablo Greco 7b2c62
%files -n kernel-tools
Pablo Greco 7b2c62
%else
Pablo Greco 7b2c62
%files -n kernel-tools -f cpupower.lang
Pablo Greco 7b2c62
%{_bindir}/cpupower
Pablo Greco 7b2c62
%{_datadir}/bash-completion/completions/cpupower
Pablo Greco 7b2c62
%ifarch x86_64
Pablo Greco 7b2c62
%{_bindir}/centrino-decode
Pablo Greco 7b2c62
%{_bindir}/powernow-k8-decode
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%{_unitdir}/cpupower.service
Pablo Greco 7b2c62
%{_mandir}/man[1-8]/cpupower*
Pablo Greco 7b2c62
%config(noreplace) %{_sysconfdir}/sysconfig/cpupower
Pablo Greco 7b2c62
%ifarch x86_64
Pablo Greco 7b2c62
%{_bindir}/x86_energy_perf_policy
Pablo Greco 7b2c62
%{_mandir}/man8/x86_energy_perf_policy*
Pablo Greco 7b2c62
%{_bindir}/turbostat
Pablo Greco 7b2c62
%{_mandir}/man8/turbostat*
Pablo Greco 7b2c62
%{_bindir}/intel-speed-select
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
# cpupowerarchs
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%{_bindir}/tmon
Pablo Greco 7b2c62
%{_bindir}/iio_event_monitor
Pablo Greco 7b2c62
%{_bindir}/iio_generic_buffer
Pablo Greco 7b2c62
%{_bindir}/lsiio
Pablo Greco 7b2c62
%{_bindir}/lsgpio
Pablo Greco 7b2c62
%{_bindir}/gpio-hammer
Pablo Greco 7b2c62
%{_bindir}/gpio-event-mon
Pablo Greco 418f01
%{_bindir}/gpio-watch
Pablo Greco 7b2c62
%{_mandir}/man1/kvm_stat*
Pablo Greco 7b2c62
%{_bindir}/kvm_stat
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_debuginfo}
Pablo Greco 7b2c62
%files -f kernel-tools-debuginfo.list -n kernel-tools-debuginfo
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%ifarch %{cpupowerarchs}
Pablo Greco 7b2c62
%files -n kernel-tools-libs
Pablo Greco 7b2c62
%{_libdir}/libcpupower.so.0
Pablo Greco 7b2c62
%{_libdir}/libcpupower.so.0.0.1
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%files -n kernel-tools-libs-devel
Pablo Greco 7b2c62
%{_libdir}/libcpupower.so
Pablo Greco 7b2c62
%{_includedir}/cpufreq.h
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
# with_tools
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_bpftool}
Pablo Greco 7b2c62
%files -n bpftool
Pablo Greco 7b2c62
%{_sbindir}/bpftool
Pablo Greco 7b2c62
%{_sysconfdir}/bash_completion.d/bpftool
Pablo Greco 7b2c62
%{_mandir}/man8/bpftool-cgroup.8.gz
Pablo Greco 7b2c62
%{_mandir}/man8/bpftool-gen.8.gz
Justin M. Forbes 6e0d31
%{_mandir}/man8/bpftool-iter.8.gz
Justin M. Forbes 6e0d31
%{_mandir}/man8/bpftool-link.8.gz
Pablo Greco 7b2c62
%{_mandir}/man8/bpftool-map.8.gz
Pablo Greco 7b2c62
%{_mandir}/man8/bpftool-prog.8.gz
Pablo Greco 7b2c62
%{_mandir}/man8/bpftool-perf.8.gz
Pablo Greco 7b2c62
%{_mandir}/man8/bpftool.8.gz
Pablo Greco 7b2c62
%{_mandir}/man7/bpf-helpers.7.gz
Pablo Greco 7b2c62
%{_mandir}/man8/bpftool-net.8.gz
Pablo Greco 7b2c62
%{_mandir}/man8/bpftool-feature.8.gz
Pablo Greco 7b2c62
%{_mandir}/man8/bpftool-btf.8.gz
Pablo Greco 418f01
%{_mandir}/man8/bpftool-struct_ops.8.gz
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_debuginfo}
Pablo Greco 7b2c62
%files -f bpftool-debuginfo.list -n bpftool-debuginfo
Pablo Greco 7b2c62
%defattr(-,root,root)
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_selftests}
Pablo Greco 7b2c62
%files selftests-internal
Pablo Greco 7b2c62
%{_libexecdir}/ksamples
Pablo Greco 7b2c62
%{_libexecdir}/kselftests
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# empty meta-package
Pablo Greco 7b2c62
%ifnarch %nobuildarches noarch
Pablo Greco 7b2c62
%files
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%if %{with_gcov}
Pablo Greco 7b2c62
%ifarch x86_64 s390x ppc64le aarch64
Pablo Greco 7b2c62
%files gcov
Pablo Greco 7b2c62
%{_builddir}
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
%endif
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# This is %%{image_install_path} on an arch where that includes ELF files,
Pablo Greco 7b2c62
# or empty otherwise.
Pablo Greco 7b2c62
%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
# This macro defines the %%files sections for a kernel package
Pablo Greco 7b2c62
# and its devel and debuginfo packages.
Pablo Greco 7b2c62
#	%%kernel_variant_files [-k vmlinux] <condition> <subpackage> <without_modules>
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%define kernel_variant_files(k:) \
Pablo Greco 7b2c62
%if %{2}\
Pablo Greco 7b2c62
%{expand:%%files -f kernel-%{?3:%{3}-}core.list %{?1:-f kernel-%{?3:%{3}-}ldsoconf.list} %{?3:%{3}-}core}\
Pablo Greco 7b2c62
%{!?_licensedir:%global license %%doc}\
Pablo Greco 7b2c62
%license linux-%{KVERREL}/COPYING-%{version}-%{release}\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}\
Pablo Greco 7b2c62
%ghost /%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?3:+%{3}}\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/.vmlinuz.hmac \
Pablo Greco 7b2c62
%ghost /%{image_install_path}/.vmlinuz-%{KVERREL}%{?3:+%{3}}.hmac \
Pablo Greco 7b2c62
%ifarch %{arm} aarch64\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/dtb \
Pablo Greco 7b2c62
%ghost /%{image_install_path}/dtb-%{KVERREL}%{?3:+%{3}} \
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%attr(600,root,root) /lib/modules/%{KVERREL}%{?3:+%{3}}/System.map\
Pablo Greco 7b2c62
%ghost /boot/System.map-%{KVERREL}%{?3:+%{3}}\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/symvers.gz\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/config\
Pablo Greco 05f52f
%if 0%{?rhel} == 7\
Pablo Greco 05f52f
/boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\
Pablo Greco 05f52f
%else\
Pablo Greco 7b2c62
%ghost /boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\
Pablo Greco 05f52f
%endif\
Pablo Greco 7b2c62
%ghost /boot/config-%{KVERREL}%{?3:+%{3}}\
Pablo Greco 7b2c62
%ghost /boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\
Pablo Greco 7b2c62
%dir /lib/modules\
Pablo Greco 7b2c62
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}\
Pablo Greco 7b2c62
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/build\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/source\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/updates\
Pablo Greco f3902b
/lib/modules/%{KVERREL}%{?3:+%{3}}/bls_sample.conf\
Pablo Greco 7b2c62
%if 0%{!?fedora:1}\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/weak-updates\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%{_datadir}/doc/kernel-keys/%{KVERREL}%{?3:+%{3}}/kernel-signing-ca*.cer\
Pablo Greco 7b2c62
%ifarch s390x ppc64le\
Pablo Greco 7b2c62
%if 0%{!?4:1}\
Pablo Greco 7b2c62
%{_datadir}/doc/kernel-keys/%{KVERREL}%{?3:+%{3}}/%{signing_key_filename} \
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%if %{1}\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/vdso\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/modules.*\
Pablo Greco 7b2c62
%{expand:%%files -f kernel-%{?3:%{3}-}modules.list %{?3:%{3}-}modules}\
Pablo Greco 7b2c62
%{expand:%%files %{?3:%{3}-}devel}\
Pablo Greco 7b2c62
%defverify(not mtime)\
Pablo Greco 7b2c62
/usr/src/kernels/%{KVERREL}%{?3:+%{3}}\
Pablo Greco 7b2c62
%{expand:%%files %{?3:%{3}-}modules-extra}\
Pablo Greco 7b2c62
%config(noreplace) /etc/modprobe.d/*-blacklist.conf\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/extra\
Pablo Greco 7b2c62
%{expand:%%files %{?3:%{3}-}modules-internal}\
Pablo Greco 7b2c62
/lib/modules/%{KVERREL}%{?3:+%{3}}/internal\
Pablo Greco 7b2c62
%if %{with_debuginfo}\
Pablo Greco 7b2c62
%ifnarch noarch\
Pablo Greco 7b2c62
%{expand:%%files -f debuginfo%{?3}.list %{?3:%{3}-}debuginfo}\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%if %{?3:1} %{!?3:0}\
Pablo Greco 7b2c62
%{expand:%%files %{3}}\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%kernel_variant_files %{_use_vdso} %{with_up}
Pablo Greco 7b2c62
%kernel_variant_files %{_use_vdso} %{with_debug} debug
Pablo Greco 7b2c62
%kernel_variant_files %{use_vdso} %{with_pae} lpae
Pablo Greco 7b2c62
%kernel_variant_files %{_use_vdso} %{with_zfcpdump} zfcpdump 1
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%define kernel_variant_ipaclones(k:) \
Pablo Greco 7b2c62
%if %{1}\
Pablo Greco 7b2c62
%if %{with_ipaclones}\
Pablo Greco 7b2c62
%{expand:%%files %{?2:%{2}-}ipaclones-internal}\
Pablo Greco 7b2c62
%defattr(-,root,root)\
Pablo Greco 7b2c62
%defverify(not mtime)\
Pablo Greco 7b2c62
/usr/src/kernels/%{KVERREL}%{?2:+%{2}}-ipaclones\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%endif\
Pablo Greco 7b2c62
%{nil}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
%kernel_variant_ipaclones %{with_up}
Pablo Greco 7b2c62
Pablo Greco 7b2c62
# plz don't put in a version string unless you're going to tag
Pablo Greco 7b2c62
# and build.
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
#
Pablo Greco 7b2c62
%changelog
Pablo Greco 54f30c
* Sun Nov 27 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.156-200
Pablo Greco 54f30c
- Update to version v5.10.156
Pablo Greco 54f30c
Pablo Greco 37e891
* Sat Oct 22 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.149-200
Pablo Greco 37e891
- Update to version v5.10.149
Pablo Greco 37e891
Pablo Greco 4b6a98
* Sat Oct 15 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.148-200
Pablo Greco 4b6a98
- Update to version v5.10.148
Pablo Greco 4b6a98
Pablo Greco ebbb88
* Sun Aug  7 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.135-200
Pablo Greco ebbb88
- Update to version v5.10.135
Pablo Greco ebbb88
Pablo Greco 10b3bc
* Sat Jul 16 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.131-200
Pablo Greco 10b3bc
- Update to version v5.10.131
Pablo Greco 10b3bc
Pablo Greco 1ac564
* Sun Jun 19 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.123-200
Pablo Greco 1ac564
- Update to version v5.10.123
Pablo Greco 1ac564
Pablo Greco 947925
* Sat May 21 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.117-200
Pablo Greco 947925
- Update to version v5.10.117
Pablo Greco 947925
Pablo Greco 9a78ea
* Sun Apr 17 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.111-200
Pablo Greco 9a78ea
- Update to version v5.10.111
Pablo Greco 9a78ea
Pablo Greco b847ae
* Thu Mar 17 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.106-200
Pablo Greco b847ae
- Update to version v5.10.106
Pablo Greco b847ae
Pablo Greco ae9251
* Sat Feb 26 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.102-200
Pablo Greco ae9251
- Update to version v5.10.102
Pablo Greco ae9251
Pablo Greco 1ac9df
* Sat Feb 12 2022 Pablo Greco <pgreco@centosproject.org> - 5.10.100-200
Pablo Greco 1ac9df
- Linux v5.10.100
Pablo Greco 1ac9df
Pablo Greco 6dc5dc
* Sat Nov  6 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.78-200
Pablo Greco 6dc5dc
- Linux v5.10.78
Pablo Greco 6dc5dc
Pablo Greco ade2b6
* Sat Oct 23 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.75-200
Pablo Greco ade2b6
- Linux v5.10.75
Pablo Greco 2179f3
- Add patches for azure
Pablo Greco ade2b6
Pablo Greco 326a3d
* Sat Aug 21 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.60-200
Pablo Greco 326a3d
- Linux v5.10.60
Pablo Greco 326a3d
Pablo Greco c79fc3
* Fri Jul 23 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.52-200
Pablo Greco c79fc3
- Linux v5.10.52
Pablo Greco c79fc3
Pablo Greco dc0b92
* Wed Jun 30 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.47-200
Pablo Greco dc0b92
- Linux v5.10.47
Pablo Greco dc0b92
Pablo Greco 3007be
* Tue Jun 15 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.43-200
Pablo Greco 3007be
- Linux v5.10.43
Pablo Greco 3007be
Pablo Greco 2a25db
* Sun May 23 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.39-200
Pablo Greco 2a25db
- Linux v5.10.39
Pablo Greco 2a25db
Pablo Greco 16ff61
* Sat May 22 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.38-200
Pablo Greco 16ff61
- Linux v5.10.38
Pablo Greco 16ff61
Pablo Greco 7d3c43
* Sat May  1 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.33-200
Pablo Greco 7d3c43
- Linux v5.10.33
Pablo Greco 7d3c43
- Fix ethernet in armhfp devices
Pablo Greco 7d3c43
Pablo Greco c2a9d1
* Sun Apr 11 2021 Pablo Greco <pgreco@centosproject.org> - 5.10.29-200
Pablo Greco c2a9d1
- Linux v5.10.29
Pablo Greco c2a9d1
- Fixes to build in CentOS 7 and CentOS 8
Pablo Greco c2a9d1
Pablo Greco 7b2c62
* Thu Mar 11 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.23-200
Pablo Greco 7b2c62
- Linux v5.10.23
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Tue Mar 09 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.22-200
Pablo Greco 7b2c62
- Linux v5.10.22
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Sun Mar 07 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.21-200
Pablo Greco 7b2c62
- Linux v5.10.21
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Mar 04 2021 Hans de Goede <hdegoede@redhat.com>
Pablo Greco 7b2c62
- Fix broadwell-rt286 sound (rhbz#1933229)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Mar 04 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.20-200
Pablo Greco 7b2c62
- Linux v5.10.20
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Fri Feb 26 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.19-200
Pablo Greco 7b2c62
- Linux v5.10.19
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Feb 25 2021 Justin M. Forbes <jforbes@fedoraproject.org>
Pablo Greco 7b2c62
- Some i915 fixes for 5.10 (rhbz 1925346)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Tue Feb 23 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.18-200
Pablo Greco 7b2c62
- Linux v5.10.18
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Feb 18 2021 Hans de Goede <hdegoede@redhat.com>
Pablo Greco 7b2c62
- Fix various QCA bluetooth devices no longer working (rhbz#1916104)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Wed Feb 17 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.17-200
Pablo Greco 7b2c62
- Linux v5.10.17
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Sat Feb 13 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.16-200
Pablo Greco 7b2c62
- Linux v5.10.16
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Wed Feb 10 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.15-200
Pablo Greco 7b2c62
- Linux v5.10.15
Pablo Greco 7b2c62
- Fixes CVE-2021-20194 (rhbz 1912683 1926781)
Pablo Greco 7b2c62
- Fixes rhbz 1916674
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Sun Feb 07 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.14-200
Pablo Greco 7b2c62
- Linux v5.10.14
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Feb 04 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.13-200
Pablo Greco 7b2c62
- Linux v5.10.13
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Mon Feb 01 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.12-200
Pablo Greco 7b2c62
- Linux v5.10.12
Pablo Greco 7b2c62
Pablo Greco 750710
* Wed Jan 27 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.11-200
Pablo Greco 7b2c62
- Linux v5.10.11
Pablo Greco 7b2c62
- Fix URB buffer allocation of pwc driver (rhbz 1918778)
Pablo Greco 7b2c62
- Fix wacom touchscreens (rhbz 1918486)
Pablo Greco 7b2c62
Pablo Greco 750710
* Sun Jan 24 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.10-200
Pablo Greco 7b2c62
- Linux v5.10.10
Pablo Greco 7b2c62
- Fixes CVE-2021-3178 (rhbz 1918179 1918181)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Wed Jan 20 2021 Peter Robinson <pbrobinson@fedoraproject.org> - 5.10.9-201
Pablo Greco 7b2c62
- Fix for ARMv7 builder pause issue
Pablo Greco 7b2c62
Pablo Greco 750710
* Tue Jan 19 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.9-200
Pablo Greco 7b2c62
- Linux v5.10.9
Pablo Greco 7b2c62
Pablo Greco 750710
* Sun Jan 17 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.8-200
Pablo Greco 7b2c62
- Linux v5.10.8
Pablo Greco 7b2c62
Pablo Greco 750710
* Tue Jan 12 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.7-200
Pablo Greco 7b2c62
- Linux v5.10.7
Pablo Greco 7b2c62
Pablo Greco 750710
* Mon Jan 11 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.6-200
Pablo Greco 7b2c62
- Linux v5.10.6 rebase
Pablo Greco 7b2c62
- Fix bluetooth controller initialization (rhbz 1898495)
Pablo Greco 7b2c62
- Fix CVE-2020-36158 (rhbz 1913348 1913349)
Pablo Greco 7b2c62
Pablo Greco 750710
* Mon Dec 21 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.16-200
Pablo Greco 7b2c62
- Linux v5.9.16
Pablo Greco 7b2c62
Pablo Greco 750710
* Wed Dec 16 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.15-200
Pablo Greco 7b2c62
- Linux v5.9.15
Pablo Greco 7b2c62
Pablo Greco 750710
* Fri Dec 11 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.14-200
Pablo Greco 7b2c62
- Linux v5.9.14
Pablo Greco 7b2c62
- Fixes CVE-2020-29660 (rhbz 1906522 1906523)
Pablo Greco 7b2c62
- Fixes CVE-2020-29661 (rhbz 1906525 1906526)
Pablo Greco 7b2c62
Pablo Greco 750710
* Tue Dec  8 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.13-200
Pablo Greco 7b2c62
- Linux v5.9.13
Pablo Greco 7b2c62
Pablo Greco 750710
* Wed Dec  2 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.12-200
Pablo Greco 7b2c62
- Linux v5.9.12
Pablo Greco 7b2c62
Pablo Greco 750710
* Tue Nov 24 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.11-200
Pablo Greco 7b2c62
- Linux v5.9.11
Pablo Greco 7b2c62
Pablo Greco 750710
* Mon Nov 23 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.10-200
Pablo Greco 7b2c62
- Linux v5.9.10
Pablo Greco 7b2c62
- Fix CVE-2020-28941 (rhbz 1899985 1899986)
Pablo Greco 7b2c62
- Fix CVE-2020-4788 (rhbz 1888433 1900437)
Pablo Greco 7b2c62
Pablo Greco 750710
* Thu Nov 19 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.9-200
Pablo Greco 7b2c62
- Linux v5.9.9
Pablo Greco 7b2c62
- Enable NANDSIM (rhbz 1898638)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Nov 12 2020 Justin M. Forbes <jforbes@fedoraproject.org>
Pablo Greco 7b2c62
- Fix bluetooth device disconnect issues. (rhbz 1897038)
Pablo Greco 7b2c62
Pablo Greco 750710
* Tue Nov 10 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.8-200
Pablo Greco 7b2c62
- Linux v5.9.8
Pablo Greco 7b2c62
- Fixes CVE-2020-8694 (rhbz 1828580 1896525)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Tue Nov 10 2020 <jforbes@fedoraproject.org> - 5.9.7-200
Pablo Greco 7b2c62
- Linux v5.9.7 rebase
Pablo Greco 7b2c62
- Fixes CVE-2020-25668 (rhbz 1893287 1893288)
Pablo Greco 7b2c62
- Fixes CVE-2020-27673 (rhbz 1891110 1891112)
Pablo Greco 7b2c62
- Fixes CVE-2020-25704 (rhbz 1895951 1895963)
Pablo Greco 7b2c62
Pablo Greco 750710
* Mon Nov  2 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.18-300
Pablo Greco 7b2c62
- Linux v5.8.18
Pablo Greco 7b2c62
Pablo Greco 750710
* Thu Oct 29 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.17-300
Pablo Greco 7b2c62
- Linux v5.8.17
Pablo Greco 7b2c62
- Fix CVE-2020-27675 (rhbz 1891114 1891115)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Wed Oct 28 2020 Peter Robinson <pbrobinson@fedoraproject.org>
Pablo Greco 7b2c62
- Fixes for AllWinner wired network issues due to Realtek PHY driver change (rhbz 1889090)
Pablo Greco 7b2c62
Pablo Greco 750710
* Mon Oct 19 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.16-300
Pablo Greco 7b2c62
- Linux v5.8.16
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Fri Oct 16 2020 Hans de Goede <hdegoede@redhat.com>
Pablo Greco 7b2c62
- Fix Micrsoft Surface Go series boot regression (rhbz 1886249)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Oct 15 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.15-301
Pablo Greco 7b2c62
- Fix BleedingTooth CVE-2020-12351 CVE-2020-12352 (rhbz 1886521 1888439 1886529 1888440)
Pablo Greco 7b2c62
Pablo Greco 750710
* Wed Oct 14 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.15-300
Pablo Greco 7b2c62
- Linux v5.8.15
Pablo Greco 7b2c62
- Fix CVE-2020-16119 (rhbz 1886374 1888083)
Pablo Greco 7b2c62
Pablo Greco 750710
* Wed Oct  7 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.14-300
Pablo Greco 7b2c62
- Linux v5.8.14
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Wed Oct  7 2020 Peter Robinson <pbrobinson@fedoraproject.org>
Pablo Greco 7b2c62
- Fix aarch64 boot crash on BTI capable systems
Pablo Greco 7b2c62
- Fix boot crash on aarch64 Ampere eMAG systems (rhbz #1874117)
Pablo Greco 7b2c62
Pablo Greco 750710
* Thu Oct  1 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.13-300
Pablo Greco 7b2c62
- Linux v5.8.13
Pablo Greco 7b2c62
Pablo Greco 750710
* Mon Sep 28 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.12-300
Pablo Greco 7b2c62
- Linux v5.8.12
Pablo Greco 7b2c62
Pablo Greco 750710
* Wed Sep 23 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.11-300
Pablo Greco 7b2c62
- Linux v5.8.11
Pablo Greco 7b2c62
- Fix (rhbz 1821946)
Pablo Greco 7b2c62
Pablo Greco 750710
* Thu Sep 17 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.10-300
Pablo Greco 7b2c62
- Linux v5.8.10
Pablo Greco 7b2c62
- Fix (rhbz 1873720 1876997)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Mon Sep 14 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.9-301
Pablo Greco 7b2c62
- Fix error code in bdev_del_part (rhbz 1878858)
Pablo Greco 7b2c62
Pablo Greco 750710
* Mon Sep 14 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.9-300
Pablo Greco 7b2c62
- Linux v5.8.9
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Sat Sep 12 2020 Peter Robinson <pbrobinson@fedoraproject.org>
Pablo Greco 7b2c62
- Fix for SDIO speed issue
Pablo Greco 7b2c62
- Fix for certain mSD cards on Raspberry Pi 4
Pablo Greco 7b2c62
- Fix for older brcm sdio WiFi modules
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Sep 10 2020 Justin M. Forbes <jforbes@fedoraproject.org>
Pablo Greco 7b2c62
- Fix CVE-2020-25211 (rhbz 1877571 1877572)
Pablo Greco 7b2c62
Pablo Greco 750710
* Wed Sep  9 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.8-300
Pablo Greco 7b2c62
- Linux v5.8.8
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Mon Sep 07 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.7-300
Pablo Greco 7b2c62
- Linux v5.8.7
Pablo Greco 7b2c62
- Fix CVE-2020-14386 (rhbz 1875699 1876349)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Sep 03 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.6-301
Pablo Greco 7b2c62
- Linux v5.8.6
Pablo Greco 7b2c62
- Fix CVE-2020-14385 (rhbz 1874800 1874811)
Pablo Greco 7b2c62
- Move CONFIG_USB_XHCI_PCI_RENESAS to inline (rhbz 1874300)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Aug 27 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.5-300
Pablo Greco 7b2c62
- Linux v5.8.5
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Wed Aug 26 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.4-300
Pablo Greco 7b2c62
- Linux v5.8.4
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Fri Aug 21 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.3-300
Pablo Greco 7b2c62
- Linux v5.8.3
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Wed Aug 19 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.2-300.rpi1
Pablo Greco 7b2c62
- Linux v5.8.2
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Wed Aug 12 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.0-1.1
Pablo Greco 7b2c62
- Linux v5.8.1
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Mon Aug 03 2020 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.8.0-1]
Pablo Greco 7b2c62
- v5.8 rebase
Pablo Greco 7b2c62
- Updated changelog for the release based on ac3a0c847296 (Fedora Kernel Team)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Sun Aug 02 2020 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.8.0-0.rc7.20200802gitac3a0c847296.1]
Pablo Greco 7b2c62
- ac3a0c847296 rebase
Pablo Greco 7b2c62
- Updated changelog for the release based on 7dc6fd0f3b84 (Fedora Kernel Team)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Sat Aug 01 2020 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.8.0-0.rc7.20200801git7dc6fd0f3b84.1]
Pablo Greco 7b2c62
- 7dc6fd0f3b84 rebase
Pablo Greco 7b2c62
- Updated changelog for the release based on 417385c47ef7 (Fedora Kernel Team)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Fri Jul 31 2020 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.8.0-0.rc7.20200731git417385c47ef7.1]
Pablo Greco 7b2c62
- 417385c47ef7 rebase
Pablo Greco 7b2c62
- Add new certs for dual signing with boothole ("Justin M. Forbes")
Pablo Greco 7b2c62
- Update secureboot signing for dual keys ("Justin M. Forbes")
Pablo Greco 7b2c62
- Updated changelog for the release based on d3590ebf6f91 (Fedora Kernel Team)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Thu Jul 30 2020 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.8.0-0.rc7.20200730gitd3590ebf6f91.1]
Pablo Greco 7b2c62
- d3590ebf6f91 rebase
Pablo Greco 7b2c62
- Updated changelog for the release based on 6ba1b005ffc3 (Fedora Kernel Team)
Pablo Greco 7b2c62
Pablo Greco 7b2c62
* Wed Jul 29 2020 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.8.0-0.rc7.20200729git6ba1b005ffc3.1]
Pablo Greco