Jesse Keating 7a3296
# We have to override the new %%install behavior because, well... the kernel is special.
Jesse Keating 7a3296
%global __spec_install_pre %{___build_pre}
Jesse Keating 7a3296
Jesse Keating 7a3296
Summary: The Linux kernel
Jesse Keating 7a3296
Jesse Keating 7a3296
# For a stable, released kernel, released_kernel should be 1. For rawhide
Jesse Keating 7a3296
# and/or a kernel built from an rc or git snapshot, released_kernel should
Jesse Keating 7a3296
# be 0.
Jeremy Cline 021611
%global released_kernel 0
Jesse Keating 7a3296
d9864a
%if 0%{?fedora}
d9864a
%define secure_boot_arch x86_64
d9864a
%else
d9864a
%define secure_boot_arch x86_64 aarch64 s390x ppc64le
d9864a
%endif
d9864a
48704b
# Signing for secure boot authentication
d9864a
%ifarch %{secure_boot_arch}
149275
%global signkernel 1
Josh Boyer c2a12c
%else
149275
%global signkernel 0
48704b
%endif
48704b
48704b
# Sign modules on all arches
149275
%global signmodules 1
48704b
48704b
# Compress modules only for architectures that build modules
48704b
%ifarch noarch
48704b
%global zipmodules 0
48704b
%else
36ae66
%global zipmodules 1
Kyle McMartin 892262
%endif
Kyle McMartin 892262
Kyle McMartin 892262
%if %{zipmodules}
Kyle McMartin 892262
%global zipsed -e 's/\.ko$/\.ko.xz/'
b0bc74
# for parallel xz processes, replace with 1 to go back to single process
b0bc74
%global zcpu `nproc --all`
Josh Boyer c2a12c
%endif
Josh Boyer c2a12c
20fe7a
# define buildid .local
Jesse Keating 7a3296
Roland McGrath 377da6
# baserelease defines which build revision of this kernel version we're
Roland McGrath 377da6
# building.  We used to call this fedora_build, but the magical name
Roland McGrath 377da6
# baserelease is matched by the rpmdev-bumpspec tool, which you should use.
Jesse Keating 7a3296
#
Roland McGrath 377da6
# We used to have some extra magic weirdness to bump this automatically,
Roland McGrath 377da6
# but now we don't.  Just use: rpmdev-bumpspec -c 'comment for changelog'
Roland McGrath 377da6
# When changing base_sublevel below or going from rc to a final kernel,
Roland McGrath 377da6
# reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec).
Roland McGrath 377da6
# scripts/rebase.sh should be made to do that for you, actually.
Roland McGrath 377da6
#
Chuck Ebbert 05e763
# NOTE: baserelease must be > 0 or bad things will happen if you switch
Chuck Ebbert 05e763
#       to a released kernel (released version will be < rc version)
Chuck Ebbert c3126d
#
Chuck Ebbert 05e763
# For non-released -rc kernels, this will be appended after the rcX and
Chuck Ebbert 05e763
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
Chuck Ebbert 05e763
#
5c2aa8
%global baserelease 1
Roland McGrath 377da6
%global fedora_build %{baserelease}
Jesse Keating 7a3296
Jesse Keating 7a3296
# base_sublevel is the kernel version we're starting with and patching
Dave Jones 34ff8b
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
Dave Jones 34ff8b
# which yields a base_sublevel of 0.
a30153
%define base_sublevel 3
Jesse Keating 7a3296
Jesse Keating 7a3296
## If this is a released kernel ##
Jesse Keating 7a3296
%if 0%{?released_kernel}
Jesse Keating 7a3296
Jesse Keating 7a3296
# Do we have a -stable update to apply?
208228
%define stable_update 0
Jesse Keating 7a3296
# Set rpm version accordingly
Jesse Keating 7a3296
%if 0%{?stable_update}
Josh Boyer 740de5
%define stablerev %{stable_update}
Jesse Keating 7a3296
%define stable_base %{stable_update}
Jesse Keating 7a3296
%endif
1bde9d
%define rpmversion 5.%{base_sublevel}.%{stable_update}
Jesse Keating 7a3296
Jesse Keating 7a3296
## The not-released-kernel case ##
Jesse Keating 7a3296
%else
Jesse Keating 7a3296
# The next upstream release sublevel (base_sublevel+1)
1bde9d
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
Jesse Keating 7a3296
# The rc snapshot level
Jeremy Cline f16f4a
%global rcrev 5
Jesse Keating 7a3296
# The git snapshot level
Jeremy Cline f16f4a
%define gitrev 0
Jesse Keating 7a3296
# Set rpm version accordingly
ab28ab
%define rpmversion 5.%{upstream_sublevel}.0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
# Nb: The above rcrev and gitrev values automagically define Patch00 and Patch01 below.
Jesse Keating 7a3296
Jesse Keating 7a3296
# What parts do we want to build?  We must build at least one kernel.
Jesse Keating 7a3296
# These are the kernels that are built IF the architecture allows it.
Jesse Keating 7a3296
# All should default to 1 (enabled) and be flipped to 0 (disabled)
Jesse Keating 7a3296
# by later arch-specific checks.
Jesse Keating 7a3296
Jesse Keating 7a3296
# The following build options are enabled by default.
Jesse Keating 7a3296
# Use either --without <opt> in your rpmbuild command or force values
Jesse Keating 7a3296
# to 0 in here to disable them.
Jesse Keating 7a3296
#
Jesse Keating 7a3296
# standard kernel
Jesse Keating 7a3296
%define with_up        %{?_without_up:        0} %{?!_without_up:        1}
7a94d5
# kernel PAE (only valid for ARM (lpae))
Jarod Wilson 5b0327
%define with_pae       %{?_without_pae:       0} %{?!_without_pae:       1}
Jesse Keating 7a3296
# kernel-debug
Jesse Keating 7a3296
%define with_debug     %{?_without_debug:     0} %{?!_without_debug:     1}
ef7187
# kernel-doc
ef7187
%define with_doc       %{?_without_doc:       0} %{?!_without_doc:       1}
Jesse Keating 7a3296
# kernel-headers
Jesse Keating 7a3296
%define with_headers   %{?_without_headers:   0} %{?!_without_headers:   1}
f65f3f
%define with_cross_headers   %{?_without_cross_headers:   0} %{?!_without_cross_headers:   1}
Jesse Keating 7a3296
# kernel-debuginfo
Kyle McMartin 761d1c
%define with_debuginfo %{?_without_debuginfo: 0} %{?!_without_debuginfo: 1}
Jesse Keating 7a3296
# Want to build a the vsdo directories installed
Jesse Keating 7a3296
%define with_vdso_install %{?_without_vdso_install: 0} %{?!_without_vdso_install: 1}
11fa12
# kernel-abi-whitelists
11fa12
%define with_kernel_abi_whitelists %{?_without_kernel_abi_whitelists: 0} %{?!_without_kernel_abi_whitelists: 1}
1d23fd
# internal samples and selftests
1d23fd
%define with_selftests %{?_without_selftests: 0} %{?!_without_selftests: 1}
Chuck Ebbert c6b36e
#
Jesse Keating 7a3296
# Additional options for user-friendly one-off kernel building:
Jesse Keating 7a3296
#
Jesse Keating 7a3296
# Only build the base kernel (--with baseonly):
Jesse Keating 7a3296
%define with_baseonly  %{?_with_baseonly:     1} %{?!_with_baseonly:     0}
Jarod Wilson 5b0327
# Only build the pae kernel (--with paeonly):
Jarod Wilson 5b0327
%define with_paeonly   %{?_with_paeonly:      1} %{?!_with_paeonly:      0}
Jesse Keating 7a3296
# Only build the debug kernel (--with dbgonly):
Jesse Keating 7a3296
%define with_dbgonly   %{?_with_dbgonly:      1} %{?!_with_dbgonly:      0}
11fa12
# Control whether we perform a compat. check against published ABI.
11fa12
#%define with_kabichk   %{?_without_kabichk:   0} %{?!_without_kabichk:   1}
11fa12
# Temporarily disable kabi checks until RC.
11fa12
%define with_kabichk 0
11fa12
# Control whether we perform a compat. check against DUP ABI.
11fa12
%define with_kabidupchk %{?_with_kabidupchk:  1} %{?!_with_kabidupchk:   0}
11fa12
#
11fa12
# Control whether to run an extensive DWARF based kABI check.
11fa12
# Note that this option needs to have baseline setup in SOURCE300.
11fa12
%define with_kabidwchk %{?_without_kabidwchk: 0} %{?!_without_kabidwchk: 1}
11fa12
%define with_kabidw_base %{?_with_kabidw_base: 1} %{?!_with_kabidw_base: 0}
Chuck Ebbert c6b36e
#
Jesse Keating 7a3296
# should we do C=1 builds with sparse
Dave Jones 561b24
%define with_sparse    %{?_with_sparse:       1} %{?!_with_sparse:       0}
Chuck Ebbert 11ee03
#
Kyle McMartin 43d64b
# Cross compile requested?
Kyle McMartin 43d64b
%define with_cross    %{?_with_cross:         1} %{?!_with_cross:        0}
Kyle McMartin 43d64b
#
Chuck Ebbert 11ee03
# build a release kernel on rawhide
Chuck Ebbert 11ee03
%define with_release   %{?_with_release:      1} %{?!_with_release:      0}
Jesse Keating 7a3296
2fb3e7
# verbose build, i.e. no silent rules and V=1
2fb3e7
%define with_verbose %{?_with_verbose:        1} %{?!_with_verbose:      0}
2fb3e7
a17ef5
# gcov support
a17ef5
%define with_gcov %{?_with_gcov: 1} %{?!_with_gcov: 0}
a17ef5
c68fd7
#
c68fd7
# ipa_clone support
c68fd7
%define with_ipaclones %{?_without_ipaclones: 0} %{?!_without_ipaclones: 1}
c68fd7
c68fd7
Jesse Keating 7a3296
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
Jesse Keating 7a3296
#  and 0 for rawhide (all kernels are debug kernels).
Jesse Keating 7a3296
# See also 'make debug' and 'make release'.
Jeremy Cline 262dbe
%define debugbuildsenabled 1
Jesse Keating 7a3296
878b6d
%if 0%{?fedora}
1d23fd
# Kernel headers are being split out into a separate package
eba4a7
%define with_headers 0
eba4a7
%define with_cross_headers 0
1d23fd
# no selftests for now
1d23fd
%define with_selftests 0
c68fd7
# no ipa_clone for now
c68fd7
%define with_ipaclones 0
11fa12
# no whitelist
11fa12
%define with_kernel_abi_whitelists 0
d9864a
# Fedora builds these separately
d9864a
%define with_perf 0
d9864a
%define with_tools 0
d9864a
%define with_bpftool 0
259405
%endif
eba4a7
2fb3e7
%if %{with_verbose}
2fb3e7
%define make_opts V=1
2fb3e7
%else
2fb3e7
%define make_opts -s
2fb3e7
%endif
2fb3e7
Jesse Keating 7a3296
# Want to build a vanilla kernel build without any non-upstream patches?
Jesse Keating 7a3296
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
Jesse Keating 7a3296
Jesse Keating 7a3296
# pkg_release is what we'll fill in for the rpm Release: field
Jesse Keating 7a3296
%if 0%{?released_kernel}
Jesse Keating 7a3296
Chuck Ebbert e6236b
%define pkg_release %{fedora_build}%{?buildid}%{?dist}
Jesse Keating 7a3296
Jesse Keating 7a3296
%else
Jesse Keating 7a3296
Jesse Keating 7a3296
# non-released_kernel
Jesse Keating 7a3296
%if 0%{?rcrev}
Jesse Keating 7a3296
%define rctag .rc%rcrev
Jesse Keating 7a3296
%else
Jesse Keating 7a3296
%define rctag .rc0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%if 0%{?gitrev}
Jesse Keating 7a3296
%define gittag .git%gitrev
Jesse Keating 7a3296
%else
Jesse Keating 7a3296
%define gittag .git0
Jesse Keating 7a3296
%endif
Kyle McMartin 66ce81
%define pkg_release 0%{?rctag}%{?gittag}.%{fedora_build}%{?buildid}%{?dist}
Jesse Keating 7a3296
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
# The kernel tarball/base version
1bde9d
%define kversion 5.%{base_sublevel}
Jesse Keating 7a3296
a17ef5
a17ef5
# turn off debug kernel and kabichk for gcov builds
a17ef5
%if %{with_gcov}
a17ef5
%define with_debug 0
a17ef5
%define with_kabichk 0
a17ef5
%define with_kabidupchk 0
a17ef5
%define with_kabidwchk 0
a17ef5
%endif
a17ef5
11fa12
# turn off kABI DWARF-based check if we're generating the base dataset
11fa12
%if %{with_kabidw_base}
11fa12
%define with_kabidwchk 0
11fa12
%endif
11fa12
c68fd7
# kpatch_kcflags are extra compiler flags applied to base kernel
c68fd7
# -fdump-ipa-clones is enabled only for base kernels on selected arches
c68fd7
%if %{with_ipaclones}
c68fd7
%ifarch x86_64 ppc64le
c68fd7
%define kpatch_kcflags -fdump-ipa-clones
c68fd7
%else
c68fd7
%define with_ipaclones 0
c68fd7
%endif
c68fd7
%endif
c68fd7
Jesse Keating 7a3296
%define make_target bzImage
3ceaf1
%define image_install_path boot
Jesse Keating 7a3296
Jesse Keating 7a3296
%define KVERREL %{version}-%{release}.%{_target_cpu}
Jesse Keating 7a3296
%define hdrarch %_target_cpu
Jesse Keating 7a3296
%define asmarch %_target_cpu
Jesse Keating 7a3296
Jesse Keating 7a3296
%if 0%{!?nopatches:1}
Jesse Keating 7a3296
%define nopatches 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%if %{with_vanilla}
Jesse Keating 7a3296
%define nopatches 1
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%if %{nopatches}
Jesse Keating 7a3296
%define variant -vanilla
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%if !%{debugbuildsenabled}
Jesse Keating 7a3296
%define with_debug 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%if !%{with_debuginfo}
Jesse Keating 7a3296
%define _enable_debug_packages 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%define debuginfodir /usr/lib/debug
88fc0e
# Needed because we override almost everything involving build-ids
88fc0e
# and debuginfo generation. Currently we rely on the old alldebug setting.
88fc0e
%global _build_id_links alldebug
Jesse Keating 7a3296
7a94d5
# kernel PAE is only built on ARMv7
21e4b8
%ifnarch armv7hl
Jesse Keating 7a3296
%define with_pae 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
# if requested, only build base kernel
Jesse Keating 7a3296
%if %{with_baseonly}
Jarod Wilson 5b0327
%define with_pae 0
Jarod Wilson 5b0327
%define with_debug 0
Jarod Wilson 5b0327
%endif
Jarod Wilson 5b0327
Jarod Wilson 5b0327
# if requested, only build pae kernel
Jarod Wilson 5b0327
%if %{with_paeonly}
Jarod Wilson 5b0327
%define with_up 0
Jesse Keating 7a3296
%define with_debug 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
# if requested, only build debug kernel
Jesse Keating 7a3296
%if %{with_dbgonly}
Jesse Keating 7a3296
%if %{debugbuildsenabled}
Jesse Keating 7a3296
%define with_up 0
Jarod Wilson 5b0327
%define with_pae 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%define with_pae 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
11fa12
# turn off kABI DUP check and DWARF-based check if kABI check is disabled
11fa12
%if !%{with_kabichk}
11fa12
%define with_kabidupchk 0
11fa12
%define with_kabidwchk 0
11fa12
%endif
11fa12
Jesse Keating 7a3296
%if %{with_vdso_install}
df3d8e
%define use_vdso 1
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
11fa12
%ifnarch noarch
11fa12
%define with_kernel_abi_whitelists 0
11fa12
%endif
11fa12
Jesse Keating 7a3296
# Overrides for generic default options
Jesse Keating 7a3296
ef7187
# only package docs noarch
ef7187
%ifnarch noarch
ef7187
%define with_doc 0
ef7187
%define doc_build_fail true
ef7187
%endif
ef7187
d9864a
%if 0%{?fedora}
Jesse Keating 7a3296
# don't do debug builds on anything but i686 and x86_64
Jesse Keating 7a3296
%ifnarch i686 x86_64
Jesse Keating 7a3296
%define with_debug 0
Jesse Keating 7a3296
%endif
d9864a
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
# don't build noarch kernels or headers (duh)
Jesse Keating 7a3296
%ifarch noarch
Jesse Keating 7a3296
%define with_up 0
Jesse Keating 7a3296
%define with_headers 0
f65f3f
%define with_cross_headers 0
1d23fd
%define with_selftests 0
1d23fd
%define with_debug 0
Jesse Keating 7a3296
%define all_arch_configs kernel-%{version}-*.config
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
a3f68e
# sparse blows up on ppc
b13aac
%ifnarch ppc64le
Jesse Keating 7a3296
%define with_sparse 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
# Per-arch tweaks
Jesse Keating 7a3296
d9864a
%ifarch i686
Jesse Keating 7a3296
%define asmarch x86
Jesse Keating 7a3296
%define hdrarch i386
Jesse Keating 7a3296
%define all_arch_configs kernel-%{version}-i?86*.config
Jesse Keating 7a3296
%define kernel_image arch/x86/boot/bzImage
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%ifarch x86_64
Jesse Keating 7a3296
%define asmarch x86
Jesse Keating 7a3296
%define all_arch_configs kernel-%{version}-x86_64*.config
Jesse Keating 7a3296
%define kernel_image arch/x86/boot/bzImage
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
b13aac
%ifarch ppc64le
Jesse Keating 7a3296
%define asmarch powerpc
Jesse Keating 7a3296
%define hdrarch powerpc
Jesse Keating 7a3296
%define make_target vmlinux
Jesse Keating 7a3296
%define kernel_image vmlinux
Jesse Keating 7a3296
%define kernel_image_elf 1
Josh Boyer 5a7728
%ifarch ppc64le
c9229e
%define all_arch_configs kernel-%{version}-ppc64le*.config
a3f68e
%endif
Josh Boyer 5a7728
%endif
Josh Boyer 5a7728
Jesse Keating 7a3296
%ifarch s390x
Jesse Keating 7a3296
%define asmarch s390
Jesse Keating 7a3296
%define hdrarch s390
Jesse Keating 7a3296
%define all_arch_configs kernel-%{version}-s390x.config
Hendrik Brueckner 517c0b
%define kernel_image arch/s390/boot/bzImage
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%ifarch %{arm}
Jesse Keating 7a3296
%define all_arch_configs kernel-%{version}-arm*.config
df3d8e
%define skip_nonpae_vdso 1
Josh Boyer 8ffa0a
%define asmarch arm
Jesse Keating 7a3296
%define hdrarch arm
986a9f
%define make_target bzImage
986a9f
%define kernel_image arch/arm/boot/zImage
Kyle McMartin 9b1a4c
# http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/091404.html
Kyle McMartin 9b1a4c
%define kernel_mflags KALLSYMS_EXTRA_PASS=1
43fa71
# we only build headers/perf/tools on the base arm arches
94b006
# just like we used to only build them on i386 for x86
a94069
%ifnarch armv7hl
94b006
%define with_headers 0
f65f3f
%define with_cross_headers 0
94b006
%endif
1d23fd
# These currently don't compile on armv7
1d23fd
%define with_selftests 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Kyle McMartin 575de6
%ifarch aarch64
918c10
%define all_arch_configs kernel-%{version}-aarch64*.config
Kyle McMartin 575de6
%define asmarch arm64
Kyle McMartin 575de6
%define hdrarch arm64
Kyle McMartin 575de6
%define make_target Image.gz
Kyle McMartin 575de6
%define kernel_image arch/arm64/boot/Image.gz
Kyle McMartin 575de6
%endif
Kyle McMartin 575de6
Dave Jones 834dba
# Should make listnewconfig fail if there's config options
Dave Jones 834dba
# printed out?
cff59d
%if %{nopatches}
Dave Jones 834dba
%define listnewconfig_fail 0
a20ad4
%define configmismatch_fail 0
Dave Jones 834dba
%else
Dave Jones 834dba
%define listnewconfig_fail 1
ab0c52
%define configmismatch_fail 1
Dave Jones 834dba
%endif
Dave Jones 834dba
Jesse Keating 7a3296
# To temporarily exclude an architecture from being built, add it to
Dave Jones 166b79
# %%nobuildarches. Do _NOT_ use the ExclusiveArch: line, because if we
Jesse Keating 7a3296
# don't build kernel-headers then the new build system will no longer let
Jesse Keating 7a3296
# us use the previous build of that package -- it'll just be completely AWOL.
Jesse Keating 7a3296
# Which is a BadThing(tm).
Jesse Keating 7a3296
Jesse Keating 7a3296
# We only build kernel-headers on the following...
d9864a
%if 0%{?fedora}
1b48ca
%define nobuildarches i386
d9864a
%else
d9864a
%define nobuildarches i386 i686
d9864a
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%ifarch %nobuildarches
Jesse Keating 7a3296
%define with_up 0
abad14
%define with_debug 0
1d23fd
%define with_debuginfo 0
1d23fd
%define with_selftests 0
1d23fd
%define with_pae 0
Jesse Keating 7a3296
%define _enable_debug_packages 0
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Josh Boyer 8addb5
# Architectures we build tools/cpupower on
d9864a
%if 0%{?fedora}
b13aac
%define cpupowerarchs %{ix86} x86_64 ppc64le %{arm} aarch64
d9864a
%else
d9864a
%define cpupowerarchs i686 x86_64 ppc64le aarch64
d9864a
%endif
Josh Boyer 8addb5
df3d8e
%if %{use_vdso}
df3d8e
df3d8e
%if 0%{?skip_nonpae_vdso}
df3d8e
%define _use_vdso 0
df3d8e
%else
df3d8e
%define _use_vdso 1
df3d8e
%endif
df3d8e
df3d8e
%else
df3d8e
%define _use_vdso 0
df3d8e
%endif
df3d8e
df3d8e
Jesse Keating 7a3296
#
Dave Jones 166b79
# Packages that need to be installed before the kernel is, because the %%post
Jesse Keating 7a3296
# scripts use them.
Jesse Keating 7a3296
#
e07a3b
%define kernel_prereq  coreutils, systemd >= 203-2, /usr/bin/kernel-install
Josh Boyer 6d752a
%define initrd_prereq  dracut >= 027
Jesse Keating 7a3296
Jesse Keating 7a3296
Jesse Keating 7a3296
Name: kernel%{?variant}
Dave Jones 702ef3
License: GPLv2 and Redistributable, no modification permitted
dce627
URL: https://www.kernel.org/
Jesse Keating 7a3296
Version: %{rpmversion}
e093b2
Release: %{pkg_release}
Jesse Keating 7a3296
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
Jesse Keating 7a3296
# SET %%nobuildarches (ABOVE) INSTEAD
d9864a
%if 0%{?fedora}
92f058
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
d9864a
%else
d9864a
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
d9864a
%endif
Jesse Keating 7a3296
ExclusiveOS: Linux
a9cc54
%ifnarch %{nobuildarches}
Jarod Wilson a96d89
Requires: kernel-core-uname-r = %{KVERREL}%{?variant}
Jarod Wilson a96d89
Requires: kernel-modules-uname-r = %{KVERREL}%{?variant}
a9cc54
%endif
Jesse Keating 7a3296
Dave Jones efc71a
Jesse Keating 7a3296
#
Jesse Keating 7a3296
# List the packages used during the kernel build
Jesse Keating 7a3296
#
761bb0
BuildRequires: kmod, patch, bash, tar, git-core
575a9e
BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk
2a778f
BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, bison, flex
43d94d
BuildRequires: net-tools, hostname, bc, elfutils-devel
15c042
%if 0%{?fedora}
Jeremy Cline 1a0811
# Used to mangle unversioned shebangs to be Python 3
Jeremy Cline 1a0811
BuildRequires: /usr/bin/pathfix.py
15c042
%endif
43d94d
%if %{with_headers}
43d94d
BuildRequires: rsync
43d94d
%endif
ef7187
%if %{with_doc}
ef7187
BuildRequires: xmlto, asciidoc, python3-sphinx
ef7187
%endif
Jesse Keating 7a3296
%if %{with_sparse}
Kyle McMartin 11dfcd
BuildRequires: sparse
Jesse Keating 7a3296
%endif
1d23fd
%if %{with_selftests}
1d23fd
%if 0%{?fedora}
1d23fd
BuildRequires: clang llvm
1d23fd
%else
1d23fd
BuildRequires: llvm-toolset
1d23fd
%endif
1d23fd
%ifnarch %{arm}
1d23fd
BuildRequires: numactl-devel
1d23fd
%endif
1d23fd
BuildRequires: libcap-devel libcap-ng-devel rsync
1d23fd
%endif
Jesse Keating 7a3296
BuildConflicts: rhbuildsys(DiskFree) < 500Mb
Jesse Keating 7a3296
%if %{with_debuginfo}
Kyle McMartin 11dfcd
BuildRequires: rpm-build, elfutils
debc7c
BuildConflicts: rpm < 4.13.0.1-19
debc7c
# Most of these should be enabled after more investigation
debc7c
%undefine _include_minidebuginfo
debc7c
%undefine _find_debuginfo_dwz_opts
debc7c
%undefine _unique_build_ids
debc7c
%undefine _unique_debug_names
debc7c
%undefine _unique_debug_srcs
e23cf2
%undefine _debugsource_packages
e23cf2
%undefine _debuginfo_subpackages
debc7c
%global _find_debuginfo_opts -r
debc7c
%global _missing_build_ids_terminate_build 1
debc7c
%global _no_recompute_build_ids 1
Jesse Keating 7a3296
%endif
11fa12
%if %{with_kabidwchk} || %{with_kabidw_base}
11fa12
BuildRequires: kabi-dw
11fa12
%endif
Jesse Keating 7a3296
149275
%if %{signkernel}%{signmodules}
c0b697
BuildRequires: openssl openssl-devel
149275
%if %{signkernel}
Josh Boyer bf81d1
BuildRequires: pesign >= 0.10-4
Josh Boyer c2a12c
%endif
149275
%endif
Josh Boyer c2a12c
Kyle McMartin 43d64b
%if %{with_cross}
Kyle McMartin 43d64b
BuildRequires: binutils-%{_build_arch}-linux-gnu, gcc-%{_build_arch}-linux-gnu
Kyle McMartin 43d64b
%define cross_opts CROSS_COMPILE=%{_build_arch}-linux-gnu-
Kyle McMartin 43d64b
%endif
Kyle McMartin 43d64b
1bde9d
Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%{kversion}.tar.xz
Jesse Keating 7a3296
Josh Boyer f0f4ff
Source11: x509.genkey
523d98
Source12: remove-binary-diff.pl
Jesse Keating 7a3296
Source15: merge.pl
Josh Boyer b8b278
Source16: mod-extra.list
Josh Boyer 0b4338
Source17: mod-extra.sh
Kyle McMartin d0a8cf
Source18: mod-sign.sh
564854
Source19: mod-extra-blacklist.sh
94ce4e
Source90: filter-x86_64.sh
94ce4e
Source91: filter-armv7hl.sh
94ce4e
Source92: filter-i686.sh
94ce4e
Source93: filter-aarch64.sh
bec265
Source94: filter-ppc64le.sh
bec265
Source95: filter-s390x.sh
94ce4e
Source99: filter-modules.sh
Kyle McMartin d0a8cf
%define modsign_cmd %{SOURCE18}
Jesse Keating 7a3296
1b7eeb
Source20: kernel-aarch64.config
1b7eeb
Source21: kernel-aarch64-debug.config
1b7eeb
Source22: kernel-armv7hl.config
1b7eeb
Source23: kernel-armv7hl-debug.config
1b7eeb
Source24: kernel-armv7hl-lpae.config
1b7eeb
Source25: kernel-armv7hl-lpae-debug.config
1b7eeb
Source26: kernel-i686.config
1b7eeb
Source27: kernel-i686-debug.config
bec265
Source30: kernel-ppc64le.config
bec265
Source31: kernel-ppc64le-debug.config
bec265
Source32: kernel-s390x.config
bec265
Source33: kernel-s390x-debug.config
bec265
Source34: kernel-x86_64.config
bec265
Source35: kernel-x86_64-debug.config
1b7eeb
1b7eeb
Source40: generate_all_configs.sh
1b7eeb
Source41: generate_debug_configs.sh
Jesse Keating 7a3296
2bf928
Source42: process_configs.sh
08732e
Source43: generate_bls_conf.sh
a20ad4
564854
Source44: mod-internal.list
564854
Jarod Wilson 5b6529
# This file is intentionally left empty in the stock kernel. Its a nicety
Jarod Wilson 5b6529
# added for those wanting to do custom rebuilds with altered config opts.
1b7eeb
Source1000: kernel-local
Jarod Wilson 5b6529
Jesse Keating 7a3296
# Here should be only the patches up to the upstream canonical Linus tree.
Jesse Keating 7a3296
Jesse Keating 7a3296
# For a stable release kernel
Jesse Keating 7a3296
%if 0%{?stable_update}
Jesse Keating 7a3296
%if 0%{?stable_base}
ab28ab
%define    stable_patch_00  patch-5.%{base_sublevel}.%{stable_base}.xz
178df3
Source5000: %{stable_patch_00}
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
# non-released_kernel case
Jesse Keating 7a3296
# These are automagically defined by the rcrev and gitrev values set up
Jesse Keating 7a3296
# near the top of this spec file.
Jesse Keating 7a3296
%else
Jesse Keating 7a3296
%if 0%{?rcrev}
1bde9d
Source5000: patch-5.%{upstream_sublevel}-rc%{rcrev}.xz
Jesse Keating 7a3296
%if 0%{?gitrev}
ab28ab
Source5001: patch-5.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.xz
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%else
Jesse Keating 7a3296
# pre-{base_sublevel+1}-rc1 case
Jesse Keating 7a3296
%if 0%{?gitrev}
ab28ab
Source5000: patch-5.%{base_sublevel}-git%{gitrev}.xz
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
476553
## Patches needed for building this package
476553
476553
## compile fixes
476553
Jesse Keating 7a3296
%if !%{nopatches}
Jesse Keating 7a3296
Jesse Keating 7a3296
# Git trees.
Jesse Keating 7a3296
Jesse Keating 7a3296
# Standalone patches
72924c
# 100 - Generic long running patches
Jesse Keating 7a3296
72924c
# 200 - x86 / secureboot
Jesse Keating 7a3296
7bea88
# bz 1497559 - Make kernel MODSIGN code not error on missing variables
Jeremy Cline 5df4c5
Patch200: 0001-Make-get_cert_list-not-complain-about-cert-lists-tha.patch
Jeremy Cline 5df4c5
Patch201: 0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
Jeremy Cline 5df4c5
Patch202: 0003-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch
Jeremy Cline 5df4c5
Jeremy Cline 5df4c5
Patch204: efi-secureboot.patch
Dave Jones 18e50c
Jeremy Cline 5df4c5
Patch205: lift-lockdown-sysrq.patch
bbfe8b
89ddbf
# https://bugzilla.redhat.com/show_bug.cgi?id=1759325
89ddbf
# Submitted upstream at https://lore.kernel.org/patchwork/patch/1136967/
89ddbf
Patch206: efi-efi_test-lock-down-dev-efi_test-and-require-CAP_.patch
89ddbf
72924c
# 300 - ARM patches
b98ae2
Patch300: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch
Josh Boyer 27e48a
4919ac
# RHBZ Bug 1576593 - work around while vendor investigates
4919ac
Patch301: arm-make-highpte-not-expert.patch
bd6ba4
ac8c6d
# https://patchwork.kernel.org/patch/10351797/
4919ac
Patch302: ACPI-scan-Fix-regression-related-to-X-Gene-UARTs.patch
ac8c6d
# rhbz 1574718
4919ac
Patch303: ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch
d2e0e6
4919ac
Patch305: ARM-tegra-usb-no-reset.patch
d7341f
509cc0
# Tegra bits
4919ac
Patch320: arm64-tegra-jetson-tx1-fixes.patch
977bfe
# https://www.spinics.net/lists/linux-tegra/msg43110.html
4919ac
Patch321: arm64-tegra-Jetson-TX2-Allow-bootloader-to-configure.patch
12bb79
# https://patchwork.kernel.org/patch/11171225/
12bb79
Patch322: mfd-max77620-Do-not-allocate-IRQs-upfront.patch
12bb79
# https://patchwork.ozlabs.org/patch/1170631/
12bb79
Patch323: gpio-max77620-Use-correct-unit-for-debounce-times.patch
5cbb39
# https://www.spinics.net/lists/linux-tegra/msg44216.html
6d5fda
Patch324: arm64-tegra186-enable-USB-on-Jetson-TX2.patch
1149cc
9f8bb9
# https://www.spinics.net/lists/arm-kernel/msg761152.html
9f8bb9
Patch342: efi-libstub-arm-account-for-firmware-reserved-memory-at-the-base-of-RAM.patch
9f8bb9
72924c
# 400 - IBM (ppc/s390x) patches
35eff4
72924c
# 500 - Temp fixes/CVEs etc
ab0c52
# rhbz 1431375
5bee75
Patch501: input-rmi4-remove-the-need-for-artifical-IRQ.patch
ab0c52
a20edb
# gcc9 fixes
2fe857
Patch502: 0001-Drop-that-for-now.patch
a20edb
Jeremy Cline 3313b2
# https://bugzilla.redhat.com/show_bug.cgi?id=1701096
Jeremy Cline 3313b2
# Submitted upstream at https://lkml.org/lkml/2019/4/23/89
2fe857
Patch503: KEYS-Make-use-of-platform-keyring-for-module-signature.patch
2fe857
Jeremy Cline c16b4f
# Fixes a boot hang on debug kernels
Jeremy Cline c16b4f
# https://bugzilla.redhat.com/show_bug.cgi?id=1756655
Jeremy Cline c16b4f
Patch504: 0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch
Jeremy Cline c16b4f
9f8bb9
# it seems CONFIG_OPTIMIZE_INLINING has been forced now and is causing issues on ARMv7
9f8bb9
# https://lore.kernel.org/patchwork/patch/1132459/
9f8bb9
# https://lkml.org/lkml/2019/8/29/1772
9f8bb9
Patch505: ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch
9f8bb9
Josh Boyer 812ba1
# END OF PATCH DEFINITIONS
Josh Boyer 812ba1
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
Jesse Keating 7a3296
%description
94ce4e
The kernel meta package
94ce4e
94ce4e
#
94ce4e
# This macro does requires, provides, conflicts, obsoletes for a kernel package.
94ce4e
#	%%kernel_reqprovconf <subpackage>
94ce4e
# It uses any kernel_<subpackage>_conflicts and kernel_<subpackage>_obsoletes
94ce4e
# macros defined above.
94ce4e
#
94ce4e
%define kernel_reqprovconf \
94ce4e
Provides: kernel = %{rpmversion}-%{pkg_release}\
94ce4e
Provides: kernel-%{_target_cpu} = %{rpmversion}-%{pkg_release}%{?1:+%{1}}\
94ce4e
Provides: kernel-drm-nouveau = 16\
Jarod Wilson a96d89
Provides: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
94ce4e
Requires(pre): %{kernel_prereq}\
94ce4e
Requires(pre): %{initrd_prereq}\
573a44
Requires(pre): linux-firmware >= 20150904-56.git6ebf5d57\
94ce4e
Requires(preun): systemd >= 200\
519148
Conflicts: xfsprogs < 4.3.0-1\
6ab5f4
Conflicts: xorg-x11-drv-vmmouse < 13.0.99\
94ce4e
%{expand:%%{?kernel%{?1:_%{1}}_conflicts:Conflicts: %%{kernel%{?1:_%{1}}_conflicts}}}\
94ce4e
%{expand:%%{?kernel%{?1:_%{1}}_obsoletes:Obsoletes: %%{kernel%{?1:_%{1}}_obsoletes}}}\
94ce4e
%{expand:%%{?kernel%{?1:_%{1}}_provides:Provides: %%{kernel%{?1:_%{1}}_provides}}}\
94ce4e
# We can't let RPM do the dependencies automatic because it'll then pick up\
94ce4e
# a correct but undesirable perl dependency from the module headers which\
94ce4e
# isn't required for the kernel proper to function\
f19b8f
AutoReq: no\
f19b8f
AutoProv: yes\
94ce4e
%{nil}
Jesse Keating 7a3296
ef7187
%package doc
ef7187
Summary: Various documentation bits found in the kernel source
ef7187
Group: Documentation
ef7187
%description doc
ef7187
This package contains documentation files from the kernel
ef7187
source. Various bits of information about the Linux kernel and the
ef7187
device drivers shipped with it are documented in these files.
ef7187
ef7187
You'll want to install this package if you need a reference to the
ef7187
options that can be passed to Linux kernel modules at load time.
ef7187
Jesse Keating 7a3296
%package headers
Jesse Keating 7a3296
Summary: Header files for the Linux kernel for use by glibc
Dave Jones d555d6
Obsoletes: glibc-kernheaders < 3.0-46
Jesse Keating 7a3296
Provides: glibc-kernheaders = 3.0-46
Jarod Wilson cde0b0
%if "0%{?variant}"
Jarod Wilson 8a29c5
Obsoletes: kernel-headers < %{rpmversion}-%{pkg_release}
Jarod Wilson 8a29c5
Provides: kernel-headers = %{rpmversion}-%{pkg_release}
Jarod Wilson 8a29c5
%endif
Jesse Keating 7a3296
%description headers
Jesse Keating 7a3296
Kernel-headers includes the C header files that specify the interface
Jesse Keating 7a3296
between the Linux kernel and userspace libraries and programs.  The
Jesse Keating 7a3296
header files define structures and constants that are needed for
Jesse Keating 7a3296
building most standard programs and are also needed for rebuilding the
Jesse Keating 7a3296
glibc package.
Jesse Keating 7a3296
f65f3f
%package cross-headers
f65f3f
Summary: Header files for the Linux kernel for use by cross-glibc
f65f3f
%description cross-headers
f65f3f
Kernel-cross-headers includes the C header files that specify the interface
f65f3f
between the Linux kernel and userspace libraries and programs.  The
f65f3f
header files define structures and constants that are needed for
f65f3f
building most standard programs and are also needed for rebuilding the
f65f3f
cross-glibc package.
f65f3f
f65f3f
Jesse Keating 7a3296
%package debuginfo-common-%{_target_cpu}
Jesse Keating 7a3296
Summary: Kernel source files used by %{name}-debuginfo packages
f8e555
Provides: installonlypkg(kernel)
Jesse Keating 7a3296
%description debuginfo-common-%{_target_cpu}
Jesse Keating 7a3296
This package is required by %{name}-debuginfo subpackages.
Jesse Keating 7a3296
It provides the kernel source files common to all builds.
Jesse Keating 7a3296
1d23fd
%if %{with_selftests}
1d23fd
1d23fd
%package selftests-internal
1d23fd
Summary: Kernel samples and selftests
1d23fd
License: GPLv2
1d23fd
Requires: binutils, bpftool, iproute-tc, nmap-ncat
1d23fd
Requires: kernel-modules-internal = %{version}-%{release}
1d23fd
%description selftests-internal
1d23fd
Kernel sample programs and selftests.
1d23fd
1d23fd
# Note that this pattern only works right to match the .build-id
1d23fd
# symlinks because of the trailing nonmatching alternation and
1d23fd
# the leading .*, because of find-debuginfo.sh's buggy handling
1d23fd
# of matching the pattern against the symlinks file.
1d23fd
%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_libexecdir}/(ksamples|kselftests)/.*|XXX' -o selftests-debuginfo.list}
1d23fd
1d23fd
%endif # with_selftests
1d23fd
a17ef5
%if %{with_gcov}
a17ef5
%package gcov
a17ef5
Summary: gcov graph and source files for coverage data collection.
a17ef5
%description gcov
a17ef5
kernel-gcov includes the gcov graph and source files for gcov coverage collection.
a17ef5
%endif
a17ef5
11fa12
%package -n kernel-abi-whitelists
11fa12
Summary: The Red Hat Enterprise Linux kernel ABI symbol whitelists
11fa12
AutoReqProv: no
11fa12
%description -n kernel-abi-whitelists
11fa12
The kABI package contains information pertaining to the Red Hat Enterprise
11fa12
Linux kernel ABI, including lists of kernel symbols that are needed by
11fa12
external Linux kernel modules, and a yum plugin to aid enforcement.
11fa12
11fa12
%if %{with_kabidw_base}
11fa12
%package kabidw-base
11fa12
Summary: The baseline dataset for kABI verification using DWARF data
11fa12
Group: System Environment/Kernel
11fa12
AutoReqProv: no
11fa12
%description kabidw-base
11fa12
The kabidw-base package contains data describing the current ABI of the Red Hat
11fa12
Enterprise Linux kernel, suitable for the kabi-dw tool.
11fa12
%endif
11fa12
11fa12
Jesse Keating 7a3296
#
Jesse Keating 7a3296
# This macro creates a kernel-<subpackage>-debuginfo package.
Jesse Keating 7a3296
#	%%kernel_debuginfo_package <subpackage>
Jesse Keating 7a3296
#
Jesse Keating 7a3296
%define kernel_debuginfo_package() \
Jesse Keating 7a3296
%package %{?1:%{1}-}debuginfo\
Jesse Keating 7a3296
Summary: Debug information for package %{name}%{?1:-%{1}}\
Jesse Keating 7a3296
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}\
Jesse Keating 7a3296
Provides: %{name}%{?1:-%{1}}-debuginfo-%{_target_cpu} = %{version}-%{release}\
f8e555
Provides: installonlypkg(kernel)\
Jesse Keating 7a3296
AutoReqProv: no\
Jarod Wilson b55491
%description %{?1:%{1}-}debuginfo\
Jesse Keating 7a3296
This package provides debug information for package %{name}%{?1:-%{1}}.\
Jesse Keating 7a3296
This is required to use SystemTap with %{name}%{?1:-%{1}}-%{KVERREL}.\
debc7c
%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '/.*/%%{KVERREL}%{?1:[+]%{1}}/.*|/.*%%{KVERREL}%{?1:\+%{1}}(\.debug)?' -o debuginfo%{?1}.list}\
Jesse Keating 7a3296
%{nil}
Jesse Keating 7a3296
Jesse Keating 7a3296
#
Jesse Keating 7a3296
# This macro creates a kernel-<subpackage>-devel package.
Jesse Keating 7a3296
#	%%kernel_devel_package <subpackage> <pretty-name>
Jesse Keating 7a3296
#
Jesse Keating 7a3296
%define kernel_devel_package() \
Jesse Keating 7a3296
%package %{?1:%{1}-}devel\
Jesse Keating 7a3296
Summary: Development package for building kernel modules to match the %{?2:%{2} }kernel\
Jesse Keating 7a3296
Provides: kernel%{?1:-%{1}}-devel-%{_target_cpu} = %{version}-%{release}\
faf252
Provides: kernel-devel-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
Jarod Wilson a96d89
Provides: kernel-devel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
aba394
Provides: installonlypkg(kernel)\
Jesse Keating 7a3296
AutoReqProv: no\
9b73a1
Requires(pre): findutils\
9b73a1
Requires: findutils\
575a9e
Requires: perl-interpreter\
Jarod Wilson b55491
%description %{?1:%{1}-}devel\
Jesse Keating 7a3296
This package provides kernel headers and makefiles sufficient to build modules\
Jesse Keating 7a3296
against the %{?2:%{2} }kernel package.\
Jesse Keating 7a3296
%{nil}
Jesse Keating 7a3296
Jesse Keating 7a3296
#
c68fd7
# kernel-<variant>-ipaclones-internal package
c68fd7
#
c68fd7
%define kernel_ipaclones_package() \
c68fd7
%package %{?1:%{1}-}ipaclones-internal\
c68fd7
Summary: *.ipa-clones files generated by -fdump-ipa-clones for kernel%{?1:-%{1}}\
c68fd7
Group: System Environment/Kernel\
c68fd7
AutoReqProv: no\
c68fd7
%description %{?1:%{1}-}ipaclones-internal\
c68fd7
This package provides *.ipa-clones files.\
c68fd7
%{nil}
c68fd7
c68fd7
#
564854
# This macro creates a kernel-<subpackage>-modules-internal package.
564854
#	%%kernel_modules_internal_package <subpackage> <pretty-name>
564854
#
564854
%define kernel_modules_internal_package() \
564854
%package %{?1:%{1}-}modules-internal\
564854
Summary: Extra kernel modules to match the %{?2:%{2} }kernel\
564854
Group: System Environment/Kernel\
564854
Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}\
564854
Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
564854
Provides: kernel%{?1:-%{1}}-modules-internal = %{version}-%{release}%{?1:+%{1}}\
564854
Provides: installonlypkg(kernel-module)\
564854
Provides: kernel%{?1:-%{1}}-modules-internal-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
564854
Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
564854
Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
564854
AutoReq: no\
564854
AutoProv: yes\
564854
%description %{?1:%{1}-}modules-internal\
564854
This package provides kernel modules for the %{?2:%{2} }kernel package for Red Hat internal usage.\
564854
%{nil}
564854
564854
#
Josh Boyer b8b278
# This macro creates a kernel-<subpackage>-modules-extra package.
Kyle McMartin de50ed
#	%%kernel_modules_extra_package <subpackage> <pretty-name>
Josh Boyer b8b278
#
Kyle McMartin de50ed
%define kernel_modules_extra_package() \
Josh Boyer b8b278
%package %{?1:%{1}-}modules-extra\
Josh Boyer b8b278
Summary: Extra kernel modules to match the %{?2:%{2} }kernel\
Josh Boyer b8b278
Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}\
3752c8
Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
3752c8
Provides: kernel%{?1:-%{1}}-modules-extra = %{version}-%{release}%{?1:+%{1}}\
Josh Boyer 6721e4
Provides: installonlypkg(kernel-module)\
Jarod Wilson a96d89
Provides: kernel%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Jarod Wilson a96d89
Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Jarod Wilson a96d89
Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
f19b8f
AutoReq: no\
f19b8f
AutoProv: yes\
Jarod Wilson b55491
%description %{?1:%{1}-}modules-extra\
Josh Boyer b8b278
This package provides less commonly used kernel modules for the %{?2:%{2} }kernel package.\
Josh Boyer b8b278
%{nil}
Josh Boyer b8b278
Josh Boyer b8b278
#
aa7351
# This macro creates a kernel-<subpackage>-modules package.
aa7351
#	%%kernel_modules_package <subpackage> <pretty-name>
94ce4e
#
aa7351
%define kernel_modules_package() \
aa7351
%package %{?1:%{1}-}modules\
94ce4e
Summary: kernel modules to match the %{?2:%{2}-}core kernel\
aa7351
Provides: kernel%{?1:-%{1}}-modules-%{_target_cpu} = %{version}-%{release}\
aa7351
Provides: kernel-modules-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
aa7351
Provides: kernel-modules = %{version}-%{release}%{?1:+%{1}}\
94ce4e
Provides: installonlypkg(kernel-module)\
Jarod Wilson a96d89
Provides: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Jarod Wilson a96d89
Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
f19b8f
AutoReq: no\
f19b8f
AutoProv: yes\
Jarod Wilson b55491
%description %{?1:%{1}-}modules\
94ce4e
This package provides commonly used kernel modules for the %{?2:%{2}-}core kernel package.\
94ce4e
%{nil}
94ce4e
94ce4e
#
335206
# this macro creates a kernel-<subpackage> meta package.
335206
#	%%kernel_meta_package <subpackage>
335206
#
335206
%define kernel_meta_package() \
335206
%package %{1}\
335206
summary: kernel meta-package for the %{1} kernel\
Jarod Wilson a96d89
Requires: kernel-%{1}-core-uname-r = %{KVERREL}%{?variant}+%{1}\
Jarod Wilson a96d89
Requires: kernel-%{1}-modules-uname-r = %{KVERREL}%{?variant}+%{1}\
f8e555
Provides: installonlypkg(kernel)\
335206
%description %{1}\
335206
The meta-package for the %{1} kernel\
335206
%{nil}
335206
335206
#
Jesse Keating 7a3296
# This macro creates a kernel-<subpackage> and its -devel and -debuginfo too.
Jesse Keating 7a3296
#	%%define variant_summary The Linux kernel compiled for <configuration>
Jesse Keating 7a3296
#	%%kernel_variant_package [-n <pretty-name>] <subpackage>
Jesse Keating 7a3296
#
Jesse Keating 7a3296
%define kernel_variant_package(n:) \
94ce4e
%package %{?1:%{1}-}core\
Jesse Keating 7a3296
Summary: %{variant_summary}\
Jarod Wilson a96d89
Provides: kernel-%{?1:%{1}-}core-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
f8e555
Provides: installonlypkg(kernel)\
b13aac
%ifarch ppc64le\
972f0e
Obsoletes: kernel-bootwrapper\
972f0e
%endif\
94ce4e
%{expand:%%kernel_reqprovconf}\
335206
%if %{?1:1} %{!?1:0} \
335206
%{expand:%%kernel_meta_package %{?1:%{1}}}\
335206
%endif\
94ce4e
%{expand:%%kernel_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
aa7351
%{expand:%%kernel_modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
94ce4e
%{expand:%%kernel_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
564854
%{expand:%%kernel_modules_internal_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
94ce4e
%{expand:%%kernel_debuginfo_package %{?1:%{1}}}\
Jesse Keating 7a3296
%{nil}
Jesse Keating 7a3296
Jesse Keating 7a3296
# Now, each variant package.
Jesse Keating 7a3296
0a7987
%if %{with_pae}
Kyle McMartin bc5f99
%define variant_summary The Linux kernel compiled for Cortex-A15
7a94d5
%kernel_variant_package lpae
7a94d5
%description lpae-core
Kyle McMartin bc5f99
This package includes a version of the Linux kernel with support for
Kyle McMartin bc5f99
Cortex-A15 devices with LPAE and HW virtualisation support
Kyle McMartin bc5f99
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%define variant_summary The Linux kernel compiled with extra debugging enabled
Jesse Keating 7a3296
%kernel_variant_package debug
94ce4e
%description debug-core
Jesse Keating 7a3296
The kernel package contains the Linux kernel (vmlinuz), the core of any
Jesse Keating 7a3296
Linux operating system.  The kernel handles the basic functions
Jesse Keating 7a3296
of the operating system:  memory allocation, process allocation, device
Jesse Keating 7a3296
input and output, etc.
Jesse Keating 7a3296
Jesse Keating 7a3296
This variant of the kernel has numerous debugging options enabled.
Jesse Keating 7a3296
It should only be installed when trying to gather additional information
Jesse Keating 7a3296
on kernel bugs, as some of these options impact performance noticably.
Jesse Keating 7a3296
94ce4e
# And finally the main -core package
94ce4e
94ce4e
%define variant_summary The Linux kernel
2117ac
%kernel_variant_package
94ce4e
%description core
94ce4e
The kernel package contains the Linux kernel (vmlinuz), the core of any
94ce4e
Linux operating system.  The kernel handles the basic functions
94ce4e
of the operating system: memory allocation, process allocation, device
94ce4e
input and output, etc.
94ce4e
c68fd7
%if %{with_ipaclones}
c68fd7
%kernel_ipaclones_package
c68fd7
%endif
c68fd7
Jesse Keating 7a3296
%prep
Jesse Keating 7a3296
# do a few sanity-checks for --with *only builds
Jesse Keating 7a3296
%if %{with_baseonly}
Jesse Keating 7a3296
%if !%{with_up}%{with_pae}
Jesse Keating 7a3296
echo "Cannot build --with baseonly, up build is disabled"
Jesse Keating 7a3296
exit 1
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Josh Boyer c78a08
%if "%{baserelease}" == "0"
Chuck Ebbert 05e763
echo "baserelease must be greater than zero"
Chuck Ebbert 05e763
exit 1
Chuck Ebbert 05e763
%endif
Chuck Ebbert 05e763
Jesse Keating 7a3296
# more sanity checking; do it quietly
Jesse Keating 7a3296
if [ "%{patches}" != "%%{patches}" ] ; then
Jesse Keating 7a3296
  for patch in %{patches} ; do
Jesse Keating 7a3296
    if [ ! -f $patch ] ; then
Jesse Keating 7a3296
      echo "ERROR: Patch  ${patch##/*/}  listed in specfile but is missing"
Jesse Keating 7a3296
      exit 1
Jesse Keating 7a3296
    fi
Jesse Keating 7a3296
  done
Jesse Keating 7a3296
fi 2>/dev/null
Jesse Keating 7a3296
Jesse Keating 7a3296
# First we unpack the kernel tarball.
Jesse Keating 7a3296
# If this isn't the first make prep, we use links to the existing clean tarball
Jesse Keating 7a3296
# which speeds things up quite a bit.
Jesse Keating 7a3296
Jesse Keating 7a3296
# Update to latest upstream.
Jesse Keating 7a3296
%if 0%{?released_kernel}
ab28ab
%define vanillaversion 5.%{base_sublevel}
Jesse Keating 7a3296
# non-released_kernel case
Jesse Keating 7a3296
%else
Jesse Keating 7a3296
%if 0%{?rcrev}
ab28ab
%define vanillaversion 5.%{upstream_sublevel}-rc%{rcrev}
Jesse Keating 7a3296
%if 0%{?gitrev}
ab28ab
%define vanillaversion 5.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%else
Jesse Keating 7a3296
# pre-{base_sublevel+1}-rc1 case
Jesse Keating 7a3296
%if 0%{?gitrev}
ab28ab
%define vanillaversion 5.%{base_sublevel}-git%{gitrev}
Jesse Keating 7a3296
%else
ab28ab
%define vanillaversion 5.%{base_sublevel}
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Dave Jones 166b79
# %%{vanillaversion} : the full version name, e.g. 2.6.35-rc6-git3
Dave Jones 166b79
# %%{kversion}       : the base version, e.g. 2.6.34
Jesse Keating 7a3296
Dave Jones 166b79
# Use kernel-%%{kversion}%%{?dist} as the top-level directory name
Chuck Ebbert 26d08c
# so we can prep different trees within a single git directory.
Jesse Keating 7a3296
Chuck Ebbert 26d08c
# Build a list of the other top-level kernel tree directories.
Chuck Ebbert 26d08c
# This will be used to hardlink identical vanilla subdirs.
ab28ab
sharedirs=$(find "$PWD" -maxdepth 1 -type d -name 'kernel-5.*' \
Chuck Ebbert 26d08c
            | grep -x -v "$PWD"/kernel-%{kversion}%{?dist}) ||:
Jesse Keating 7a3296
Dave Jones 9e2943
# Delete all old stale trees.
Dave Jones 9e2943
if [ -d kernel-%{kversion}%{?dist} ]; then
Dave Jones 9e2943
  cd kernel-%{kversion}%{?dist}
Dave Jones 9e2943
  for i in linux-*
Dave Jones 9e2943
  do
Dave Jones 7bd4de
     if [ -d $i ]; then
Dave Jones 7bd4de
       # Just in case we ctrl-c'd a prep already
Dave Jones 7bd4de
       rm -rf deleteme.%{_target_cpu}
Dave Jones 7bd4de
       # Move away the stale away, and delete in background.
Dave Jones 7bd4de
       mv $i deleteme-$i
Dave Jones 7bd4de
       rm -rf deleteme* &
Dave Jones 7bd4de
     fi
Dave Jones 9e2943
  done
Dave Jones 9e2943
  cd ..
Dave Jones 9e2943
fi
Dave Jones 9e2943
Dave Jones 9e2943
# Generate new tree
Chuck Ebbert 26d08c
if [ ! -d kernel-%{kversion}%{?dist}/vanilla-%{vanillaversion} ]; then
Chuck Ebbert 26d08c
Chuck Ebbert 26d08c
  if [ -d kernel-%{kversion}%{?dist}/vanilla-%{kversion} ]; then
Chuck Ebbert 26d08c
Chuck Ebbert 26d08c
    # The base vanilla version already exists.
Chuck Ebbert 26d08c
    cd kernel-%{kversion}%{?dist}
Jesse Keating 7a3296
Jesse Keating 7a3296
    # Any vanilla-* directories other than the base one are stale.
Jesse Keating 7a3296
    for dir in vanilla-*; do
Jesse Keating 7a3296
      [ "$dir" = vanilla-%{kversion} ] || rm -rf $dir &
Jesse Keating 7a3296
    done
Jesse Keating 7a3296
Jesse Keating 7a3296
  else
Jesse Keating 7a3296
Jesse Keating 7a3296
    rm -f pax_global_header
Chuck Ebbert 26d08c
    # Look for an identical base vanilla dir that can be hardlinked.
Jesse Keating 7a3296
    for sharedir in $sharedirs ; do
Chuck Ebbert 26d08c
      if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{kversion} ]] ; then
Jesse Keating 7a3296
        break
Jesse Keating 7a3296
      fi
Jesse Keating 7a3296
    done
Chuck Ebbert 26d08c
    if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{kversion} ]] ; then
