Blame kernel-lpae.spec

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