Blame kernel-default.spec

Bernhard M. Wiedemann 6ebc4a
#
Bernhard M. Wiedemann 6ebc4a
# spec file for package kernel-default
Bernhard M. Wiedemann 6ebc4a
#
bbef0d
# Copyright (c) 2023 SUSE LLC
Bernhard M. Wiedemann 6ebc4a
#
Bernhard M. Wiedemann 6ebc4a
# All modifications and additions to the file contributed by third parties
Bernhard M. Wiedemann 6ebc4a
# remain the property of their copyright owners, unless otherwise agreed
Bernhard M. Wiedemann 6ebc4a
# upon. The license for this file, and modifications and additions to the
Bernhard M. Wiedemann 6ebc4a
# file, is the same license as for the pristine package itself (unless the
Bernhard M. Wiedemann 6ebc4a
# license for the pristine package is not an Open Source License, in which
Bernhard M. Wiedemann 6ebc4a
# case the license is the MIT License). An "Open Source License" is a
Bernhard M. Wiedemann 6ebc4a
# license that conforms to the Open Source Definition (Version 1.9)
Bernhard M. Wiedemann 6ebc4a
# published by the Open Source Initiative.
Bernhard M. Wiedemann 6ebc4a
57a832
# Please submit bugfixes or comments via https://bugs.opensuse.org/
Bernhard M. Wiedemann 6ebc4a
#
Bernhard M. Wiedemann 6ebc4a
# needssslcertforbuild
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
7a6497
%define srcversion 6.1
dee876
%define patchversion 6.1.8
Bernhard M. Wiedemann 6ebc4a
%define variant %{nil}
Bernhard M. Wiedemann 6ebc4a
%define vanilla_only 0
0ccffb
%define compress_modules zstd
Bernhard M. Wiedemann 78ffbf
%define compress_vmlinux xz
Bernhard M. Wiedemann 86a379
%define livepatch livepatch%{nil}
c3597e
%define livepatch_rt %{nil}
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%include %_sourcedir/kernel-spec-macros
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%define build_flavor	default
Bernhard M. Wiedemann 6ebc4a
%define build_default	("%build_flavor" == "default")
Bernhard M. Wiedemann 6ebc4a
%define build_vanilla	("%build_flavor" == "vanilla")
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%if ! %build_vanilla
Bernhard M. Wiedemann 6ebc4a
%define src_install_dir /usr/src/linux-%kernelrelease%variant
Bernhard M. Wiedemann 6ebc4a
%else
Bernhard M. Wiedemann 6ebc4a
%define src_install_dir /usr/src/linux-%kernelrelease-vanilla
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%define obj_install_dir /usr/src/linux-%kernelrelease%variant-obj
Bernhard M. Wiedemann 6ebc4a
%define rpm_install_dir %buildroot%obj_install_dir
Bernhard M. Wiedemann 6ebc4a
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
Bernhard M. Wiedemann 6ebc4a
a08a13
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -v ^PTF | grep -vc openSUSE) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
Bernhard M. Wiedemann 6ebc4a
	%define klp_symbols 1
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
5c34fe
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
Bernhard M. Wiedemann 6ebc4a
%define cpu_arch_flavor %cpu_arch/%build_flavor
Bernhard M. Wiedemann 6ebc4a
2eeb6a
%global certs %( for f in %_sourcedir/*.crt; do                                                         \
2eeb6a
    if ! test -e "$f"; then                                                                             \
2eeb6a
        continue                                                                                        \
2eeb6a
    fi                                                                                                  \
2eeb6a
    h=$(openssl x509 -inform PEM -fingerprint -noout -in "$f")                                          \
2eeb6a
    if [ -z "$h" ] ; then                                                                               \
2eeb6a
        echo Cannot parse "$f" >&2                                                                      \
2eeb6a
        confinue                                                                                        \
2eeb6a
    fi                                                                                                  \
2eeb6a
    cert=$(echo "$h" | sed -rn 's/^SHA1 Fingerprint=//; T; s/://g; s/(.{8}).*/\\1/p')                   \
2eeb6a
    echo Found signing certificate "$f" "($cert)" >&2                                                   \
2eeb6a
    cat "$f" >>%_sourcedir/.kernel_signing_key.pem                                                      \
2eeb6a
    mkdir -p %_sourcedir/.kernel_signing_certs                                                          \
2eeb6a
    openssl x509 -inform PEM -in "$f" -outform DER -out %_sourcedir/.kernel_signing_certs/"$cert".crt   \
2eeb6a
    echo -n "$cert" ""                                                                                  \
2eeb6a
done )
2eeb6a
2eeb6a
%ifarch %ix86 x86_64
2eeb6a
%define image vmlinuz
2eeb6a
%endif
2eeb6a
%ifarch ppc ppc64 ppc64le
2eeb6a
%define image vmlinux
2eeb6a
%endif
2eeb6a
%ifarch s390 s390x
2eeb6a
%define image image
2eeb6a
%endif
2eeb6a
%ifarch %arm
2eeb6a
%define image zImage
2eeb6a
%endif
2eeb6a
%ifarch aarch64 riscv64
2eeb6a
%define image Image
2eeb6a
%endif
2eeb6a
Bernhard M. Wiedemann 6ebc4a
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
Bernhard M. Wiedemann 6ebc4a
# defining them all at once.)
735e77
%define config_vars CONFIG_MODULES CONFIG_MODULE_SIG CONFIG_MODULE_SIG_HASH CONFIG_KMSG_IDS CONFIG_SUSE_KERNEL_SUPPORTED CONFIG_EFI_STUB CONFIG_LIVEPATCH_IPA_CLONES CONFIG_DEBUG_INFO_BTF_MODULES
Bernhard M. Wiedemann 6ebc4a
%{expand:%(eval "$(test -n "%cpu_arch_flavor" && tar -xjf %_sourcedir/config.tar.bz2 --to-stdout config/%cpu_arch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)}
5c5b33
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
bd7477
bd7477
# Split Leap-only modules to kernel-*-optional subpackage?
bd7477
%define split_optional	0
bd7477
5c5b33
%if "%CONFIG_MODULES" != "y"
Bernhard M. Wiedemann 30899f
	%define klp_symbols 0
Bernhard M. Wiedemann 30899f
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86 x86_64
Bernhard M. Wiedemann 6ebc4a
%define install_vdso 1
3027fd
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150500
3027fd
%define separate_vdso 1
3027fd
%endif
Bernhard M. Wiedemann 6ebc4a
%else
Bernhard M. Wiedemann 6ebc4a
%define install_vdso 0
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
00af90
%define modules_dir %kernel_module_directory/%kernelrelease-%build_flavor
32c425
Bernhard M. Wiedemann 6ebc4a
Name:           kernel-default
Bernhard M. Wiedemann 6ebc4a
Summary:        The Standard Kernel
9a48dc
License:        GPL-2.0-only
Bernhard M. Wiedemann 6ebc4a
Group:          System/Kernel
dee876
Version:        6.1.8
Bernhard M. Wiedemann 6ebc4a
%if 0%{?is_kotd}
dee876
Release:        <RELEASE>.gbaebfe0
Bernhard M. Wiedemann 6ebc4a
%else
Bernhard M. Wiedemann 6ebc4a
Release:        0
Bernhard M. Wiedemann 6ebc4a
%endif
57a832
URL:            https://www.kernel.org/
5c34fe
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
5c34fe
BuildRequires:  bash-sh
5c34fe
%endif
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  bc
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  bison
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  coreutils
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  fdupes
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  flex
Bernhard M. Wiedemann 6ebc4a
# Cannot test %%CONFIG_GCC_PLUGINS here because the buildservice parser
Bernhard M. Wiedemann 6ebc4a
# does not expand %%(...)
Bernhard M. Wiedemann 6ebc4a
%if "%build_flavor" == "syzkaller"
Bernhard M. Wiedemann 6ebc4a
# Needed by scripts/gcc-plugin.sh
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  gcc-c++
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  gcc-devel
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%if 0%{?suse_version} > 1310
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  hmaccalc
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  libopenssl-devel
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  modutils
Bernhard M. Wiedemann 6ebc4a
# Used to sign the kernel in the buildservice
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  openssl
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  pesign-obs-integration
0af339
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150300
0af339
# pahole for CONFIG_DEBUG_INFO_BTF
0ccffb
BuildRequires:  dwarves >= 1.22
0af339
%endif
Bernhard M. Wiedemann 6ebc4a
# for objtool
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  libelf-devel
dd32e5
# required for 50-check-kernel-build-id rpm check
dd32e5
BuildRequires:  elfutils
2e84a6
%if "%{compress_modules}" == "zstd"
2e84a6
BuildRequires:  zstd
2e84a6
# Make sure kmod supports zstd compressed modules
2e84a6
Requires(post): kmod-zstd
2e84a6
%endif
Bernhard M. Wiedemann 6ebc4a
Provides:       %name = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
# bnc#901925
Bernhard M. Wiedemann 6ebc4a
Provides:       %name-%version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       %{name}_%_target_cpu = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-base = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       multiversion(kernel)
Bernhard M. Wiedemann 6ebc4a
# In SLE11, kernel-$flavor complemented kernel-$flavor-base. With SLE12,
Bernhard M. Wiedemann 6ebc4a
# kernel-$flavor itself contains all the needed files and kernel-$flavor-base
Bernhard M. Wiedemann 6ebc4a
# is a subset that can replace kernel-$flavor in some scenarios. We need to
Bernhard M. Wiedemann 6ebc4a
# obsolete the -base subpackage from SLE11, so that the base files are not
Bernhard M. Wiedemann 6ebc4a
# owned by multiple packages now. The dependency is not correct wrt openSUSE
Bernhard M. Wiedemann 6ebc4a
# 11.2 - 11.4, but we primarily care about the supported upgrade path.
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      %name-base < 3.1
Bernhard M. Wiedemann 1fce88
%if ("%build_flavor" != "kvmsmall") && ("%build_flavor" != "azure")
Bernhard M. Wiedemann 6ebc4a
Recommends: kernel-firmware
Bernhard M. Wiedemann 1fce88
%endif
Bernhard M. Wiedemann 6ebc4a
# The following is copied to the -base subpackage as well
Bernhard M. Wiedemann 6ebc4a
# BEGIN COMMON DEPS
7a4f11
Requires(pre):  suse-kernel-rpm-scriptlets
7a4f11
Requires(postun): suse-kernel-rpm-scriptlets
Bernhard M. Wiedemann 6ebc4a
Requires(pre):  coreutils awk
Bernhard M. Wiedemann 6ebc4a
# For /usr/lib/module-init-tools/weak-modules2
Bernhard M. Wiedemann 6ebc4a
Requires(post): suse-module-tools
Bernhard M. Wiedemann 6ebc4a
# For depmod (modutils is a dependency provided by both module-init-tools and
Bernhard M. Wiedemann 6ebc4a
# kmod-compat)
Bernhard M. Wiedemann 6ebc4a
Requires(post): modutils
Bernhard M. Wiedemann 6ebc4a
# This Requires is wrong, because the post/postun scripts have a
Bernhard M. Wiedemann 6ebc4a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
Bernhard M. Wiedemann 6ebc4a
# But, there is no way to tell rpm or yast to schedule the installation
Bernhard M. Wiedemann 6ebc4a
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
Bernhard M. Wiedemann 6ebc4a
# packages to install/update. Likewise, this is true for mkinitrd.
Bernhard M. Wiedemann 6ebc4a
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Bernhard M. Wiedemann 6ebc4a
Requires(post): perl-Bootloader >= 0.4.15
Bernhard M. Wiedemann 6ebc4a
%if %build_vanilla
Bernhard M. Wiedemann 6ebc4a
Requires(post): mkinitrd
Bernhard M. Wiedemann 6ebc4a
%else
Bernhard M. Wiedemann 6ebc4a
# Require a mkinitrd that can handle usbhid/hid-generic built-in (bnc#773559)
Bernhard M. Wiedemann 6ebc4a
Requires(post): mkinitrd >= 2.7.1
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
# Install the package providing /etc/SuSE-release early enough, so that
Bernhard M. Wiedemann 6ebc4a
# the grub entry has correct title (bnc#757565)
Bernhard M. Wiedemann 6ebc4a
Requires(post): distribution-release
Bernhard M. Wiedemann 6ebc4a
# Do not install p-b and mkinitrd for the install check, the %post script is
Bernhard M. Wiedemann 6ebc4a
# able to handle this
Bernhard M. Wiedemann 6ebc4a
#!BuildIgnore: perl-Bootloader mkinitrd distribution-release
Bernhard M. Wiedemann 6ebc4a
# Remove some packages that are installed automatically by the build system,
Bernhard M. Wiedemann 6ebc4a
# but are not needed to build the kernel
Bernhard M. Wiedemann 6ebc4a
#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools udev insserv
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%ifarch s390 s390x
Bernhard M. Wiedemann 6ebc4a
%if %build_vanilla && 0%{?suse_version} < 1130
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  dwarfextract
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch %arm
Bernhard M. Wiedemann 6ebc4a
BuildRequires:  u-boot-tools
Bernhard M. Wiedemann 6ebc4a
%endif
9a48dc
%if 0%{?usrmerged}
c69a94
# make sure we have a post-usrmerge system
c69a94
Conflicts:      filesystem < 16
9a48dc
%endif
Bernhard M. Wiedemann 6ebc4a
ca360f
Obsoletes:      microcode_ctl < 1.18
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# Force bzip2 instead of lzma compression to
Bernhard M. Wiedemann 6ebc4a
# 1) allow install on older dist versions, and
Bernhard M. Wiedemann 8b37e4
# 2) decrease build times (bsc#962356 boo#1175882)
Bernhard M. Wiedemann 6ebc4a
%define _binary_payload w9.bzdio
Bernhard M. Wiedemann 6ebc4a
# Do not recompute the build-id of vmlinux in find-debuginfo.sh (bsc#964063)
Bernhard M. Wiedemann 6ebc4a
%undefine _unique_build_ids
Bernhard M. Wiedemann 6ebc4a
%define _no_recompute_build_ids 1
Bernhard M. Wiedemann 6ebc4a
# prevent usr/lib/debug/boot/vmlinux-4.12.14-11.10-default-4.12.14-11.10.ppc64le.debug
Bernhard M. Wiedemann 6ebc4a
%undefine _unique_debug_names
Bernhard M. Wiedemann 6ebc4a
# dead network if installed on SLES10, otherwise it will work (mostly)
Bernhard M. Wiedemann 6ebc4a
Conflicts:      sysfsutils < 2.0
Bernhard M. Wiedemann 6ebc4a
Conflicts:      apparmor-profiles <= 2.1
Bernhard M. Wiedemann 6ebc4a
Conflicts:      apparmor-parser < 2.3
Bernhard M. Wiedemann 6ebc4a
# root-lvm only works with newer udevs
Bernhard M. Wiedemann 6ebc4a
Conflicts:      udev < 118
Bernhard M. Wiedemann 6ebc4a
Conflicts:      lvm2 < 2.02.33
Bernhard M. Wiedemann 6ebc4a
# Interface to hv_kvp_daemon changed
Bernhard M. Wiedemann 6ebc4a
Conflicts:      hyper-v < 4
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86
Bernhard M. Wiedemann 6ebc4a
Conflicts:      libc.so.6()(64bit)
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel = %version-%source_rel
dee876
Provides:       kernel-%build_flavor-base-srchash-baebfe0ef3d47efabc570a82bd54611798a920a9
dee876
Provides:       kernel-srchash-baebfe0ef3d47efabc570a82bd54611798a920a9
2a524c
# END COMMON DEPS
dee876
Provides:       %name-srchash-baebfe0ef3d47efabc570a82bd54611798a920a9
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-smp = 2.6.17
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-smp <= 2.6.17
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace <= 3.13
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch ppc64
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-kdump = 2.6.28
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-kdump <= 2.6.28
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch s390x
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace <= 3.13
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch x86_64
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-smp = 2.6.17
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-smp <= 2.6.17
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace <= 3.13
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-bigsmp = 3.1
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-bigsmp <= 3.1
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-desktop = 4.3
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-desktop <= 4.3
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-xen = 4.4
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-xen <= 4.4
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-ec2 = 4.4
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-ec2 <= 4.4
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace-base = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace-base <= 3.13
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch ppc64
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-kdump-base = 2.6.28
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-kdump-base <= 2.6.28
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch s390x
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace-base = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace-base <= 3.13
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch x86_64
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace-base = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace-base <= 3.13
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-bigsmp-base = 3.1
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-bigsmp-base <= 3.1
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-desktop-base = 4.3
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-desktop-base <= 4.3
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-xen-base = 4.4
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-xen-base <= 4.4
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-ec2-base = 4.4
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-ec2-base <= 4.4
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%obsolete_rebuilds %name
160bca
Source0:        https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz
Bernhard M. Wiedemann 6ebc4a
Source3:        kernel-source.rpmlintrc
Bernhard M. Wiedemann 6ebc4a
Source14:       series.conf
Bernhard M. Wiedemann 6ebc4a
Source16:       guards
Bernhard M. Wiedemann 6ebc4a
Source17:       apply-patches
Bernhard M. Wiedemann 6ebc4a
Source21:       config.conf
Bernhard M. Wiedemann 6ebc4a
Source23:       supported.conf
Bernhard M. Wiedemann 6ebc4a
Source33:       check-for-config-changes
Bernhard M. Wiedemann 6ebc4a
Source35:       group-source-files.pl
Bernhard M. Wiedemann 6ebc4a
Source36:       README.PATCH-POLICY.SUSE
Bernhard M. Wiedemann 6ebc4a
Source37:       README.SUSE
Bernhard M. Wiedemann 6ebc4a
Source38:       README.KSYMS
Bernhard M. Wiedemann 6ebc4a
Source39:       config-options.changes.txt
Bernhard M. Wiedemann 6ebc4a
Source40:       source-timestamp
Bernhard M. Wiedemann 6ebc4a
Source46:       split-modules
Bernhard M. Wiedemann 6ebc4a
Source47:       modversions
Bernhard M. Wiedemann 6ebc4a
Source48:       macros.kernel-source
Bernhard M. Wiedemann 6ebc4a
Source49:       kernel-module-subpackage
Bernhard M. Wiedemann 6ebc4a
Source50:       kabi.pl
Bernhard M. Wiedemann 6ebc4a
Source51:       mkspec
Bernhard M. Wiedemann 6ebc4a
Source52:       kernel-source%variant.changes
Bernhard M. Wiedemann 6ebc4a
Source53:       kernel-source.spec.in
Bernhard M. Wiedemann 6ebc4a
Source54:       kernel-binary.spec.in
Bernhard M. Wiedemann 6ebc4a
Source55:       kernel-syms.spec.in
Bernhard M. Wiedemann 6ebc4a
Source56:       kernel-docs.spec.in
Bernhard M. Wiedemann 6ebc4a
Source57:       kernel-cert-subpackage
Bernhard M. Wiedemann 6ebc4a
Source58:       constraints.in
Bernhard M. Wiedemann 6ebc4a
Source60:       config.sh
Bernhard M. Wiedemann 6ebc4a
Source61:       compute-PATCHVERSION.sh
Bernhard M. Wiedemann 6ebc4a
Source62:       old-flavors
Bernhard M. Wiedemann 6ebc4a
Source63:       arch-symbols
Bernhard M. Wiedemann 6ebc4a
Source64:       package-descriptions
Bernhard M. Wiedemann 6ebc4a
Source65:       kernel-spec-macros
Bernhard M. Wiedemann 6ebc4a
Source67:       log.sh
Bernhard M. Wiedemann 6ebc4a
Source68:       host-memcpy-hack.h
Bernhard M. Wiedemann 6ebc4a
Source69:       try-disable-staging-driver
Bernhard M. Wiedemann 6ebc4a
Source70:       kernel-obs-build.spec.in
Bernhard M. Wiedemann 6ebc4a
Source71:       kernel-obs-qa.spec.in
Bernhard M. Wiedemann 6ebc4a
Source72:       compress-vmlinux.sh
Bernhard M. Wiedemann 6ebc4a
Source73:       dtb.spec.in.in
Bernhard M. Wiedemann 6ebc4a
Source74:       mkspec-dtb
Bernhard M. Wiedemann 6ebc4a
Source75:       release-projects
Bernhard M. Wiedemann 6ebc4a
Source76:       check-module-license
Bernhard M. Wiedemann 6ebc4a
Source77:       klp-symbols
Bernhard M. Wiedemann 6ebc4a
Source78:       modules.fips
Bernhard M. Wiedemann 6ebc4a
Source79:       splitflist
Bernhard M. Wiedemann 6ebc4a
Source80:       mergedep
Bernhard M. Wiedemann 6ebc4a
Source81:       moddep
Bernhard M. Wiedemann 6ebc4a
Source82:       modflist
Bernhard M. Wiedemann 6ebc4a
Source83:       kernel-subpackage-build
Bernhard M. Wiedemann 6ebc4a
Source84:       kernel-subpackage-spec
Bernhard M. Wiedemann 6ebc4a
Source85:       kernel-default-base.spec.txt
Bernhard M. Wiedemann 6ebc4a
Source100:      config.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source101:      config.addon.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source102:      patches.arch.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source103:      patches.drivers.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source104:      patches.fixes.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source105:      patches.rpmify.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source106:      patches.suse.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source108:      patches.addon.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source109:      patches.kernel.org.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source110:      patches.apparmor.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source111:      patches.rt.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source113:      patches.kabi.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source120:      kabi.tar.bz2
Bernhard M. Wiedemann 6ebc4a
Source121:      sysctl.tar.bz2
Bernhard M. Wiedemann 6ebc4a
# These files are found in the kernel-source package:
Bernhard M. Wiedemann 6ebc4a
NoSource:       0
Bernhard M. Wiedemann 6ebc4a
NoSource:       3
Bernhard M. Wiedemann 6ebc4a
NoSource:       14
Bernhard M. Wiedemann 6ebc4a
NoSource:       16
Bernhard M. Wiedemann 6ebc4a
NoSource:       17
Bernhard M. Wiedemann 6ebc4a
NoSource:       21
Bernhard M. Wiedemann 6ebc4a
NoSource:       23
Bernhard M. Wiedemann 6ebc4a
NoSource:       33
Bernhard M. Wiedemann 6ebc4a
NoSource:       35
Bernhard M. Wiedemann 6ebc4a
NoSource:       36
Bernhard M. Wiedemann 6ebc4a
NoSource:       37
Bernhard M. Wiedemann 6ebc4a
NoSource:       38
Bernhard M. Wiedemann 6ebc4a
NoSource:       39
Bernhard M. Wiedemann 6ebc4a
NoSource:       40
Bernhard M. Wiedemann 6ebc4a
NoSource:       46
Bernhard M. Wiedemann 6ebc4a
NoSource:       47
Bernhard M. Wiedemann 6ebc4a
NoSource:       48
Bernhard M. Wiedemann 6ebc4a
NoSource:       49
Bernhard M. Wiedemann 6ebc4a
NoSource:       50
Bernhard M. Wiedemann 6ebc4a
NoSource:       51
Bernhard M. Wiedemann 6ebc4a
NoSource:       52
Bernhard M. Wiedemann 6ebc4a
NoSource:       53
Bernhard M. Wiedemann 6ebc4a
NoSource:       54
Bernhard M. Wiedemann 6ebc4a
NoSource:       55
Bernhard M. Wiedemann 6ebc4a
NoSource:       56
Bernhard M. Wiedemann 6ebc4a
NoSource:       57
Bernhard M. Wiedemann 6ebc4a
NoSource:       58
Bernhard M. Wiedemann 6ebc4a
NoSource:       60
Bernhard M. Wiedemann 6ebc4a
NoSource:       61
Bernhard M. Wiedemann 6ebc4a
NoSource:       62
Bernhard M. Wiedemann 6ebc4a
NoSource:       63
Bernhard M. Wiedemann 6ebc4a
NoSource:       64
Bernhard M. Wiedemann 6ebc4a
NoSource:       65
Bernhard M. Wiedemann 6ebc4a
NoSource:       67
Bernhard M. Wiedemann 6ebc4a
NoSource:       68
Bernhard M. Wiedemann 6ebc4a
NoSource:       69
Bernhard M. Wiedemann 6ebc4a
NoSource:       70
Bernhard M. Wiedemann 6ebc4a
NoSource:       71
Bernhard M. Wiedemann 6ebc4a
NoSource:       72
Bernhard M. Wiedemann 6ebc4a
NoSource:       73
Bernhard M. Wiedemann 6ebc4a
NoSource:       74
Bernhard M. Wiedemann 6ebc4a
NoSource:       75
Bernhard M. Wiedemann 6ebc4a
NoSource:       76
Bernhard M. Wiedemann 6ebc4a
NoSource:       77
Bernhard M. Wiedemann 6ebc4a
NoSource:       78
Bernhard M. Wiedemann 6ebc4a
NoSource:       79
Bernhard M. Wiedemann 6ebc4a
NoSource:       80
Bernhard M. Wiedemann 6ebc4a
NoSource:       81
Bernhard M. Wiedemann 6ebc4a
NoSource:       82
Bernhard M. Wiedemann 6ebc4a
NoSource:       83
Bernhard M. Wiedemann 6ebc4a
NoSource:       84
Bernhard M. Wiedemann 6ebc4a
NoSource:       85
Bernhard M. Wiedemann 6ebc4a
NoSource:       100
Bernhard M. Wiedemann 6ebc4a
NoSource:       101
Bernhard M. Wiedemann 6ebc4a
NoSource:       102
Bernhard M. Wiedemann 6ebc4a
NoSource:       103
Bernhard M. Wiedemann 6ebc4a
NoSource:       104
Bernhard M. Wiedemann 6ebc4a
NoSource:       105
Bernhard M. Wiedemann 6ebc4a
NoSource:       106
Bernhard M. Wiedemann 6ebc4a
NoSource:       108
Bernhard M. Wiedemann 6ebc4a
NoSource:       109
Bernhard M. Wiedemann 6ebc4a
NoSource:       110
Bernhard M. Wiedemann 6ebc4a
NoSource:       111
Bernhard M. Wiedemann 6ebc4a
NoSource:       113
Bernhard M. Wiedemann 6ebc4a
NoSource:       120
Bernhard M. Wiedemann 6ebc4a
NoSource:       121
Bernhard M. Wiedemann 6ebc4a
1d2ab9
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
1d2ab9
ExclusiveArch:  aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le riscv64 s390x x86_64
1d2ab9
%define kmp_target_cpu %_target_cpu
1d2ab9
%ifarch %ix86
1d2ab9
# Only i386/default supports i586, mark other flavors' packages as i686
1d2ab9
%if ! %build_default
1d2ab9
BuildArch:      i686
1d2ab9
# KMPs are always built as i586, because rpm does not allow to build
1d2ab9
# subpackages for different architectures. Therefore, we change the
1d2ab9
# /usr/src/linux-obj/<arch> symlink to i586.
1d2ab9
%define kmp_target_cpu i586
1d2ab9
%endif
1d2ab9
%endif
1d2ab9
Bernhard M. Wiedemann 6ebc4a
# Will modules not listed in supported.conf abort the kernel build (0/1)?
Bernhard M. Wiedemann 6ebc4a
%define supported_modules_check 0
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description
Bernhard M. Wiedemann 6ebc4a
The standard kernel for both uniprocessor and multiprocessor systems.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%source_timestamp
Bernhard M. Wiedemann 6ebc4a
%prep
Bernhard M. Wiedemann 6ebc4a
if ! [ -e %{S:0} ]; then
Bernhard M. Wiedemann 6ebc4a
    echo "The %name-%version.nosrc.rpm package does not contain the" \
Bernhard M. Wiedemann 6ebc4a
	 "complete sources. Please install kernel-source-%version.src.rpm."
Bernhard M. Wiedemann 6ebc4a
    exit 1
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
SYMBOLS=
Bernhard M. Wiedemann 6ebc4a
if test -e %_sourcedir/extra-symbols; then
Bernhard M. Wiedemann 6ebc4a
	SYMBOLS=$(cat %_sourcedir/extra-symbols)
Bernhard M. Wiedemann 6ebc4a
	echo "extra symbol(s):" $SYMBOLS
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# Unpack all sources and patches
Bernhard M. Wiedemann 6ebc4a
%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 108 -a 109 -a 110 -a 111 -a 113 -a 120 -a 121
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
mkdir -p %kernel_build_dir
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# Generate a list of modules with their support status marking
bd7477
# The first marker is supposed to be either "+external", "-" or "-!optional",
bd7477
# where "+external" is for an externally supported module, "-" is for an
bd7477
# unsuppored module, "-!optional" is for Leap-only unsupported module.
bd7477
# There can be an optional arch-specific second marker with "+arch" (e.g.
bd7477
# +arm64), which enforces the module to be supported on the specific arch.
Bernhard M. Wiedemann 6ebc4a
%_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \
bd7477
awk '{
bd7477
    t = "";
bd7477
    for (i = 1; i < NF; i++) {
bd7477
	if ($i == "+external") {
bd7477
		t = " external";
bd7477
	} else if ($i == "+'%cpu_arch'") {
bd7477
		t = "";
bd7477
	} else if ($i ~ "^-") {
bd7477
		t = " no";
Bernhard M. Wiedemann 6ebc4a
	}
bd7477
    }
bd7477
    print $(NF) t;
bd7477
}' >%kernel_build_dir/Module.supported
Bernhard M. Wiedemann 6ebc4a
subpackages=(
Bernhard M. Wiedemann 6ebc4a
	base
5c5b33
%if "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y"
Bernhard M. Wiedemann 86a379
	cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp reiserfs-kmp
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
)
Bernhard M. Wiedemann 6ebc4a
for package in "${subpackages[@]}"; do
Bernhard M. Wiedemann 6ebc4a
	%_sourcedir/guards --default=0 "$package" \
Bernhard M. Wiedemann 6ebc4a
		<%_sourcedir/supported.conf | sed 's,.*/,,; s,\.ko$,,' | \
Bernhard M. Wiedemann 6ebc4a
		sort -u >%kernel_build_dir/Module."$package"
Bernhard M. Wiedemann 6ebc4a
done
bd7477
%if %split_extra && %split_optional
bd7477
# Module.optional is in a special form, containing guard markers for
bd7477
# both extra and optional modules, which is processed by split-modules
bd7477
%_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \
bd7477
awk '{
bd7477
    t = "";
bd7477
    for (i = 1; i < NF; i++) {
bd7477
	if ($i == "+'%cpu_arch'") {
bd7477
		t = "";
bd7477
	} else if ($i ~ "^-") {
bd7477
		t = $i
bd7477
	}
bd7477
    }
bd7477
    if (t != "") {print t,$(NF);}
bd7477
}' >%kernel_build_dir/Module.optional
bd7477
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
cd linux-%srcversion
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%_sourcedir/apply-patches \
Bernhard M. Wiedemann 6ebc4a
%if %{build_vanilla}
Bernhard M. Wiedemann 6ebc4a
	--vanilla \
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
	%_sourcedir/series.conf .. $SYMBOLS
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
cd %kernel_build_dir
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# Override the timestamp 'uname -v' reports with the source timestamp and
Bernhard M. Wiedemann 6ebc4a
# the commit hash.
Bernhard M. Wiedemann 6ebc4a
date=$(head -n 1 %_sourcedir/source-timestamp)
Bernhard M. Wiedemann 6ebc4a
commit=$(sed -n 's/GIT Revision: //p' %_sourcedir/source-timestamp)
Bernhard M. Wiedemann 6ebc4a
cat > .kernel-binary.spec.buildenv <
Bernhard M. Wiedemann 6ebc4a
export KBUILD_BUILD_TIMESTAMP="$(LANG=C date -d "$date") (${commit:0:7})"
Bernhard M. Wiedemann 6ebc4a
export KBUILD_VERBOSE=0
Bernhard M. Wiedemann 6ebc4a
export KBUILD_SYMTYPES=1
Bernhard M. Wiedemann 6ebc4a
export KBUILD_OVERRIDE=1
Bernhard M. Wiedemann 6ebc4a
export KBUILD_BUILD_USER=geeko
Bernhard M. Wiedemann 6ebc4a
export KBUILD_BUILD_HOST=buildhost
Bernhard M. Wiedemann 6ebc4a
export HOST_EXTRACFLAGS="-include %_sourcedir/host-memcpy-hack.h"
Bernhard M. Wiedemann 6ebc4a
EOF
Bernhard M. Wiedemann 6ebc4a
source .kernel-binary.spec.buildenv
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
if [ -f %_sourcedir/localversion ] ; then
Bernhard M. Wiedemann 6ebc4a
    cat %_sourcedir/localversion > localversion
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
config_base="default"
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86
Bernhard M. Wiedemann 6ebc4a
config_base="pae"
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
if ! [ -f %my_builddir/config/%cpu_arch/$config_base ] ; then
Bernhard M. Wiedemann 6ebc4a
    config_base=%variant