Chuck Ebbert 26d08c
%setup -q -n kernel-%{kversion}%{?dist} -c -T
16cb95
      cp -al $sharedir/vanilla-%{kversion} .
Jesse Keating 7a3296
    else
Chuck Ebbert 26d08c
%setup -q -n kernel-%{kversion}%{?dist} -c
Josh Boyer 728b14
      mv linux-%{kversion} vanilla-%{kversion}
Jesse Keating 7a3296
    fi
Jesse Keating 7a3296
Jesse Keating 7a3296
  fi
Jesse Keating 7a3296
Jesse Keating 7a3296
%if "%{kversion}" != "%{vanillaversion}"
Jesse Keating 7a3296
Jesse Keating 7a3296
  for sharedir in $sharedirs ; do
Chuck Ebbert 26d08c
    if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{vanillaversion} ]] ; then
Jesse Keating 7a3296
      break
Jesse Keating 7a3296
    fi
Jesse Keating 7a3296
  done
Chuck Ebbert 26d08c
  if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{vanillaversion} ]] ; then
Jesse Keating 7a3296
16cb95
    cp -al $sharedir/vanilla-%{vanillaversion} .
Jesse Keating 7a3296
Jesse Keating 7a3296
  else
Jesse Keating 7a3296
Chuck Ebbert 26d08c
    # Need to apply patches to the base vanilla version.
16cb95
    cp -al vanilla-%{kversion} vanilla-%{vanillaversion}
Jesse Keating 7a3296
    cd vanilla-%{vanillaversion}
Jesse Keating 7a3296
523d98
cp %{SOURCE12} .
523d98
Jesse Keating 7a3296
# Update vanilla to the latest upstream.
Jesse Keating 7a3296
# (non-released_kernel case only)
Jesse Keating 7a3296
%if 0%{?rcrev}
523d98
    xzcat %{SOURCE5000} | ./remove-binary-diff.pl | patch -p1 -F1 -s
Jesse Keating 7a3296
%if 0%{?gitrev}
523d98
    xzcat %{SOURCE5001} | ./remove-binary-diff.pl | patch -p1 -F1 -s
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%else
Jesse Keating 7a3296
# pre-{base_sublevel+1}-rc1 case
Jesse Keating 7a3296
%if 0%{?gitrev}
523d98
    xzcat %{SOURCE5000} | ./remove-binary-diff.pl | patch -p1 -F1 -s
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
%endif
178df3
    git init
178df3
    git config user.email "kernel-team@fedoraproject.org"
178df3
    git config user.name "Fedora Kernel Team"
178df3
    git config gc.auto 0
178df3
    git add .
178df3
    git commit -a -q -m "baseline"