Bernhard M. Wiedemann 6ebc4a
    config_base=${config_base#-}
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
if ! grep -q CONFIG_MMU= "%my_builddir/config/%cpu_arch_flavor"; then
Bernhard M. Wiedemann 6ebc4a
cp "%my_builddir/config/%cpu_arch/$config_base" .config
Bernhard M. Wiedemann 6ebc4a
../scripts/kconfig/merge_config.sh -m .config \
Bernhard M. Wiedemann 6ebc4a
                                   %my_builddir/config/%cpu_arch_flavor
Bernhard M. Wiedemann 6ebc4a
else
Bernhard M. Wiedemann 6ebc4a
cp %my_builddir/config/%cpu_arch_flavor .config
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
if test -e %my_builddir/config.addon/%cpu_arch_flavor; then
Bernhard M. Wiedemann 6ebc4a
	# FIXME: config.addon doesn't affect the %CONFIG_ macros defined at
Bernhard M. Wiedemann 6ebc4a
	# the top of the specfile
Bernhard M. Wiedemann 6ebc4a
	../scripts/kconfig/merge_config.sh -m .config %my_builddir/config.addon/%cpu_arch_flavor
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
CONFIG_SUSE_KERNEL_RELEASED="--disable CONFIG_SUSE_KERNEL_RELEASED"
Bernhard M. Wiedemann 6ebc4a
%if 0%{?_project:1}
a08a13
if echo %_project | grep -Eqx -f %_sourcedir/release-projects; then
Bernhard M. Wiedemann 6ebc4a
	CONFIG_SUSE_KERNEL_RELEASED="--enable CONFIG_SUSE_KERNEL_RELEASED"
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
2f5b95
DEBUG_INFO_TYPE="$(grep "CONFIG_DEBUG_INFO_DWARF.*=y" .config)"
2f5b95
DEBUG_INFO_TYPE="${DEBUG_INFO_TYPE%%=y}"
2f5b95
DEBUG_INFO_TYPE="${DEBUG_INFO_TYPE##CONFIG_DEBUG_INFO_}"
2f5b95
echo "Kernel debuginfo type: ${DEBUG_INFO_TYPE}"
2f5b95
Bernhard M. Wiedemann 6ebc4a
../scripts/config \
Bernhard M. Wiedemann 6ebc4a
	--set-str CONFIG_LOCALVERSION -%source_rel-%build_flavor \
Bernhard M. Wiedemann 6ebc4a
	--enable  CONFIG_SUSE_KERNEL \
Bernhard M. Wiedemann 6ebc4a
	$CONFIG_SUSE_KERNEL_RELEASED \
Bernhard M. Wiedemann 6ebc4a
%if 0%{?__debug_package:1}
Bernhard M. Wiedemann 6ebc4a
	--enable  CONFIG_DEBUG_INFO
Bernhard M. Wiedemann 6ebc4a
%else
2f5b95
	--disable CONFIG_DEBUG_INFO \
2f5b95
	--disable CONFIG_DEBUG_INFO_"${DEBUG_INFO_TYPE}" \
2f5b95
	--enable  CONFIG_DEBUG_INFO_NONE
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
00af90
if [ %CONFIG_MODULE_SIG = "y" ]; then
e52d9d
	if [ -n "%certs" ] ; then
735e77
		ln -s %_sourcedir/.kernel_signing_key.pem .
e52d9d
	else
735e77
		if ! [ -f .kernel.genkey ] ; then
735e77
			cat > .kernel.genkey <
735e77
[ req ]
735e77
default_bits = 4096
735e77
distinguished_name = req_distinguished_name
735e77
prompt = no
735e77
string_mask = utf8only
735e77
x509_extensions = myexts
735e77
735e77
[ req_distinguished_name ]
735e77
CN = Build time autogenerated kernel key
735e77
735e77
[ myexts ]
735e77
basicConstraints=critical,CA:FALSE
735e77
keyUsage=digitalSignature
735e77
subjectKeyIdentifier=hash
735e77
authorityKeyIdentifier=keyid
735e77
extendedKeyUsage=codeSigning
735e77
EOF
735e77
		fi
735e77
		openssl req -new -nodes -utf8 -%CONFIG_MODULE_SIG_HASH -days 36500 \
735e77
			-batch -x509 -config .kernel.genkey \
735e77
			-outform PEM -out .kernel_signing_key.pem \
735e77
			-keyout .kernel_signing_key.pem
e52d9d
	fi
735e77
	../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem"
00af90
fi
00af90
Bernhard M. Wiedemann 6ebc4a
case %cpu_arch in
Bernhard M. Wiedemann 6ebc4a
    x86_64 | i386)
Bernhard M. Wiedemann 6ebc4a
        MAKE_ARGS="$MAKE_ARGS ARCH=x86"
Bernhard M. Wiedemann 6ebc4a
        ;;
Bernhard M. Wiedemann 6ebc4a
    ppc*)
Bernhard M. Wiedemann 6ebc4a
        MAKE_ARGS="$MAKE_ARGS ARCH=powerpc"
Bernhard M. Wiedemann 6ebc4a
        ;;
Bernhard M. Wiedemann 6ebc4a
    s390x)
Bernhard M. Wiedemann 6ebc4a
        MAKE_ARGS="$MAKE_ARGS ARCH=s390"
Bernhard M. Wiedemann 6ebc4a
        ;;
Bernhard M. Wiedemann 6ebc4a
    arm64)
Bernhard M. Wiedemann 6ebc4a
        MAKE_ARGS="$MAKE_ARGS ARCH=arm64"
Bernhard M. Wiedemann 6ebc4a
        ;;
Bernhard M. Wiedemann 6ebc4a
    armv*)
Bernhard M. Wiedemann 6ebc4a
        MAKE_ARGS="$MAKE_ARGS ARCH=arm"
Bernhard M. Wiedemann 6ebc4a
        ;;
Bernhard M. Wiedemann 61f3f9
    riscv*)