Jesse Keating 7a3296
Jesse Keating 7a3296
    cd ..
Jesse Keating 7a3296
Jesse Keating 7a3296
  fi
Jesse Keating 7a3296
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
else
Chuck Ebbert 26d08c
Chuck Ebbert 26d08c
  # We already have all vanilla dirs, just change to the top-level directory.
Chuck Ebbert 26d08c
  cd kernel-%{kversion}%{?dist}
Chuck Ebbert 26d08c
Jesse Keating 7a3296
fi
Jesse Keating 7a3296
Chuck Ebbert 26d08c
# Now build the fedora kernel tree.
16cb95
cp -al vanilla-%{vanillaversion} linux-%{KVERREL}
Jesse Keating 7a3296
Josh Boyer 83337c
cd linux-%{KVERREL}
0ee200
if [ ! -d .git ]; then
0ee200
    git init
0ee200
    git config user.email "kernel-team@fedoraproject.org"
0ee200
    git config user.name "Fedora Kernel Team"
0ee200
    git config gc.auto 0
0ee200
    git add .
0ee200
    git commit -a -q -m "baseline"
0ee200
fi
0ee200
Jesse Keating 7a3296
Jesse Keating 7a3296
# released_kernel with possible stable updates
Jesse Keating 7a3296
%if 0%{?stable_base}
178df3
# This is special because the kernel spec is hell and nothing is consistent
178df3
xzcat %{SOURCE5000} | patch -p1 -F1 -s
178df3
git commit -a -m "Stable update"
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
2bf928
# Note: Even in the "nopatches" path some patches (build tweaks and compile
2bf928
# fixes) will always get applied; see patch defition above for details
2bf928
2bf928
git am %{patches}
2bf928
2bf928
# END OF PATCH APPLICATIONS
2bf928
2bf928
# Any further pre-build tree manipulations happen here.
2bf928
2bf928
chmod +x scripts/checkpatch.pl
9ee4e8
chmod +x tools/objtool/sync-check.sh
9f12ce
mv COPYING COPYING-%{version}
2bf928
2bf928
# This Prevents scripts/setlocalversion from mucking with our version numbers.
2bf928
touch .scmversion
2bf928
be43f9
%if 0%{?fedora}
be43f9
# Mangle /usr/bin/python shebangs to /usr/bin/python3
be43f9
# Mangle all Python shebangs to be Python 3 explicitly
be43f9
# -p preserves timestamps
be43f9
# -n prevents creating ~backup files
be43f9
# -i specifies the interpreter for the shebang
be43f9
# This fixes errors such as
be43f9
# *** ERROR: ambiguous python shebang in /usr/bin/kvm_stat: #!/usr/bin/python. Change it to python3 (or python2) explicitly.
be43f9
# We patch all sources below for which we got a report/error.
be43f9
pathfix.py -i "%{__python3} %{py3_shbang_opts}" -p -n \
be43f9
	tools/kvm/kvm_stat/kvm_stat \
be43f9
	scripts/show_delta \
be43f9
	scripts/diffconfig \
be43f9
	scripts/bloat-o-meter \
be43f9
	scripts/tracing/draw_functrace.py \
be43f9
	scripts/spdxcheck.py \
be43f9
	tools/perf/tests/attr.py \
be43f9
	tools/perf/scripts/python/stat-cpi.py \
be43f9
	tools/perf/scripts/python/sched-migration.py \
be43f9
	Documentation \
be43f9
	scripts/gen_compile_commands.py
be43f9
%endif
be43f9
2bf928
# Deal with configs stuff
2bf928
mkdir configs
2bf928
cd configs
2bf928
Jesse Keating 7a3296
# Drop some necessary files from the source dir into the buildroot
1b7eeb
cp $RPM_SOURCE_DIR/kernel-*.config .
1b7eeb
cp %{SOURCE1000} .
Jesse Keating 7a3296
cp %{SOURCE15} .
1b7eeb
cp %{SOURCE40} .
1b7eeb
cp %{SOURCE41} .
08732e
cp %{SOURCE43} .
Jesse Keating 7a3296
Chuck Ebbert c6b36e
%if !%{debugbuildsenabled}
Chuck Ebbert c6b36e
# The normal build is a really debug build and the user has explicitly requested
Chuck Ebbert 11ee03
# a release kernel. Change the config files into non-debug versions.
1b7eeb
%if !%{with_release}
1b7eeb
VERSION=%{version} ./generate_debug_configs.sh
1b7eeb
%else
1b7eeb
VERSION=%{version} ./generate_all_configs.sh
Chuck Ebbert c6b36e
%endif
Chuck Ebbert c6b36e
1b7eeb
%else
1b7eeb
VERSION=%{version} ./generate_all_configs.sh
1b7eeb
%endif
Jesse Keating 7a3296
Jarod Wilson 5b6529
# Merge in any user-provided local config option changes
54a9e1
%ifnarch %nobuildarches
e57e8f
for i in %{all_arch_configs}
Jarod Wilson 5b6529
do
Jarod Wilson 5b6529
  mv $i $i.tmp
Jarod Wilson 5b6529
  ./merge.pl %{SOURCE1000} $i.tmp > $i
Jarod Wilson 5b6529
  rm $i.tmp
Jarod Wilson 5b6529
done
54a9e1
%endif
Jarod Wilson 5b6529
Jesse Keating 7a3296
# only deal with configs if we are going to build for the arch
Jesse Keating 7a3296
%ifnarch %nobuildarches
Jesse Keating 7a3296
Jesse Keating 7a3296
%if !%{debugbuildsenabled}
Jesse Keating 7a3296
rm -f kernel-%{version}-*debug.config
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
a17ef5
# enable GCOV kernel config options if gcov is on
a17ef5
%if %{with_gcov}
a17ef5
for i in *.config
a17ef5
do
a17ef5
  sed -i 's/# CONFIG_GCOV_KERNEL is not set/CONFIG_GCOV_KERNEL=y\nCONFIG_GCOV_PROFILE_ALL=y\n/' $i
a17ef5
done
a17ef5
%endif
a17ef5
a20ad4
cp %{SOURCE42} .
2bf928
OPTS=""
Dave Jones 834dba
%if %{listnewconfig_fail}
2bf928
	OPTS="$OPTS -n"
Dave Jones 834dba
%endif
a20ad4
%if %{configmismatch_fail}
2bf928
	OPTS="$OPTS -c"