Bernhard M. Wiedemann 61f3f9
        MAKE_ARGS="$MAKE_ARGS ARCH=riscv"
Bernhard M. Wiedemann 61f3f9
        ;;
Bernhard M. Wiedemann 6ebc4a
    *)
Bernhard M. Wiedemann 6ebc4a
        MAKE_ARGS="$MAKE_ARGS ARCH=%cpu_arch"
Bernhard M. Wiedemann 6ebc4a
        ;;
Bernhard M. Wiedemann 6ebc4a
esac
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
makeoutputsync=
Bernhard M. Wiedemann 6ebc4a
if make --output-sync --help >/dev/null 2>&1 ; then
Bernhard M. Wiedemann 6ebc4a
        makeoutputsync=--output-sync
Bernhard M. Wiedemann 6ebc4a
else
Bernhard M. Wiedemann 6ebc4a
        echo make does not support --output-sync flag. Build messages may be mangled. 1>&2
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
MAKE_ARGS="$MAKE_ARGS $makeoutputsync %{?_smp_mflags}"
Bernhard M. Wiedemann 6ebc4a
echo export MAKE_ARGS=\""$MAKE_ARGS"\" >> .kernel-binary.spec.buildenv
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
KERN_DIRS="-C .. O=$PWD"
Bernhard M. Wiedemann 6ebc4a
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
Bernhard M. Wiedemann 6ebc4a
    yes '' | make oldconfig $MAKE_ARGS $KERN_DIRS
Bernhard M. Wiedemann 6ebc4a
else
Bernhard M. Wiedemann 6ebc4a
    cp .config .config.orig
Bernhard M. Wiedemann 6ebc4a
    if test -f ../scripts/kconfig/Makefile && \
Bernhard M. Wiedemann 6ebc4a
       grep -q syncconfig ../scripts/kconfig/Makefile; then
Bernhard M. Wiedemann 6ebc4a
        syncconfig="syncconfig"
Bernhard M. Wiedemann 6ebc4a
    else
Bernhard M. Wiedemann 6ebc4a
        syncconfig="silentoldconfig"
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
    make $syncconfig $MAKE_ARGS $KERN_DIRS < /dev/null
Bernhard M. Wiedemann 6ebc4a
    %_sourcedir/check-for-config-changes .config.orig .config
Bernhard M. Wiedemann 6ebc4a
    rm .config.orig
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
make prepare $MAKE_ARGS
Bernhard M. Wiedemann 6ebc4a
make scripts $MAKE_ARGS
Bernhard M. Wiedemann 6ebc4a
krel=$(make -s kernelrelease $MAKE_ARGS)
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
if [ "$krel" != "%kernelrelease-%build_flavor" ]; then
Bernhard M. Wiedemann 6ebc4a
    echo "Kernel release mismatch: $krel != %kernelrelease-%build_flavor" >&2
Bernhard M. Wiedemann 6ebc4a
    exit 1
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
make clean $MAKE_ARGS
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
rm -f source
bd7477
find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' ! -name 'Module.optional' -printf '%%P\n' \
Bernhard M. Wiedemann 6ebc4a
	> %my_builddir/obj-files
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%build
Bernhard M. Wiedemann 6ebc4a
cd %kernel_build_dir
Bernhard M. Wiedemann 6ebc4a
source .kernel-binary.spec.buildenv
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# create *.symref files in the tree
Bernhard M. Wiedemann 6ebc4a
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
Bernhard M. Wiedemann 6ebc4a
    %_sourcedir/modversions --unpack . < $_
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
5c5b33
%if "%CONFIG_KMSG_IDS" == "y"
Bernhard M. Wiedemann 6ebc4a
    chmod +x ../scripts/kmsg-doc
Bernhard M. Wiedemann 6ebc4a
    MAKE_ARGS="$MAKE_ARGS D=2"
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
mkdir -p %_topdir/OTHER
Bernhard M. Wiedemann 6ebc4a
log=%_topdir/OTHER/make-stderr.log
Bernhard M. Wiedemann 6ebc4a
while true; do
Bernhard M. Wiedemann 6ebc4a
    make all $MAKE_ARGS 2> >(tee "$log")
Bernhard M. Wiedemann 6ebc4a
    if test "${PIPESTATUS[0]}" -eq 0; then
Bernhard M. Wiedemann 6ebc4a
        break
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
    # In the linux-next and vanilla branches, we try harder to build a
Bernhard M. Wiedemann 6ebc4a
    # package.
Bernhard M. Wiedemann 6ebc4a
    if test 0%vanilla_only -gt 0 &&
Bernhard M. Wiedemann 6ebc4a
			%_sourcedir/try-disable-staging-driver "$log"; then
Bernhard M. Wiedemann 6ebc4a
        echo "Retrying make"
Bernhard M. Wiedemann 6ebc4a
    else
Bernhard M. Wiedemann 6ebc4a
        exit 1
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
done
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# Generate list of symbols that are used to create kernel livepatches
Bernhard M. Wiedemann 6ebc4a
%if 0%{?klp_symbols}
Bernhard M. Wiedemann 6ebc4a
	%_sourcedir/klp-symbols . Symbols.list
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%install
Bernhard M. Wiedemann 6ebc4a
32c425
%if 0%{?usrmerged}
32c425
# add symlink for usrmerge so install scripts will just follow the
32c425
# link and end up placing files in /usr/lib. The link will be
32c425
# removed later and is not packaged here.
32c425
mkdir -p %{buildroot}/usr/lib
32c425
ln -s usr/lib %{buildroot}/lib
32c425
%endif
32c425
Bernhard M. Wiedemann 6ebc4a
# get rid of /usr/lib/rpm/brp-strip-debug
Bernhard M. Wiedemann 6ebc4a
# strip removes too much from the vmlinux ELF binary
Bernhard M. Wiedemann 6ebc4a
export NO_BRP_STRIP_DEBUG=true
8f9761
export STRIP_KEEP_SYMTAB='*/vmlinux*'
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# /lib/modules/%kernelrelease-%build_flavor/source points to the source
Bernhard M. Wiedemann 6ebc4a
# directory installed by kernel-devel. The kernel-%build_flavor-devel package
Bernhard M. Wiedemann 6ebc4a
# has a correct dependency on kernel-devel, but the brp check does not see
Bernhard M. Wiedemann 6ebc4a
# kernel-devel during build.
Bernhard M. Wiedemann 6ebc4a
export NO_BRP_STALE_LINK_ERROR=yes
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
cd %kernel_build_dir
Bernhard M. Wiedemann 6ebc4a
source .kernel-binary.spec.buildenv
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
mkdir -p %buildroot/boot
Bernhard M. Wiedemann 6ebc4a
# (Could strip out non-public symbols.)
Bernhard M. Wiedemann 6ebc4a
cp -p System.map %buildroot/boot/System.map-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
add_vmlinux()
Bernhard M. Wiedemann 6ebc4a
{
Bernhard M. Wiedemann 6ebc4a
    local vmlinux=boot/vmlinux-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    cp vmlinux %buildroot/$vmlinux
Bernhard M. Wiedemann 6ebc4a
    # make sure that find-debuginfo.sh picks it up. In the filelist, we
Bernhard M. Wiedemann 6ebc4a
    # mark the file 0644 again
Bernhard M. Wiedemann 6ebc4a
    chmod +x %buildroot/$vmlinux
Bernhard M. Wiedemann 6ebc4a
    if test $1 == "--compressed"; then
Bernhard M. Wiedemann 6ebc4a
        # avoid using the gzip -n option to make kdump happy (bnc#880848#c20)
Bernhard M. Wiedemann 6ebc4a
        ts="$(head -n1 %_sourcedir/source-timestamp)"
Bernhard M. Wiedemann 6ebc4a
        touch -d "$ts" %buildroot/$vmlinux
Bernhard M. Wiedemann b687c9
        touch %buildroot/$vmlinux.%{compress_vmlinux}
Bernhard M. Wiedemann 6ebc4a
%if 0%{?__debug_package:1}
Bernhard M. Wiedemann 6ebc4a
        # compress the vmlinux image after find-debuginfo.sh has processed it
Bernhard M. Wiedemann 6ebc4a
%global __debug_install_post %__debug_install_post \
Bernhard M. Wiedemann 6ebc4a
%_sourcedir/compress-vmlinux.sh %buildroot/boot/vmlinux-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
%else
Bernhard M. Wiedemann 6ebc4a
        %_sourcedir/compress-vmlinux.sh %buildroot/$vmlinux
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
        ghost_vmlinux=true
Bernhard M. Wiedemann 6ebc4a
    else
Bernhard M. Wiedemann 6ebc4a
        ghost_vmlinux=false
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
}
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# architecture specifics
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86 x86_64
Bernhard M. Wiedemann 6ebc4a
    add_vmlinux --compressed
2eeb6a
    cp -p arch/x86/boot/bzImage %buildroot/boot/%image-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch ppc ppc64 ppc64le
Bernhard M. Wiedemann 6ebc4a
    add_vmlinux
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch s390 s390x
Bernhard M. Wiedemann 6ebc4a
    add_vmlinux --compressed
Bernhard M. Wiedemann 6ebc4a
    image=image
Bernhard M. Wiedemann 6ebc4a
    if test ! -f arch/s390/boot/$image; then
Bernhard M. Wiedemann 6ebc4a
        image=bzImage
Bernhard M. Wiedemann 6ebc4a
    fi
2eeb6a
    cp -p arch/s390/boot/$image %buildroot/boot/%image-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
    if test -e arch/s390/boot/kerntypes.o; then
Bernhard M. Wiedemann 6ebc4a
        cp -p arch/s390/boot/kerntypes.o %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
    elif test -x "$(which dwarfextract 2>/dev/null)"; then
Bernhard M. Wiedemann 6ebc4a
	dwarfextract vmlinux %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor || echo "dwarfextract failed ($?)"
Bernhard M. Wiedemann 6ebc4a
    fi
5c5b33
%if "%CONFIG_KMSG_IDS" == "y"
Bernhard M. Wiedemann 6ebc4a
    mkdir -p %buildroot/usr/share/man/man9
Bernhard M. Wiedemann 6ebc4a
    find man -name '*.9' -exec install -m 644 -D '{}' %buildroot/usr/share/man/man9/ ';'
Bernhard M. Wiedemann 6ebc4a
%endif
d60619
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150300
1f1601
    s390x_vmlinux=arch/s390/boot/compressed/vmlinux
1f1601
    if [ ! -f "$s390x_vmlinux" ]; then
1f1601
        s390x_vmlinux=arch/s390/boot/vmlinux
1f1601
    fi
1f1601
    objcopy -R .rodata.compressed "$s390x_vmlinux" %buildroot/boot/zdebug-%kernelrelease-%build_flavor
d60619
%endif
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch %arm
Bernhard M. Wiedemann 6ebc4a
    add_vmlinux --compressed
2eeb6a
    cp -p arch/arm/boot/%image %buildroot/boot/%image-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch aarch64
Bernhard M. Wiedemann 6ebc4a
    add_vmlinux --compressed
2eeb6a
    cp -p arch/arm64/boot/%image %buildroot/boot/%image-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 61f3f9
%ifarch riscv64
Bernhard M. Wiedemann 61f3f9
    add_vmlinux --compressed
2eeb6a
    cp -p arch/riscv/boot/%image %buildroot/boot/%image-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 61f3f9
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# sign the modules, firmware and possibly the kernel in the buildservice
Bernhard M. Wiedemann 6ebc4a
BRP_PESIGN_FILES=""
5c5b33
%if "%CONFIG_EFI_STUB" == "y"
32c425
%if 0%{?usrmerged}
2eeb6a
BRP_PESIGN_FILES="%modules_dir/%image"
32c425
%else
2eeb6a
BRP_PESIGN_FILES="/boot/%image-%kernelrelease-%build_flavor"
Bernhard M. Wiedemann 6ebc4a
%endif
32c425
%endif
Bernhard M. Wiedemann 8b37e4
%ifarch s390x ppc64 ppc64le
32c425
%if 0%{?usrmerged}
2eeb6a
BRP_PESIGN_FILES="%modules_dir/%image"
32c425
%else
2eeb6a
BRP_PESIGN_FILES="/boot/%image-%kernelrelease-%build_flavor"
Bernhard M. Wiedemann 8b37e4
%endif
32c425
%endif
5c5b33
%if "%CONFIG_MODULE_SIG" == "y"
Bernhard M. Wiedemann 6ebc4a
BRP_PESIGN_FILES="$BRP_PESIGN_FILES *.ko"
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86
Bernhard M. Wiedemann 6ebc4a
# XXX: do not sign on x86, as the repackaging changes kernel-pae
Bernhard M. Wiedemann 6ebc4a
# from i686 to i586
Bernhard M. Wiedemann 6ebc4a
BRP_PESIGN_FILES=""
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
export BRP_PESIGN_FILES
5c5b33
%if "%{compress_modules}" != "none"
Bernhard M. Wiedemann 6ebc4a
export BRP_PESIGN_COMPRESS_MODULE=%{compress_modules}
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
if test -x /usr/lib/rpm/pesign/gen-hmac; then
2eeb6a
	$_ -r %buildroot /boot/%image-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# Package the compiled-in certificates as DER files in /etc/uefi/certs
Bernhard M. Wiedemann 6ebc4a
# and have mokutil enroll them when the kernel is installed
2eeb6a
echo Signing certificates "%certs"
7a4f11
if test %CONFIG_MODULE_SIG = "y" -a -d %_sourcedir/.kernel_signing_certs ; then
2eeb6a
    for f in %_sourcedir/.kernel_signing_certs/*.crt; do
Bernhard M. Wiedemann 6ebc4a
            mkdir -p %buildroot/etc/uefi/certs
2eeb6a
            cp -v $f %buildroot/etc/uefi/certs
Bernhard M. Wiedemann 6ebc4a
    done
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
cp -p .config %buildroot/boot/config-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
sysctl_file=%buildroot/boot/sysctl.conf-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
for file in %my_builddir/sysctl/{defaults,%cpu_arch/arch-defaults,%cpu_arch_flavor}; do
Bernhard M. Wiedemann 6ebc4a
	if [ -f "$file" ]; then
Bernhard M. Wiedemann 6ebc4a
		cat "$file"
Bernhard M. Wiedemann 6ebc4a
	fi
Bernhard M. Wiedemann 6ebc4a
done | sed '1i # Generated file - do not edit.' >$sysctl_file
Bernhard M. Wiedemann 6ebc4a
if [ ! -s $sysctl_file ]; then
Bernhard M. Wiedemann 6ebc4a
	rm $sysctl_file
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%if %install_vdso
Bernhard M. Wiedemann 6ebc4a
# Install the unstripped vdso's that are linked in the kernel image
Bernhard M. Wiedemann 6ebc4a
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
Bernhard M. Wiedemann 6ebc4a
rm -rf %buildroot/lib/modules/%kernelrelease-%build_flavor/vdso/.build-id
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# Create a dummy initrd with roughly the size the real one will have.
Bernhard M. Wiedemann 6ebc4a
# That way, YaST will know that this package requires some additional
Bernhard M. Wiedemann 6ebc4a
# space in /boot.
Bernhard M. Wiedemann 6ebc4a
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
Bernhard M. Wiedemann 6ebc4a
	bs=1024 seek=2047 count=1
Bernhard M. Wiedemann 6ebc4a
# Also reserve some space for the kdump initrd
Bernhard M. Wiedemann 6ebc4a
cp %buildroot/boot/initrd-%kernelrelease-%build_flavor{,-kdump}
Bernhard M. Wiedemann 6ebc4a
%if 0%{?suse_version} >= 1500
Bernhard M. Wiedemann 6ebc4a
# Use same permissions as dracut
Bernhard M. Wiedemann 6ebc4a
chmod 0600 %buildroot/boot/initrd-%kernelrelease-%build_flavor{,-kdump}
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
if [ %CONFIG_MODULES = y ]; then
Bernhard M. Wiedemann 6ebc4a
    mkdir -p %rpm_install_dir/%cpu_arch_flavor
Bernhard M. Wiedemann 6ebc4a
    mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
Bernhard M. Wiedemann 6ebc4a
    install -m 755 -D -t %rpm_install_dir/%cpu_arch_flavor/scripts/mod/ scripts/mod/ksym-provides
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    gzip -n -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%ifarch s390 s390x
Bernhard M. Wiedemann 6ebc4a
    if test -e arch/s390/boot/kerntypes.o; then
Bernhard M. Wiedemann 6ebc4a
        :
Bernhard M. Wiedemann 6ebc4a
    elif test -x "$(which dwarfextract 2>/dev/null)" -a \
Bernhard M. Wiedemann 6ebc4a
	-f %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor; then
Bernhard M. Wiedemann 6ebc4a
	find %buildroot -name "*.ko" > kofiles.list
Bernhard M. Wiedemann 6ebc4a
	dwarfextract %buildroot/boot/Kerntypes-%kernelrelease-%build_flavor -C kofiles.list || echo "dwarfextract failed ($?)"
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    # Also put the resulting file in %rpm_install_dir/%cpu_arch/%build_flavor
Bernhard M. Wiedemann 6ebc4a
    # so that kernel-devel + kernel-%build_flavor is sufficient for building
Bernhard M. Wiedemann 6ebc4a
    # modules that have modversions as well.
Bernhard M. Wiedemann 6ebc4a
    mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
Bernhard M. Wiedemann 6ebc4a
    cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    # List of symbols that are used to generate kernel livepatches
Bernhard M. Wiedemann 6ebc4a
    %if 0%{?klp_symbols}
Bernhard M. Wiedemann 6ebc4a
        cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
Bernhard M. Wiedemann 4b7a24
        echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
Bernhard M. Wiedemann 4b7a24
5c5b33
        %if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
bd7477
            find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
Bernhard M. Wiedemann 4b7a24
            cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
Bernhard M. Wiedemann 4b7a24
            echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
Bernhard M. Wiedemann 4b7a24
            tar -C %kernel_build_dir --verbatim-files-from -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
Bernhard M. Wiedemann 4b7a24
            cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
Bernhard M. Wiedemann 4b7a24
        %endif
Bernhard M. Wiedemann 6ebc4a
    %endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    # Table of types used in exported symbols (for modversion debugging).
Bernhard M. Wiedemann 6ebc4a
    %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
    if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
Bernhard M. Wiedemann 6ebc4a
	gzip -n -9 %buildroot/boot/symtypes-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
    else
Bernhard M. Wiedemann 6ebc4a
	rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    # Some architecture's $(uname -m) output is different from the ARCH
Bernhard M. Wiedemann 6ebc4a
    # parameter that needs to be passed to kbuild. Create symlinks from
Bernhard M. Wiedemann 6ebc4a
    # $(uname -m) to the ARCH directory.
Bernhard M. Wiedemann 6ebc4a
    if [ ! -e %rpm_install_dir/%kmp_target_cpu ]; then
Bernhard M. Wiedemann 6ebc4a
        ln -sf %cpu_arch %rpm_install_dir/%kmp_target_cpu
Bernhard M. Wiedemann 6ebc4a
        ln -sf %cpu_arch %buildroot/usr/src/linux-obj/%kmp_target_cpu
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    # We were building in %my_builddir/linux-%srcversion, but the sources will
Bernhard M. Wiedemann 6ebc4a
    # later be installed in /usr/src/linux-%srcversion-%source_rel. Fix up the
Bernhard M. Wiedemann 6ebc4a
    # build symlink.
Bernhard M. Wiedemann 6ebc4a
    rm -f %buildroot/lib/modules/%kernelrelease-%build_flavor/{source,build}
Bernhard M. Wiedemann 6ebc4a
    ln -s %src_install_dir \
Bernhard M. Wiedemann 6ebc4a
	%buildroot/lib/modules/%kernelrelease-%build_flavor/source
Bernhard M. Wiedemann 6ebc4a
    ln -s %obj_install_dir/%cpu_arch/%build_flavor \
Bernhard M. Wiedemann 6ebc4a
	%buildroot/lib/modules/%kernelrelease-%build_flavor/build
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    # Abort if there are any undefined symbols
Bernhard M. Wiedemann 6ebc4a
    msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease-%build_flavor \
Bernhard M. Wiedemann 6ebc4a
			-b %buildroot -ae %kernelrelease-%build_flavor 2>&1)"
Bernhard M. Wiedemann 6ebc4a
    if [ $? -ne 0 ] || echo "$msg" | grep  'needs unknown symbol'; then
Bernhard M. Wiedemann 6ebc4a
	exit 1
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    %_sourcedir/split-modules -d %buildroot \
Bernhard M. Wiedemann 6ebc4a
	-o %my_builddir \
Bernhard M. Wiedemann 6ebc4a
	-b %kernel_build_dir \
5c5b33
%if "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y"
Bernhard M. Wiedemann 6ebc4a
	-e \
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%if ! %supported_modules_check
Bernhard M. Wiedemann 6ebc4a
	-i \
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
	%nil
Bernhard M. Wiedemann 6ebc4a
%if ! %split_extra
Bernhard M. Wiedemann 6ebc4a
    cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    # The modules.dep file is sorted randomly which produces strange file
Bernhard M. Wiedemann 6ebc4a
    # checksums. As the file is not included in the resulting RPM, it's
Bernhard M. Wiedemann 6ebc4a
    # pointless to rely on its contents. Replacing by zeros to make the
Bernhard M. Wiedemann 6ebc4a
    # checksums always the same for several builds of the same package.
Bernhard M. Wiedemann 6ebc4a
    test -s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep && \
5c34fe
    dd if=/dev/zero of=%buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep ibs=$(stat -c%s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep) count=1
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    res=0
Bernhard M. Wiedemann 6ebc4a
    if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
Bernhard M. Wiedemann 6ebc4a
        # check for kabi changes
Bernhard M. Wiedemann 6ebc4a
        %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
Bernhard M. Wiedemann 6ebc4a
            %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Bernhard M. Wiedemann 6ebc4a
            Module.symvers || res=$?
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
    if [ $res -ne 0 ]; then
Bernhard M. Wiedemann 6ebc4a
	# %ignore_kabi_badness is defined in the Kernel:* projects in the
Bernhard M. Wiedemann 6ebc4a
	# OBS to be able to build the KOTD in spite of kabi errors
Bernhard M. Wiedemann 6ebc4a
	if [ 0%{?ignore_kabi_badness} -eq 0 -a \
Bernhard M. Wiedemann 6ebc4a
	     ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
Bernhard M. Wiedemann 6ebc4a
	     ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
Bernhard M. Wiedemann 6ebc4a
	    echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
Bernhard M. Wiedemann 6ebc4a
		 "directory to build this kernel even though its badness is" \
Bernhard M. Wiedemann 6ebc4a
		 "higher than allowed for an official kernel."
Bernhard M. Wiedemann 6ebc4a
	   exit 1
Bernhard M. Wiedemann 6ebc4a
	fi
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    # Check the license in each module
Bernhard M. Wiedemann 6ebc4a
    if ! sh %_sourcedir/check-module-license %buildroot; then
Bernhard M. Wiedemann 6ebc4a
	echo "Please fix the missing licenses!"
5c5b33
%if "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y"
Bernhard M. Wiedemann 6ebc4a
	exit 1
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    # These files are required for building external modules
0fab1c
    for FILE in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o \
0fab1c
		arch/*/kernel/macros.s scripts/module.lds
0fab1c
    do
Bernhard M. Wiedemann 6ebc4a
	    if [ -f %kernel_build_dir/$FILE ]; then
Bernhard M. Wiedemann 6ebc4a
		echo $FILE >> %my_builddir/obj-files
Bernhard M. Wiedemann 6ebc4a
	    fi
Bernhard M. Wiedemann 6ebc4a
    done
Bernhard M. Wiedemann 6ebc4a
0fab1c
    tar --exclude=\*.ipa-clones --exclude=.config.old --exclude=.kernel-binary.spec.buildenv \
735e77
        --exclude=.kernel_signing_key.pem --exclude=.kernel.genkey \
0fab1c
        -cf - -T %my_builddir/obj-files | \
Bernhard M. Wiedemann 6ebc4a
	tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
Bernhard M. Wiedemann 6ebc4a
    # bnc#507084
Bernhard M. Wiedemann 6ebc4a
    find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
Bernhard M. Wiedemann 6ebc4a
        while read f; do
Bernhard M. Wiedemann 6ebc4a
            case "$(file -b "$f")" in
Bernhard M. Wiedemann 6ebc4a
            ELF\ *\ executable*)