a20ad4
%endif
2bf928
./process_configs.sh $OPTS kernel %{rpmversion}
2bf928
Jesse Keating 7a3296
# end of kernel config
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
2bf928
cd ..
2bf928
# End of Configs stuff
2bf928
John W. Linville fa580e
# get rid of unwanted files resulting from patch fuzz
e9bc1e
find . \( -name "*.orig" -o -name "*~" \) -delete >/dev/null
John W. Linville fa580e
Dave Jones 246f94
# remove unnecessary SCM files
e9bc1e
find . -name .gitignore -delete >/dev/null
Dave Jones 246f94
Jesse Keating 7a3296
cd ..
Jesse Keating 7a3296
Jesse Keating 7a3296
###
Jesse Keating 7a3296
### build
Jesse Keating 7a3296
###
Jesse Keating 7a3296
%build
Jesse Keating 7a3296
Jesse Keating 7a3296
%if %{with_sparse}
Jesse Keating 7a3296
%define sparse_mflags	C=1
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
cp_vmlinux()
Jesse Keating 7a3296
{
Jesse Keating 7a3296
  eu-strip --remove-comment -o "$2" "$1"
Jesse Keating 7a3296
}
Jesse Keating 7a3296
edd5e6
# These are for host programs that get built as part of the kernel and
edd5e6
# are required to be packaged in kernel-devel for building external modules.
edd5e6
# Since they are userspace binaries, they are required to pickup the hardening
edd5e6
# flags defined in the macros. The --build-id=uuid is a trick to get around
edd5e6
# debuginfo limitations: Typically, find-debuginfo.sh will update the build
edd5e6
# id of all binaries to allow for parllel debuginfo installs. The kernel
edd5e6
# can't use this because it breaks debuginfo for the vDSO so we have to
edd5e6
# use a special mechanism for kernel and modules to be unique. Unfortunately,
edd5e6
# we still have userspace binaries which need unique debuginfo and because
edd5e6
# they come from the kernel package, we can't just use find-debuginfo.sh to
edd5e6
# rewrite only those binaries. The easiest option right now is just to have
edd5e6
# the build id be a uuid for the host programs.
606a7e
#
606a7e
# Note we need to disable these flags for cross builds because the flags
606a7e
# from redhat-rpm-config assume that host == target so target arch
606a7e
# flags cause issues with the host compiler.
606a7e
%if !%{with_cross}
df681b
%define build_hostcflags  %{?build_cflags}
df681b
%define build_hostldflags %{?build_ldflags} -Wl,--build-id=uuid
606a7e
%endif
edd5e6
483dce
%define make make %{?cross_opts} %{?make_opts} %{?_smp_mflags} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}"
483dce
Jesse Keating 7a3296
BuildKernel() {
Jesse Keating 7a3296
    MakeTarget=$1
Jesse Keating 7a3296
    KernelImage=$2
df3d8e
    Flavour=$4
df3d8e
    DoVDSO=$3
faf252
    Flav=${Flavour:++${Flavour}}
df3d8e
    InstallName=${5:-vmlinuz}
Jesse Keating 7a3296
f691fd
    DoModules=1
f691fd
Jesse Keating 7a3296
    # Pick the right config file for the kernel we're building
Jesse Keating 7a3296
    Config=kernel-%{version}-%{_target_cpu}${Flavour:+-${Flavour}}.config
Kyle McMartin 9fc584
    DevelDir=/usr/src/kernels/%{KVERREL}${Flav}
Jesse Keating 7a3296
Jesse Keating 7a3296
    # When the bootable image is just the ELF kernel, strip it.
Jesse Keating 7a3296
    # We already copy the unstripped file into the debuginfo package.
Jesse Keating 7a3296
    if [ "$KernelImage" = vmlinux ]; then
Jesse Keating 7a3296
      CopyKernel=cp_vmlinux
Jesse Keating 7a3296
    else
Jesse Keating 7a3296
      CopyKernel=cp
Jesse Keating 7a3296
    fi
Jesse Keating 7a3296
Kyle McMartin 9fc584
    KernelVer=%{version}-%{release}.%{_target_cpu}${Flav}
Jesse Keating 7a3296
    echo BUILDING A KERNEL FOR ${Flavour} %{_target_cpu}...
Jesse Keating 7a3296
Josh Boyer 740de5
    %if 0%{?stable_update}
Josh Boyer 740de5
    # make sure SUBLEVEL is incremented on a stable release.  Sigh 3.x.
Josh Boyer 740de5
    perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{?stablerev}/" Makefile
Josh Boyer 740de5
    %endif
Josh Boyer 740de5
Jesse Keating 7a3296
    # make sure EXTRAVERSION says what we want it to say
Jeremy Cline 89c7d2
    # Trim the release if this is a CI build, since KERNELVERSION is limited to 64 characters
6eaa39
    ShortRel=$(perl -e "print \"%{release}\" =~ s/\.pr\.[0-9A-Fa-f]{32}//r")
Jeremy Cline 89c7d2
    perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -${ShortRel}.%{_target_cpu}${Flav}/" Makefile
Jesse Keating 7a3296
Josh Boyer 9e4aea
    # if pre-rc1 devel kernel, must fix up PATCHLEVEL for our versioning scheme
Jesse Keating 7a3296
    %if !0%{?rcrev}
Jesse Keating 7a3296
    %if 0%{?gitrev}
Josh Boyer 9e4aea
    perl -p -i -e 's/^PATCHLEVEL.*/PATCHLEVEL = %{upstream_sublevel}/' Makefile
Jesse Keating 7a3296
    %endif
Jesse Keating 7a3296
    %endif
Jesse Keating 7a3296
Jesse Keating 7a3296
    # and now to start the build process
Jesse Keating 7a3296
483dce
    %{make} mrproper
Jesse Keating 7a3296
    cp configs/$Config .config
Jesse Keating 7a3296
149275
    %if %{signkernel}%{signmodules}
18c824
    cp %{SOURCE11} certs/.
Josh Boyer 6e2d2c
    %endif
Josh Boyer 6e2d2c
Jesse Keating 7a3296
    Arch=`head -1 .config | cut -b 3-`
Jesse Keating 7a3296
    echo USING ARCH=$Arch
Jesse Keating 7a3296
9a4aee
    KCFLAGS="%{?kcflags}"
9a4aee
483dce
    %{make} ARCH=$Arch olddefconfig >/dev/null
edd5e6
edd5e6
    # This ensures build-ids are unique to allow parallel debuginfo
edd5e6
    perl -p -i -e "s/^CONFIG_BUILD_SALT.*/CONFIG_BUILD_SALT=\"%{KVERREL}\"/" .config
483dce
    %{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" $MakeTarget %{?sparse_mflags} %{?kernel_mflags}
f691fd
    if [ $DoModules -eq 1 ]; then
483dce
	%{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" modules %{?sparse_mflags} || exit 1
f691fd
    fi
783eee
958df3
    mkdir -p $RPM_BUILD_ROOT/%{image_install_path}
958df3
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
958df3
%if %{with_debuginfo}
958df3
    mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/%{image_install_path}
958df3
%endif
958df3
Kyle McMartin 49ba08
%ifarch %{arm} aarch64
483dce
    %{make} ARCH=$Arch dtbs INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer
483dce
    %{make} ARCH=$Arch dtbs_install INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer
a96239
    cp -r $RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer $RPM_BUILD_ROOT/lib/modules/$KernelVer/dtb
fae554
    find arch/$Arch/boot/dts -name '*.dtb' -type f -delete
e6eb2f
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
    # Start installing the results
Jesse Keating 7a3296
    install -m 644 .config $RPM_BUILD_ROOT/boot/config-$KernelVer
958df3
    install -m 644 .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/config
Jesse Keating 7a3296
    install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer
958df3
    install -m 644 System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/System.map
Jesse Keating 7a3296
Jesse Keating 7a3296
    # We estimate the size of the initramfs because rpm needs to take this size
Jesse Keating 7a3296
    # into consideration when performing disk space calculations. (See bz #530778)
Jesse Keating 7a3296
    dd if=/dev/zero of=$RPM_BUILD_ROOT/boot/initramfs-$KernelVer.img bs=1M count=20
Jesse Keating 7a3296
Jesse Keating 7a3296
    if [ -f arch/$Arch/boot/zImage.stub ]; then
Jesse Keating 7a3296
      cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || :
958df3
      cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/lib/modules/$KernelVer/zImage.stub-$KernelVer || :
Jesse Keating 7a3296
    fi
5a0c91
5a0c91
149275
    %if %{signkernel}
5a0c91
    if [ "$KernelImage" = vmlinux ]; then
5a0c91
        # We can't strip and sign $KernelImage in place, because
5a0c91
        # we need to preserve original vmlinux for debuginfo.
5a0c91
        # Use a copy for signing.
5a0c91
        $CopyKernel $KernelImage $KernelImage.tosign
5a0c91
        KernelImage=$KernelImage.tosign
5a0c91
        CopyKernel=cp
5a0c91
    fi
5a0c91
d3182f
    # Sign the image if we're using EFI
5a0c91
    # aarch64 kernels are gziped EFI images
5a0c91
    KernelExtension=${KernelImage##*.}
5a0c91
    if [ "$KernelExtension" == "gz" ]; then
5a0c91
        SignImage=${KernelImage%.*}
5a0c91
    else
5a0c91
        SignImage=$KernelImage
5a0c91
    fi
5a0c91
5a0c91
    %ifarch x86_64 aarch64
5a0c91
    %if 0%{?fedora}
d3182f
    %pesign -s -i $KernelImage -o vmlinuz.signed
5a0c91
    %else
5a0c91
    %pesign -s -i $SignImage -o vmlinuz.signed -a %{secureboot_ca} -c %{secureboot_key} -n %{pesign_name}
5a0c91
    %endif # fedora
5a0c91
    %endif # arches
5a0c91
    %ifarch s390x ppc64le
5a0c91
    if [ -x /usr/bin/rpm-sign ]; then
5a0c91
	rpm-sign --key "%{pesign_name}" --lkmsign $SignImage --output vmlinuz.signed
5a0c91
    elif [ $DoModules -eq 1 ]; then
5a0c91
	chmod +x scripts/sign-file
5a0c91
	./scripts/sign-file -p sha256 certs/signing_key.pem certs/signing_key.x509 $SignImage vmlinuz.signed
5a0c91
    else
5a0c91
	mv $SignImage vmlinuz.signed
5a0c91
    fi
5a0c91
    %endif
5a0c91
Josh Boyer 42d219
    if [ ! -s vmlinuz.signed ]; then
Josh Boyer 42d219
        echo "pesigning failed"
Josh Boyer 42d219
        exit 1
Josh Boyer 42d219
    fi
5a0c91
    mv vmlinuz.signed $SignImage
5a0c91
    if [ "$KernelExtension" == "gz" ]; then
5a0c91
        gzip -f9 $SignImage
5a0c91
    fi
d3182f
    %endif
Jesse Keating 7a3296
    $CopyKernel $KernelImage \
e9fda3
                $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
Jesse Keating 7a3296
    chmod 755 $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
958df3
    cp $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer $RPM_BUILD_ROOT/lib/modules/$KernelVer/$InstallName
Jesse Keating 7a3296
Josh Boyer 70f813
    # hmac sign the kernel for FIPS
Josh Boyer 70f813
    echo "Creating hmac file: $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac"
Josh Boyer 70f813
    ls -l $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
Josh Boyer 70f813
    sha512hmac $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer | sed -e "s,$RPM_BUILD_ROOT,," > $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac;
958df3
    cp $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac $RPM_BUILD_ROOT/lib/modules/$KernelVer/.vmlinuz.hmac
Josh Boyer 70f813
f691fd
f691fd
    if [ $DoModules -eq 1 ]; then
f691fd
	# Override $(mod-fw) because we don't want it to install any firmware
f691fd
	# we'll get it from the linux-firmware package and we don't want conflicts
483dce
	%{make} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer mod-fw=
f691fd
    fi
Josh Boyer c2a12c
a17ef5
%if %{with_gcov}
a17ef5
    # install gcov-needed files to $BUILDROOT/$BUILD/...:
a17ef5
    #   gcov_info->filename is absolute path
a17ef5
    #   gcno references to sources can use absolute paths (e.g. in out-of-tree builds)
a17ef5
    #   sysfs symlink targets (set up at compile time) use absolute paths to BUILD dir
a17ef5
    find . \( -name '*.gcno' -o -name '*.[chS]' \) -exec install -D '{}' "$RPM_BUILD_ROOT/$(pwd)/{}" \;
a17ef5
%endif
a17ef5
376237
    # add an a noop %%defattr statement 'cause rpm doesn't like empty file list files
376237
    echo '%%defattr(-,-,-)' > ../kernel${Flavour:+-${Flavour}}-ldsoconf.list
df3d8e
    if [ $DoVDSO -ne 0 ]; then
483dce
        %{make} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
376237
        if [ -s ldconfig-kernel.conf ]; then
f691fd
             install -D -m 444 ldconfig-kernel.conf \
376237
                $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernel-$KernelVer.conf
f691fd
	     echo /etc/ld.so.conf.d/kernel-$KernelVer.conf >> ../kernel${Flavour:+-${Flavour}}-ldsoconf.list
df3d8e
        fi
df3d8e
        rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/vdso/.build-id
Jesse Keating 7a3296
    fi
Jesse Keating 7a3296
Jesse Keating 7a3296
    # And save the headers/makefiles etc for building modules against
Jesse Keating 7a3296
    #
Jesse Keating 7a3296
    # This all looks scary, but the end result is supposed to be:
Jesse Keating 7a3296
    # * all arch relevant include/ files
Jesse Keating 7a3296
    # * all Makefile/Kconfig files
Jesse Keating 7a3296
    # * all script/ files
Jesse Keating 7a3296
Jesse Keating 7a3296
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a3296
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/source
Jesse Keating 7a3296
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a3296
    (cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source)
Jesse Keating 7a3296
    # dirs for additional modules per module-init-tools, kbuild/modules.txt
Jesse Keating 7a3296
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra
564854
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/internal
Jesse Keating 7a3296
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates
804484
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/weak-updates
Jesse Keating 7a3296
    # first copy everything
Jesse Keating 7a3296
    cp --parents `find  -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a3296
    cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a3296
    cp System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a3296
    if [ -s Module.markers ]; then
Jesse Keating 7a3296
      cp Module.markers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a3296
    fi
11fa12
11fa12
    # create the kABI metadata for use in packaging
11fa12
    # NOTENOTE: the name symvers is used by the rpm backend
11fa12
    # NOTENOTE: to discover and run the /usr/lib/rpm/fileattrs/kabi.attr
11fa12
    # NOTENOTE: script which dynamically adds exported kernel symbol
11fa12
    # NOTENOTE: checksums to the rpm metadata provides list.
11fa12
    # NOTENOTE: if you change the symvers name, update the backend too
11fa12
    echo "**** GENERATING kernel ABI metadata ****"
11fa12
    gzip -c9 < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz
11fa12
    cp $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz $RPM_BUILD_ROOT/lib/modules/$KernelVer/symvers.gz
11fa12
%if %{with_kabichk}
11fa12
    echo "**** kABI checking is enabled in kernel SPEC file. ****"
11fa12
    chmod 0755 $RPM_SOURCE_DIR/check-kabi
11fa12
    if [ -e $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour ]; then
11fa12
        cp $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour $RPM_BUILD_ROOT/Module.kabi
11fa12
        $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1
11fa12
        rm $RPM_BUILD_ROOT/Module.kabi # for now, don't keep it around.
11fa12
    else
11fa12
        echo "**** NOTE: Cannot find reference Module.kabi file. ****"
11fa12
    fi
11fa12
%endif
11fa12
11fa12
%if %{with_kabidupchk}
11fa12
    echo "**** kABI DUP checking is enabled in kernel SPEC file. ****"
11fa12
    if [ -e $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Flavour ]; then
11fa12
        cp $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Flavour $RPM_BUILD_ROOT/Module.kabi
11fa12
        $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1
11fa12
        rm $RPM_BUILD_ROOT/Module.kabi # for now, don't keep it around.
11fa12
    else
11fa12
        echo "**** NOTE: Cannot find DUP reference Module.kabi file. ****"
11fa12
    fi
11fa12
%endif
11fa12
11fa12
%if %{with_kabidw_base}
11fa12
    # Don't build kabi base for debug kernels
11fa12
    if [ "$Flavour" != "kdump" -a "$Flavour" != "debug" ]; then
11fa12
        mkdir -p $RPM_BUILD_ROOT/kabi-dwarf
11fa12
        tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf
11fa12
11fa12
        mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/whitelists
11fa12
        tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/whitelists
11fa12
11fa12
        echo "**** GENERATING DWARF-based kABI baseline dataset ****"
11fa12
        chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh
11fa12
        $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \
11fa12
            "$RPM_BUILD_ROOT/kabi-dwarf/whitelists/kabi-current/kabi_whitelist_%{_target_cpu}" \
11fa12
            "$(pwd)" \
11fa12
            "$RPM_BUILD_ROOT/kabidw-base/%{_target_cpu}${Flavour:+.${Flavour}}" || :
11fa12
11fa12
        rm -rf $RPM_BUILD_ROOT/kabi-dwarf
11fa12
    fi
11fa12
%endif
11fa12
11fa12
%if %{with_kabidwchk}
11fa12
    if [ "$Flavour" != "kdump" ]; then
11fa12
        mkdir -p $RPM_BUILD_ROOT/kabi-dwarf
11fa12
        tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf
11fa12
        if [ -d "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}" ]; then
11fa12
            mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/whitelists
11fa12
            tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/whitelists
11fa12
11fa12
            echo "**** GENERATING DWARF-based kABI dataset ****"
11fa12
            chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh
11fa12
            $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \
11fa12
                "$RPM_BUILD_ROOT/kabi-dwarf/whitelists/kabi-current/kabi_whitelist_%{_target_cpu}" \
11fa12
                "$(pwd)" \
11fa12
                "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}.tmp" || :
11fa12
11fa12
            echo "**** kABI DWARF-based comparison report ****"
11fa12
            $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh compare \
11fa12
                "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}" \
11fa12
                "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}.tmp" || :
11fa12
            echo "**** End of kABI DWARF-based comparison report ****"
11fa12
        else
11fa12
            echo "**** Baseline dataset for kABI DWARF-BASED comparison report not found ****"
11fa12
        fi
11fa12
11fa12
        rm -rf $RPM_BUILD_ROOT/kabi-dwarf
11fa12
    fi
11fa12
%endif
11fa12
Jesse Keating 7a3296
    # then drop all but the needed Makefiles/Kconfig files
Jesse Keating 7a3296
    rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Documentation
Jesse Keating 7a3296
    rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts
Jesse Keating 7a3296
    rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
Jesse Keating 7a3296
    cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a3296
    cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
803c5b
    if [ -f tools/objtool/objtool ]; then
0ff2af
      cp -a tools/objtool/objtool $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/objtool/ || :
c7c8ec
      # these are a few files associated with objtool
c7c8ec
      cp -a --parents tools/build/Build.include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
c7c8ec
      cp -a --parents tools/build/Build $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
c7c8ec
      cp -a --parents tools/build/fixdep.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
c7c8ec
      cp -a --parents tools/scripts/utilities.mak $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
c7c8ec
      # also more than necessary but it's not that many more files
c7c8ec
      cp -a --parents tools/objtool/* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
c7c8ec
      cp -a --parents tools/lib/str_error_r.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
c7c8ec
      cp -a --parents tools/lib/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
c7c8ec
      cp -a --parents tools/lib/subcmd/* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
803c5b
    fi
Jesse Keating 7a3296
    if [ -d arch/$Arch/scripts ]; then
Jesse Keating 7a3296
      cp -a arch/$Arch/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || :
Jesse Keating 7a3296
    fi
Jesse Keating 7a3296
    if [ -f arch/$Arch/*lds ]; then
Jesse Keating 7a3296
      cp -a arch/$Arch/*lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/ || :
Jesse Keating 7a3296
    fi
c98c86
    if [ -f arch/%{asmarch}/kernel/module.lds ]; then
c98c86
      cp -a --parents arch/%{asmarch}/kernel/module.lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
c98c86
    fi
Jesse Keating 7a3296
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o
Jesse Keating 7a3296
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o
b13aac
%ifarch ppc64le
Jesse Keating 7a3296
    cp -a --parents arch/powerpc/lib/crtsavres.[So] $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
    if [ -d arch/%{asmarch}/include ]; then
Jesse Keating 7a3296
      cp -a --parents arch/%{asmarch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Jesse Keating 7a3296
    fi
ea6c81
%ifarch aarch64
ea6c81
    # arch/arm64/include/asm/xen references arch/arm
ea6c81
    cp -a --parents arch/arm/include/asm/xen $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
ec3031
    # arch/arm64/include/asm/opcodes.h references arch/arm
ec3031
    cp -a --parents arch/arm/include/asm/opcodes.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
ea6c81
%endif
3b024e
    # include the machine specific headers for ARM variants, if available.
3b024e
%ifarch %{arm}
3b024e
    if [ -d arch/%{asmarch}/mach-${Flavour}/include ]; then
3b024e
      cp -a --parents arch/%{asmarch}/mach-${Flavour}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
3b024e
    fi
19c3eb
    # include a few files for 'make prepare'
19c3eb
    cp -a --parents arch/arm/tools/gen-mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/arm/tools/mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
3b024e
%endif
Jesse Keating 7a3296
    cp -a include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
19c3eb
%ifarch %{ix86} x86_64
19c3eb
    # files for 'make prepare' to succeed with kernel-devel
19c3eb
    cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/entry/syscalls/syscalltbl.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/entry/syscalls/syscallhdr.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/entry/syscalls/syscall_64.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/tools/relocs_32.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/tools/relocs_64.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/tools/relocs.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/tools/relocs_common.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/tools/relocs.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
c7c8ec
    # Yes this is more includes than we probably need. Feel free to sort out
c7c8ec
    # dependencies if you so choose.
c7c8ec
    cp -a --parents tools/include/* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/purgatory/purgatory.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/purgatory/stack.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/purgatory/setup-x86_64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/purgatory/entry64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/boot/string.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/boot/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
    cp -a --parents arch/x86/boot/ctype.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
19c3eb
%endif
Jesse Keating 7a3296
    # Make sure the Makefile and version.h have a matching timestamp so that
Jesse Keating 7a3296
    # external modules can be built
1ef1d3
    touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/generated/uapi/linux/version.h
Dave Jones c80928
Jesse Keating 7a3296
    # Copy .config to include/config/auto.conf so "make prepare" is unnecessary.
Jesse Keating 7a3296
    cp $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/config/auto.conf
Jesse Keating 7a3296
Kyle McMartin 1bfd59
%if %{with_debuginfo}
debc7c
    eu-readelf -n vmlinux | grep "Build ID" | awk '{print $NF}' > vmlinux.id
debc7c
    cp vmlinux.id $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/vmlinux.id
Jesse Keating 7a3296
Jesse Keating 7a3296
    #
Jesse Keating 7a3296
    # save the vmlinux file for kernel debugging into the kernel-debuginfo rpm
Jesse Keating 7a3296
    #
Jesse Keating 7a3296
    mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer
Jesse Keating 7a3296
    cp vmlinux $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
    find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames
Jesse Keating 7a3296
Jesse Keating 7a3296
    # mark modules executable so that strip-to-file can strip them
Jesse Keating 7a3296
    xargs --no-run-if-empty chmod u+x < modnames
Jesse Keating 7a3296
Jesse Keating 7a3296
    # Generate a list of modules for block and networking.
Jesse Keating 7a3296
Dave Jones b89c80
    grep -F /drivers/ modnames | xargs --no-run-if-empty nm -upA |
Jesse Keating 7a3296
    sed -n 's,^.*/\([^/]*\.ko\):  *U \(.*\)$,\1 \2,p' > drivers.undef
Jesse Keating 7a3296
Jesse Keating 7a3296
    collect_modules_list()
Jesse Keating 7a3296
    {
Jesse Keating 7a3296
      sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef |
Kyle McMartin cdb790
        LC_ALL=C sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1
Kyle McMartin cdb790
      if [ ! -z "$3" ]; then
Kyle McMartin 399410
        sed -r -e "/^($3)\$/d" -i $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1
Kyle McMartin cdb790
      fi
Jesse Keating 7a3296
    }
Jesse Keating 7a3296
Jesse Keating 7a3296
    collect_modules_list networking \
e9fda3
      'register_netdev|ieee80211_register_hw|usbnet_probe|phy_driver_register|rt(l_|2x00)(pci|usb)_probe|register_netdevice'
Jesse Keating 7a3296
    collect_modules_list block \
e9fda3
      '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'
Jesse Keating 7a3296
    collect_modules_list drm \
e9fda3
      'drm_open|drm_init'
Jesse Keating 7a3296
    collect_modules_list modesetting \
e9fda3
      'drm_crtc_init'
Jesse Keating 7a3296
Jesse Keating 7a3296
    # detect missing or incorrect license tags
Kyle McMartin 21284e
    ( find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name '*.ko' | xargs /sbin/modinfo -l | \
Kyle McMartin 21284e
        grep -E -v 'GPL( v2)?$|Dual BSD/GPL$|Dual MPL/GPL$|GPL and additional rights$' ) && exit 1
Jesse Keating 7a3296
Kyle McMartin 634522
    # remove files that will be auto generated by depmod at rpm -i time
Kyle McMartin 634522
    pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/
Kyle McMartin 634522
        rm -f modules.{alias*,builtin.bin,dep*,*map,symbols*,devname,softdep}
Kyle McMartin 634522
    popd
Kyle McMartin 634522
Josh Boyer 0b4338
    # Call the modules-extra script to move things around
Josh Boyer 0b4338
    %{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE16}
564854
    # Blacklist net autoloadable modules in modules-extra
564854
    %{SOURCE19} $RPM_BUILD_ROOT lib/modules/$KernelVer
564854
    # Call the modules-extra script for internal modules
564854
    %{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE44} internal
Josh Boyer b8b278
94ce4e
    #
aa7351
    # Generate the kernel-core and kernel-modules files lists
94ce4e
    #
94ce4e
94ce4e
    # Copy the System.map file for depmod to use, and create a backup of the
94ce4e
    # full module tree so we can restore it after we're done filtering
94ce4e
    cp System.map $RPM_BUILD_ROOT/.
94ce4e
    pushd $RPM_BUILD_ROOT
94ce4e
    mkdir restore
94ce4e
    cp -r lib/modules/$KernelVer/* restore/.
94ce4e
94ce4e
    # don't include anything going into k-m-e in the file lists
564854
    rm -rf lib/modules/$KernelVer/{extra,internal}
94ce4e
f691fd
f691fd
    if [ $DoModules -eq 1 ]; then
f691fd
	# Find all the module files and filter them out into the core and
f691fd
	# modules lists.  This actually removes anything going into -modules
f691fd
	# from the dir.
f691fd
	find lib/modules/$KernelVer/kernel -name *.ko | sort -n > modules.list
f691fd
	cp $RPM_SOURCE_DIR/filter-*.sh .
f691fd
	%{SOURCE99} modules.list %{_target_cpu}
f691fd
	rm filter-*.sh
f691fd
f691fd
	# Run depmod on the resulting module tree and make sure it isn't broken
f691fd
	depmod -b . -aeF ./System.map $KernelVer &> depmod.out
f691fd
	if [ -s depmod.out ]; then
f691fd
	    echo "Depmod failure"
f691fd
	    cat depmod.out
f691fd
	    exit 1
f691fd
	else
f691fd
	    rm depmod.out
f691fd
	fi
069d85
    else
f691fd
	# Ensure important files/directories exist to let the packaging succeed
f691fd
	echo '%%defattr(-,-,-)' > modules.list
f691fd
	echo '%%defattr(-,-,-)' > k-d.list
f691fd
	mkdir -p lib/modules/$KernelVer/kernel
f691fd
	# Add files usually created by make modules, needed to prevent errors
f691fd
	# thrown by depmod during package installation
f691fd
	touch lib/modules/$KernelVer/modules.order
f691fd
	touch lib/modules/$KernelVer/modules.builtin
069d85
    fi
f691fd
94ce4e
    # remove files that will be auto generated by depmod at rpm -i time
94ce4e
    pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/
94ce4e
        rm -f modules.{alias*,builtin.bin,dep*,*map,symbols*,devname,softdep}
94ce4e
    popd
94ce4e
94ce4e
    # Go back and find all of the various directories in the tree.  We use this
94ce4e
    # for the dir lists in kernel-core
Paul Bolle fc4b4c
    find lib/modules/$KernelVer/kernel -mindepth 1 -type d | sort -n > module-dirs.list
94ce4e
94ce4e
    # Cleanup
94ce4e
    rm System.map
94ce4e
    cp -r restore/* lib/modules/$KernelVer/.
94ce4e
    rm -rf restore
94ce4e
    popd
94ce4e
94ce4e
    # Make sure the files lists start with absolute paths or rpmbuild fails.
94ce4e
    # Also add in the dir entries
Kyle McMartin 892262
    sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/k-d.list > ../kernel${Flavour:+-${Flavour}}-modules.list
Kyle McMartin 892262
    sed -e 's/^lib*/%dir \/lib/' %{?zipsed} $RPM_BUILD_ROOT/module-dirs.list > ../kernel${Flavour:+-${Flavour}}-core.list
Kyle McMartin 892262
    sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/modules.list >> ../kernel${Flavour:+-${Flavour}}-core.list
94ce4e
94ce4e
    # Cleanup
94ce4e
    rm -f $RPM_BUILD_ROOT/k-d.list
94ce4e
    rm -f $RPM_BUILD_ROOT/modules.list
94ce4e
    rm -f $RPM_BUILD_ROOT/module-dirs.list
94ce4e
Josh Boyer f0f4ff
%if %{signmodules}
f691fd
    if [ $DoModules -eq 1 ]; then
f691fd
	# Save the signing keys so we can sign the modules in __modsign_install_post
f691fd
	cp certs/signing_key.pem certs/signing_key.pem.sign${Flav}
f691fd
	cp certs/signing_key.x509 certs/signing_key.x509.sign${Flav}
f691fd
    fi
Josh Boyer f0f4ff
%endif
Josh Boyer f0f4ff
Jesse Keating 7a3296
    # Move the devel headers out of the root file system
Kyle McMartin f6c1ae
    mkdir -p $RPM_BUILD_ROOT/usr/src/kernels
Jesse Keating 7a3296
    mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir
Josh Boyer bddef7
Josh Boyer bddef7
    # This is going to create a broken link during the build, but we don't use
Josh Boyer bddef7
    # it after this point.  We need the link to actually point to something
Josh Boyer bddef7
    # when kernel-devel is installed, and a relative link doesn't work across
Josh Boyer bddef7
    # the F17 UsrMove feature.
Josh Boyer bddef7
    ln -sf $DevelDir $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Kyle McMartin 4b3b40
Kyle McMartin 4b3b40
    # prune junk from kernel-devel
e0cda5
    find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -delete
08732e
08732e
    # build a BLS config for this kernel
cf8332
    %{SOURCE43} "$KernelVer" "$RPM_BUILD_ROOT" "%{?variant}"
c68fd7
5a0c91
%if 0
5a0c91
    # Red Hat UEFI Secure Boot CA cert, which can be used to authenticate the kernel
5a0c91
    mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer
5a0c91
    install -m 0644 %{secureboot_ca} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
5a0c91
    %ifarch s390x ppc64le
5a0c91
    if [ $DoModules -eq 1 ]; then
5a0c91
	if [ -x /usr/bin/rpm-sign ]; then
5a0c91
	    install -m 0644 %{secureboot_key} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename}
5a0c91
	else
5a0c91
	    install -m 0644 certs/signing_key.x509.sign${Flav} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
5a0c91
	    openssl x509 -in certs/signing_key.pem.sign${Flav} -outform der -out $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename}
5a0c91
	    chmod 0644 $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename}
5a0c91
	fi
5a0c91
    fi
5a0c91
    %endif
5a0c91
%endif
5a0c91
c68fd7
%if %{with_ipaclones}
c68fd7
    MAXPROCS=$(echo %{?_smp_mflags} | sed -n 's/-j\s*\([0-9]\+\)/\1/p')
c68fd7
    if [ -z "$MAXPROCS" ]; then
c68fd7
        MAXPROCS=1
c68fd7
    fi
c68fd7
    if [ "$Flavour" == "" ]; then
c68fd7
        mkdir -p $RPM_BUILD_ROOT/$DevelDir-ipaclones
c68fd7
        find . -name '*.ipa-clones' | xargs -i{} -r -n 1 -P $MAXPROCS install -m 644 -D "{}" "$RPM_BUILD_ROOT/$DevelDir-ipaclones/{}"
c68fd7
    fi
c68fd7
%endif
c68fd7
Jesse Keating 7a3296
}
Jesse Keating 7a3296
Jesse Keating 7a3296
###
Jesse Keating 7a3296
# DO it...
Jesse Keating 7a3296
###
Jesse Keating 7a3296
Jesse Keating 7a3296
# prepare directories
Jesse Keating 7a3296
rm -rf $RPM_BUILD_ROOT
Jesse Keating 7a3296
mkdir -p $RPM_BUILD_ROOT/boot
Jesse Keating 7a3296
mkdir -p $RPM_BUILD_ROOT%{_libexecdir}
Jesse Keating 7a3296
Josh Boyer 83337c
cd linux-%{KVERREL}
Jesse Keating 7a3296
df3d8e
Jesse Keating 7a3296
%if %{with_debug}
df3d8e
BuildKernel %make_target %kernel_image %{_use_vdso} debug
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%if %{with_pae}
7a94d5
BuildKernel %make_target %kernel_image %{use_vdso} lpae
986a9f
%endif
986a9f
Jesse Keating 7a3296
%if %{with_up}
df3d8e
BuildKernel %make_target %kernel_image %{_use_vdso}
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
1d23fd
%if %{with_selftests}
1d23fd
%{make} -s ARCH=$Arch V=1 samples/bpf/
1d23fd
pushd tools/testing/selftests
1d23fd
# We need to install here because we need to call make with ARCH set which
1d23fd
# doesn't seem possible to do in the install section.
1d23fd
%{make} -s ARCH=$Arch V=1 TARGETS="bpf livepatch net" INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests install
1d23fd
popd
1d23fd
%endif
1d23fd
ef7187
%if %{with_doc}
ef7187
# Make the HTML pages.
ef7187
make htmldocs || %{doc_build_fail}
ef7187
ef7187
# sometimes non-world-readable files sneak into the kernel source tree
ef7187
chmod -R a=rX Documentation
ef7187
find Documentation -type d | xargs chmod u+w
ef7187
%endif
ef7187
Josh Boyer f0f4ff
# In the modsign case, we do 3 things.  1) We check the "flavour" and hard
Josh Boyer f0f4ff
# code the value in the following invocations.  This is somewhat sub-optimal
Josh Boyer f0f4ff
# but we're doing this inside of an RPM macro and it isn't as easy as it
Josh Boyer f0f4ff
# could be because of that.  2) We restore the .tmp_versions/ directory from
Josh Boyer f0f4ff
# the one we saved off in BuildKernel above.  This is to make sure we're
Josh Boyer f0f4ff
# signing the modules we actually built/installed in that flavour.  3) We
Kyle McMartin d0a8cf
# grab the arch and invoke mod-sign.sh command to actually sign the modules.
Josh Boyer f0f4ff
#
Josh Boyer f0f4ff
# We have to do all of those things _after_ find-debuginfo runs, otherwise
Josh Boyer f0f4ff
# that will strip the signature off of the modules.
Josh Boyer f0f4ff
Kyle McMartin 92559e
%define __modsign_install_post \
Kyle McMartin f9a5fa
  if [ "%{signmodules}" -eq "1" ]; then \
Kyle McMartin 63cb38
    if [ "%{with_pae}" -ne "0" ]; then \
7a94d5
      %{modsign_cmd} certs/signing_key.pem.sign+lpae certs/signing_key.x509.sign+lpae $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+lpae/ \
Josh Boyer f0f4ff
    fi \
Kyle McMartin 63cb38
    if [ "%{with_debug}" -ne "0" ]; then \
18c824
      %{modsign_cmd} certs/signing_key.pem.sign+debug certs/signing_key.x509.sign+debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+debug/ \
Josh Boyer f0f4ff
    fi \
Kyle McMartin f9a5fa
    if [ "%{with_up}" -ne "0" ]; then \
18c824
      %{modsign_cmd} certs/signing_key.pem.sign certs/signing_key.x509.sign $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/ \
Josh Boyer f0f4ff
    fi \
Josh Boyer f0f4ff
  fi \
Kyle McMartin 892262
  if [ "%{zipmodules}" -eq "1" ]; then \
b0bc74
    find $RPM_BUILD_ROOT/lib/modules/ -type f -name '*.ko' | xargs -P%{zcpu} xz; \
Kyle McMartin 892262
  fi \
Jesse Keating 7a3296
%{nil}
Jesse Keating 7a3296
Kyle McMartin 92559e
###
Kyle McMartin 92559e
### Special hacks for debuginfo subpackages.
Kyle McMartin 92559e
###
Kyle McMartin 92559e
Kyle McMartin 92559e
# This macro is used by %%install, so we must redefine it before that.
Kyle McMartin 92559e
%define debug_package %{nil}
Kyle McMartin 92559e
Kyle McMartin 92559e
%if %{with_debuginfo}
Kyle McMartin 92559e
Jesse Keating 7a3296
%ifnarch noarch
Jesse Keating 7a3296
%global __debug_package 1
Jesse Keating 7a3296
%files -f debugfiles.list debuginfo-common-%{_target_cpu}
Jesse Keating 7a3296
%endif
Kyle McMartin 92559e
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
1d23fd
# We don't want to package debuginfo for self-tests and samples but
1d23fd
# we have to delete them to avoid an error messages about unpackaged
1d23fd
# files.
1d23fd
%define __remove_unwanted_dbginfo_install_post \
1d23fd
  if [ "%{with_selftests}" -ne "0" ]; then \
1d23fd
    rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/ksamples; \
1d23fd
    rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/kselftests; \
1d23fd
  fi \
1d23fd
%{nil}
1d23fd
Kyle McMartin 92559e
#
Kyle McMartin 92559e
# Disgusting hack alert! We need to ensure we sign modules *after* all
Kyle McMartin 92559e
# invocations of strip occur, which is in __debug_install_post if
Kyle McMartin 92559e
# find-debuginfo.sh runs, and __os_install_post if not.
Kyle McMartin 92559e
#
Kyle McMartin 92559e
%define __spec_install_post \
Kyle McMartin 92559e
  %{?__debug_package:%{__debug_install_post}}\
Kyle McMartin 92559e
  %{__arch_install_post}\
Kyle McMartin 92559e
  %{__os_install_post}\
1d23fd
  %{__remove_unwanted_dbginfo_install_post}\
Kyle McMartin 92559e
  %{__modsign_install_post}
Kyle McMartin 92559e
Jesse Keating 7a3296
###
Jesse Keating 7a3296
### install
Jesse Keating 7a3296
###
Jesse Keating 7a3296
Jesse Keating 7a3296
%install
Jesse Keating 7a3296
Josh Boyer 83337c
cd linux-%{KVERREL}
Jesse Keating 7a3296
ef7187
%if %{with_doc}
ef7187
docdir=$RPM_BUILD_ROOT%{_datadir}/doc/kernel-doc-%{rpmversion}
ef7187
ef7187
# copy the source over
ef7187
mkdir -p $docdir
ef7187
tar -h -f - --exclude=man --exclude='.*' -c Documentation | tar xf - -C $docdir
ef7187
ef7187
%endif # with_doc
ef7187
Josh Boyer 8addb5
# We have to do the headers install before the tools install because the
Josh Boyer 8addb5
# kernel headers_install will remove any header files in /usr/include that
Josh Boyer 8addb5
# it doesn't install itself.
Jesse Keating 7a3296
Jesse Keating 7a3296
%if %{with_headers}
Jesse Keating 7a3296
# Install kernel headers
Jesse Keating 7a3296
make ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_install
Jesse Keating 7a3296
Jesse Keating 7a3296
find $RPM_BUILD_ROOT/usr/include \
Jesse Keating 7a3296
     \( -name .install -o -name .check -o \
fae554
        -name ..install.cmd -o -name ..check.cmd \) -delete
Jesse Keating 7a3296
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
f65f3f
%if %{with_cross_headers}
c08fbb
HDR_ARCH_LIST='arm arm64 powerpc s390 x86'
f65f3f
mkdir -p $RPM_BUILD_ROOT/usr/tmp-headers
f65f3f
c08fbb
for arch in $HDR_ARCH_LIST; do
c08fbb
	mkdir $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch}
c08fbb
	make ARCH=${arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch} headers_install
c08fbb
done
c08fbb
c08fbb
find $RPM_BUILD_ROOT/usr/tmp-headers \
f65f3f
     \( -name .install -o -name .check -o \
fae554
        -name ..install.cmd -o -name ..check.cmd \) -delete
f65f3f
f65f3f
# Copy all the architectures we care about to their respective asm directories
c08fbb
for arch in $HDR_ARCH_LIST ; do
c08fbb
	mkdir -p $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include
c08fbb
	mv $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch}/include/* $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/
f65f3f
done
f65f3f
f65f3f
rm -rf $RPM_BUILD_ROOT/usr/tmp-headers
f65f3f
%endif
f65f3f
11fa12
%if %{with_kernel_abi_whitelists}
11fa12
# kabi directory
11fa12
INSTALL_KABI_PATH=$RPM_BUILD_ROOT/lib/modules/
11fa12
mkdir -p $INSTALL_KABI_PATH
11fa12
11fa12
# install kabi releases directories
11fa12
tar xjvf %{SOURCE300} -C $INSTALL_KABI_PATH
11fa12
%endif  # with_kernel_abi_whitelists
11fa12
1d23fd
%if %{with_selftests}
1d23fd
pushd samples
1d23fd
install -d %{buildroot}%{_libexecdir}/ksamples
1d23fd
# install bpf samples
1d23fd
pushd bpf
1d23fd
install -d %{buildroot}%{_libexecdir}/ksamples/bpf
1d23fd
find -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/bpf \;
1d23fd
install -m755 *.sh %{buildroot}%{_libexecdir}/ksamples/bpf
1d23fd
# test_lwt_bpf.sh compiles test_lwt_bpf.c when run; this works only from the
1d23fd
# kernel tree. Just remove it.
1d23fd
rm %{buildroot}%{_libexecdir}/ksamples/bpf/test_lwt_bpf.sh
1d23fd
install -m644 tcp_bpf.readme %{buildroot}%{_libexecdir}/ksamples/bpf
1d23fd
popd
1d23fd
# install pktgen samples
1d23fd
pushd pktgen
1d23fd
install -d %{buildroot}%{_libexecdir}/ksamples/pktgen
1d23fd
find . -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \;
1d23fd
find . -type f ! -executable -exec install -m644 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \;
1d23fd
popd
1d23fd
popd
1d23fd
# install drivers/net/mlxsw selftests
1d23fd
pushd tools/testing/selftests/drivers/net/mlxsw
1d23fd
find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \;
1d23fd
find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \;
1d23fd
find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \;
1d23fd
popd
1d23fd
# install net/forwarding selftests
1d23fd
pushd tools/testing/selftests/net/forwarding
1d23fd
find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \;
1d23fd
find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \;
1d23fd
find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \;
1d23fd
popd
1d23fd
# install tc-testing selftests
1d23fd
pushd tools/testing/selftests/tc-testing
1d23fd
find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \;
1d23fd
find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \;
1d23fd
find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \;
1d23fd
popd
1d23fd
# install livepatch selftests
1d23fd
pushd tools/testing/selftests/livepatch
1d23fd
find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \;
1d23fd
find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \;
1d23fd
find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \;
1d23fd
popd
1d23fd
%endif
1d23fd
Jesse Keating 7a3296
###
Jesse Keating 7a3296
### clean
Jesse Keating 7a3296
###
Jesse Keating 7a3296
Jesse Keating 7a3296
###
Jesse Keating 7a3296
### scripts
Jesse Keating 7a3296
###
Jesse Keating 7a3296
Jesse Keating 7a3296
#
Jesse Keating 7a3296
# This macro defines a %%post script for a kernel*-devel package.
Jesse Keating 7a3296
#	%%kernel_devel_post [<subpackage>]
Jesse Keating 7a3296
#
Jesse Keating 7a3296
%define kernel_devel_post() \
Jesse Keating 7a3296
%{expand:%%post %{?1:%{1}-}devel}\
Jesse Keating 7a3296
if [ -f /etc/sysconfig/kernel ]\
Jesse Keating 7a3296
then\
Jesse Keating 7a3296
    . /etc/sysconfig/kernel || exit $?\
Jesse Keating 7a3296
fi\
Jesse Keating 7a3296
if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ]\
Jesse Keating 7a3296
then\
faf252
    (cd /usr/src/kernels/%{KVERREL}%{?1:+%{1}} &&\
Jesse Keating 7a3296
     /usr/bin/find . -type f | while read f; do\
dd53be
       hardlink -c /usr/src/kernels/*%{?dist}.*/$f $f\
Jesse Keating 7a3296
     done)\
Jesse Keating 7a3296
fi\
Jesse Keating 7a3296
%{nil}
Jesse Keating 7a3296
Josh Boyer b8b278
#
Josh Boyer b8b278
# This macro defines a %%post script for a kernel*-modules-extra package.
94ce4e
# It also defines a %%postun script that does the same thing.
Kyle McMartin de50ed
#	%%kernel_modules_extra_post [<subpackage>]
Josh Boyer b8b278
#
Josh Boyer b8b278
%define kernel_modules_extra_post() \
Josh Boyer b8b278
%{expand:%%post %{?1:%{1}-}modules-extra}\
faf252
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
94ce4e
%{nil}\
94ce4e
%{expand:%%postun %{?1:%{1}-}modules-extra}\
94ce4e
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
94ce4e
%{nil}
94ce4e
94ce4e
#
564854
# This macro defines a %%post script for a kernel*-modules-internal package.
564854
# It also defines a %%postun script that does the same thing.
564854
#	%%kernel_modules_internal_post [<subpackage>]
564854
#
564854
%define kernel_modules_internal_post() \
564854
%{expand:%%post %{?1:%{1}-}modules-internal}\
564854
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
564854
%{nil}\
564854
%{expand:%%postun %{?1:%{1}-}modules-internal}\
564854
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
564854
%{nil}
564854
564854
564854
#
aa7351
# This macro defines a %%post script for a kernel*-modules package.
94ce4e
# It also defines a %%postun script that does the same thing.
aa7351
#	%%kernel_modules_post [<subpackage>]
94ce4e
#
aa7351
%define kernel_modules_post() \
aa7351
%{expand:%%post %{?1:%{1}-}modules}\
94ce4e
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
94ce4e
%{nil}\
aa7351
%{expand:%%postun %{?1:%{1}-}modules}\
94ce4e
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
Josh Boyer b8b278
%{nil}
Josh Boyer 8addb5
Jesse Keating 7a3296
# This macro defines a %%posttrans script for a kernel package.
Jesse Keating 7a3296
#	%%kernel_variant_posttrans [<subpackage>]
Jesse Keating 7a3296
# More text can follow to go at the end of this variant's %%post.
Jesse Keating 7a3296
#
Jesse Keating 7a3296
%define kernel_variant_posttrans() \
94ce4e
%{expand:%%posttrans %{?1:%{1}-}core}\
804484
if [ -x %{_sbindir}/weak-modules ]\
804484
then\
804484
    %{_sbindir}/weak-modules --add-kernel %{KVERREL}%{?1:+%{1}} || exit $?\
804484
fi\
958df3
/bin/kernel-install add %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\
Jesse Keating 7a3296
%{nil}
Jesse Keating 7a3296
Jesse Keating 7a3296
#
Jesse Keating 7a3296
# This macro defines a %%post script for a kernel package and its devel package.
Jesse Keating 7a3296
#	%%kernel_variant_post [-v <subpackage>] [-r <replace>]
Jesse Keating 7a3296
# More text can follow to go at the end of this variant's %%post.
Jesse Keating 7a3296
#
Jesse Keating 7a3296
%define kernel_variant_post(v:r:) \
Jesse Keating 7a3296
%{expand:%%kernel_devel_post %{?-v*}}\
aa7351
%{expand:%%kernel_modules_post %{?-v*}}\
Josh Boyer b8b278
%{expand:%%kernel_modules_extra_post %{?-v*}}\
564854
%{expand:%%kernel_modules_internal_post %{?-v*}}\
Jesse Keating 7a3296
%{expand:%%kernel_variant_posttrans %{?-v*}}\
94ce4e
%{expand:%%post %{?-v*:%{-v*}-}core}\
Jesse Keating 7a3296
%{-r:\
Jesse Keating 7a3296
if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\
Jesse Keating 7a3296
   [ -f /etc/sysconfig/kernel ]; then\
Jesse Keating 7a3296
  /bin/sed -r -i -e 's/^DEFAULTKERNEL=%{-r*}$/DEFAULTKERNEL=kernel%{?-v:-%{-v*}}/' /etc/sysconfig/kernel || exit $?\
Jesse Keating 7a3296
fi}\
Jesse Keating 7a3296
%{nil}
Jesse Keating 7a3296
Jesse Keating 7a3296
#
Jesse Keating 7a3296
# This macro defines a %%preun script for a kernel package.
Jesse Keating 7a3296
#	%%kernel_variant_preun <subpackage>
Jesse Keating 7a3296
#
Jesse Keating 7a3296
%define kernel_variant_preun() \
94ce4e
%{expand:%%preun %{?1:%{1}-}core}\
958df3
/bin/kernel-install remove %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\
804484
if [ -x %{_sbindir}/weak-modules ]\
804484
then\
804484
    %{_sbindir}/weak-modules --remove-kernel %{KVERREL}%{?1:+%{1}} || exit $?\
804484
fi\
Jesse Keating 7a3296
%{nil}
Jesse Keating 7a3296
Jesse Keating 7a3296
%kernel_variant_preun
Jesse Keating 7a3296
%kernel_variant_post -r kernel-smp
Jesse Keating 7a3296
0a7987
%if %{with_pae}
7a94d5
%kernel_variant_preun lpae
7a94d5
%kernel_variant_post -v lpae -r (kernel|kernel-smp)
0a7987
%endif
Jesse Keating 7a3296
Jesse Keating 7a3296
%kernel_variant_preun debug
Jesse Keating 7a3296
%kernel_variant_post -v debug
Jesse Keating 7a3296
Jesse Keating 7a3296
if [ -x /sbin/ldconfig ]
Jesse Keating 7a3296
then
Jesse Keating 7a3296
    /sbin/ldconfig -X || exit $?
Jesse Keating 7a3296
fi
Jesse Keating 7a3296
Jesse Keating 7a3296
###
Jesse Keating 7a3296
### file lists
Jesse Keating 7a3296
###
Jesse Keating 7a3296
Jesse Keating 7a3296
%if %{with_headers}
Jesse Keating 7a3296
%files headers
Jesse Keating 7a3296
/usr/include/*
Jesse Keating 7a3296
%endif
Jesse Keating 7a3296
f65f3f
%if %{with_cross_headers}
f65f3f
%files cross-headers
f65f3f
/usr/*-linux-gnu/include/*
f65f3f
%endif
f65f3f
11fa12
%if %{with_kernel_abi_whitelists}
11fa12
%files -n kernel-abi-whitelists
11fa12
/lib/modules/kabi-*
11fa12
%endif
11fa12
11fa12
%if %{with_kabidw_base}
11fa12
%ifarch x86_64 s390x ppc64 ppc64le aarch64
11fa12
%files kabidw-base
11fa12
%defattr(-,root,root)
11fa12
/kabidw-base/%{_target_cpu}/*
11fa12
%endif
11fa12
%endif
11fa12
ef7187
# only some architecture builds need kernel-doc
ef7187
%if %{with_doc}
ef7187
%files doc
ef7187
%defattr(-,root,root)
ef7187
%{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation/*
ef7187
%dir %{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation
ef7187
%dir %{_datadir}/doc/kernel-doc-%{rpmversion}
ef7187
%endif
ef7187
1d23fd
%if %{with_selftests}
1d23fd
%files selftests-internal
1d23fd
%{_libexecdir}/ksamples
1d23fd
%{_libexecdir}/kselftests
1d23fd
%endif
1d23fd
94ce4e
# empty meta-package
94ce4e
%files
a17ef5
%if %{with_gcov}
a17ef5
%ifarch x86_64 s390x ppc64le aarch64
a17ef5
%files gcov
a17ef5
%{_builddir}
a17ef5
%endif
a17ef5
%endif
a17ef5
Dave Jones 166b79
# This is %%{image_install_path} on an arch where that includes ELF files,
Jesse Keating 7a3296
# or empty otherwise.
Jesse Keating 7a3296
%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
Jesse Keating 7a3296
Jesse Keating 7a3296
#
Jesse Keating 7a3296
# This macro defines the %%files sections for a kernel package
Jesse Keating 7a3296
# and its devel and debuginfo packages.
Jesse Keating 7a3296
#	%%kernel_variant_files [-k vmlinux] <condition> <subpackage>
Jesse Keating 7a3296
#
Jesse Keating 7a3296
%define kernel_variant_files(k:) \
df3d8e
%if %{2}\
376237
%{expand:%%files -f kernel-%{?3:%{3}-}core.list %{?1:-f kernel-%{?3:%{3}-}ldsoconf.list} %{?3:%{3}-}core}\
d23e53
%{!?_licensedir:%global license %%doc}\
9f12ce
%license linux-%{KVERREL}/COPYING-%{version}\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}\
df3d8e
%ghost /%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?3:+%{3}}\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/.vmlinuz.hmac \
df3d8e
%ghost /%{image_install_path}/.vmlinuz-%{KVERREL}%{?3:+%{3}}.hmac \
Kyle McMartin 49ba08
%ifarch %{arm} aarch64\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/dtb \
df3d8e
%ghost /%{image_install_path}/dtb-%{KVERREL}%{?3:+%{3}} \
783eee
%endif\
df3d8e
%attr(600,root,root) /lib/modules/%{KVERREL}%{?3:+%{3}}/System.map\
df3d8e
%ghost /boot/System.map-%{KVERREL}%{?3:+%{3}}\
11fa12
/lib/modules/%{KVERREL}%{?3:+%{3}}/symvers.gz\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/config\
11fa12
%ghost /boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\
df3d8e
%ghost /boot/config-%{KVERREL}%{?3:+%{3}}\
df3d8e
%ghost /boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\
b7897a
%dir /lib/modules\
df3d8e
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}\
df3d8e
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/build\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/source\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/updates\
cf8332
/lib/modules/%{KVERREL}%{?3:+%{3}}/bls.conf\
804484
/lib/modules/%{KVERREL}%{?3:+%{3}}/weak-updates\
df3d8e
%if %{1}\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/vdso\
Jesse Keating 7a3296
%endif\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/modules.*\
df3d8e
%{expand:%%files -f kernel-%{?3:%{3}-}modules.list %{?3:%{3}-}modules}\
df3d8e
%{expand:%%files %{?3:%{3}-}devel}\
a78151
%defverify(not mtime)\
df3d8e
/usr/src/kernels/%{KVERREL}%{?3:+%{3}}\
df3d8e
%{expand:%%files %{?3:%{3}-}modules-extra}\
564854
%config(noreplace) /etc/modprobe.d/*-blacklist.conf\
df3d8e
/lib/modules/%{KVERREL}%{?3:+%{3}}/extra\
564854
%%defattr(-,root,root)\
564854
%defverify(not mtime)\
564854
/usr/src/kernels/%{KVERREL}%{?3:+%{3}}\
564854
%{expand:%%files %{?3:%{3}-}modules-internal}\
564854
/lib/modules/%{KVERREL}%{?3:+%{3}}/internal\
Jesse Keating 7a3296
%if %{with_debuginfo}\
Jesse Keating 7a3296
%ifnarch noarch\
df3d8e
%{expand:%%files -f debuginfo%{?3}.list %{?3:%{3}-}debuginfo}\
Jesse Keating 7a3296
%endif\
Jesse Keating 7a3296
%endif\
df3d8e
%if %{?3:1} %{!?3:0}\
df3d8e
%{expand:%%files %{3}}\
335206
%endif\
Jesse Keating 7a3296
%endif\
Jesse Keating 7a3296
%{nil}
Jesse Keating 7a3296
376237
%kernel_variant_files %{_use_vdso} %{with_up}
376237
%kernel_variant_files %{_use_vdso} %{with_debug} debug
7a94d5
%kernel_variant_files %{use_vdso} %{with_pae} lpae
Jesse Keating 7a3296
c68fd7
%define kernel_variant_ipaclones(k:) \
c68fd7
%if %{1}\
c68fd7
%if %{with_ipaclones}\
c68fd7
%{expand:%%files %{?2:%{2}-}ipaclones-internal}\
c68fd7
%defattr(-,root,root)\
c68fd7
%defverify(not mtime)\
c68fd7
/usr/src/kernels/%{KVERREL}%{?2:+%{2}}-ipaclones\
c68fd7
%endif\
c68fd7
%endif\
c68fd7
%{nil}
c68fd7
c68fd7
%kernel_variant_ipaclones %{with_up}
c68fd7
Jesse Keating 7a3296
# plz don't put in a version string unless you're going to tag
Jesse Keating 7a3296
# and build.
Dave Jones 1d43b9
#
2117ac
#
Jesse Keating 7a3296
%changelog
Jeremy Cline f16f4a
* Mon Oct 28 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc5.git0.1
Jeremy Cline f16f4a
- Linux v5.4-rc5
Jeremy Cline f16f4a
Jeremy Cline 262dbe
* Mon Oct 28 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline 262dbe
- Disable debugging options.
Jeremy Cline 262dbe
Jeremy Cline 849afa
* Thu Oct 24 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc4.git3.1
Jeremy Cline 849afa
- Linux v5.4-rc4-85-gf116b96685a0
Jeremy Cline 849afa
Jeremy Cline 3d5297
* Wed Oct 23 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc4.git2.1
Jeremy Cline 3d5297
- Linux v5.4-rc4-37-g13b86bc4cd64
Jeremy Cline 3d5297
Jeremy Cline 82c966
* Tue Oct 22 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc4.git1.1
Jeremy Cline 82c966
- Linux v5.4-rc4-18-g3b7c59a1950c
Jeremy Cline 82c966
Jeremy Cline 3d03e8
* Tue Oct 22 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline 3d03e8
- Reenable debugging options.
Jeremy Cline 3d03e8
Jeremy Cline 5ff50d
* Mon Oct 21 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc4.git0.1
Jeremy Cline 5ff50d
- Linux v5.4-rc4
Jeremy Cline 5ff50d
Jeremy Cline addab9
* Mon Oct 21 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline addab9
- Disable debugging options.
Jeremy Cline addab9
Jeremy Cline d82fe1
* Fri Oct 18 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc3.git2.1
Jeremy Cline d82fe1
- Linux v5.4-rc3-99-g0e2adab6cf28
Jeremy Cline d82fe1
Jeremy Cline 743cfa
* Tue Oct 15 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc3.git1.1
Jeremy Cline 743cfa
- Linux v5.4-rc3-18-g5bc52f64e884
Jeremy Cline 743cfa
Jeremy Cline c579b0
* Tue Oct 15 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline c579b0
- Reenable debugging options.
Jeremy Cline c579b0
Jeremy Cline 9e691a
* Mon Oct 14 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc3.git0.1
Jeremy Cline 9e691a
- Linux v5.4-rc3
Jeremy Cline 9e691a
Jeremy Cline 0b7fe8
* Mon Oct 14 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline 0b7fe8
- Disable debugging options.
Jeremy Cline 0b7fe8
Jeremy Cline b4ce63
* Thu Oct 10 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc2.git2.1
Jeremy Cline b4ce63
- Linux v5.4-rc2-96-gfb20da6af705
Jeremy Cline b4ce63
Jeremy Cline 391323
* Tue Oct 08 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc2.git1.1
Jeremy Cline 391323
- Linux v5.4-rc2-20-geda57a0e4299
Jeremy Cline 391323
Jeremy Cline fb4a47
* Tue Oct 08 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline fb4a47
- Reenable debugging options.
Jeremy Cline fb4a47
7d533e
* Mon Oct 07 2019 Laura Abbott <labbott@redhat.com>
7d533e
- Enable a few NFT options (rhbz 1651813)
7d533e
Jeremy Cline f35031
* Mon Oct 07 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc2.git0.1
Jeremy Cline f35031
- Linux v5.4-rc2
Jeremy Cline f35031
Jeremy Cline 8e8ff6
* Mon Oct 07 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline 8e8ff6
- Disable debugging options.
Jeremy Cline 8e8ff6
12bb79
* Sun Oct  6 2019 Peter Robinson <pbrobinson@fedoraproject.org>
12bb79
- Fixes for Jetson TX1/TX2 series of devices
12bb79
Jeremy Cline f51db6
* Fri Oct 04 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc1.git1.1
Jeremy Cline f51db6
- Linux v5.4-rc1-14-gcc3a7bfe62b9
Jeremy Cline f51db6
Jeremy Cline 9e3866
* Fri Oct 04 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline 9e3866
- Reenable debugging options.
Jeremy Cline 9e3866
Jeremy Cline c16b4f
* Wed Oct 02 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc1.git0.1
Jeremy Cline c16b4f
- Linux v5.4-rc1
Jeremy Cline c16b4f
Jeremy Cline c2ad19
* Wed Oct 02 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline c2ad19
- Disable debugging options.
Jeremy Cline c2ad19
Jeremy Cline e21e52
* Mon Sep 30 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc0.git9.1
Jeremy Cline e21e52
- Linux v5.3-13236-g97f9a3c4eee5
Jeremy Cline e21e52
Jeremy Cline 08ea33
* Thu Sep 26 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc0.git8.1
Jeremy Cline 08ea33
- Linux v5.3-12397-gf41def397161
Jeremy Cline 08ea33
Jeremy Cline 456bb7
* Wed Sep 25 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc0.git7.1
Jeremy Cline 456bb7
- Linux v5.3-12289-g351c8a09b00b
Jeremy Cline 456bb7
Jeremy Cline 84b9af
* Tue Sep 24 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc0.git6.1
Jeremy Cline 84b9af
- Linux v5.3-12025-g4c07e2ddab5b
Jeremy Cline 84b9af
Jeremy Cline f628f0
* Mon Sep 23 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc0.git5.1
Jeremy Cline f628f0
- Linux v5.3-11768-g619e17cf75dd
Jeremy Cline f628f0
Jeremy Cline 8e2f53
* Fri Sep 20 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc0.git4.1
Jeremy Cline 8e2f53
- Linux v5.3-10169-g574cc4539762
Jeremy Cline 8e2f53
Jeremy Cline 75129c
* Thu Sep 19 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc0.git3.1
Jeremy Cline 75129c
- Linux v5.3-7639-gb41dae061bbd
Jeremy Cline 75129c
Jeremy Cline e432a7
* Wed Sep 18 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc0.git2.1
Jeremy Cline e432a7
- Linux v5.3-3839-g35f7a9526615
Jeremy Cline e432a7
Jeremy Cline 021611
* Tue Sep 17 2019 Jeremy Cline <jcline@redhat.com> - 5.4.0-0.rc0.git1.1
Jeremy Cline 021611
- Linux v5.3-2061-gad062195731b
Jeremy Cline 021611
Jeremy Cline fb222d
* Tue Sep 17 2019 Jeremy Cline <jcline@redhat.com>
Jeremy Cline fb222d
- Reenable debugging options.
Jeremy Cline fb222d
a30153
* Mon Sep 16 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-1
a30153
- Linux v5.3
a30153
2e5484
* Tue Sep 10 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-0.rc8.git0.1
2e5484
- Linux v5.3-rc8
2e5484
9df834
* Tue Sep 10 2019 Laura Abbott <labbott@redhat.com>
9df834
- Disable debugging options.
9df834
8a4687
* Thu Sep 05 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-0.rc7.git1.1
8a4687
- Linux v5.3-rc7-2-g3b47fd5ca9ea
8a4687
44fd54
* Thu Sep 05 2019 Laura Abbott <labbott@redhat.com>
44fd54
- Reenable debugging options.
44fd54
f637d9
* Tue Sep 03 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-0.rc7.git0.1
f637d9
- Linux v5.3-rc7
f637d9
02d14b
* Tue Sep 03 2019 Laura Abbott <labbott@redhat.com>
02d14b
- Disable debugging options.
02d14b
82cbb5
* Thu Aug 29 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-0.rc6.git2.1
82cbb5
- Linux v5.3-rc6-119-g9cf6b756cdf2
82cbb5
b7e0f1
* Wed Aug 28 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-0.rc6.git1.1
b7e0f1
- Linux v5.3-rc6-115-g9e8312f5e160
b7e0f1
be7a82
* Wed Aug 28 2019 Laura Abbott <labbott@redhat.com>
be7a82
- Reenable debugging options.
be7a82
2fdc96
* Mon Aug 26 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-0.rc6.git0.1
2fdc96
- Linux v5.3-rc6
2fdc96
cf82a1
* Mon Aug 26 2019 Laura Abbott <labbott@redhat.com>
cf82a1
- Disable debugging options.
cf82a1
5d3d59
* Fri Aug 23 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-0.rc5.git2.1
5d3d59
- Linux v5.3-rc5-224-gdd469a456047
5d3d59
264ee3
* Thu Aug 22 2019 Laura Abbott <labbott@redhat.com> - 5.3.0-0.rc5.git1.1
</