Bernhard M. Wiedemann 6ebc4a
                strip "$f"
Bernhard M. Wiedemann 6ebc4a
            esac
Bernhard M. Wiedemann 6ebc4a
        done
dd32e5
Bernhard M. Wiedemann 6ebc4a
    # Recreate the generated Makefile with correct path
dd32e5
    #
d60619
    # Linux 5.13 no longer has mkmakefile
dd32e5
    if [ -f ../scripts/mkmakefile ] ; then
dd32e5
        sh ../scripts/mkmakefile ../../../%{basename:%src_install_dir} \
dd32e5
            %rpm_install_dir/%cpu_arch_flavor \
dd32e5
            $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
bd7477
    else
bd7477
       echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile
dd32e5
    fi
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
rm -rf %{buildroot}/lib/firmware
32c425
%if 0%{?usrmerged}
32c425
# remove usrmerge aid
32c425
rm %{buildroot}/lib
32c425
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
add_dirs_to_filelist() {
Bernhard M. Wiedemann 6ebc4a
    sed -rn '
Bernhard M. Wiedemann 6ebc4a
        # print file name
Bernhard M. Wiedemann 6ebc4a
        p
Bernhard M. Wiedemann 6ebc4a
        # remove filelist macros
Bernhard M. Wiedemann 6ebc4a
        s:%%[a-z]+(\([^)]+\))? ?::g
Bernhard M. Wiedemann 6ebc4a
        # add %%dir prefix
Bernhard M. Wiedemann 6ebc4a
        s:^:%%dir :
Bernhard M. Wiedemann 6ebc4a
        # print all parents
Bernhard M. Wiedemann 6ebc4a
        :a
Bernhard M. Wiedemann 6ebc4a
            # skip directories owned by other packages
32c425
            s:^%%dir (/boot|/etc|(/usr)?/lib/(modules|firmware)|/usr/src)/[^/]+$::
Bernhard M. Wiedemann 6ebc4a
            s:/[^/]+$::p
Bernhard M. Wiedemann 6ebc4a
        ta
Bernhard M. Wiedemann 6ebc4a
    ' "$@" | sort -u
Bernhard M. Wiedemann 6ebc4a
}
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# Collect the file lists.
Bernhard M. Wiedemann 4b7a24
if [ -f %my_builddir/livepatch-files.no_dir ] ; then
Bernhard M. Wiedemann 4b7a24
    cat %my_builddir/livepatch-files.no_dir | add_dirs_to_filelist > %my_builddir/livepatch-files
Bernhard M. Wiedemann 4b7a24
fi
Bernhard M. Wiedemann 4b7a24
d60619
# does not exist for non-modularized kernels
d60619
%if 0%{?usrmerged}
d60619
        mkdir -p %{buildroot}%modules_dir
d60619
%endif
Bernhard M. Wiedemann 6ebc4a
shopt -s nullglob dotglob
Bernhard M. Wiedemann 6ebc4a
> %my_builddir/kernel-devel.files
32c425
{
32c425
    echo "%modules_dir/build"
32c425
    echo "%modules_dir/source"
32c425
    cd %buildroot
32c425
    for file in boot/symtypes*; do
32c425
%if 0%{?usrmerged}
32c425
        l="${file##*/}"
32c425
        l="%modules_dir/${l//-%kernelrelease-%build_flavor}"
32c425
        mv "$file" "%{buildroot}$l"
32c425
        ln -s "..$l" $file
32c425
        echo "$l"
32c425
        echo "%%ghost /$file"
32c425
%else
32c425
        echo "/$file"
32c425
%endif
32c425
    done
32c425
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files
0fab1c
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
0fab1c
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \
0fab1c
add_dirs_to_filelist >> %my_builddir/kernel-devel.files
Bernhard M. Wiedemann 6ebc4a
2eeb6a
{   echo %ghost /boot/%image
2eeb6a
    echo %ghost /boot/initrd
95fa8d
    cd %buildroot
Bernhard M. Wiedemann 6ebc4a
    for f in boot/*; do
32c425
        l="${f##*/}"
32c425
        l="%modules_dir/${l//-%kernelrelease-%build_flavor}"
Bernhard M. Wiedemann 6ebc4a
        if test -L "$f"; then
Bernhard M. Wiedemann 6ebc4a
            echo "%%ghost /$f"
Bernhard M. Wiedemann 6ebc4a
            continue
Bernhard M. Wiedemann 6ebc4a
        elif test ! -f "$f"; then
Bernhard M. Wiedemann 6ebc4a
            continue
Bernhard M. Wiedemann 6ebc4a
        fi
Bernhard M. Wiedemann 6ebc4a
        case "$f" in
Bernhard M. Wiedemann 6ebc4a
        boot/initrd-*)
Bernhard M. Wiedemann 6ebc4a
            echo "%%ghost /$f"
Bernhard M. Wiedemann 6ebc4a
            continue
Bernhard M. Wiedemann 6ebc4a
            ;;
Bernhard M. Wiedemann b687c9
        boot/vmlinux-*.%{compress_vmlinux})
Bernhard M. Wiedemann 6ebc4a
            ;;
Bernhard M. Wiedemann 6ebc4a
        boot/vmlinux-*)
Bernhard M. Wiedemann 6ebc4a
            if $ghost_vmlinux; then
32c425
                # fall through to mark next echo as %ghost
32c425
                echo -n "%%ghost "
Bernhard M. Wiedemann 6ebc4a
            fi
Bernhard M. Wiedemann 6ebc4a
            ;;
32c425
%if 0%{?usrmerged}
32c425
        boot/vmlinuz-*)
32c425
            echo -n "%%attr(0644, root, root) "
32c425
            ;;
32c425
%endif
Bernhard M. Wiedemann 6ebc4a
        boot/symtypes*)
32c425
%if 0%{?usrmerged}
32c425
            echo "%exclude $l"
32c425
%endif
Bernhard M. Wiedemann 6ebc4a
            continue
Bernhard M. Wiedemann 6ebc4a
            ;;
Bernhard M. Wiedemann 6ebc4a
        esac
32c425
%if 0%{?usrmerged}
32c425
        mv "$f" "./$l"
32c425
        ln -s "..$l" $f
32c425
        # the find in the CONFIG_MODULES condition below also finds the files
32c425
        # but there's sort -u later, so this is ok
32c425
        echo "$l" # note: must be first after case statement above
32c425
        echo "%%ghost /$f"
32c425
%else
Bernhard M. Wiedemann 6ebc4a
        echo "%%attr(0644, root, root) /$f"
32c425
%endif
Bernhard M. Wiedemann 6ebc4a
    done
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
    if [ %CONFIG_MODULES = y ]; then
3027fd
	MODULES=%{?usrmerged:usr/}lib/modules/%kernelrelease-%build_flavor
3027fd
	find "$MODULES" \
3027fd
%if 0%{?separate_vdso}
3027fd
	    -path "$MODULES/vdso" -prune -o \
3027fd
%endif
Bernhard M. Wiedemann 6ebc4a
	    -type d -o \
Bernhard M. Wiedemann 6ebc4a
	    \( -path '*/modules.*' ! -path '*/modules.order' \
Bernhard M. Wiedemann 6ebc4a
	     ! -path '*/modules.builtin' \
Bernhard M. Wiedemann 6ebc4a
	     ! -path '*/modules.builtin.modinfo' \) -printf '%%%%ghost /%%p\n' \
32c425
	       -o -name '*.ko' -prune \
3027fd
	       -o \( -type f \
32c425
%if 0%{?usrmerged}
3027fd
		! -path '*/symtypes*' ! -path '*/vmlinu*' \
32c425
%endif
3027fd
		\) -printf '/%%p\n'
Bernhard M. Wiedemann 6ebc4a
	cat %my_builddir/base-modules
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
    if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then
Bernhard M. Wiedemann 6ebc4a
        find etc/uefi/certs -type f -printf '/%%p\n'
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
    if test -d lib/firmware/%kernelrelease-%build_flavor; then
Bernhard M. Wiedemann 6ebc4a
        echo "%%dir /lib/firmware/%kernelrelease-%build_flavor"
Bernhard M. Wiedemann 6ebc4a
        cat %my_builddir/base-firmware
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
    if [ -e .%_docdir/%name ]; then
Bernhard M. Wiedemann 6ebc4a
	echo "%%doc %_docdir/%name"
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
} | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
{
d60619
    add_dirs_to_filelist %my_builddir/kernel-base.files
d60619
    if [ %CONFIG_MODULES = y ]; then
d60619
        add_dirs_to_filelist %my_builddir/main-modules
d60619
    fi
Bernhard M. Wiedemann 6ebc4a
    if test -d %buildroot/lib/firmware/%kernelrelease-%build_flavor; then
Bernhard M. Wiedemann 6ebc4a
	echo "/lib/firmware/%kernelrelease-%build_flavor"
Bernhard M. Wiedemann 6ebc4a
    fi
Bernhard M. Wiedemann 6ebc4a
} > %my_builddir/kernel-main.files
bd7477
Bernhard M. Wiedemann 6ebc4a
%if %split_extra
Bernhard M. Wiedemann 6ebc4a
    add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
bd7477
%if %split_extra && %split_optional
bd7477
    add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
bd7477
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%if 0%{?sle_version} >= 150000
Bernhard M. Wiedemann 6ebc4a
    # By default, loading unsupported modules is disabled on SLE through
Bernhard M. Wiedemann 6ebc4a
    # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
Bernhard M. Wiedemann 6ebc4a
    # package.
Bernhard M. Wiedemann 6ebc4a
    # modules in kernel-$flavor-extra don't have the supported flag set,
Bernhard M. Wiedemann 6ebc4a
    # yet loading them should be possible if the package is installed.
Bernhard M. Wiedemann 6ebc4a
    # CAUTION PACKAGERS: The file content below must not change between
Bernhard M. Wiedemann 6ebc4a
    # kernel versions, otherwise file conflicts might arise with
Bernhard M. Wiedemann 6ebc4a
    # multiversion(kernel).
Bernhard M. Wiedemann 6ebc4a
022a97
    modprobe_d_dir=/etc/modprobe.d
022a97
    %if 0%{?sle_version} > 150300
022a97
    modprobe_d_dir=/lib/modprobe.d
022a97
    %endif
022a97
    %if 0%{?usrmerged}
022a97
    modprobe_d_dir=/usr/lib/modprobe.d
022a97
    %endif
022a97
022a97
    mkdir -p %buildroot$modprobe_d_dir
022a97
    cat >%buildroot$modprobe_d_dir/20-kernel-%{build_flavor}-extra.conf <
Bernhard M. Wiedemann 6ebc4a
# This file overrides the default from 10-unsupported-modules.conf.
Bernhard M. Wiedemann 6ebc4a
# This is necessary to load kernel modules from the
Bernhard M. Wiedemann 6ebc4a
# kernel-%{build_flavor}-extra package.
Bernhard M. Wiedemann 6ebc4a
#
Bernhard M. Wiedemann 6ebc4a
# WARNING: loading unsupported modules may compromise SLE support.
Bernhard M. Wiedemann 6ebc4a
# Please read the comments in 10-unsupported-modules.conf.
Bernhard M. Wiedemann 6ebc4a
allow_unsupported_modules 1
Bernhard M. Wiedemann 6ebc4a
EOF
022a97
    echo "%%dir $modprobe_d_dir" >> %my_builddir/kernel-extra.files
022a97
    echo "%%config(noreplace) $modprobe_d_dir/20-kernel-%{build_flavor}-extra.conf" >> %my_builddir/kernel-extra.files
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
for f in %my_builddir/*-kmp-modules; do
Bernhard M. Wiedemann 6ebc4a
	f2=${f%%-modules}.files
Bernhard M. Wiedemann 6ebc4a
	add_dirs_to_filelist "$f" >"$f2"
Bernhard M. Wiedemann 6ebc4a
done
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
if [ %CONFIG_MODULES = y ]; then
32c425
  install -m 644 %_sourcedir/modules.fips %{buildroot}%modules_dir/modules.fips
32c425
  echo %modules_dir/modules.fips >> %my_builddir/kernel-base.files
32c425
  echo %modules_dir/modules.fips >> %my_builddir/kernel-main.files
Bernhard M. Wiedemann 6ebc4a
fi
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
# Hardlink duplicate files automatically (from package fdupes): It doesn't save
Bernhard M. Wiedemann 6ebc4a
# much, but it keeps rpmlint from breaking the package build. Note that we skip
Bernhard M. Wiedemann 6ebc4a
# /usr/src/linux-obj intentionally, to not accidentally break timestamps there
32c425
%fdupes %buildroot%modules_dir
Bernhard M. Wiedemann 6ebc4a
7a4f11
%pre
7a4f11
%if "%build_flavor" != "zfcpdump"
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/rpm-pre --name "%name" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
%endif
7a4f11
%post
7a4f11
%if "%build_flavor" != "zfcpdump"
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/rpm-post --name "%name" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
%endif
7a4f11
%preun
7a4f11
%if "%build_flavor" != "zfcpdump"
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/rpm-preun --name "%name" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
%endif
7a4f11
%postun
7a4f11
%if "%build_flavor" != "zfcpdump"
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/rpm-postun --name "%name" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
%endif
7a4f11
%posttrans
7a4f11
%if "%build_flavor" != "zfcpdump"
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/rpm-posttrans --name "%name" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
%endif
Bernhard M. Wiedemann 6ebc4a
%files -f kernel-main.files
Bernhard M. Wiedemann 6ebc4a
%defattr(-, root, root)
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%package extra
Bernhard M. Wiedemann 6ebc4a
Summary:        The Standard Kernel - Unsupported kernel modules
Bernhard M. Wiedemann 6ebc4a
Group:          System/Kernel
57a832
URL:            https://www.kernel.org/
Bernhard M. Wiedemann 6ebc4a
Provides:       %name-extra_%_target_cpu = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-extra = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       multiversion(kernel)
Bernhard M. Wiedemann 6ebc4a
Requires:       %{name}_%_target_cpu = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Requires(pre):  coreutils awk
Bernhard M. Wiedemann 6ebc4a
Requires(post): modutils
Bernhard M. Wiedemann 6ebc4a
Requires(post): perl-Bootloader
Bernhard M. Wiedemann 6ebc4a
Requires(post): mkinitrd
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace-extra = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace-extra <= 3.13
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch ppc64
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-kdump-extra = 2.6.28
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-kdump-extra <= 2.6.28
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch s390x
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace-extra = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace-extra <= 3.13
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch x86_64
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace-extra = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace-extra <= 3.13
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-bigsmp-extra = 3.1
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-bigsmp-extra <= 3.1
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-desktop-extra = 4.3
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-desktop-extra <= 4.3
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-xen-extra = 4.4
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-xen-extra <= 4.4
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-ec2-extra = 4.4
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-ec2-extra <= 4.4
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%obsolete_rebuilds %name-extra
Bernhard M. Wiedemann 6ebc4a
Supplements:    packageand(product(SLED):%{name}_%_target_cpu)
Bernhard M. Wiedemann 6ebc4a
Supplements:    packageand(product(sle-we):%{name}_%_target_cpu)
bd7477
Supplements:    packageand(product(Leap):%{name}_%_target_cpu)
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86
Bernhard M. Wiedemann 6ebc4a
Conflicts:      libc.so.6()(64bit)
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description extra
Bernhard M. Wiedemann 6ebc4a
The standard kernel for both uniprocessor and multiprocessor systems.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 849579
This package contains additional modules not supported by SUSE.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%source_timestamp
Bernhard M. Wiedemann 6ebc4a
7a4f11
%pre extra
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "%name-extra" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
ab3bb5
7a4f11
%post extra
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "%name-extra" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
2eeb6a
%preun extra
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "%name-extra" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
2eeb6a
%postun extra
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "%name-extra" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
7a4f11
%posttrans extra
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "%name-extra" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%if %split_extra
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%files extra -f kernel-extra.files
Bernhard M. Wiedemann 6ebc4a
%defattr(-, root, root)
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
bd7477
%if %split_extra && %split_optional
bd7477
%package optional
bd7477
Summary:        The Standard Kernel - Optional kernel modules
bd7477
Group:          System/Kernel
57a832
URL:            https://www.kernel.org/
bd7477
Provides:       %name-optional_%_target_cpu = %version-%source_rel
bd7477
Provides:       kernel-optional = %version-%source_rel
bd7477
Provides:       multiversion(kernel)
bd7477
Requires:       %name-extra_%_target_cpu = %version-%source_rel
bd7477
Requires(pre):  coreutils awk
bd7477
Requires(post): modutils
bd7477
Requires(post): perl-Bootloader
bd7477
Requires(post): mkinitrd
bd7477
%ifarch %ix86
bd7477
Provides:       kernel-trace-optional = 3.13
bd7477
Obsoletes:      kernel-trace-optional <= 3.13
bd7477
%endif
bd7477
%ifarch ppc64
bd7477
Provides:       kernel-kdump-optional = 2.6.28
bd7477
Obsoletes:      kernel-kdump-optional <= 2.6.28
bd7477
%endif
bd7477
%ifarch s390x
bd7477
Provides:       kernel-trace-optional = 3.13
bd7477
Obsoletes:      kernel-trace-optional <= 3.13
bd7477
%endif
bd7477
%ifarch x86_64
bd7477
Provides:       kernel-trace-optional = 3.13
bd7477
Obsoletes:      kernel-trace-optional <= 3.13
bd7477
Provides:       kernel-bigsmp-optional = 3.1
bd7477
Obsoletes:      kernel-bigsmp-optional <= 3.1
bd7477
Provides:       kernel-desktop-optional = 4.3
bd7477
Obsoletes:      kernel-desktop-optional <= 4.3
bd7477
Provides:       kernel-xen-optional = 4.4
bd7477
Obsoletes:      kernel-xen-optional <= 4.4
bd7477
Provides:       kernel-ec2-optional = 4.4
bd7477
Obsoletes:      kernel-ec2-optional <= 4.4
bd7477
%endif
bd7477
%obsolete_rebuilds %name-optional
bd7477
Supplements:    packageand(product(Leap):%{name}_%_target_cpu)
bd7477
%ifarch %ix86
bd7477
Conflicts:      libc.so.6()(64bit)
bd7477
%endif
bd7477
bd7477
%description optional
bd7477
The standard kernel for both uniprocessor and multiprocessor systems.
bd7477
bd7477
This package contains optional modules only for openSUSE Leap.
bd7477
bd7477
bd7477
%source_timestamp
bd7477
7a4f11
%pre optional
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "%name-optional" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
ab3bb5
7a4f11
%post optional
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "%name-optional" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
2eeb6a
2eeb6a
%preun optional
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "%name-optional" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
2eeb6a
2eeb6a
%postun optional
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "%name-optional" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
7a4f11
%posttrans optional
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "%name-optional" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
bd7477
bd7477
%files optional -f kernel-optional.files
bd7477
%defattr(-, root, root)
bd7477
%endif
bd7477
5c5b33
%if "%CONFIG_KMSG_IDS" == "y"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%package man
Bernhard M. Wiedemann 6ebc4a
Summary:        The collection of man pages generated by the kmsg script
Bernhard M. Wiedemann 6ebc4a
Group:          System/Kernel
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description man
Bernhard M. Wiedemann 6ebc4a
This package includes the man pages that have been generated from the
Bernhard M. Wiedemann 6ebc4a
kmsg message documentation comments.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%source_timestamp
Bernhard M. Wiedemann 6ebc4a
%files man
Bernhard M. Wiedemann 6ebc4a
%defattr(-,root,root)
Bernhard M. Wiedemann 6ebc4a
/usr/share/man/man9/*
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
3027fd
%if 0%{?separate_vdso}
3027fd
%package vdso
3027fd
Summary:        vdso binaries for debugging purposes
3027fd
Group:          System/Kernel
3027fd
3027fd
%description vdso
3027fd
This package includes the vdso binaries. They can be used for debugging. The
3027fd
actual binary linked to the programs is loaded from the in-memory image, not
3027fd
from this package.
3027fd
3027fd
3027fd
%source_timestamp
3027fd
%files vdso
3027fd
%defattr(-,root,root)
3027fd
/%{?usrmerged:usr/}lib/modules/%kernelrelease-%build_flavor/vdso/
3027fd
%endif
3027fd
Bernhard M. Wiedemann 6ebc4a
%package devel
Bernhard M. Wiedemann 6ebc4a
Summary:        Development files necessary for building kernel modules
Bernhard M. Wiedemann 6ebc4a
Group:          Development/Sources
Bernhard M. Wiedemann 6ebc4a
Provides:       %name-devel = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       multiversion(kernel)
Bernhard M. Wiedemann 6ebc4a
%if ! %build_vanilla
Bernhard M. Wiedemann 6ebc4a
Requires:       kernel-devel%variant = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Recommends:     make
Bernhard M. Wiedemann 6ebc4a
Recommends:     gcc
Bernhard M. Wiedemann 6ebc4a
Recommends:     perl
Bernhard M. Wiedemann 6ebc4a
# for objtool
Bernhard M. Wiedemann 6ebc4a
Requires:	libelf-devel
Bernhard M. Wiedemann 6ebc4a
Supplements:    packageand(%name:kernel-devel%variant)
Bernhard M. Wiedemann 6ebc4a
%else
Bernhard M. Wiedemann 6ebc4a
Requires:       kernel-source-vanilla = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Supplements:    packageand(%name:kernel-source-vanilla)
Bernhard M. Wiedemann 6ebc4a
%endif
c69a94
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
0ccffb
Requires:       dwarves >= 1.22
c69a94
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch %ix86
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace-devel = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace-devel <= 3.13
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch ppc64
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-kdump-devel = 2.6.28
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-kdump-devel <= 2.6.28
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch s390x
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace-devel = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace-devel <= 3.13
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%ifarch x86_64
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-trace-devel = 3.13
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-trace-devel <= 3.13
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-bigsmp-devel = 3.1
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-bigsmp-devel <= 3.1
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-desktop-devel = 4.3
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-desktop-devel <= 4.3
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-xen-devel = 4.4
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-xen-devel <= 4.4
Bernhard M. Wiedemann 6ebc4a
Provides:       kernel-ec2-devel = 4.4
Bernhard M. Wiedemann 6ebc4a
Obsoletes:      kernel-ec2-devel <= 4.4
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%obsolete_rebuilds %name-devel
Bernhard M. Wiedemann 6ebc4a
PreReq:         coreutils
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description devel
Bernhard M. Wiedemann 6ebc4a
This package contains files necessary for building kernel modules (and
Bernhard M. Wiedemann 6ebc4a
kernel module packages) against the %build_flavor flavor of the kernel.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%source_timestamp
Bernhard M. Wiedemann 6ebc4a
5c5b33
%if "%CONFIG_MODULES" == "y"
Bernhard M. Wiedemann 6ebc4a
2eeb6a
%pre devel
Bernhard M. Wiedemann 6ebc4a
2eeb6a
# handle update from an older kernel-source with linux-obj as symlink
2eeb6a
if [ -h /usr/src/linux-obj ]; then
2eeb6a
    rm -vf /usr/src/linux-obj
2eeb6a
fi
2eeb6a
2eeb6a
%post devel
2eeb6a
%relink_function
2eeb6a
2eeb6a
relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/linux-obj/"%cpu_arch_flavor"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%files devel -f kernel-devel.files
Bernhard M. Wiedemann 6ebc4a
%defattr(-,root,root)
Bernhard M. Wiedemann 6ebc4a
%dir /usr/src/linux-obj
Bernhard M. Wiedemann 6ebc4a
%dir /usr/src/linux-obj/%cpu_arch
Bernhard M. Wiedemann 6ebc4a
%ghost /usr/src/linux-obj/%cpu_arch_flavor
Bernhard M. Wiedemann a719c5
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
5c5b33
%if "%kmp_target_cpu" != "%cpu_arch"
Bernhard M. Wiedemann 6ebc4a
%obj_install_dir/%kmp_target_cpu
Bernhard M. Wiedemann 6ebc4a
/usr/src/linux-obj/%kmp_target_cpu
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
c3597e
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt))
5c5b33
%if "%livepatch" == "kgraft"
Bernhard M. Wiedemann 6ebc4a
%define patch_package %{livepatch}-patch
Bernhard M. Wiedemann 6ebc4a
%else
Bernhard M. Wiedemann 6ebc4a
%define patch_package kernel-%{livepatch}
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
%package %{livepatch}
Bernhard M. Wiedemann 6ebc4a
Summary:        Metapackage to pull in matching %patch_package package
Bernhard M. Wiedemann 6ebc4a
Group:          System/Kernel
Bernhard M. Wiedemann 6ebc4a
Requires:       %{patch_package}-%(echo %{version}-%{source_rel} | sed 'y/\./_/')-%{build_flavor}
c3597e
Provides:       multiversion(kernel)
c3597e
%if "%variant" != "-rt"
Bernhard M. Wiedemann 6ebc4a
Provides:	kernel-default-kgraft = %version
Bernhard M. Wiedemann 6ebc4a
Provides:	kernel-xen-kgraft = %version
Bernhard M. Wiedemann fac6f8
%if "%livepatch" != "kgraft"
Bernhard M. Wiedemann 6ebc4a
Obsoletes:	kernel-default-kgraft < %version
Bernhard M. Wiedemann 6ebc4a
Obsoletes:	kernel-xen-kgraft < %version
Bernhard M. Wiedemann fac6f8
%endif
c3597e
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description %{livepatch}
Bernhard M. Wiedemann 6ebc4a
This is a metapackage that pulls in the matching %patch_package package for a
Bernhard M. Wiedemann 6ebc4a
given kernel version. The advantage of the metapackage is that its name is
Bernhard M. Wiedemann 6ebc4a
static, unlike the %{patch_package}-<kernel-version>-flavor package names.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%files %{livepatch}
Bernhard M. Wiedemann 6ebc4a
# rpmlint complains about empty packages, so lets own something
Bernhard M. Wiedemann 6ebc4a
%defattr(-, root, root)
32c425
%dir %modules_dir
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%if 0%{?klp_symbols} && "%livepatch" != ""
Bernhard M. Wiedemann 6ebc4a
%package %{livepatch}-devel
Bernhard M. Wiedemann 6ebc4a
Summary:	Kernel symbols file used during kGraft patch development
Bernhard M. Wiedemann 6ebc4a
Group:		System/Kernel
Bernhard M. Wiedemann 6ebc4a
Provides:	klp-symbols = %version
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description %{livepatch}-devel
Bernhard M. Wiedemann 6ebc4a
This package brings a file named Symbols.list, which contains a list of all
Bernhard M. Wiedemann 6ebc4a
kernel symbols and its respective kernel object . This list is to be used by
Bernhard M. Wiedemann 6ebc4a
the klp-convert tool, which helps livepatch developers by enabling automatic
Bernhard M. Wiedemann 6ebc4a
symbol resolution.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 4b7a24
%files %{livepatch}-devel -f livepatch-files
Bernhard M. Wiedemann 6ebc4a
%endif
Bernhard M. Wiedemann 6ebc4a
5c5b33
%if "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y"
Bernhard M. Wiedemann 6ebc4a
%package -n cluster-md-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
Summary:        Clustering support for MD devices
Bernhard M. Wiedemann 6ebc4a
Group:          System/Kernel
Bernhard M. Wiedemann 6ebc4a
Requires:       %name = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       cluster-md-kmp = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       multiversion(kernel)
Bernhard M. Wiedemann 6ebc4a
# tell weak-modules2 to ignore this package
Bernhard M. Wiedemann 6ebc4a
Provides:       kmp_in_kernel
Bernhard M. Wiedemann 6ebc4a
Requires(post): suse-module-tools >= 12.4
026f08
Enhances:	%name
026f08
Supplements:	packageand(%name:%cluster-md-kmp-%build_flavor)
Bernhard M. Wiedemann 6ebc4a
Requires:       dlm-kmp-%build_flavor = %version-%release
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description -n cluster-md-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
Clustering support for MD devices. This enables locking and
Bernhard M. Wiedemann 6ebc4a
synchronization across multiple systems on the cluster, so all
Bernhard M. Wiedemann 6ebc4a
nodes in the cluster can access the MD devices simultaneously.
Bernhard M. Wiedemann 6ebc4a
7a4f11
%pre -n cluster-md-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "cluster-md-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
ab3bb5
7a4f11
%post -n cluster-md-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "cluster-md-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%preun -n cluster-md-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "cluster-md-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%postun -n cluster-md-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "cluster-md-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
7a4f11
%posttrans -n cluster-md-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "cluster-md-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%files -n cluster-md-kmp-%build_flavor -f cluster-md-kmp.files
Bernhard M. Wiedemann 6ebc4a
%defattr(-, root, root)
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%package -n dlm-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
Summary:        DLM kernel modules
Bernhard M. Wiedemann 6ebc4a
Group:          System/Kernel
Bernhard M. Wiedemann 6ebc4a
Requires:       %name = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       dlm-kmp = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       multiversion(kernel)
Bernhard M. Wiedemann 6ebc4a
# tell weak-modules2 to ignore this package
Bernhard M. Wiedemann 6ebc4a
Provides:       kmp_in_kernel
Bernhard M. Wiedemann 6ebc4a
Requires(post): suse-module-tools >= 12.4
026f08
Enhances:	%name
026f08
Supplements:	packageand(%name:%dlm-kmp-%build_flavor)
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description -n dlm-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
DLM stands for Distributed Lock Manager, a means to synchronize access to
Bernhard M. Wiedemann 6ebc4a
shared resources over the cluster.
Bernhard M. Wiedemann 6ebc4a
7a4f11
%pre -n dlm-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "dlm-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
ab3bb5
7a4f11
%post -n dlm-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "dlm-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%preun -n dlm-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "dlm-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%postun -n dlm-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "dlm-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
7a4f11
%posttrans -n dlm-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "dlm-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%files -n dlm-kmp-%build_flavor -f dlm-kmp.files
Bernhard M. Wiedemann 6ebc4a
%defattr(-, root, root)
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%package -n gfs2-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
Summary:        GFS2 kernel modules
Bernhard M. Wiedemann 6ebc4a
Group:          System/Kernel
Bernhard M. Wiedemann 6ebc4a
Requires:       %name = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       gfs2-kmp = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       multiversion(kernel)
Bernhard M. Wiedemann 6ebc4a
# tell weak-modules2 to ignore this package
Bernhard M. Wiedemann 6ebc4a
Provides:       kmp_in_kernel
Bernhard M. Wiedemann 6ebc4a
Requires(post): suse-module-tools >= 12.4
026f08
Enhances:	%name
026f08
Supplements:	packageand(%name:%gfs2-kmp-%build_flavor)
Bernhard M. Wiedemann 6ebc4a
Requires:       dlm-kmp-%build_flavor = %version-%release
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description -n gfs2-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
GFS2 is Global Filesystem, a shared device filesystem.
Bernhard M. Wiedemann 6ebc4a
7a4f11
%pre -n gfs2-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "gfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
ab3bb5
7a4f11
%post -n gfs2-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "gfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%preun -n gfs2-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "gfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%postun -n gfs2-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "gfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
7a4f11
%posttrans -n gfs2-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "gfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%files -n gfs2-kmp-%build_flavor -f gfs2-kmp.files
Bernhard M. Wiedemann 6ebc4a
%defattr(-, root, root)
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%package -n kselftests-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
Summary:        Kernel sefltests
Bernhard M. Wiedemann 6ebc4a
Group:          System/Kernel
Bernhard M. Wiedemann 6ebc4a
Requires:       %name = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       kselftests-kmp = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       multiversion(kernel)
Bernhard M. Wiedemann 6ebc4a
# tell weak-modules2 to ignore this package
Bernhard M. Wiedemann 6ebc4a
Provides:       kmp_in_kernel
Bernhard M. Wiedemann 6ebc4a
Requires(post): suse-module-tools >= 12.4
026f08
Enhances:	%name
026f08
Supplements:	packageand(%name:%kselftests-kmp-%build_flavor)
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description -n kselftests-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
This package contains kernel modules which are part of the upstream kernel
Bernhard M. Wiedemann 6ebc4a
selftest effort. kselftest is the name of the upstream kernel target to build
Bernhard M. Wiedemann 6ebc4a
and run all selftests. You can also run each test individually from the
Bernhard M. Wiedemann 6ebc4a
respective upstream tools/testing/selftests/ directory, this package is
Bernhard M. Wiedemann 6ebc4a
intended to be used using individial upstream selftest scripts given only
Bernhard M. Wiedemann 6ebc4a
select supported selftest drivers are enabled.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
It should always be possible to always run the latest linux-next version of the
Bernhard M. Wiedemann 6ebc4a
selftest scripts and tests against any older kernel selftest driver.  Certain
Bernhard M. Wiedemann 6ebc4a
tests facilities may be backported onto older kernels to enable further
Bernhard M. Wiedemann 6ebc4a
testing.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
Selftests also provide for a vehicle or proof of concept issues to be
Bernhard M. Wiedemann 6ebc4a
reproduced, verified and corrected.
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
Selftest drivers are intended to be supported only in testing and QA
Bernhard M. Wiedemann 6ebc4a
environments, they are not intended to be run on production systems.
Bernhard M. Wiedemann 6ebc4a
7a4f11
%pre -n kselftests-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "kselftests-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
ab3bb5
7a4f11
%post -n kselftests-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "kselftests-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%preun -n kselftests-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "kselftests-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%postun -n kselftests-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "kselftests-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
7a4f11
%posttrans -n kselftests-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "kselftests-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%files -n kselftests-kmp-%build_flavor -f kselftests-kmp.files
Bernhard M. Wiedemann 6ebc4a
%defattr(-, root, root)
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%package -n ocfs2-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
Summary:        OCFS2 kernel modules
Bernhard M. Wiedemann 6ebc4a
Group:          System/Kernel
Bernhard M. Wiedemann 6ebc4a
Requires:       %name = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       ocfs2-kmp = %version-%source_rel
Bernhard M. Wiedemann 6ebc4a
Provides:       multiversion(kernel)
Bernhard M. Wiedemann 6ebc4a
# tell weak-modules2 to ignore this package
Bernhard M. Wiedemann 6ebc4a
Provides:       kmp_in_kernel
Bernhard M. Wiedemann 6ebc4a
Requires(post): suse-module-tools >= 12.4
026f08
Enhances:	%name
026f08
Supplements:	packageand(%name:%ocfs2-kmp-%build_flavor)
Bernhard M. Wiedemann 6ebc4a
Requires:       dlm-kmp-%build_flavor = %version-%release
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%description -n ocfs2-kmp-%build_flavor
Bernhard M. Wiedemann 6ebc4a
OCFS2 is the Oracle Cluster Filesystem, a filesystem for shared devices
Bernhard M. Wiedemann 6ebc4a
accessible simultaneously from multiple nodes of a cluster.
Bernhard M. Wiedemann 6ebc4a
7a4f11
%pre -n ocfs2-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "ocfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
ab3bb5
7a4f11
%post -n ocfs2-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "ocfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%preun -n ocfs2-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "ocfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%postun -n ocfs2-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "ocfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
7a4f11
%posttrans -n ocfs2-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "ocfs2-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%files -n ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
Bernhard M. Wiedemann 6ebc4a
%defattr(-, root, root)
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 86a379
%package -n reiserfs-kmp-%build_flavor
Bernhard M. Wiedemann 86a379
Summary:        Reiserfs kernel module
Bernhard M. Wiedemann 86a379
Group:          System/Kernel
Bernhard M. Wiedemann 86a379
Requires:       %name = %version-%source_rel
Bernhard M. Wiedemann 86a379
Provides:       reiserfs-kmp = %version-%source_rel
Bernhard M. Wiedemann 86a379
Provides:       multiversion(kernel)
Bernhard M. Wiedemann 86a379
# tell weak-modules2 to ignore this package
Bernhard M. Wiedemann 86a379
Provides:       kmp_in_kernel
Bernhard M. Wiedemann 86a379
Requires(post): suse-module-tools >= 12.4
026f08
Enhances:	%name
026f08
Supplements:	packageand(%name:%reiserfs-kmp-%build_flavor)
Bernhard M. Wiedemann 86a379
Bernhard M. Wiedemann 86a379
%description -n reiserfs-kmp-%build_flavor
Bernhard M. Wiedemann 86a379
The reiserfs file system is no longer supported in SLE15.  This package
Bernhard M. Wiedemann 86a379
provides the reiserfs module for the installation system.
Bernhard M. Wiedemann 86a379
7a4f11
%pre -n reiserfs-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "reiserfs-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
ab3bb5
7a4f11
%post -n reiserfs-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "reiserfs-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 86a379
Bernhard M. Wiedemann 86a379
%preun -n reiserfs-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "reiserfs-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 86a379
Bernhard M. Wiedemann 86a379
%postun -n reiserfs-kmp-%build_flavor
5c34fe
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "reiserfs-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
7a4f11
7a4f11
%posttrans -n reiserfs-kmp-%build_flavor
7a4f11
/usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "reiserfs-kmp-%build_flavor" \
7a4f11
  --version "%version" --release "%release" --kernelrelease "%kernelrelease" \
7a4f11
  --image "%image" --flavor "%build_flavor" --variant "%variant" \
7a4f11
  --usrmerged "0%{?usrmerged}" --certs "%certs" "$@"
Bernhard M. Wiedemann 86a379
Bernhard M. Wiedemann 86a379
%files -n reiserfs-kmp-%build_flavor -f reiserfs-kmp.files
Bernhard M. Wiedemann 86a379
%defattr(-, root, root)
Bernhard M. Wiedemann 86a379
Bernhard M. Wiedemann 6ebc4a
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
Bernhard M. Wiedemann 6ebc4a
%endif # %CONFIG_MODULES
Bernhard M. Wiedemann 6ebc4a
Bernhard M. Wiedemann 6ebc4a
%changelog