commit d4bcf2abd85a8d69da9d3f3e4e5dc57c556bca61

OBS-URL: https://build.opensuse.org/package/show/Kernel:stable/kernel-source?expand=0&rev=546
This commit is contained in:
Jiri Slaby 2016-06-26 14:47:43 +00:00 committed by Git OBS Bridge
parent 4250b75f6f
commit 8236c75d57
52 changed files with 161714 additions and 276356 deletions

View File

@ -4,10 +4,9 @@
<conditions> <conditions>
<package>kernel-debug</package> <package>kernel-debug</package>
<package>kernel-default</package> <package>kernel-default</package>
<package>kernel-ec2</package> <package>kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-vanilla</package> <package>kernel-vanilla</package>
<package>kernel-xen</package>
<package>kernel-zfcpdump</package>
</conditions> </conditions>
<hardware> <hardware>
<disk> <disk>
@ -21,10 +20,9 @@
<arch>s390x</arch> <arch>s390x</arch>
<package>kernel-debug</package> <package>kernel-debug</package>
<package>kernel-default</package> <package>kernel-default</package>
<package>kernel-ec2</package> <package>kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-vanilla</package> <package>kernel-vanilla</package>
<package>kernel-xen</package>
<package>kernel-zfcpdump</package>
</conditions> </conditions>
<hardware> <hardware>
<disk> <disk>
@ -39,10 +37,9 @@
<arch>x86_64</arch> <arch>x86_64</arch>
<package>kernel-debug</package> <package>kernel-debug</package>
<package>kernel-default</package> <package>kernel-default</package>
<package>kernel-ec2</package> <package>kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-vanilla</package> <package>kernel-vanilla</package>
<package>kernel-xen</package>
<package>kernel-zfcpdump</package>
</conditions> </conditions>
<hardware> <hardware>
<processors>8</processors> <processors>8</processors>
@ -56,10 +53,9 @@
<arch>ppc64le</arch> <arch>ppc64le</arch>
<package>kernel-debug</package> <package>kernel-debug</package>
<package>kernel-default</package> <package>kernel-default</package>
<package>kernel-ec2</package> <package>kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-vanilla</package> <package>kernel-vanilla</package>
<package>kernel-xen</package>
<package>kernel-zfcpdump</package>
</conditions> </conditions>
<hardware> <hardware>
<processors>4</processors> <processors>4</processors>

View File

@ -1,3 +1,21 @@
-------------------------------------------------------------------
Fri Sep 25 20:35:38 UTC 2015 - mmarek@suse.com
- Drop the -desktop flavors and merge these settings back to
i386/pae and x86_64/default, respectively:
- CONFIG_PREEMPT=y
- vm.dirty_ratio=20
The builtin driver choices of the desktop configs were discarded
and CONFIG_HZ is 250 (fate#319416).
-------------------------------------------------------------------
Fri Feb 13 14:58:32 CET 2015 - jdelvare@suse.de
- On x86 and ppc*:
- CONFIG_I2C_SLAVE=n
There is currently no known use case for this feature on these
architectures, and it has a small build time and size cost.
------------------------------------------------------------------- -------------------------------------------------------------------
Fri May 23 10:04:27 UTC 2014 - ddiss@suse.com Fri May 23 10:04:27 UTC 2014 - ddiss@suse.com
@ -9,13 +27,6 @@ Fri May 23 10:04:27 UTC 2014 - ddiss@suse.com
(fate#317480). (fate#317480).
- CONFIG_CIFS_SMB2=y - CONFIG_CIFS_SMB2=y
-------------------------------------------------------------------
Tue May 20 08:30:56 CEST 2014 - jdelvare@suse.de
- drbd will be shipped as a KMP in SLE12 HA only (not SLES nor
SLED).
- CONFIG_BLK_DEV_DRBD=n
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Mar 6 10:48:07 CET 2014 - jdelvare@suse.de Thu Mar 6 10:48:07 CET 2014 - jdelvare@suse.de
@ -28,20 +39,7 @@ Thu Mar 6 10:48:07 CET 2014 - jdelvare@suse.de
- CONFIG_THERMAL=y - CONFIG_THERMAL=y
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Mar 4 11:14:43 CET 2014 - jdelvare@suse.de Fri Feb 28 18:38:01 CET 2014 - jdelvare@suse.de
- The core leds module is small (14 kB on x86_64) and many drivers
depend on it or even select it, in particular laptop-specific
drivers and wireless network drivers. So the core leds module
will end up being loaded on most laptop systems, where boot time
matters. On top of that, different architectures have different
dependencies, some of them requiring that the core leds module is
built-in. So the easiest way forward is to just keep the core
leds module built into the kernel on all architectures.
- CONFIG_LEDS_CLASS=y
-------------------------------------------------------------------
Fri Feb 28 10:17:34 CET 2014 - jdelvare@suse.de
- The msr driver creates /dev/cpu/*/msr through which you can poke - The msr driver creates /dev/cpu/*/msr through which you can poke
at all the MSRs if you have CAP_SYS_RAWIO. We prefer to be able at all the MSRs if you have CAP_SYS_RAWIO. We prefer to be able
@ -49,13 +47,21 @@ Fri Feb 28 10:17:34 CET 2014 - jdelvare@suse.de
- CONFIG_X86_MSR=m - CONFIG_X86_MSR=m
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Jan 9 14:48:09 CET 2014 - jdelvare@suse.de Tue Feb 25 11:44:55 CET 2014 - jdelvare@suse.de
- systemd requires autofs, so autofs4.ko will always be loaded on
boot. For performance reasons, it makes sense to build it into
the kernel (bnc#863771).
- CONFIG_AUTOFS4_FS=y
-------------------------------------------------------------------
Thu Jan 9 14:38:52 CET 2014 - jdelvare@suse.de
- Forcing module unloading can't lead to anything good. If - Forcing module unloading can't lead to anything good. If
reference counting is wrong then it should be fixed. If the reference counting is wrong then it should be fixed. If the
reference count is right and a regular (unforced) unloading reference count is right and a regular (unforced) unloading
doesn't work, then a forced unloading can only lead to chaos and doesn't work, then a forced unloading can only lead to chaos and
ultimately a kernel crash (bnc#854171). ultimately a kernel crash.
- CONFIG_MODULE_FORCE_UNLOAD=n - CONFIG_MODULE_FORCE_UNLOAD=n
------------------------------------------------------------------- -------------------------------------------------------------------

View File

@ -8,18 +8,31 @@
# kernel-binary and kernel-source rely on this # kernel-binary and kernel-source rely on this
# #
+i386 i386/default
+i386 i386/pae
+i386 -syms i386/debug
+i386 i386/vanilla
+x86_64 x86_64/default +x86_64 x86_64/default
+x86_64 x86_64/xen
+x86_64 -syms x86_64/ec2
+x86_64 -syms x86_64/debug +x86_64 -syms x86_64/debug
+x86_64 x86_64/vanilla +x86_64 x86_64/vanilla
+ppc64 ppc64/default
+ppc64 -syms ppc64/debug
+ppc64 ppc64/vanilla
+ppc64le ppc64le/default +ppc64le ppc64le/default
+ppc64le -syms ppc64le/debug +ppc64le -syms ppc64le/debug
+ppc64le ppc64le/vanilla
# ARM architectures # ARM architectures
+armv6hl armv6hl/default
+armv6hl armv6hl/vanilla
+armv7hl armv7hl/default
+armv7hl armv7hl/vanilla
+armv7hl armv7hl/lpae
+arm64 arm64/default +arm64 arm64/default
+arm64 arm64/vanilla
+s390x s390x/default +s390x s390x/default
+s390x s390x/vanilla +s390x s390x/vanilla
+s390x -syms s390x/zfcpdump

View File

@ -1,7 +1,10 @@
# The version of the main tarball to use # The version of the main tarball to use
SRCVERSION=3.12 SRCVERSION=4.6
# variant of the kernel-source package, either empty or "-rt" # variant of the kernel-source package, either empty or "-rt"
VARIANT= VARIANT=
# buildservice projects to build the kernel against # buildservice projects to build the kernel against
OBS_PROJECT=SUSE:SLE-12:Update OBS_PROJECT=openSUSE:Factory
IBS_PROJECT=SUSE:SLE-12:Update OBS_PROJECT_ARM=openSUSE:Factory:ARM
OBS_PROJECT_PPC=openSUSE:Factory:PowerPC
IBS_PROJECT=SUSE:Factory:Head
IBS_PROJECT_ARM=Devel:ARM:Factory

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d569fb589b6c9109c29e39330db12aca305d4e3fc854d0fad31236e33e2700f7 oid sha256:3316d6c430f31f9c14043e72ba4e2a6dbbbe2057be2d15630b5dec0f60816047
size 88678 size 231204

45
find-requires Normal file
View File

@ -0,0 +1,45 @@
#!/bin/bash
#
# Generate dependencies for KMPs defined in supported.conf. We look at each
# modules 'depends' field in modinfo and use the $name-kmp-modules lists
# in builddir to map dependencies to package names. We do it this way instead
# of relying on the ksym() dependencies, because KMPs built from the kernel
# spec file are not shared among kernel versions.
package_name=$1
version_release=$2
builddir=$3
trap 'rm -f "$filelist"' EXIT
filelist=$(mktemp -t ${0##*/}.XXXXXXXXXX)
cat >"$filelist"
# is this module part of any KMP?
in_kmp()
{
local mod=${1//[-_]/[-_]} res
for f in "$builddir"/*-kmp-modules; do
if grep -q "/$mod\$" "$f"; then
res=${f##*/}
echo "${res%-modules}"
fi
done
}
grep '\.ko$' "$filelist" | while read f; do
mod=${f##*/}
kmp=$(in_kmp "$mod")
if test -z "$kmp"; then
continue
fi
for dep in $(IFS=,; set -- $(/sbin/modinfo -F depends "$f"); echo $*); do
kmp2=$(in_kmp "$dep.ko")
if test -n "$kmp2" -a "$kmp2" != "$kmp"; then
# Needs another KMP
echo "$kmp2-${package_name#kernel-} = $version_release"
fi
done
done
/usr/lib/rpm/find-requires "$package_name" <"$filelist"

BIN
kabi.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@ -28,7 +28,6 @@
%define build_flavor @FLAVOR@ %define build_flavor @FLAVOR@
%define build_default ("%build_flavor" == "default") %define build_default ("%build_flavor" == "default")
%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
%define build_vanilla ("%build_flavor" == "vanilla") %define build_vanilla ("%build_flavor" == "vanilla")
%if ! %build_vanilla %if ! %build_vanilla
@ -80,6 +79,8 @@ BuildRequires: modutils
# Used to sign the kernel in the buildservice # Used to sign the kernel in the buildservice
BuildRequires: openssl BuildRequires: openssl
BuildRequires: pesign-obs-integration BuildRequires: pesign-obs-integration
# for objtool
BuildRequires: libelf-devel
Provides: %name = %version-%source_rel Provides: %name = %version-%source_rel
# bnc#901925 # bnc#901925
Provides: %name-%version-%source_rel Provides: %name-%version-%source_rel
@ -135,9 +136,6 @@ BuildRequires: dwarfextract
%ifarch %arm %ifarch %arm
BuildRequires: u-boot-tools BuildRequires: u-boot-tools
%endif %endif
%if %build_xen
#!BuildIgnore: xen
%endif
Obsoletes: microcode_ctl Obsoletes: microcode_ctl
@ -154,6 +152,9 @@ Conflicts: udev < 118
Conflicts: lvm2 < 2.02.33 Conflicts: lvm2 < 2.02.33
# Interface to hv_kvp_daemon changed # Interface to hv_kvp_daemon changed
Conflicts: hyper-v < 4 Conflicts: hyper-v < 4
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel Provides: kernel = %version-%source_rel
@PROVIDES_OBSOLETES@ @PROVIDES_OBSOLETES@
@PROVIDES_OBSOLETES_BASE@ @PROVIDES_OBSOLETES_BASE@
@ -162,6 +163,16 @@ Provides: kernel = %version-%source_rel
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: @ARCHS@ ExclusiveArch: @ARCHS@
%define kmp_target_cpu %_target_cpu %define kmp_target_cpu %_target_cpu
%ifarch %ix86
# Only i386/default supports i586, mark other flavors' packages as i686
%if ! %build_default
BuildArch: i686
# KMPs are always built as i586, because rpm does not allow to build
# subpackages for different architectures. Therefore, we change the
# /usr/src/linux-obj/<arch> symlink to i586.
%define kmp_target_cpu i586
%endif
%endif
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
@NOSOURCE@ @NOSOURCE@
@ -214,10 +225,17 @@ Provides: ath3k-firmware = 1.0
%obsolete_kmp compat-wireless 3.12 %obsolete_kmp compat-wireless 3.12
%obsolete_kmp rts5229 1.08 %obsolete_kmp rts5229 1.08
%obsolete_kmp rts_pstor 1.11 %obsolete_kmp rts_pstor 1.11
# sle12-sp1 / Leap 42.1
%obsolete_kmp xen 4.6.1
%obsolete_kmp compat-wireless 4.4
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define _use_internal_dependency_generator 0
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Generate dependencies for KMPs defined in supported.conf
%define __find_requires %_sourcedir/find-requires %name %version-%release %my_builddir
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -247,15 +265,11 @@ mkdir -p %kernel_build_dir
# Generate a list of modules with their support status marking # Generate a list of modules with their support status marking
%_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \ %_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \
awk ' awk '
/^\+(base|yes) / { /\+external / {
print $(NF);
next;
}
/^\+external / {
print $(NF) " external"; print $(NF) " external";
next; next;
} }
/^[-+]/ { /^-/ {
print $(NF) " no"; print $(NF) " no";
next; next;
} }
@ -263,8 +277,11 @@ awk '
print $(NF); print $(NF);
} }
' >%kernel_build_dir/Module.supported ' >%kernel_build_dir/Module.supported
%_sourcedir/guards --default=0 base < %_sourcedir/supported.conf | \ for package in base @KMPS@; do
sed 's,.*/,,; s,\.ko$,,' | sort -u >%kernel_build_dir/Module.base %_sourcedir/guards --default=0 "$package" \
<%_sourcedir/supported.conf | sed 's,.*/,,; s,\.ko$,,' | \
sort -u >%kernel_build_dir/Module."$package"
done
cd linux-%srcversion cd linux-%srcversion
@ -295,7 +312,17 @@ if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
vanilla_base="default"
%ifarch %ix86
vanilla_base="pae"
%endif
if ! grep -q CONFIG_MMU= "%my_builddir/config/%cpu_arch_flavor"; then
cp "%my_builddir/config/%cpu_arch/$vanilla_base" .config
../scripts/kconfig/merge_config.sh -m .config \
%my_builddir/config/%cpu_arch_flavor
else
cp %my_builddir/config/%cpu_arch_flavor .config cp %my_builddir/config/%cpu_arch_flavor .config
fi
if test -e %my_builddir/config.addon/%cpu_arch_flavor; then if test -e %my_builddir/config.addon/%cpu_arch_flavor; then
# FIXME: config.addon doesn't affect the %CONFIG_ macros defined at # FIXME: config.addon doesn't affect the %CONFIG_ macros defined at
# the top of the specfile # the top of the specfile
@ -333,7 +360,8 @@ fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' -printf '%%P\n' \
> %my_builddir/obj-files
%build %build
cd %kernel_build_dir cd %kernel_build_dir
@ -344,43 +372,21 @@ if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# copy optional module signing files: # copy module signing certificate(s)
# *.x509, *.crt
# - certificates with pubkeys used to verify module and firmware signatures
# at runtime. *.crt files assumed to be in the PEM format.
# signing_key.priv
# - unencrypted private key used to sign modules and firmware during build
# x509.genkey
# - openssl req config to generate a new signing_key.{x509,priv} pair for the
# build
for f in %_sourcedir/*.x509 %_sourcedir/{signing_key.priv,x509.genkey}; do
if test -e "$f"; then
cp "$f" .
fi
done
for f in %_sourcedir/*.crt; do for f in %_sourcedir/*.crt; do
if ! test -e "$f"; then if ! test -e "$f"; then
continue continue
fi fi
out=${f##*/} case "${f##*/}" in
out=${out%.crt}.x509 SLES-UEFI*.crt)
openssl x509 -inform PEM -in "$f" -outform DER -out "$out" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
cp "$f" .
;;
*)
cat "$f" >>keyring.crt
../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
esac
done done
# Convince kernel/Makefile not to generate a new keypair
touch x509.genkey
touch signing_key.x509
%if %build_vanilla
# workaround for the 3.12 vanilla kernel which does not have
# f0e6d22 ("KEYS: Load *.x509 files into kernel keyring)
# but supports an "extra_certificates" file instead
for f in *.x509; do
if test ! -e "$f" -o "$f" = "signing_key.x509"; then
continue
fi
cat "$f" >>extra_certificates
done
%endif
MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}" MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
@ -412,6 +418,11 @@ export BRP_PESIGN_FILES="*.ko"
%if %CONFIG_EFI_STUB == "y" %if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor" BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif %endif
%ifarch %ix86
# XXX: do not sign on x86, as the repackaging changes kernel-pae
# from i686 to i586
BRP_PESIGN_FILES=""
%endif
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
@ -460,9 +471,6 @@ add_vmlinux()
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
image=bzImage image=bzImage
%if %build_xen
test -f arch/x86/boot/$image || image=vmlinuz
%endif
cp -p arch/x86/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor cp -p arch/x86/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor
image=vmlinuz image=vmlinuz
%endif %endif
@ -520,12 +528,6 @@ if test %CONFIG_MODULE_SIG = "y"; then
done done
fi fi
# Install the frontend driver selector file for xen/ec2
%if %build_xen
mkdir -p %buildroot/etc/modprobe.d
cp %_sourcedir/modprobe-xen.conf %buildroot/etc/modprobe.d/50-xen.conf
%endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -563,7 +565,7 @@ for sub in '-base' '' '-extra'; do
done done
done done
%if %build_xen || %build_vanilla %if %build_vanilla
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
@ -655,7 +657,7 @@ if [ %CONFIG_MODULES = y ]; then
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
-b %kernel_build_dir/Module.base \ -b %kernel_build_dir \
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y" %if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-e \ -e \
%endif %endif
@ -666,18 +668,18 @@ if [ %CONFIG_MODULES = y ]; then
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
# The modules.dep file is sorted randomly which produces strange file
# checksums. As the file is not included in the resulting RPM, it's
# pointless to rely on its contents. Replacing by zeros to make the
# checksums always the same for several builds of the same package.
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
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
# The modules.dep file is sorted randomly which produces strange file
# checksums. As the file is not included in the resulting RPM, it's
# pointless to rely on its contents. Replacing by zeros to make the
# checksums always the same for several builds of the same package.
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
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -784,26 +786,35 @@ done | add_dirs_to_filelist >%my_builddir/kernel-devel.files
if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then
find etc/uefi/certs -type f -printf '/%%p\n' find etc/uefi/certs -type f -printf '/%%p\n'
fi fi
# optional per-kernel-release module config workarounds if test -d lib/firmware/%kernelrelease-%build_flavor; then
if test -d etc/modprobe.d; then %if %split_base
find etc/modprobe.d -type f -printf '%%%%config(noreplace) /%%p\n' echo "%%dir /lib/firmware/%kernelrelease-%build_flavor"
cat %my_builddir/base-firmware
%else
echo "/lib/firmware/%kernelrelease-%build_flavor"
%endif
fi fi
test -d lib/firmware/%kernelrelease-%build_flavor && \
find lib/firmware/%kernelrelease-%build_flavor \
-type d -o \
-printf '/%%p\n'
if [ -e .%_docdir/%name ]; then if [ -e .%_docdir/%name ]; then
echo "%%doc %_docdir/%name" echo "%%doc %_docdir/%name"
fi fi
} | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files } | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ {
> %my_builddir/kernel-main.files add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules}
if test -d %buildroot/lib/firmware/%kernelrelease-%build_flavor; then
echo "/lib/firmware/%kernelrelease-%build_flavor"
fi
} > %my_builddir/kernel-main.files
%endif %endif
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
for f in %my_builddir/*-kmp-modules; do
f2=${f%%-modules}.files
add_dirs_to_filelist "$f" >"$f2"
done
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. Note that we skip # much, but it keeps rpmlint from breaking the package build. Note that we skip
@ -838,6 +849,9 @@ Conflicts: %name = %version-%release
@COMMON_DEPS@ @COMMON_DEPS@
@PROVIDES_OBSOLETES_BASE@ @PROVIDES_OBSOLETES_BASE@
%obsolete_rebuilds %name-base %obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
%description base %description base
@DESCRIPTION@ @DESCRIPTION@
@ -875,6 +889,9 @@ Requires(post): mkinitrd
@PROVIDES_OBSOLETES_EXTRA@ @PROVIDES_OBSOLETES_EXTRA@
%obsolete_rebuilds %name-extra %obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu) Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
%description extra %description extra
@DESCRIPTION@ @DESCRIPTION@
@ -900,7 +917,7 @@ This package contains additional modules not supported by Novell.
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man
Summary: The collection of man pages generated by the kmsg script. Summary: The collection of man pages generated by the kmsg script
Group: System/Kernel Group: System/Kernel
%description man %description man
@ -921,6 +938,9 @@ Provides: %name-devel = %version-%source_rel
Provides: multiversion(kernel) Provides: multiversion(kernel)
%if ! %build_vanilla %if ! %build_vanilla
Requires: kernel-devel%variant = %version-%source_rel Requires: kernel-devel%variant = %version-%source_rel
Recommends: make
Recommends: gcc
Recommends: perl
Supplements: packageand(%name:kernel-devel%variant) Supplements: packageand(%name:kernel-devel%variant)
%else %else
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
@ -956,4 +976,67 @@ kernel module packages) against the %build_flavor flavor of the kernel.
%endif %endif
%endif %endif
%if %CONFIG_MODULES == "y" && %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
%package kgraft
Summary: Metapackage to pull in matching kgraft-patch package
Group: System/Kernel
Requires: kgraft-patch-%(echo %version-%source_rel | sed 'y/\./_/')-%build_flavor
Provides: multiversion(kernel)
%description kgraft
This is a metapackage that pulls in the matching kgraft-patch package for a
given kernel version. The advantage of the metapackage is that its name is
static, unlike the kgraft-patch-<kernel-version>-flavor package names.
%files kgraft
# rpmlint complains about empty packages, so lets own something
%defattr(-, root, root)
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
%if %split_base
# BEGIN KMP
%package -n @KMP_NAME@-%build_flavor
Summary: @KMP_SUMMARY@
Group: System/Kernel
Requires: %name = %version-%release
Provides: multiversion(kernel)
Provides: @KMP_NAME@ = %version-%release
# tell weak-modules2 to ignore this package
Provides: kmp_in_kernel
Requires(post): suse-module-tools >= 12.4
%description -n @KMP_NAME@-%build_flavor
@KMP_DESCRIPTION@
%post -n @KMP_NAME@-%build_flavor
wm2=/usr/lib/module-init-tools/weak-modules2
nvr=@KMP_NAME@-%build_flavor-%version-%release
if test -x "$wm2"; then
rpm -ql "$nvr" | INITRD_IN_POSTTRANS=1 /bin/bash -${-/e/} "$wm2" \
--add-kernel-modules %kernelrelease-%build_flavor
fi
%posttrans -n @KMP_NAME@-%build_flavor
%{?regenerate_initrd_posttrans}
%preun -n @KMP_NAME@-%build_flavor
nvr=@KMP_NAME@-%build_flavor-%version-%release
rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
%postun -n @KMP_NAME@-%build_flavor
wm2=/usr/lib/module-init-tools/weak-modules2
nvr=@KMP_NAME@-%build_flavor-%version-%release
if test -x "$wm2"; then
/bin/bash -${-/e/} "$wm2" < "/var/run/rpm-$nvr-modules" \
--remove-kernel-modules %kernelrelease-%build_flavor
fi
rm -f "/var/run/rpm-$nvr-modules"
%files -n @KMP_NAME@-%build_flavor -f @KMP_NAME@.files
%defattr(-, root, root)
# END KMP
%endif
%changelog %changelog

File diff suppressed because it is too large Load Diff

View File

@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt # This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild # needssslcertforbuild
%define srcversion 3.12 %define srcversion 4.6
%define patchversion 3.12.61 %define patchversion 4.6.3
%define variant %{nil} %define variant %{nil}
%define vanilla_only 0 %define vanilla_only 0
@ -28,7 +28,6 @@
%define build_flavor debug %define build_flavor debug
%define build_default ("%build_flavor" == "default") %define build_default ("%build_flavor" == "default")
%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
%define build_vanilla ("%build_flavor" == "vanilla") %define build_vanilla ("%build_flavor" == "vanilla")
%if ! %build_vanilla %if ! %build_vanilla
@ -40,7 +39,7 @@
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj %define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,find-provides,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,find-provides,find-requires,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
@ -62,9 +61,9 @@ Name: kernel-debug
Summary: A Debug Version of the Kernel Summary: A Debug Version of the Kernel
License: GPL-2.0 License: GPL-2.0
Group: System/Kernel Group: System/Kernel
Version: 3.12.61 Version: 4.6.3
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g1c2aaa5 Release: <RELEASE>.gd4bcf2a
%else %else
Release: 0 Release: 0
%endif %endif
@ -80,6 +79,8 @@ BuildRequires: modutils
# Used to sign the kernel in the buildservice # Used to sign the kernel in the buildservice
BuildRequires: openssl BuildRequires: openssl
BuildRequires: pesign-obs-integration BuildRequires: pesign-obs-integration
# for objtool
BuildRequires: libelf-devel
Provides: %name = %version-%source_rel Provides: %name = %version-%source_rel
# bnc#901925 # bnc#901925
Provides: %name-%version-%source_rel Provides: %name-%version-%source_rel
@ -135,9 +136,6 @@ BuildRequires: dwarfextract
%ifarch %arm %ifarch %arm
BuildRequires: u-boot-tools BuildRequires: u-boot-tools
%endif %endif
%if %build_xen
#!BuildIgnore: xen
%endif
Obsoletes: microcode_ctl Obsoletes: microcode_ctl
@ -154,11 +152,20 @@ Conflicts: udev < 118
Conflicts: lvm2 < 2.02.33 Conflicts: lvm2 < 2.02.33
# Interface to hv_kvp_daemon changed # Interface to hv_kvp_daemon changed
Conflicts: hyper-v < 4 Conflicts: hyper-v < 4
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel Provides: kernel = %version-%source_rel
%ifarch ppc64
Provides: kernel-kdump = 2.6.28
Obsoletes: kernel-kdump <= 2.6.28
%endif
%ifarch ppc64
Provides: kernel-kdump-base = 2.6.28
Obsoletes: kernel-kdump-base <= 2.6.28
%endif
%obsolete_rebuilds %name %obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%srcversion.tar.xz Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh Source2: source-post.sh
Source3: kernel-source.rpmlintrc Source3: kernel-source.rpmlintrc
Source8: devel-pre.sh Source8: devel-pre.sh
@ -180,8 +187,9 @@ Source38: README.KSYMS
Source39: config-options.changes.txt Source39: config-options.changes.txt
Source40: source-timestamp Source40: source-timestamp
Source44: find-provides Source44: find-provides
Source45: split-modules Source45: find-requires
Source46: modversions Source46: split-modules
Source47: modversions
Source48: macros.kernel-source Source48: macros.kernel-source
Source49: kernel-module-subpackage Source49: kernel-module-subpackage
Source50: kabi.pl Source50: kabi.pl
@ -205,7 +213,6 @@ Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in Source70: kernel-obs-build.spec.in
Source71: kernel-obs-qa.spec.in Source71: kernel-obs-qa.spec.in
Source72: compress-vmlinux.sh Source72: compress-vmlinux.sh
Source90: SLES-UEFI-SIGN-Certificate-2048.crt
Source100: config.tar.bz2 Source100: config.tar.bz2
Source101: config.addon.tar.bz2 Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2 Source102: patches.arch.tar.bz2
@ -222,10 +229,19 @@ Source112: patches.trace.tar.bz2
Source113: patches.kabi.tar.bz2 Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
Source121: sysctl.tar.bz2 Source121: sysctl.tar.bz2
Source122: modprobe-xen.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: ppc64le x86_64 ExclusiveArch: %ix86 ppc64 ppc64le x86_64
%define kmp_target_cpu %_target_cpu %define kmp_target_cpu %_target_cpu
%ifarch %ix86
# Only i386/default supports i586, mark other flavors' packages as i686
%if ! %build_default
BuildArch: i686
# KMPs are always built as i586, because rpm does not allow to build
# subpackages for different architectures. Therefore, we change the
# /usr/src/linux-obj/<arch> symlink to i586.
%define kmp_target_cpu i586
%endif
%endif
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
@ -252,6 +268,7 @@ NoSource: 40
NoSource: 44 NoSource: 44
NoSource: 45 NoSource: 45
NoSource: 46 NoSource: 46
NoSource: 47
NoSource: 48 NoSource: 48
NoSource: 49 NoSource: 49
NoSource: 50 NoSource: 50
@ -275,7 +292,6 @@ NoSource: 69
NoSource: 70 NoSource: 70
NoSource: 71 NoSource: 71
NoSource: 72 NoSource: 72
NoSource: 90
NoSource: 100 NoSource: 100
NoSource: 101 NoSource: 101
NoSource: 102 NoSource: 102
@ -292,7 +308,6 @@ NoSource: 112
NoSource: 113 NoSource: 113
NoSource: 120 NoSource: 120
NoSource: 121 NoSource: 121
NoSource: 122
# The following KMPs have been integrated into the kernel package, # The following KMPs have been integrated into the kernel package,
# grouped by the last product that contained them. # grouped by the last product that contained them.
@ -342,10 +357,17 @@ Provides: ath3k-firmware = 1.0
%obsolete_kmp compat-wireless 3.12 %obsolete_kmp compat-wireless 3.12
%obsolete_kmp rts5229 1.08 %obsolete_kmp rts5229 1.08
%obsolete_kmp rts_pstor 1.11 %obsolete_kmp rts_pstor 1.11
# sle12-sp1 / Leap 42.1
%obsolete_kmp xen 4.6.1
%obsolete_kmp compat-wireless 4.4
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define _use_internal_dependency_generator 0
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Generate dependencies for KMPs defined in supported.conf
%define __find_requires %_sourcedir/find-requires %name %version-%release %my_builddir
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -376,15 +398,11 @@ mkdir -p %kernel_build_dir
# Generate a list of modules with their support status marking # Generate a list of modules with their support status marking
%_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \ %_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \
awk ' awk '
/^\+(base|yes) / { /\+external / {
print $(NF);
next;
}
/^\+external / {
print $(NF) " external"; print $(NF) " external";
next; next;
} }
/^[-+]/ { /^-/ {
print $(NF) " no"; print $(NF) " no";
next; next;
} }
@ -392,8 +410,11 @@ awk '
print $(NF); print $(NF);
} }
' >%kernel_build_dir/Module.supported ' >%kernel_build_dir/Module.supported
%_sourcedir/guards --default=0 base < %_sourcedir/supported.conf | \ for package in base ; do
sed 's,.*/,,; s,\.ko$,,' | sort -u >%kernel_build_dir/Module.base %_sourcedir/guards --default=0 "$package" \
<%_sourcedir/supported.conf | sed 's,.*/,,; s,\.ko$,,' | \
sort -u >%kernel_build_dir/Module."$package"
done
cd linux-%srcversion cd linux-%srcversion
@ -424,7 +445,17 @@ if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
vanilla_base="default"
%ifarch %ix86
vanilla_base="pae"
%endif
if ! grep -q CONFIG_MMU= "%my_builddir/config/%cpu_arch_flavor"; then
cp "%my_builddir/config/%cpu_arch/$vanilla_base" .config
../scripts/kconfig/merge_config.sh -m .config \
%my_builddir/config/%cpu_arch_flavor
else
cp %my_builddir/config/%cpu_arch_flavor .config cp %my_builddir/config/%cpu_arch_flavor .config
fi
if test -e %my_builddir/config.addon/%cpu_arch_flavor; then if test -e %my_builddir/config.addon/%cpu_arch_flavor; then
# FIXME: config.addon doesn't affect the %CONFIG_ macros defined at # FIXME: config.addon doesn't affect the %CONFIG_ macros defined at
# the top of the specfile # the top of the specfile
@ -462,7 +493,8 @@ fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' -printf '%%P\n' \
> %my_builddir/obj-files
%build %build
cd %kernel_build_dir cd %kernel_build_dir
@ -473,43 +505,21 @@ if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# copy optional module signing files: # copy module signing certificate(s)
# *.x509, *.crt
# - certificates with pubkeys used to verify module and firmware signatures
# at runtime. *.crt files assumed to be in the PEM format.
# signing_key.priv
# - unencrypted private key used to sign modules and firmware during build
# x509.genkey
# - openssl req config to generate a new signing_key.{x509,priv} pair for the
# build
for f in %_sourcedir/*.x509 %_sourcedir/{signing_key.priv,x509.genkey}; do
if test -e "$f"; then
cp "$f" .
fi
done
for f in %_sourcedir/*.crt; do for f in %_sourcedir/*.crt; do
if ! test -e "$f"; then if ! test -e "$f"; then
continue continue
fi fi
out=${f##*/} case "${f##*/}" in
out=${out%.crt}.x509 SLES-UEFI*.crt)
openssl x509 -inform PEM -in "$f" -outform DER -out "$out" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
cp "$f" .
;;
*)
cat "$f" >>keyring.crt
../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
esac
done done
# Convince kernel/Makefile not to generate a new keypair
touch x509.genkey
touch signing_key.x509
%if %build_vanilla
# workaround for the 3.12 vanilla kernel which does not have
# f0e6d22 ("KEYS: Load *.x509 files into kernel keyring)
# but supports an "extra_certificates" file instead
for f in *.x509; do
if test ! -e "$f" -o "$f" = "signing_key.x509"; then
continue
fi
cat "$f" >>extra_certificates
done
%endif
MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}" MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
@ -541,6 +551,11 @@ export BRP_PESIGN_FILES="*.ko"
%if %CONFIG_EFI_STUB == "y" %if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor" BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif %endif
%ifarch %ix86
# XXX: do not sign on x86, as the repackaging changes kernel-pae
# from i686 to i586
BRP_PESIGN_FILES=""
%endif
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
@ -589,9 +604,6 @@ add_vmlinux()
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
image=bzImage image=bzImage
%if %build_xen
test -f arch/x86/boot/$image || image=vmlinuz
%endif
cp -p arch/x86/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor cp -p arch/x86/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor
image=vmlinuz image=vmlinuz
%endif %endif
@ -649,12 +661,6 @@ if test %CONFIG_MODULE_SIG = "y"; then
done done
fi fi
# Install the frontend driver selector file for xen/ec2
%if %build_xen
mkdir -p %buildroot/etc/modprobe.d
cp %_sourcedir/modprobe-xen.conf %buildroot/etc/modprobe.d/50-xen.conf
%endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -692,7 +698,7 @@ for sub in '-base' '' '-extra'; do
done done
done done
%if %build_xen || %build_vanilla %if %build_vanilla
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
@ -784,7 +790,7 @@ if [ %CONFIG_MODULES = y ]; then
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
-b %kernel_build_dir/Module.base \ -b %kernel_build_dir \
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y" %if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-e \ -e \
%endif %endif
@ -795,18 +801,18 @@ if [ %CONFIG_MODULES = y ]; then
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
# The modules.dep file is sorted randomly which produces strange file
# checksums. As the file is not included in the resulting RPM, it's
# pointless to rely on its contents. Replacing by zeros to make the
# checksums always the same for several builds of the same package.
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
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
# The modules.dep file is sorted randomly which produces strange file
# checksums. As the file is not included in the resulting RPM, it's
# pointless to rely on its contents. Replacing by zeros to make the
# checksums always the same for several builds of the same package.
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
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -913,26 +919,35 @@ done | add_dirs_to_filelist >%my_builddir/kernel-devel.files
if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then
find etc/uefi/certs -type f -printf '/%%p\n' find etc/uefi/certs -type f -printf '/%%p\n'
fi fi
# optional per-kernel-release module config workarounds if test -d lib/firmware/%kernelrelease-%build_flavor; then
if test -d etc/modprobe.d; then %if %split_base
find etc/modprobe.d -type f -printf '%%%%config(noreplace) /%%p\n' echo "%%dir /lib/firmware/%kernelrelease-%build_flavor"
cat %my_builddir/base-firmware
%else
echo "/lib/firmware/%kernelrelease-%build_flavor"
%endif
fi fi
test -d lib/firmware/%kernelrelease-%build_flavor && \
find lib/firmware/%kernelrelease-%build_flavor \
-type d -o \
-printf '/%%p\n'
if [ -e .%_docdir/%name ]; then if [ -e .%_docdir/%name ]; then
echo "%%doc %_docdir/%name" echo "%%doc %_docdir/%name"
fi fi
} | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files } | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ {
> %my_builddir/kernel-main.files add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules}
if test -d %buildroot/lib/firmware/%kernelrelease-%build_flavor; then
echo "/lib/firmware/%kernelrelease-%build_flavor"
fi
} > %my_builddir/kernel-main.files
%endif %endif
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
for f in %my_builddir/*-kmp-modules; do
f2=${f%%-modules}.files
add_dirs_to_filelist "$f" >"$f2"
done
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. Note that we skip # much, but it keeps rpmlint from breaking the package build. Note that we skip
@ -987,8 +1002,14 @@ Requires(post): mkinitrd >= 2.7.1
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
%ifarch ppc64
Provides: kernel-kdump-base = 2.6.28
Obsoletes: kernel-kdump-base <= 2.6.28
%endif
%obsolete_rebuilds %name-base %obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
%description base %description base
This kernel has several debug facilities enabled that hurt performance. This kernel has several debug facilities enabled that hurt performance.
@ -1024,9 +1045,15 @@ Requires(pre): coreutils awk
Requires(post): modutils Requires(post): modutils
Requires(post): perl-Bootloader Requires(post): perl-Bootloader
Requires(post): mkinitrd Requires(post): mkinitrd
%ifarch ppc64
Provides: kernel-kdump-extra = 2.6.28
Obsoletes: kernel-kdump-extra <= 2.6.28
%endif
%obsolete_rebuilds %name-extra %obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu) Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
%description extra %description extra
This kernel has several debug facilities enabled that hurt performance. This kernel has several debug facilities enabled that hurt performance.
@ -1053,7 +1080,7 @@ This package contains additional modules not supported by Novell.
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man
Summary: The collection of man pages generated by the kmsg script. Summary: The collection of man pages generated by the kmsg script
Group: System/Kernel Group: System/Kernel
%description man %description man
@ -1074,12 +1101,18 @@ Provides: %name-devel = %version-%source_rel
Provides: multiversion(kernel) Provides: multiversion(kernel)
%if ! %build_vanilla %if ! %build_vanilla
Requires: kernel-devel%variant = %version-%source_rel Requires: kernel-devel%variant = %version-%source_rel
Recommends: make
Recommends: gcc
Recommends: perl
Supplements: packageand(%name:kernel-devel%variant) Supplements: packageand(%name:kernel-devel%variant)
%else %else
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%ifarch ppc64
Provides: kernel-kdump-devel = 2.6.28
Obsoletes: kernel-kdump-devel <= 2.6.28
%endif
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@ -1109,4 +1142,26 @@ kernel module packages) against the %build_flavor flavor of the kernel.
%endif %endif
%endif %endif
%if %CONFIG_MODULES == "y" && %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
%package kgraft
Summary: Metapackage to pull in matching kgraft-patch package
Group: System/Kernel
Requires: kgraft-patch-%(echo %version-%source_rel | sed 'y/\./_/')-%build_flavor
Provides: multiversion(kernel)
%description kgraft
This is a metapackage that pulls in the matching kgraft-patch package for a
given kernel version. The advantage of the metapackage is that its name is
static, unlike the kgraft-patch-<kernel-version>-flavor package names.
%files kgraft
# rpmlint complains about empty packages, so lets own something
%defattr(-, root, root)
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
%if %split_base
%endif
%changelog %changelog

File diff suppressed because it is too large Load Diff

View File

@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt # This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild # needssslcertforbuild
%define srcversion 3.12 %define srcversion 4.6
%define patchversion 3.12.61 %define patchversion 4.6.3
%define variant %{nil} %define variant %{nil}
%define vanilla_only 0 %define vanilla_only 0
@ -28,7 +28,6 @@
%define build_flavor default %define build_flavor default
%define build_default ("%build_flavor" == "default") %define build_default ("%build_flavor" == "default")
%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
%define build_vanilla ("%build_flavor" == "vanilla") %define build_vanilla ("%build_flavor" == "vanilla")
%if ! %build_vanilla %if ! %build_vanilla
@ -40,7 +39,7 @@
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj %define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,find-provides,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,find-provides,find-requires,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
@ -62,9 +61,9 @@ Name: kernel-default
Summary: The Standard Kernel Summary: The Standard Kernel
License: GPL-2.0 License: GPL-2.0
Group: System/Kernel Group: System/Kernel
Version: 3.12.61 Version: 4.6.3
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g1c2aaa5 Release: <RELEASE>.gd4bcf2a
%else %else
Release: 0 Release: 0
%endif %endif
@ -80,6 +79,8 @@ BuildRequires: modutils
# Used to sign the kernel in the buildservice # Used to sign the kernel in the buildservice
BuildRequires: openssl BuildRequires: openssl
BuildRequires: pesign-obs-integration BuildRequires: pesign-obs-integration
# for objtool
BuildRequires: libelf-devel
Provides: %name = %version-%source_rel Provides: %name = %version-%source_rel
# bnc#901925 # bnc#901925
Provides: %name-%version-%source_rel Provides: %name-%version-%source_rel
@ -135,9 +136,6 @@ BuildRequires: dwarfextract
%ifarch %arm %ifarch %arm
BuildRequires: u-boot-tools BuildRequires: u-boot-tools
%endif %endif
%if %build_xen
#!BuildIgnore: xen
%endif
Obsoletes: microcode_ctl Obsoletes: microcode_ctl
@ -154,7 +152,20 @@ Conflicts: udev < 118
Conflicts: lvm2 < 2.02.33 Conflicts: lvm2 < 2.02.33
# Interface to hv_kvp_daemon changed # Interface to hv_kvp_daemon changed
Conflicts: hyper-v < 4 Conflicts: hyper-v < 4
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel Provides: kernel = %version-%source_rel
%ifarch %ix86
Provides: kernel-smp = 2.6.17
Obsoletes: kernel-smp <= 2.6.17
Provides: kernel-trace = 3.13
Obsoletes: kernel-trace <= 3.13
%endif
%ifarch ppc64
Provides: kernel-kdump = 2.6.28
Obsoletes: kernel-kdump <= 2.6.28
%endif
%ifarch s390x %ifarch s390x
Provides: kernel-trace = 3.13 Provides: kernel-trace = 3.13
Obsoletes: kernel-trace <= 3.13 Obsoletes: kernel-trace <= 3.13
@ -164,6 +175,22 @@ Provides: kernel-smp = 2.6.17
Obsoletes: kernel-smp <= 2.6.17 Obsoletes: kernel-smp <= 2.6.17
Provides: kernel-trace = 3.13 Provides: kernel-trace = 3.13
Obsoletes: kernel-trace <= 3.13 Obsoletes: kernel-trace <= 3.13
Provides: kernel-bigsmp = 3.1
Obsoletes: kernel-bigsmp <= 3.1
Provides: kernel-desktop = 4.3
Obsoletes: kernel-desktop <= 4.3
Provides: kernel-xen = 4.4
Obsoletes: kernel-xen <= 4.4
Provides: kernel-ec2 = 4.4
Obsoletes: kernel-ec2 <= 4.4
%endif
%ifarch %ix86
Provides: kernel-trace-base = 3.13
Obsoletes: kernel-trace-base <= 3.13
%endif
%ifarch ppc64
Provides: kernel-kdump-base = 2.6.28
Obsoletes: kernel-kdump-base <= 2.6.28
%endif %endif
%ifarch s390x %ifarch s390x
Provides: kernel-trace-base = 3.13 Provides: kernel-trace-base = 3.13
@ -172,9 +199,17 @@ Obsoletes: kernel-trace-base <= 3.13
%ifarch x86_64 %ifarch x86_64
Provides: kernel-trace-base = 3.13 Provides: kernel-trace-base = 3.13
Obsoletes: kernel-trace-base <= 3.13 Obsoletes: kernel-trace-base <= 3.13
Provides: kernel-bigsmp-base = 3.1
Obsoletes: kernel-bigsmp-base <= 3.1
Provides: kernel-desktop-base = 4.3
Obsoletes: kernel-desktop-base <= 4.3
Provides: kernel-xen-base = 4.4
Obsoletes: kernel-xen-base <= 4.4
Provides: kernel-ec2-base = 4.4
Obsoletes: kernel-ec2-base <= 4.4
%endif %endif
%obsolete_rebuilds %name %obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%srcversion.tar.xz Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh Source2: source-post.sh
Source3: kernel-source.rpmlintrc Source3: kernel-source.rpmlintrc
Source8: devel-pre.sh Source8: devel-pre.sh
@ -196,8 +231,9 @@ Source38: README.KSYMS
Source39: config-options.changes.txt Source39: config-options.changes.txt
Source40: source-timestamp Source40: source-timestamp
Source44: find-provides Source44: find-provides
Source45: split-modules Source45: find-requires
Source46: modversions Source46: split-modules
Source47: modversions
Source48: macros.kernel-source Source48: macros.kernel-source
Source49: kernel-module-subpackage Source49: kernel-module-subpackage
Source50: kabi.pl Source50: kabi.pl
@ -221,7 +257,6 @@ Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in Source70: kernel-obs-build.spec.in
Source71: kernel-obs-qa.spec.in Source71: kernel-obs-qa.spec.in
Source72: compress-vmlinux.sh Source72: compress-vmlinux.sh
Source90: SLES-UEFI-SIGN-Certificate-2048.crt
Source100: config.tar.bz2 Source100: config.tar.bz2
Source101: config.addon.tar.bz2 Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2 Source102: patches.arch.tar.bz2
@ -238,10 +273,19 @@ Source112: patches.trace.tar.bz2
Source113: patches.kabi.tar.bz2 Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
Source121: sysctl.tar.bz2 Source121: sysctl.tar.bz2
Source122: modprobe-xen.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: aarch64 ppc64le s390x x86_64 ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
%define kmp_target_cpu %_target_cpu %define kmp_target_cpu %_target_cpu
%ifarch %ix86
# Only i386/default supports i586, mark other flavors' packages as i686
%if ! %build_default
BuildArch: i686
# KMPs are always built as i586, because rpm does not allow to build
# subpackages for different architectures. Therefore, we change the
# /usr/src/linux-obj/<arch> symlink to i586.
%define kmp_target_cpu i586
%endif
%endif
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
@ -268,6 +312,7 @@ NoSource: 40
NoSource: 44 NoSource: 44
NoSource: 45 NoSource: 45
NoSource: 46 NoSource: 46
NoSource: 47
NoSource: 48 NoSource: 48
NoSource: 49 NoSource: 49
NoSource: 50 NoSource: 50
@ -291,7 +336,6 @@ NoSource: 69
NoSource: 70 NoSource: 70
NoSource: 71 NoSource: 71
NoSource: 72 NoSource: 72
NoSource: 90
NoSource: 100 NoSource: 100
NoSource: 101 NoSource: 101
NoSource: 102 NoSource: 102
@ -308,7 +352,6 @@ NoSource: 112
NoSource: 113 NoSource: 113
NoSource: 120 NoSource: 120
NoSource: 121 NoSource: 121
NoSource: 122
# The following KMPs have been integrated into the kernel package, # The following KMPs have been integrated into the kernel package,
# grouped by the last product that contained them. # grouped by the last product that contained them.
@ -358,10 +401,17 @@ Provides: ath3k-firmware = 1.0
%obsolete_kmp compat-wireless 3.12 %obsolete_kmp compat-wireless 3.12
%obsolete_kmp rts5229 1.08 %obsolete_kmp rts5229 1.08
%obsolete_kmp rts_pstor 1.11 %obsolete_kmp rts_pstor 1.11
# sle12-sp1 / Leap 42.1
%obsolete_kmp xen 4.6.1
%obsolete_kmp compat-wireless 4.4
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define _use_internal_dependency_generator 0
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Generate dependencies for KMPs defined in supported.conf
%define __find_requires %_sourcedir/find-requires %name %version-%release %my_builddir
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -391,15 +441,11 @@ mkdir -p %kernel_build_dir
# Generate a list of modules with their support status marking # Generate a list of modules with their support status marking
%_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \ %_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \
awk ' awk '
/^\+(base|yes) / { /\+external / {
print $(NF);
next;
}
/^\+external / {
print $(NF) " external"; print $(NF) " external";
next; next;
} }
/^[-+]/ { /^-/ {
print $(NF) " no"; print $(NF) " no";
next; next;
} }
@ -407,8 +453,11 @@ awk '
print $(NF); print $(NF);
} }
' >%kernel_build_dir/Module.supported ' >%kernel_build_dir/Module.supported
%_sourcedir/guards --default=0 base < %_sourcedir/supported.conf | \ for package in base ; do
sed 's,.*/,,; s,\.ko$,,' | sort -u >%kernel_build_dir/Module.base %_sourcedir/guards --default=0 "$package" \
<%_sourcedir/supported.conf | sed 's,.*/,,; s,\.ko$,,' | \
sort -u >%kernel_build_dir/Module."$package"
done
cd linux-%srcversion cd linux-%srcversion
@ -439,7 +488,17 @@ if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
vanilla_base="default"
%ifarch %ix86
vanilla_base="pae"
%endif
if ! grep -q CONFIG_MMU= "%my_builddir/config/%cpu_arch_flavor"; then
cp "%my_builddir/config/%cpu_arch/$vanilla_base" .config
../scripts/kconfig/merge_config.sh -m .config \
%my_builddir/config/%cpu_arch_flavor
else
cp %my_builddir/config/%cpu_arch_flavor .config cp %my_builddir/config/%cpu_arch_flavor .config
fi
if test -e %my_builddir/config.addon/%cpu_arch_flavor; then if test -e %my_builddir/config.addon/%cpu_arch_flavor; then
# FIXME: config.addon doesn't affect the %CONFIG_ macros defined at # FIXME: config.addon doesn't affect the %CONFIG_ macros defined at
# the top of the specfile # the top of the specfile
@ -477,7 +536,8 @@ fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' -printf '%%P\n' \
> %my_builddir/obj-files
%build %build
cd %kernel_build_dir cd %kernel_build_dir
@ -488,43 +548,21 @@ if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# copy optional module signing files: # copy module signing certificate(s)
# *.x509, *.crt
# - certificates with pubkeys used to verify module and firmware signatures
# at runtime. *.crt files assumed to be in the PEM format.
# signing_key.priv
# - unencrypted private key used to sign modules and firmware during build
# x509.genkey
# - openssl req config to generate a new signing_key.{x509,priv} pair for the
# build
for f in %_sourcedir/*.x509 %_sourcedir/{signing_key.priv,x509.genkey}; do
if test -e "$f"; then
cp "$f" .
fi
done
for f in %_sourcedir/*.crt; do for f in %_sourcedir/*.crt; do
if ! test -e "$f"; then if ! test -e "$f"; then
continue continue
fi fi
out=${f##*/} case "${f##*/}" in
out=${out%.crt}.x509 SLES-UEFI*.crt)
openssl x509 -inform PEM -in "$f" -outform DER -out "$out" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
cp "$f" .
;;
*)
cat "$f" >>keyring.crt
../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
esac
done done
# Convince kernel/Makefile not to generate a new keypair
touch x509.genkey
touch signing_key.x509
%if %build_vanilla
# workaround for the 3.12 vanilla kernel which does not have
# f0e6d22 ("KEYS: Load *.x509 files into kernel keyring)
# but supports an "extra_certificates" file instead
for f in *.x509; do
if test ! -e "$f" -o "$f" = "signing_key.x509"; then
continue
fi
cat "$f" >>extra_certificates
done
%endif
MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}" MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
@ -556,6 +594,11 @@ export BRP_PESIGN_FILES="*.ko"
%if %CONFIG_EFI_STUB == "y" %if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor" BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif %endif
%ifarch %ix86
# XXX: do not sign on x86, as the repackaging changes kernel-pae
# from i686 to i586
BRP_PESIGN_FILES=""
%endif
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
@ -604,9 +647,6 @@ add_vmlinux()
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
image=bzImage image=bzImage
%if %build_xen
test -f arch/x86/boot/$image || image=vmlinuz
%endif
cp -p arch/x86/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor cp -p arch/x86/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor
image=vmlinuz image=vmlinuz
%endif %endif
@ -664,12 +704,6 @@ if test %CONFIG_MODULE_SIG = "y"; then
done done
fi fi
# Install the frontend driver selector file for xen/ec2
%if %build_xen
mkdir -p %buildroot/etc/modprobe.d
cp %_sourcedir/modprobe-xen.conf %buildroot/etc/modprobe.d/50-xen.conf
%endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -707,7 +741,7 @@ for sub in '-base' '' '-extra'; do
done done
done done
%if %build_xen || %build_vanilla %if %build_vanilla
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
@ -799,7 +833,7 @@ if [ %CONFIG_MODULES = y ]; then
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
-b %kernel_build_dir/Module.base \ -b %kernel_build_dir \
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y" %if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-e \ -e \
%endif %endif
@ -810,18 +844,18 @@ if [ %CONFIG_MODULES = y ]; then
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
# The modules.dep file is sorted randomly which produces strange file
# checksums. As the file is not included in the resulting RPM, it's
# pointless to rely on its contents. Replacing by zeros to make the
# checksums always the same for several builds of the same package.
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
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
# The modules.dep file is sorted randomly which produces strange file
# checksums. As the file is not included in the resulting RPM, it's
# pointless to rely on its contents. Replacing by zeros to make the
# checksums always the same for several builds of the same package.
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
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -928,26 +962,35 @@ done | add_dirs_to_filelist >%my_builddir/kernel-devel.files
if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then
find etc/uefi/certs -type f -printf '/%%p\n' find etc/uefi/certs -type f -printf '/%%p\n'
fi fi
# optional per-kernel-release module config workarounds if test -d lib/firmware/%kernelrelease-%build_flavor; then
if test -d etc/modprobe.d; then %if %split_base
find etc/modprobe.d -type f -printf '%%%%config(noreplace) /%%p\n' echo "%%dir /lib/firmware/%kernelrelease-%build_flavor"
cat %my_builddir/base-firmware
%else
echo "/lib/firmware/%kernelrelease-%build_flavor"
%endif
fi fi
test -d lib/firmware/%kernelrelease-%build_flavor && \
find lib/firmware/%kernelrelease-%build_flavor \
-type d -o \
-printf '/%%p\n'
if [ -e .%_docdir/%name ]; then if [ -e .%_docdir/%name ]; then
echo "%%doc %_docdir/%name" echo "%%doc %_docdir/%name"
fi fi
} | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files } | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ {
> %my_builddir/kernel-main.files add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules}
if test -d %buildroot/lib/firmware/%kernelrelease-%build_flavor; then
echo "/lib/firmware/%kernelrelease-%build_flavor"
fi
} > %my_builddir/kernel-main.files
%endif %endif
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
for f in %my_builddir/*-kmp-modules; do
f2=${f%%-modules}.files
add_dirs_to_filelist "$f" >"$f2"
done
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. Note that we skip # much, but it keeps rpmlint from breaking the package build. Note that we skip
@ -1002,6 +1045,14 @@ Requires(post): mkinitrd >= 2.7.1
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
%ifarch %ix86
Provides: kernel-trace-base = 3.13
Obsoletes: kernel-trace-base <= 3.13
%endif
%ifarch ppc64
Provides: kernel-kdump-base = 2.6.28
Obsoletes: kernel-kdump-base <= 2.6.28
%endif
%ifarch s390x %ifarch s390x
Provides: kernel-trace-base = 3.13 Provides: kernel-trace-base = 3.13
Obsoletes: kernel-trace-base <= 3.13 Obsoletes: kernel-trace-base <= 3.13
@ -1009,8 +1060,19 @@ Obsoletes: kernel-trace-base <= 3.13
%ifarch x86_64 %ifarch x86_64
Provides: kernel-trace-base = 3.13 Provides: kernel-trace-base = 3.13
Obsoletes: kernel-trace-base <= 3.13 Obsoletes: kernel-trace-base <= 3.13
Provides: kernel-bigsmp-base = 3.1
Obsoletes: kernel-bigsmp-base <= 3.1
Provides: kernel-desktop-base = 4.3
Obsoletes: kernel-desktop-base <= 4.3
Provides: kernel-xen-base = 4.4
Obsoletes: kernel-xen-base <= 4.4
Provides: kernel-ec2-base = 4.4
Obsoletes: kernel-ec2-base <= 4.4
%endif %endif
%obsolete_rebuilds %name-base %obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
%description base %description base
The standard kernel for both uniprocessor and multiprocessor systems. The standard kernel for both uniprocessor and multiprocessor systems.
@ -1045,6 +1107,14 @@ Requires(pre): coreutils awk
Requires(post): modutils Requires(post): modutils
Requires(post): perl-Bootloader Requires(post): perl-Bootloader
Requires(post): mkinitrd Requires(post): mkinitrd
%ifarch %ix86
Provides: kernel-trace-extra = 3.13
Obsoletes: kernel-trace-extra <= 3.13
%endif
%ifarch ppc64
Provides: kernel-kdump-extra = 2.6.28
Obsoletes: kernel-kdump-extra <= 2.6.28
%endif
%ifarch s390x %ifarch s390x
Provides: kernel-trace-extra = 3.13 Provides: kernel-trace-extra = 3.13
Obsoletes: kernel-trace-extra <= 3.13 Obsoletes: kernel-trace-extra <= 3.13
@ -1052,9 +1122,20 @@ Obsoletes: kernel-trace-extra <= 3.13
%ifarch x86_64 %ifarch x86_64
Provides: kernel-trace-extra = 3.13 Provides: kernel-trace-extra = 3.13
Obsoletes: kernel-trace-extra <= 3.13 Obsoletes: kernel-trace-extra <= 3.13
Provides: kernel-bigsmp-extra = 3.1
Obsoletes: kernel-bigsmp-extra <= 3.1
Provides: kernel-desktop-extra = 4.3
Obsoletes: kernel-desktop-extra <= 4.3
Provides: kernel-xen-extra = 4.4
Obsoletes: kernel-xen-extra <= 4.4
Provides: kernel-ec2-extra = 4.4
Obsoletes: kernel-ec2-extra <= 4.4
%endif %endif
%obsolete_rebuilds %name-extra %obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu) Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
%description extra %description extra
The standard kernel for both uniprocessor and multiprocessor systems. The standard kernel for both uniprocessor and multiprocessor systems.
@ -1080,7 +1161,7 @@ This package contains additional modules not supported by Novell.
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man
Summary: The collection of man pages generated by the kmsg script. Summary: The collection of man pages generated by the kmsg script
Group: System/Kernel Group: System/Kernel
%description man %description man
@ -1101,11 +1182,22 @@ Provides: %name-devel = %version-%source_rel
Provides: multiversion(kernel) Provides: multiversion(kernel)
%if ! %build_vanilla %if ! %build_vanilla
Requires: kernel-devel%variant = %version-%source_rel Requires: kernel-devel%variant = %version-%source_rel
Recommends: make
Recommends: gcc
Recommends: perl
Supplements: packageand(%name:kernel-devel%variant) Supplements: packageand(%name:kernel-devel%variant)
%else %else
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%ifarch %ix86
Provides: kernel-trace-devel = 3.13
Obsoletes: kernel-trace-devel <= 3.13
%endif
%ifarch ppc64
Provides: kernel-kdump-devel = 2.6.28
Obsoletes: kernel-kdump-devel <= 2.6.28
%endif
%ifarch s390x %ifarch s390x
Provides: kernel-trace-devel = 3.13 Provides: kernel-trace-devel = 3.13
Obsoletes: kernel-trace-devel <= 3.13 Obsoletes: kernel-trace-devel <= 3.13
@ -1113,6 +1205,14 @@ Obsoletes: kernel-trace-devel <= 3.13
%ifarch x86_64 %ifarch x86_64
Provides: kernel-trace-devel = 3.13 Provides: kernel-trace-devel = 3.13
Obsoletes: kernel-trace-devel <= 3.13 Obsoletes: kernel-trace-devel <= 3.13
Provides: kernel-bigsmp-devel = 3.1
Obsoletes: kernel-bigsmp-devel <= 3.1
Provides: kernel-desktop-devel = 4.3
Obsoletes: kernel-desktop-devel <= 4.3
Provides: kernel-xen-devel = 4.4
Obsoletes: kernel-xen-devel <= 4.4
Provides: kernel-ec2-devel = 4.4
Obsoletes: kernel-ec2-devel <= 4.4
%endif %endif
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@ -1143,4 +1243,26 @@ kernel module packages) against the %build_flavor flavor of the kernel.
%endif %endif
%endif %endif
%if %CONFIG_MODULES == "y" && %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
%package kgraft
Summary: Metapackage to pull in matching kgraft-patch package
Group: System/Kernel
Requires: kgraft-patch-%(echo %version-%source_rel | sed 'y/\./_/')-%build_flavor
Provides: multiversion(kernel)
%description kgraft
This is a metapackage that pulls in the matching kgraft-patch package for a
given kernel version. The advantage of the metapackage is that its name is
static, unlike the kgraft-patch-<kernel-version>-flavor package names.
%files kgraft
# rpmlint complains about empty packages, so lets own something
%defattr(-, root, root)
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
%if %split_base
%endif
%changelog %changelog

File diff suppressed because it is too large Load Diff

View File

@ -16,23 +16,37 @@
# #
%define patchversion 3.12.61 %define patchversion 4.6.3
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define use_fop 1
Name: kernel-docs Name: kernel-docs
Summary: Kernel Documentation Summary: Kernel Documentation (man pages)
License: GPL-2.0 License: GPL-2.0
Group: Documentation/Man Group: Documentation/Man
Version: 3.12.61 Version: 4.6.3
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g1c2aaa5 Release: <RELEASE>.gd4bcf2a
%else %else
Release: 0 Release: 0
%endif %endif
BuildRequires: kernel-source%variant BuildRequires: kernel-source%variant
BuildRequires: xmlto BuildRequires: xmlto
%if %use_fop
BuildRequires: fop
%else
BuildRequires: docbook-toys
BuildRequires: docbook-utils
BuildRequires: texlive-courier
BuildRequires: texlive-dvips
BuildRequires: texlive-ec
BuildRequires: texlive-helvetic
BuildRequires: texlive-jadetex
BuildRequires: texlive-times
%endif
Url: http://www.kernel.org/ Url: http://www.kernel.org/
Provides: %name = %version-%source_rel Provides: %name = %version-%source_rel
BuildArch: noarch BuildArch: noarch
@ -43,24 +57,66 @@ Source: kernel-spec-macros
These are the man pages (section 9) built from the current kernel sources. These are the man pages (section 9) built from the current kernel sources.
%source_timestamp %source_timestamp
%package pdf
Summary: Kernel Documentation (PDF)
License: GPL-2.0
Group: Documentation/Other
%description pdf
These are PDF documents built from the current kernel sources.
%source_timestamp
%package html
Summary: Kernel Documentation (HTML)
License: GPL-2.0
Group: Documentation/HTML
%description html
These are HTML documents built from the current kernel sources.
%source_timestamp
%prep %prep
%if !%use_fop
cp -av /etc/texmf/web2c/texmf.cnf .
cat << EOF >> texmf.cnf
main_memory.pdfjadetex = 5000000
hash_extra.pdfjadetex = 140000
max_strings.pdfjadetex = 240000
save_size.pdfjadetex = 20000
EOF
%endif
%setup -T -c %setup -T -c
%build %build
%if !%use_fop
# use texmf.cnf from local source
export TEXMFCNF=$RPM_BUILD_DIR
%endif
export LANG=en_US export LANG=en_US
make -C /usr/src/linux%variant O=$PWD mandocs %{?jobs:-j%jobs} mkdir -p man
make -C /usr/src/linux%variant O=$PWD/man mandocs %{?jobs:-j%jobs}
mkdir -p html
make -C /usr/src/linux%variant O=$PWD/html htmldocs %{?jobs:-j%jobs}
mkdir -p pdf
make \
%if %use_fop
XMLTOFLAGS="-m /usr/src/linux%{variant}/Documentation/DocBook/stylesheet.xsl --skip-validation --with-fop" \
%endif
-C /usr/src/linux%variant O=$PWD/pdf pdfdocs %{?jobs:-j%jobs}
%install %install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/%{_mandir}/man9 install -d $RPM_BUILD_ROOT/%{_mandir}/man9
# filter out obscure device drivers - they clutter up the rpm and don't add any real value # filter out obscure device drivers - they clutter up the rpm and don't add any real value
find Documentation/DocBook/ -name '*.9.gz' | find man/Documentation/DocBook/ -name '*.9.gz' |
egrep -v 'man/(sis[69]|rio|fsl|struct_rio|RIO|mpc85|set_rx_mode|mdio_(read|write)|mii_ioctl|mca_|z8530|nand|sppp|piix|(read|write)_zs)' | grep -E -v 'man/(sis[69]|rio|fsl|struct_rio|RIO|mpc85|set_rx_mode|mdio_(read|write)|mii_ioctl|mca_|z8530|nand|sppp|piix|(read|write)_zs)' |
while read i ; do while read i ; do
cp $i $RPM_BUILD_ROOT/%{_mandir}/man9 cp $i $RPM_BUILD_ROOT/%{_mandir}/man9
done done
if [ -d Documentation/kdb ] ; then if [ -d man/Documentation/kdb ] ; then
for i in Documentation/kdb/*.m* ; do for i in man/Documentation/kdb/*.m* ; do
k=`basename $i` k=`basename $i`
k=${k/man/9} k=${k/man/9}
k=${k/mm/9} k=${k/mm/9}
@ -68,16 +124,34 @@ if [ -d Documentation/kdb ] ; then
done done
fi fi
ln -s /usr/share/man/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT/usr/share/man/man9/request_irq.9.gz ln -s %{_mandir}/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT%{_mandir}/man9/request_irq.9.gz
install -d $RPM_BUILD_ROOT%{_datadir}/doc/kernel/pdf
cp -a pdf/Documentation/DocBook/*.pdf $RPM_BUILD_ROOT%{_datadir}/doc/kernel/pdf || true
install -d $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html
cp -a html/Documentation/DocBook/* $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html || true
rm -f $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html/*.xml
rm -f $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html/*.{gif,png}
rm -f $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html/*/*.proc
cp -a /usr/src/linux%variant/{COPYING,CREDITS,MAINTAINERS,README,REPORTING-BUGS} . cp -a /usr/src/linux%variant/{COPYING,CREDITS,MAINTAINERS,README,REPORTING-BUGS} .
%clean
rm -rf $RPM_BUILD_ROOT
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc COPYING CREDITS MAINTAINERS README REPORTING-BUGS %doc COPYING CREDITS MAINTAINERS README REPORTING-BUGS
%{_mandir}/man9/* %{_mandir}/man9/*
%files pdf
%defattr(-,root,root)
%dir %{_datadir}/doc/kernel
%docdir %{_datadir}/doc/kernel/pdf
%{_datadir}/doc/kernel/pdf
%files html
%defattr(-,root,root)
%dir %{_datadir}/doc/kernel
%docdir %{_datadir}/doc/kernel/html
%{_datadir}/doc/kernel/html
%changelog %changelog

View File

@ -21,8 +21,10 @@
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%define use_fop 1
Name: kernel-docs@VARIANT@ Name: kernel-docs@VARIANT@
Summary: Kernel Documentation Summary: Kernel Documentation (man pages)
License: GPL-2.0 License: GPL-2.0
Group: Documentation/Man Group: Documentation/Man
Version: @RPMVERSION@ Version: @RPMVERSION@
@ -33,6 +35,18 @@ Release: @RELEASE@
%endif %endif
BuildRequires: kernel-source%variant BuildRequires: kernel-source%variant
BuildRequires: xmlto BuildRequires: xmlto
%if %use_fop
BuildRequires: fop
%else
BuildRequires: docbook-toys
BuildRequires: docbook-utils
BuildRequires: texlive-courier
BuildRequires: texlive-dvips
BuildRequires: texlive-ec
BuildRequires: texlive-helvetic
BuildRequires: texlive-jadetex
BuildRequires: texlive-times
%endif
Url: http://www.kernel.org/ Url: http://www.kernel.org/
Provides: %name = %version-%source_rel Provides: %name = %version-%source_rel
BuildArch: noarch BuildArch: noarch
@ -43,24 +57,66 @@ Source: kernel-spec-macros
These are the man pages (section 9) built from the current kernel sources. These are the man pages (section 9) built from the current kernel sources.
%source_timestamp %source_timestamp
%package pdf
Summary: Kernel Documentation (PDF)
License: GPL-2.0
Group: Documentation/Other
%description pdf
These are PDF documents built from the current kernel sources.
%source_timestamp
%package html
Summary: Kernel Documentation (HTML)
License: GPL-2.0
Group: Documentation/HTML
%description html
These are HTML documents built from the current kernel sources.
%source_timestamp
%prep %prep
%if !%use_fop
cp -av /etc/texmf/web2c/texmf.cnf .
cat << EOF >> texmf.cnf
main_memory.pdfjadetex = 5000000
hash_extra.pdfjadetex = 140000
max_strings.pdfjadetex = 240000
save_size.pdfjadetex = 20000
EOF
%endif
%setup -T -c %setup -T -c
%build %build
%if !%use_fop
# use texmf.cnf from local source
export TEXMFCNF=$RPM_BUILD_DIR
%endif
export LANG=en_US export LANG=en_US
make -C /usr/src/linux%variant O=$PWD mandocs %{?jobs:-j%jobs} mkdir -p man
make -C /usr/src/linux%variant O=$PWD/man mandocs %{?jobs:-j%jobs}
mkdir -p html
make -C /usr/src/linux%variant O=$PWD/html htmldocs %{?jobs:-j%jobs}
mkdir -p pdf
make \
%if %use_fop
XMLTOFLAGS="-m /usr/src/linux%{variant}/Documentation/DocBook/stylesheet.xsl --skip-validation --with-fop" \
%endif
-C /usr/src/linux%variant O=$PWD/pdf pdfdocs %{?jobs:-j%jobs}
%install %install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/%{_mandir}/man9 install -d $RPM_BUILD_ROOT/%{_mandir}/man9
# filter out obscure device drivers - they clutter up the rpm and don't add any real value # filter out obscure device drivers - they clutter up the rpm and don't add any real value
find Documentation/DocBook/ -name '*.9.gz' | find man/Documentation/DocBook/ -name '*.9.gz' |
egrep -v 'man/(sis[69]|rio|fsl|struct_rio|RIO|mpc85|set_rx_mode|mdio_(read|write)|mii_ioctl|mca_|z8530|nand|sppp|piix|(read|write)_zs)' | grep -E -v 'man/(sis[69]|rio|fsl|struct_rio|RIO|mpc85|set_rx_mode|mdio_(read|write)|mii_ioctl|mca_|z8530|nand|sppp|piix|(read|write)_zs)' |
while read i ; do while read i ; do
cp $i $RPM_BUILD_ROOT/%{_mandir}/man9 cp $i $RPM_BUILD_ROOT/%{_mandir}/man9
done done
if [ -d Documentation/kdb ] ; then if [ -d man/Documentation/kdb ] ; then
for i in Documentation/kdb/*.m* ; do for i in man/Documentation/kdb/*.m* ; do
k=`basename $i` k=`basename $i`
k=${k/man/9} k=${k/man/9}
k=${k/mm/9} k=${k/mm/9}
@ -68,16 +124,34 @@ if [ -d Documentation/kdb ] ; then
done done
fi fi
ln -s /usr/share/man/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT/usr/share/man/man9/request_irq.9.gz ln -s %{_mandir}/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT%{_mandir}/man9/request_irq.9.gz
install -d $RPM_BUILD_ROOT%{_datadir}/doc/kernel/pdf
cp -a pdf/Documentation/DocBook/*.pdf $RPM_BUILD_ROOT%{_datadir}/doc/kernel/pdf || true
install -d $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html
cp -a html/Documentation/DocBook/* $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html || true
rm -f $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html/*.xml
rm -f $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html/*.{gif,png}
rm -f $RPM_BUILD_ROOT%{_datadir}/doc/kernel/html/*/*.proc
cp -a /usr/src/linux%variant/{COPYING,CREDITS,MAINTAINERS,README,REPORTING-BUGS} . cp -a /usr/src/linux%variant/{COPYING,CREDITS,MAINTAINERS,README,REPORTING-BUGS} .
%clean
rm -rf $RPM_BUILD_ROOT
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc COPYING CREDITS MAINTAINERS README REPORTING-BUGS %doc COPYING CREDITS MAINTAINERS README REPORTING-BUGS
%{_mandir}/man9/* %{_mandir}/man9/*
%files pdf
%defattr(-,root,root)
%dir %{_datadir}/doc/kernel
%docdir %{_datadir}/doc/kernel/pdf
%{_datadir}/doc/kernel/pdf
%files html
%defattr(-,root,root)
%dir %{_datadir}/doc/kernel
%docdir %{_datadir}/doc/kernel/html
%{_datadir}/doc/kernel/html
%changelog %changelog

41981
kernel-lpae.changes Normal file

File diff suppressed because it is too large Load Diff

1152
kernel-lpae.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@ -28,6 +28,18 @@ Requires: coreutils grep
Enhances: kernel-%1 Enhances: kernel-%1
%if %1 == "default" %if %1 == "default"
Obsoletes: %{-n*}-kmp-trace Obsoletes: %{-n*}-kmp-trace
%ifarch %ix86
Obsoletes: %{-n*}-kmp-vmi
%endif
%ifarch x86_64
Obsoletes: %{-n*}-kmp-desktop
%endif
%ifarch %ix86 x86_64
Obsoletes: %{-n*}-kmp-xen
%endif
%endif
%if %1 == "pae"
Obsoletes: %{-n*}-kmp-desktop
%endif %endif
AutoReqProv: on AutoReqProv: on
%{-p:%{expand:%(cd %_sourcedir; cat %{-p*})}} %{-p:%{expand:%(cd %_sourcedir; cat %{-p*})}}

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@
#!BuildIgnore: post-build-checks #!BuildIgnore: post-build-checks
%define patchversion 3.12.61 %define patchversion 4.6.3
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
@ -39,10 +39,7 @@ BuildRequires: kernel
%define kernel_flavor "" %define kernel_flavor ""
%endif %endif
%ifarch %ix86 x86_64 ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
BuildRequires: kernel-xen
%endif
ExclusiveArch: aarch64 ppc64le s390x x86_64
%if 0%{?suse_version} < 1315 %if 0%{?suse_version} < 1315
# For SLE 11 # For SLE 11
BuildRequires: mkinitrd BuildRequires: mkinitrd
@ -54,9 +51,9 @@ BuildRequires: dracut
Summary: package kernel and initrd for OBS VM builds Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0 License: GPL-2.0
Group: SLES Group: SLES
Version: 3.12.61 Version: 4.6.3
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g1c2aaa5 Release: <RELEASE>.gd4bcf2a
%else %else
Release: 0 Release: 0
%endif %endif
@ -99,10 +96,14 @@ info " binfmt misc..."
modprobe binfmt_misc modprobe binfmt_misc
EOF EOF
chmod a+rx /usr/lib/dracut/modules.d/80obs/setup_obs.sh chmod a+rx /usr/lib/dracut/modules.d/80obs/setup_obs.sh
# Configure systemd in kernel-obs-build's initrd not to limit TasksMax,
# we run with build as PID 1 (boo#965564)
echo "DefaultTasksMax=infinity" >> /etc/systemd/system.conf
echo "DefaultTasksAccounting=no" >> /etc/systemd/system.conf
# a longer list to have them also available for qemu cross builds where x86_64 kernel runs in eg. arm env. # a longer list to have them also available for qemu cross builds where x86_64 kernel runs in eg. arm env.
# this list of modules where available on build workers of build.opensuse.org, so we stay compatible. # this list of modules where available on build workers of build.opensuse.org, so we stay compatible.
export KERNEL_MODULES="loop dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 reiserfs btrfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat nls_cp437 nls_iso8859-1 ibmvscsi sd_mod" export KERNEL_MODULES="loop dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 reiserfs btrfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat nls_cp437 nls_iso8859-1 ibmvscsi sd_mod e1000 ibmveth"
# manually load all modules to make sure they're available # manually load all modules to make sure they're available
for i in $KERNEL_MODULES; do for i in $KERNEL_MODULES; do
@ -131,16 +132,8 @@ ROOT=""
/sbin/mkinitrd $ROOT \ /sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \ -m "$KERNEL_MODULES" \
-k /boot/%{kernel_name}-*-default -M /boot/System.map-*-default -i /tmp/initrd.kvm -B -k /boot/%{kernel_name}-*-default -M /boot/System.map-*-default -i /tmp/initrd.kvm -B
%ifarch %ix86 x86_64
/sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \
-k /boot/vmlinuz-xen -M /boot/System.map-*-xen -i /tmp/initrd.xen
%endif
%else %else
dracut --host-only --drivers="$KERNEL_MODULES" --force /tmp/initrd.kvm `echo /boot/%{kernel_name}-*%{kernel_flavor} | sed -n -e 's,[^-]*-\(.*'%{kernel_flavor}'\),\1,p'` dracut --host-only --drivers="$KERNEL_MODULES" --force /tmp/initrd.kvm `echo /boot/%{kernel_name}-*%{kernel_flavor} | sed -n -e 's,[^-]*-\(.*'%{kernel_flavor}'\),\1,p'`
%ifarch %ix86 x86_64
dracut --host-only --drivers="$KERNEL_MODULES xenblk" --force /tmp/initrd.xen `echo /boot/%{kernel_name}-*-xen | sed -n -e 's,[^-]*-\(.*-xen\),\1,p'`
%endif
%endif %endif
@ -151,10 +144,6 @@ rm -rf /usr/lib/dracut/modules.d/80obs
install -d -m 0755 $RPM_BUILD_ROOT install -d -m 0755 $RPM_BUILD_ROOT
cp -v /boot/%{kernel_name}-*%{kernel_flavor} $RPM_BUILD_ROOT/.build.kernel.kvm cp -v /boot/%{kernel_name}-*%{kernel_flavor} $RPM_BUILD_ROOT/.build.kernel.kvm
cp -v /tmp/initrd.kvm $RPM_BUILD_ROOT/.build.initrd.kvm cp -v /tmp/initrd.kvm $RPM_BUILD_ROOT/.build.initrd.kvm
%ifarch %ix86 x86_64
cp -v /boot/%{kernel_name}-*-xen $RPM_BUILD_ROOT/.build.kernel.xen
cp -v /tmp/initrd.xen $RPM_BUILD_ROOT/.build.initrd.xen
%endif
#inform worker about arch #inform worker about arch
#see obs-build commit e47399d738e51 #see obs-build commit e47399d738e51

View File

@ -39,9 +39,6 @@ BuildRequires: kernel
%define kernel_flavor "" %define kernel_flavor ""
%endif %endif
%ifarch %ix86 x86_64
BuildRequires: kernel-xen
%endif
ExclusiveArch: @ARCHS@ ExclusiveArch: @ARCHS@
%if 0%{?suse_version} < 1315 %if 0%{?suse_version} < 1315
# For SLE 11 # For SLE 11
@ -99,10 +96,14 @@ info " binfmt misc..."
modprobe binfmt_misc modprobe binfmt_misc
EOF EOF
chmod a+rx /usr/lib/dracut/modules.d/80obs/setup_obs.sh chmod a+rx /usr/lib/dracut/modules.d/80obs/setup_obs.sh
# Configure systemd in kernel-obs-build's initrd not to limit TasksMax,
# we run with build as PID 1 (boo#965564)
echo "DefaultTasksMax=infinity" >> /etc/systemd/system.conf
echo "DefaultTasksAccounting=no" >> /etc/systemd/system.conf
# a longer list to have them also available for qemu cross builds where x86_64 kernel runs in eg. arm env. # a longer list to have them also available for qemu cross builds where x86_64 kernel runs in eg. arm env.
# this list of modules where available on build workers of build.opensuse.org, so we stay compatible. # this list of modules where available on build workers of build.opensuse.org, so we stay compatible.
export KERNEL_MODULES="loop dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 reiserfs btrfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat nls_cp437 nls_iso8859-1 ibmvscsi sd_mod" export KERNEL_MODULES="loop dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 reiserfs btrfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat nls_cp437 nls_iso8859-1 ibmvscsi sd_mod e1000 ibmveth"
# manually load all modules to make sure they're available # manually load all modules to make sure they're available
for i in $KERNEL_MODULES; do for i in $KERNEL_MODULES; do
@ -131,16 +132,8 @@ ROOT=""
/sbin/mkinitrd $ROOT \ /sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \ -m "$KERNEL_MODULES" \
-k /boot/%{kernel_name}-*-default -M /boot/System.map-*-default -i /tmp/initrd.kvm -B -k /boot/%{kernel_name}-*-default -M /boot/System.map-*-default -i /tmp/initrd.kvm -B
%ifarch %ix86 x86_64
/sbin/mkinitrd $ROOT \
-m "$KERNEL_MODULES" \
-k /boot/vmlinuz-xen -M /boot/System.map-*-xen -i /tmp/initrd.xen
%endif
%else %else
dracut --host-only --drivers="$KERNEL_MODULES" --force /tmp/initrd.kvm `echo /boot/%{kernel_name}-*%{kernel_flavor} | sed -n -e 's,[^-]*-\(.*'%{kernel_flavor}'\),\1,p'` dracut --host-only --drivers="$KERNEL_MODULES" --force /tmp/initrd.kvm `echo /boot/%{kernel_name}-*%{kernel_flavor} | sed -n -e 's,[^-]*-\(.*'%{kernel_flavor}'\),\1,p'`
%ifarch %ix86 x86_64
dracut --host-only --drivers="$KERNEL_MODULES xenblk" --force /tmp/initrd.xen `echo /boot/%{kernel_name}-*-xen | sed -n -e 's,[^-]*-\(.*-xen\),\1,p'`
%endif
%endif %endif
@ -151,10 +144,6 @@ rm -rf /usr/lib/dracut/modules.d/80obs
install -d -m 0755 $RPM_BUILD_ROOT install -d -m 0755 $RPM_BUILD_ROOT
cp -v /boot/%{kernel_name}-*%{kernel_flavor} $RPM_BUILD_ROOT/.build.kernel.kvm cp -v /boot/%{kernel_name}-*%{kernel_flavor} $RPM_BUILD_ROOT/.build.kernel.kvm
cp -v /tmp/initrd.kvm $RPM_BUILD_ROOT/.build.initrd.kvm cp -v /tmp/initrd.kvm $RPM_BUILD_ROOT/.build.initrd.kvm
%ifarch %ix86 x86_64
cp -v /boot/%{kernel_name}-*-xen $RPM_BUILD_ROOT/.build.kernel.xen
cp -v /tmp/initrd.xen $RPM_BUILD_ROOT/.build.initrd.xen
%endif
#inform worker about arch #inform worker about arch
#see obs-build commit e47399d738e51 #see obs-build commit e47399d738e51

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,7 @@
# needsrootforbuild # needsrootforbuild
%define patchversion 3.12.61 %define patchversion 4.6.3
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
@ -28,7 +28,7 @@ BuildRequires: kernel-default
# here as well to avoid that qa and build package build parallel # here as well to avoid that qa and build package build parallel
BuildRequires: kernel-obs-build BuildRequires: kernel-obs-build
BuildRequires: modutils BuildRequires: modutils
ExclusiveArch: aarch64 ppc64le s390x x86_64 ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
%if 0%{?suse_version} < 1200 %if 0%{?suse_version} < 1200
# for SLE 11 # for SLE 11
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -36,9 +36,9 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: Basic QA tests for the kernel Summary: Basic QA tests for the kernel
License: GPL-2.0 License: GPL-2.0
Group: SLES Group: SLES
Version: 3.12.61 Version: 4.6.3
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g1c2aaa5 Release: <RELEASE>.gd4bcf2a
%else %else
Release: 0 Release: 0
%endif %endif

41981
kernel-pae.changes Normal file

File diff suppressed because it is too large Load Diff

1217
kernel-pae.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -9,3 +9,7 @@ addFilter("dangling-symlink /lib/modules/[1-9].*/source")
addFilter("hidden-file-or-dir /usr/src/linux-.*-obj/.*/.config") addFilter("hidden-file-or-dir /usr/src/linux-.*-obj/.*/.config")
addFilter("hidden-file-or-dir /usr/src/linux-.*-obj/.*/.kernel-binary.spec.buildenv") addFilter("hidden-file-or-dir /usr/src/linux-.*-obj/.*/.kernel-binary.spec.buildenv")
addFilter("hidden-file-or-dir /boot/\..*\.hmac") addFilter("hidden-file-or-dir /boot/\..*\.hmac")
# This check ensures that KMPs are built using the %kernel_module_package
# macro, but we are deliberately not doing this for KMPs built from the
# kernel spec file (fate#319339)
addFilter("suse-policy-kmp-missing-supplements")

View File

@ -17,8 +17,8 @@
# icecream 0 # icecream 0
%define srcversion 3.12 %define srcversion 4.6
%define patchversion 3.12.61 %define patchversion 4.6.3
%define variant %{nil} %define variant %{nil}
%define vanilla_only 0 %define vanilla_only 0
@ -30,9 +30,9 @@ Name: kernel-source
Summary: The Linux Kernel Sources Summary: The Linux Kernel Sources
License: GPL-2.0 License: GPL-2.0
Group: Development/Sources Group: Development/Sources
Version: 3.12.61 Version: 4.6.3
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g1c2aaa5 Release: <RELEASE>.gd4bcf2a
%else %else
Release: 0 Release: 0
%endif %endif
@ -45,7 +45,7 @@ Requires(post): coreutils sed
Provides: %name = %version-%source_rel Provides: %name = %version-%source_rel
Provides: linux Provides: linux
Provides: multiversion(kernel) Provides: multiversion(kernel)
Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%srcversion.tar.xz Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh Source2: source-post.sh
Source3: kernel-source.rpmlintrc Source3: kernel-source.rpmlintrc
Source8: devel-pre.sh Source8: devel-pre.sh
@ -67,8 +67,9 @@ Source38: README.KSYMS
Source39: config-options.changes.txt Source39: config-options.changes.txt
Source40: source-timestamp Source40: source-timestamp
Source44: find-provides Source44: find-provides
Source45: split-modules Source45: find-requires
Source46: modversions Source46: split-modules
Source47: modversions
Source48: macros.kernel-source Source48: macros.kernel-source
Source49: kernel-module-subpackage Source49: kernel-module-subpackage
Source50: kabi.pl Source50: kabi.pl
@ -92,7 +93,6 @@ Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in Source70: kernel-obs-build.spec.in
Source71: kernel-obs-qa.spec.in Source71: kernel-obs-qa.spec.in
Source72: compress-vmlinux.sh Source72: compress-vmlinux.sh
Source90: SLES-UEFI-SIGN-Certificate-2048.crt
Source100: config.tar.bz2 Source100: config.tar.bz2
Source101: config.addon.tar.bz2 Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2 Source102: patches.arch.tar.bz2
@ -109,14 +109,13 @@ Source112: patches.trace.tar.bz2
Source113: patches.kabi.tar.bz2 Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
Source121: sysctl.tar.bz2 Source121: sysctl.tar.bz2
Source122: modprobe-xen.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch BuildArch: noarch
Prefix: /usr/src Prefix: /usr/src
# Source is only complete with devel files. # Source is only complete with devel files.
Requires: kernel-devel%variant = %version-%release Requires: kernel-devel%variant = %version-%release
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,find-provides,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,find-provides,find-requires,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh})
%define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
%define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac) %define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac)
@ -154,7 +153,7 @@ This package provides the rpm macros and templates for Kernel Module Pakcages
%source_timestamp %source_timestamp
%package vanilla %package vanilla
Summary: Vanilla Linux kernel sources with minor build fixes. Summary: Vanilla Linux kernel sources with minor build fixes
Group: Development/Sources Group: Development/Sources
AutoReqProv: off AutoReqProv: off
Provides: %name-vanilla = %version-%source_rel Provides: %name-vanilla = %version-%source_rel

View File

@ -67,8 +67,9 @@ Source38: README.KSYMS
Source39: config-options.changes.txt Source39: config-options.changes.txt
Source40: source-timestamp Source40: source-timestamp
Source44: find-provides Source44: find-provides
Source45: split-modules Source45: find-requires
Source46: modversions Source46: split-modules
Source47: modversions
Source48: macros.kernel-source Source48: macros.kernel-source
Source49: kernel-module-subpackage Source49: kernel-module-subpackage
Source50: kabi.pl Source50: kabi.pl
@ -92,7 +93,6 @@ Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in Source70: kernel-obs-build.spec.in
Source71: kernel-obs-qa.spec.in Source71: kernel-obs-qa.spec.in
Source72: compress-vmlinux.sh Source72: compress-vmlinux.sh
Source90: SLES-UEFI-SIGN-Certificate-2048.crt
Source100: config.tar.bz2 Source100: config.tar.bz2
Source101: config.addon.tar.bz2 Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2 Source102: patches.arch.tar.bz2
@ -109,7 +109,6 @@ Source112: patches.trace.tar.bz2
Source113: patches.kabi.tar.bz2 Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
Source121: sysctl.tar.bz2 Source121: sysctl.tar.bz2
Source122: modprobe-xen.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch BuildArch: noarch
Prefix: /usr/src Prefix: /usr/src
@ -154,7 +153,7 @@ This package provides the rpm macros and templates for Kernel Module Pakcages
%source_timestamp %source_timestamp
%package vanilla %package vanilla
Summary: Vanilla Linux kernel sources with minor build fixes. Summary: Vanilla Linux kernel sources with minor build fixes
Group: Development/Sources Group: Development/Sources
AutoReqProv: off AutoReqProv: off
Provides: %name-vanilla = %version-%source_rel Provides: %name-vanilla = %version-%source_rel

File diff suppressed because it is too large Load Diff

View File

@ -24,10 +24,10 @@ Name: kernel-syms
Summary: Kernel Symbol Versions (modversions) Summary: Kernel Symbol Versions (modversions)
License: GPL-2.0 License: GPL-2.0
Group: Development/Sources Group: Development/Sources
Version: 3.12.61 Version: 4.6.3
%if %using_buildservice %if %using_buildservice
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g1c2aaa5 Release: <RELEASE>.gd4bcf2a
%else %else
Release: 0 Release: 0
%endif %endif
@ -38,11 +38,14 @@ Release: %kernel_source_release
Url: http://www.kernel.org/ Url: http://www.kernel.org/
AutoReqProv: off AutoReqProv: off
BuildRequires: coreutils BuildRequires: coreutils
%ifarch aarch64 ppc64le s390x x86_64 %ifarch aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
Requires: kernel-default-devel = %version-%source_rel Requires: kernel-default-devel = %version-%source_rel
%endif %endif
%ifarch x86_64 %ifarch armv7hl
Requires: kernel-xen-devel = %version-%source_rel Requires: kernel-lpae-devel = %version-%source_rel
%endif
%ifarch %ix86
Requires: kernel-pae-devel = %version-%source_rel
%endif %endif
Requires: pesign-obs-integration Requires: pesign-obs-integration
Provides: %name = %version-%source_rel Provides: %name = %version-%source_rel
@ -50,7 +53,7 @@ Provides: multiversion(kernel)
Source: README.KSYMS Source: README.KSYMS
Requires: kernel-devel%variant = %version-%source_rel Requires: kernel-devel%variant = %version-%source_rel
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: aarch64 ppc64le s390x x86_64 ExclusiveArch: %ix86 aarch64 armv6hl armv7hl ppc64 ppc64le s390x x86_64
Prefix: /usr/src Prefix: /usr/src
%description %description

File diff suppressed because it is too large Load Diff

View File

@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt # This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild # needssslcertforbuild
%define srcversion 3.12 %define srcversion 4.6
%define patchversion 3.12.61 %define patchversion 4.6.3
%define variant %{nil} %define variant %{nil}
%define vanilla_only 0 %define vanilla_only 0
@ -28,7 +28,6 @@
%define build_flavor vanilla %define build_flavor vanilla
%define build_default ("%build_flavor" == "default") %define build_default ("%build_flavor" == "default")
%define build_xen ("%build_flavor" == "xen" || "%build_flavor" == "ec2")
%define build_vanilla ("%build_flavor" == "vanilla") %define build_vanilla ("%build_flavor" == "vanilla")
%if ! %build_vanilla %if ! %build_vanilla
@ -40,7 +39,7 @@
%define rpm_install_dir %buildroot%obj_install_dir %define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj %define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,find-provides,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,find-provides,find-requires,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu) %global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
@ -62,9 +61,9 @@ Name: kernel-vanilla
Summary: The Standard Kernel - without any SUSE patches Summary: The Standard Kernel - without any SUSE patches
License: GPL-2.0 License: GPL-2.0
Group: System/Kernel Group: System/Kernel
Version: 3.12.61 Version: 4.6.3
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g1c2aaa5 Release: <RELEASE>.gd4bcf2a
%else %else
Release: 0 Release: 0
%endif %endif
@ -80,6 +79,8 @@ BuildRequires: modutils
# Used to sign the kernel in the buildservice # Used to sign the kernel in the buildservice
BuildRequires: openssl BuildRequires: openssl
BuildRequires: pesign-obs-integration BuildRequires: pesign-obs-integration
# for objtool
BuildRequires: libelf-devel
Provides: %name = %version-%source_rel Provides: %name = %version-%source_rel
# bnc#901925 # bnc#901925
Provides: %name-%version-%source_rel Provides: %name-%version-%source_rel
@ -135,9 +136,6 @@ BuildRequires: dwarfextract
%ifarch %arm %ifarch %arm
BuildRequires: u-boot-tools BuildRequires: u-boot-tools
%endif %endif
%if %build_xen
#!BuildIgnore: xen
%endif
Obsoletes: microcode_ctl Obsoletes: microcode_ctl
@ -154,11 +152,14 @@ Conflicts: udev < 118
Conflicts: lvm2 < 2.02.33 Conflicts: lvm2 < 2.02.33
# Interface to hv_kvp_daemon changed # Interface to hv_kvp_daemon changed
Conflicts: hyper-v < 4 Conflicts: hyper-v < 4
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel Provides: kernel = %version-%source_rel
%obsolete_rebuilds %name %obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%srcversion.tar.xz Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh Source2: source-post.sh
Source3: kernel-source.rpmlintrc Source3: kernel-source.rpmlintrc
Source8: devel-pre.sh Source8: devel-pre.sh
@ -180,8 +181,9 @@ Source38: README.KSYMS
Source39: config-options.changes.txt Source39: config-options.changes.txt
Source40: source-timestamp Source40: source-timestamp
Source44: find-provides Source44: find-provides
Source45: split-modules Source45: find-requires
Source46: modversions Source46: split-modules
Source47: modversions
Source48: macros.kernel-source Source48: macros.kernel-source
Source49: kernel-module-subpackage Source49: kernel-module-subpackage
Source50: kabi.pl Source50: kabi.pl
@ -205,7 +207,6 @@ Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in Source70: kernel-obs-build.spec.in
Source71: kernel-obs-qa.spec.in Source71: kernel-obs-qa.spec.in
Source72: compress-vmlinux.sh Source72: compress-vmlinux.sh
Source90: SLES-UEFI-SIGN-Certificate-2048.crt
Source100: config.tar.bz2 Source100: config.tar.bz2
Source101: config.addon.tar.bz2 Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2 Source102: patches.arch.tar.bz2
@ -222,10 +223,19 @@ Source112: patches.trace.tar.bz2
Source113: patches.kabi.tar.bz2 Source113: patches.kabi.tar.bz2
Source120: kabi.tar.bz2 Source120: kabi.tar.bz2
Source121: sysctl.tar.bz2 Source121: sysctl.tar.bz2
Source122: modprobe-xen.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: s390x x86_64 ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
%define kmp_target_cpu %_target_cpu %define kmp_target_cpu %_target_cpu
%ifarch %ix86
# Only i386/default supports i586, mark other flavors' packages as i686
%if ! %build_default
BuildArch: i686
# KMPs are always built as i586, because rpm does not allow to build
# subpackages for different architectures. Therefore, we change the
# /usr/src/linux-obj/<arch> symlink to i586.
%define kmp_target_cpu i586
%endif
%endif
# These files are found in the kernel-source package: # These files are found in the kernel-source package:
NoSource: 0 NoSource: 0
@ -252,6 +262,7 @@ NoSource: 40
NoSource: 44 NoSource: 44
NoSource: 45 NoSource: 45
NoSource: 46 NoSource: 46
NoSource: 47
NoSource: 48 NoSource: 48
NoSource: 49 NoSource: 49
NoSource: 50 NoSource: 50
@ -275,7 +286,6 @@ NoSource: 69
NoSource: 70 NoSource: 70
NoSource: 71 NoSource: 71
NoSource: 72 NoSource: 72
NoSource: 90
NoSource: 100 NoSource: 100
NoSource: 101 NoSource: 101
NoSource: 102 NoSource: 102
@ -292,7 +302,6 @@ NoSource: 112
NoSource: 113 NoSource: 113
NoSource: 120 NoSource: 120
NoSource: 121 NoSource: 121
NoSource: 122
# The following KMPs have been integrated into the kernel package, # The following KMPs have been integrated into the kernel package,
# grouped by the last product that contained them. # grouped by the last product that contained them.
@ -342,10 +351,17 @@ Provides: ath3k-firmware = 1.0
%obsolete_kmp compat-wireless 3.12 %obsolete_kmp compat-wireless 3.12
%obsolete_kmp rts5229 1.08 %obsolete_kmp rts5229 1.08
%obsolete_kmp rts_pstor 1.11 %obsolete_kmp rts_pstor 1.11
# sle12-sp1 / Leap 42.1
%obsolete_kmp xen 4.6.1
%obsolete_kmp compat-wireless 4.4
# Provide the exported symbols as "ksym(symbol) = hash" # Provide the exported symbols as "ksym(symbol) = hash"
%define _use_internal_dependency_generator 0
%define __find_provides %_sourcedir/find-provides %name %define __find_provides %_sourcedir/find-provides %name
# Generate dependencies for KMPs defined in supported.conf
%define __find_requires %_sourcedir/find-requires %name %version-%release %my_builddir
# Will modules not listed in supported.conf abort the kernel build (0/1)? # Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0 %define supported_modules_check 0
@ -375,15 +391,11 @@ mkdir -p %kernel_build_dir
# Generate a list of modules with their support status marking # Generate a list of modules with their support status marking
%_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \ %_sourcedir/guards --list --with-guards <%_sourcedir/supported.conf | \
awk ' awk '
/^\+(base|yes) / { /\+external / {
print $(NF);
next;
}
/^\+external / {
print $(NF) " external"; print $(NF) " external";
next; next;
} }
/^[-+]/ { /^-/ {
print $(NF) " no"; print $(NF) " no";
next; next;
} }
@ -391,8 +403,11 @@ awk '
print $(NF); print $(NF);
} }
' >%kernel_build_dir/Module.supported ' >%kernel_build_dir/Module.supported
%_sourcedir/guards --default=0 base < %_sourcedir/supported.conf | \ for package in base ; do
sed 's,.*/,,; s,\.ko$,,' | sort -u >%kernel_build_dir/Module.base %_sourcedir/guards --default=0 "$package" \
<%_sourcedir/supported.conf | sed 's,.*/,,; s,\.ko$,,' | \
sort -u >%kernel_build_dir/Module."$package"
done
cd linux-%srcversion cd linux-%srcversion
@ -423,7 +438,17 @@ if [ -f %_sourcedir/localversion ] ; then
cat %_sourcedir/localversion > localversion cat %_sourcedir/localversion > localversion
fi fi
vanilla_base="default"
%ifarch %ix86
vanilla_base="pae"
%endif
if ! grep -q CONFIG_MMU= "%my_builddir/config/%cpu_arch_flavor"; then
cp "%my_builddir/config/%cpu_arch/$vanilla_base" .config
../scripts/kconfig/merge_config.sh -m .config \
%my_builddir/config/%cpu_arch_flavor
else
cp %my_builddir/config/%cpu_arch_flavor .config cp %my_builddir/config/%cpu_arch_flavor .config
fi
if test -e %my_builddir/config.addon/%cpu_arch_flavor; then if test -e %my_builddir/config.addon/%cpu_arch_flavor; then
# FIXME: config.addon doesn't affect the %CONFIG_ macros defined at # FIXME: config.addon doesn't affect the %CONFIG_ macros defined at
# the top of the specfile # the top of the specfile
@ -461,7 +486,8 @@ fi
make clean $MAKE_ARGS make clean $MAKE_ARGS
rm -f source rm -f source
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' -printf '%%P\n' \
> %my_builddir/obj-files
%build %build
cd %kernel_build_dir cd %kernel_build_dir
@ -472,43 +498,21 @@ if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_ %_sourcedir/modversions --unpack . < $_
fi fi
# copy optional module signing files: # copy module signing certificate(s)
# *.x509, *.crt
# - certificates with pubkeys used to verify module and firmware signatures
# at runtime. *.crt files assumed to be in the PEM format.
# signing_key.priv
# - unencrypted private key used to sign modules and firmware during build
# x509.genkey
# - openssl req config to generate a new signing_key.{x509,priv} pair for the
# build
for f in %_sourcedir/*.x509 %_sourcedir/{signing_key.priv,x509.genkey}; do
if test -e "$f"; then
cp "$f" .
fi
done
for f in %_sourcedir/*.crt; do for f in %_sourcedir/*.crt; do
if ! test -e "$f"; then if ! test -e "$f"; then
continue continue
fi fi
out=${f##*/} case "${f##*/}" in
out=${out%.crt}.x509 SLES-UEFI*.crt)
openssl x509 -inform PEM -in "$f" -outform DER -out "$out" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
cp "$f" .
;;
*)
cat "$f" >>keyring.crt
../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
esac
done done
# Convince kernel/Makefile not to generate a new keypair
touch x509.genkey
touch signing_key.x509
%if %build_vanilla
# workaround for the 3.12 vanilla kernel which does not have
# f0e6d22 ("KEYS: Load *.x509 files into kernel keyring)
# but supports an "extra_certificates" file instead
for f in *.x509; do
if test ! -e "$f" -o "$f" = "signing_key.x509"; then
continue
fi
cat "$f" >>extra_certificates
done
%endif
MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}" MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
@ -540,6 +544,11 @@ export BRP_PESIGN_FILES="*.ko"
%if %CONFIG_EFI_STUB == "y" %if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor" BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif %endif
%ifarch %ix86
# XXX: do not sign on x86, as the repackaging changes kernel-pae
# from i686 to i586
BRP_PESIGN_FILES=""
%endif
# get rid of /usr/lib/rpm/brp-strip-debug # get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary # strip removes too much from the vmlinux ELF binary
@ -588,9 +597,6 @@ add_vmlinux()
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
add_vmlinux --compressed add_vmlinux --compressed
image=bzImage image=bzImage
%if %build_xen
test -f arch/x86/boot/$image || image=vmlinuz
%endif
cp -p arch/x86/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor cp -p arch/x86/boot/$image %buildroot/boot/vmlinuz-%kernelrelease-%build_flavor
image=vmlinuz image=vmlinuz
%endif %endif
@ -648,12 +654,6 @@ if test %CONFIG_MODULE_SIG = "y"; then
done done
fi fi
# Install the frontend driver selector file for xen/ec2
%if %build_xen
mkdir -p %buildroot/etc/modprobe.d
cp %_sourcedir/modprobe-xen.conf %buildroot/etc/modprobe.d/50-xen.conf
%endif
for sub in '-base' '' '-extra'; do for sub in '-base' '' '-extra'; do
case "$sub" in case "$sub" in
'-base' | '') base_package=1 ;; '-base' | '') base_package=1 ;;
@ -691,7 +691,7 @@ for sub in '-base' '' '-extra'; do
done done
done done
%if %build_xen || %build_vanilla %if %build_vanilla
# keep this -suffix list in sync with post.sh and postun.sh # keep this -suffix list in sync with post.sh and postun.sh
suffix=-%build_flavor suffix=-%build_flavor
%endif %endif
@ -783,7 +783,7 @@ if [ %CONFIG_MODULES = y ]; then
%if %split_base %if %split_base
%_sourcedir/split-modules -d %buildroot \ %_sourcedir/split-modules -d %buildroot \
-o %my_builddir \ -o %my_builddir \
-b %kernel_build_dir/Module.base \ -b %kernel_build_dir \
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y" %if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-e \ -e \
%endif %endif
@ -794,18 +794,18 @@ if [ %CONFIG_MODULES = y ]; then
cat %my_builddir/unsupported-modules >>%my_builddir/main-modules cat %my_builddir/unsupported-modules >>%my_builddir/main-modules
%endif %endif
# The modules.dep file is sorted randomly which produces strange file
# checksums. As the file is not included in the resulting RPM, it's
# pointless to rely on its contents. Replacing by zeros to make the
# checksums always the same for several builds of the same package.
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
%else %else
( cd %buildroot ( cd %buildroot
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n' find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules ) > %my_builddir/base-modules
%endif %endif
# The modules.dep file is sorted randomly which produces strange file
# checksums. As the file is not included in the resulting RPM, it's
# pointless to rely on its contents. Replacing by zeros to make the
# checksums always the same for several builds of the same package.
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
res=0 res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes # check for kabi changes
@ -912,26 +912,35 @@ done | add_dirs_to_filelist >%my_builddir/kernel-devel.files
if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then
find etc/uefi/certs -type f -printf '/%%p\n' find etc/uefi/certs -type f -printf '/%%p\n'
fi fi
# optional per-kernel-release module config workarounds if test -d lib/firmware/%kernelrelease-%build_flavor; then
if test -d etc/modprobe.d; then %if %split_base
find etc/modprobe.d -type f -printf '%%%%config(noreplace) /%%p\n' echo "%%dir /lib/firmware/%kernelrelease-%build_flavor"
cat %my_builddir/base-firmware
%else
echo "/lib/firmware/%kernelrelease-%build_flavor"
%endif
fi fi
test -d lib/firmware/%kernelrelease-%build_flavor && \
find lib/firmware/%kernelrelease-%build_flavor \
-type d -o \
-printf '/%%p\n'
if [ -e .%_docdir/%name ]; then if [ -e .%_docdir/%name ]; then
echo "%%doc %_docdir/%name" echo "%%doc %_docdir/%name"
fi fi
} | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files } | sort -u | add_dirs_to_filelist >%my_builddir/kernel-base.files
%if %split_base %if %split_base
add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules} \ {
> %my_builddir/kernel-main.files add_dirs_to_filelist %my_builddir/{kernel-base.files,main-modules}
if test -d %buildroot/lib/firmware/%kernelrelease-%build_flavor; then
echo "/lib/firmware/%kernelrelease-%build_flavor"
fi
} > %my_builddir/kernel-main.files
%endif %endif
%if %split_extra %if %split_extra
add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files add_dirs_to_filelist %my_builddir/unsupported-modules > %my_builddir/kernel-extra.files
%endif %endif
for f in %my_builddir/*-kmp-modules; do
f2=${f%%-modules}.files
add_dirs_to_filelist "$f" >"$f2"
done
# Hardlink duplicate files automatically (from package fdupes): It doesn't save # Hardlink duplicate files automatically (from package fdupes): It doesn't save
# much, but it keeps rpmlint from breaking the package build. Note that we skip # much, but it keeps rpmlint from breaking the package build. Note that we skip
@ -988,6 +997,9 @@ Requires(post): distribution-release
%obsolete_rebuilds %name-base %obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
%description base %description base
The standard kernel - without any SUSE patches The standard kernel - without any SUSE patches
@ -1025,6 +1037,9 @@ Requires(post): mkinitrd
%obsolete_rebuilds %name-extra %obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu) Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
%description extra %description extra
The standard kernel - without any SUSE patches The standard kernel - without any SUSE patches
@ -1050,7 +1065,7 @@ This package contains additional modules not supported by Novell.
%if %CONFIG_KMSG_IDS == "y" %if %CONFIG_KMSG_IDS == "y"
%package man %package man
Summary: The collection of man pages generated by the kmsg script. Summary: The collection of man pages generated by the kmsg script
Group: System/Kernel Group: System/Kernel
%description man %description man
@ -1071,6 +1086,9 @@ Provides: %name-devel = %version-%source_rel
Provides: multiversion(kernel) Provides: multiversion(kernel)
%if ! %build_vanilla %if ! %build_vanilla
Requires: kernel-devel%variant = %version-%source_rel Requires: kernel-devel%variant = %version-%source_rel
Recommends: make
Recommends: gcc
Recommends: perl
Supplements: packageand(%name:kernel-devel%variant) Supplements: packageand(%name:kernel-devel%variant)
%else %else
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
@ -1106,4 +1124,26 @@ kernel module packages) against the %build_flavor flavor of the kernel.
%endif %endif
%endif %endif
%if %CONFIG_MODULES == "y" && %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
%package kgraft
Summary: Metapackage to pull in matching kgraft-patch package
Group: System/Kernel
Requires: kgraft-patch-%(echo %version-%source_rel | sed 'y/\./_/')-%build_flavor
Provides: multiversion(kernel)
%description kgraft
This is a metapackage that pulls in the matching kgraft-patch package for a
given kernel version. The advantage of the metapackage is that its name is
static, unlike the kgraft-patch-<kernel-version>-flavor package names.
%files kgraft
# rpmlint complains about empty packages, so lets own something
%defattr(-, root, root)
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
%if %split_base
%endif
%changelog %changelog

3
linux-4.6.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a93771cd5a8ad27798f22e9240538dfea48d3a2bf2a6a6ab415de3f02d25d866
size 89461728

57
mkspec
View File

@ -23,6 +23,8 @@ my %syms_flavor_archs = parse_config_conf("syms");
# template name -> template body # template name -> template body
my %templates = read_spec_templates(); my %templates = read_spec_templates();
my @kmps = read_kmps();
# config.sh variables # config.sh variables
my %vars = parse_config_sh(); my %vars = parse_config_sh();
my ($srcversion, $variant, $vanilla_only) = my ($srcversion, $variant, $vanilla_only) =
@ -88,6 +90,23 @@ my %macros = (
); );
# binary spec files # binary spec files
my $kmp_definitions = "";
for my $kmp (@kmps) {
my ($summary, $description);
if (!exists($binary_descriptions{$kmp})) {
print STDERR "warning: no description for $kmp found\n";
($summary = $kmp) =~ s/-kmp$//;
$summary .= " kernel modules";
$description = "$summary.";
} else {
$summary = $binary_descriptions{$kmp}->[0];
$description = $binary_descriptions{$kmp}->[1];
}
$kmp_definitions .= expand_template("kmp",
KMP_NAME => $kmp,
KMP_SUMMARY => $summary,
KMP_DESCRIPTION => $description);
}
for my $flavor (sort keys(%flavor_archs)) { for my $flavor (sort keys(%flavor_archs)) {
my ($summary, $description); my ($summary, $description);
if (!exists($binary_descriptions{"kernel-$flavor"})) { if (!exists($binary_descriptions{"kernel-$flavor"})) {
@ -112,6 +131,8 @@ for my $flavor (sort keys(%flavor_archs)) {
DESCRIPTION => $description, DESCRIPTION => $description,
ARCHS => join(" ", arch2rpm(@{$flavor_archs{$flavor}})), ARCHS => join(" ", arch2rpm(@{$flavor_archs{$flavor}})),
COMMON_DEPS => $templates{common_deps}, COMMON_DEPS => $templates{common_deps},
KMPS => join(" ", @kmps),
KMP_DEFINITIONS => $kmp_definitions,
%obsolete_macros %obsolete_macros
); );
} }
@ -216,6 +237,12 @@ sub read_spec_templates {
print STDERR "warning: Expected # BEGIN COMMON DEPS in kernel-binary.spec.in\n"; print STDERR "warning: Expected # BEGIN COMMON DEPS in kernel-binary.spec.in\n";
$res{common_deps} = ""; $res{common_deps} = "";
} }
if ($res{$template} =~ s/^# BEGIN KMP\n?(.*)^# END KMP/\@KMP_DEFINITIONS\@/ms) {
$res{kmp} = $1;
} else {
print STDERR "warning: Expected # BEGIN KMP in kernel-binary.spec.in\n";
$res{kmp} = "";
}
} }
{ {
xopen(my $fh, '<', "$dir/constraints.in"); xopen(my $fh, '<', "$dir/constraints.in");
@ -290,6 +317,24 @@ sub parse_descriptions {
return %res; return %res;
} }
sub read_kmps {
my %res;
open(my $fh, '-|', "$dir/guards", "--list", "--with-guards",
"-c", "$dir/supported.conf") or die "Error running guards: $!\n";
while (<$fh>) {
my @guards = split(' ');
pop(@guards);
for my $g (@guards) {
if ($g =~ /^\+(.*-kmp)$/) {
$res{$1} = 1;
}
}
}
close($fh) or die "Error running guards: $!\n";
return sort(keys(%res));
}
sub parse_old_flavors{ sub parse_old_flavors{
my %res; my %res;
@ -394,9 +439,8 @@ sub get_commit {
return $commit; return $commit;
} }
sub do_spec { sub expand_template {
my $template = shift; my $template = shift;
my $specfile = shift;
my %macros = @_; my %macros = @_;
my $text = $templates{$template}; my $text = $templates{$template};
@ -407,6 +451,15 @@ sub do_spec {
$text =~ s/\@$m\@/$macros{$m}/g; $text =~ s/\@$m\@/$macros{$m}/g;
} }
} while ($prev_text ne $text); } while ($prev_text ne $text);
return $text;
}
sub do_spec {
my $template = shift;
my $specfile = shift;
my %macros = @_;
my $text = expand_template($template, %macros);
print "$specfile\n"; print "$specfile\n";
xopen(my $fh, '>', "$dir/$specfile"); xopen(my $fh, '>', "$dir/$specfile");
print $fh $text; print $fh $text;

View File

@ -1,10 +1,45 @@
# List of obsolete kernel flavors # List of obsolete kernel flavors
# <arch>/<new flavor> <old flavor> <upper bound of shipped versions> # <arch>/<new flavor> <old flavor> <upper bound of shipped versions>
# SLES 9
ia64/default sn2 2.6.6
ppc/ppc64 pmac64 2.6.6
ppc/ppc64 pseries64 2.6.6
# SLES 10 # SLES 10
i386/default smp 2.6.17
i386/pae bigsmp 2.6.17
i386/xen xenpae 2.6.17
x86_64/default smp 2.6.17 x86_64/default smp 2.6.17
ppc/ppc64 iseries64 2.6.17
ppc/ppc64 kdump 2.6.17
# SLES 11 GA only
# FIXME: more architectures had kdump in SLES 10
ppc64/debug kdump 2.6.28
ppc64/default kdump 2.6.28
ppc64/ppc64 kdump 2.6.28
ppc64/trace kdump 2.6.28
# SLES 11 GA only / 11.4
i386/pae vmi 2.6.38
# SLES 11 SP3 / openSUSE 13.1 # SLES 11 SP3 / openSUSE 13.1
i386/default trace 3.13
x86_64/default trace 3.13 x86_64/default trace 3.13
x86_64/default bigsmp 3.1
s390x/default trace 3.13 s390x/default trace 3.13
# openSUSE 13.2 / Tumbleweed until 2015-10-01
i386/pae desktop 4.3
x86_64/default desktop 4.3
i386/pae xen 4.4
i386/pae ec2 4.4
x86_64/default xen 4.4
x86_64/default ec2 4.4

View File

@ -20,6 +20,18 @@ The Standard Kernel
The standard kernel for both uniprocessor and multiprocessor systems. The standard kernel for both uniprocessor and multiprocessor systems.
=== kernel-pae ===
Kernel with PAE Support
This kernel supports up to 64GB of main memory. It requires Physical
Addressing Extensions (PAE), which were introduced with the Pentium Pro
processor.
PAE is not only more physical address space but also important for the
"no execute" feature which disables execution of code that is marked as
non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory.
=== kernel-vanilla === === kernel-vanilla ===
The Standard Kernel - without any SUSE patches The Standard Kernel - without any SUSE patches
@ -38,8 +50,37 @@ The Amazon EC2 Xen Kernel
The Linux kernel for Xen paravirtualization. The Linux kernel for Xen paravirtualization.
This kernel can only be used both as an unprivileged ("xenU") This kernel can only be used as an unprivileged ("xenU") kernel
kernel (for Amazon EC2). (mainly, but not exclusively, for Amazon EC2).
=== kernel-pv ===
The para-virtualized Kernel
The Linux kernel for Xen (and other) paravirtualization, using pv-ops
in the Xen/x86 case, in which case it can be used both as the domain0
("xen0") and as an unprivileged ("xenU") kernel.
=== kernel-lpae ===
Kernel for LPAE enabled systems
The kernel for all 32-bit ARM platforms that support LPAE. This includes all
Cortex A15 based SoCs, like the Exynos5, OMAP5 or Calxeda ECX-2000.
=== kernel-cubox ===
Kernel for SolidRun Cubox
The standard kernel for Marvell Dove SoC, as found in
the SolidRun Cubox.
=== kernel-exynos ===
Kernel for Samsung's Exynos SoC
The standard kernel for Samsung's Exynos 4 & 5 SoC, as found in the Origen board.
=== kernel-versatile ===
Kernel for Versatile SoC
The standard kernel for Versatile SoC, or for emulation with QEMU.
=== kernel-zfcpdump === === kernel-zfcpdump ===
The IBM System Z zfcpdump Kernel The IBM System Z zfcpdump Kernel

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:64999760d0fd4940838022648dd94e6461f8f253fe7f43603e2c08e46dece9dd oid sha256:c25c250242611927b31cfa921fd04b7a4b2b174bf866533c1adb6cc15aec17ee
size 6317 size 6206

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:7e86c0031ee2c41c0236b54d7b1db4583aa7af6b3d808f4276f984174f6fd539 oid sha256:21df83b915ff06c7edb0a3fa34ac1e5724db276f0c515119919ebe14390a5fe9
size 834000 size 200984

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5e31aceeb662b9760292d17fdac646e670d610f4e0fee5dae45b6bd48c12e6e8 oid sha256:a2bd76db12bf5bdcb463cd7771cf9eb01f8efb4a2eefca55eae215fb20bd90df
size 2328266 size 4964

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:38090b8dd61d69a4ebed612fd66b15bbaec0448aeaec8a50ba1f07f982112e61 oid sha256:c3387a1daf18c80ddd6bddb79ddee608cf5b91cd17da4c10fa5a01edcd9f941d
size 640765 size 12282

BIN
patches.kabi.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:2e3f3b91c84f208c9ba32460c56ec8d8697246890dd2f33b6ab70d342efb511f oid sha256:0e33bc8d20f98fd909fd090248cb8e01645495b34f30e6f87ce6ce982f568536
size 2188848 size 115840

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:c5e245dbca71b5da1bd1a8dc3a91fa7510dedfe678e02c25f5f79826093b5b2b oid sha256:90b3565e7317ba1dcd9dfda42b02258a83916b1aa1d75f3c8e6fff099fc69c9f
size 3679 size 2828

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:a23cdda5c3f708dd42bbb3f1b064cf7a844f9e34dc5abcf888511571385829b0 oid sha256:d963b35132f29fe1abc9822d43d08f6fa5859a2af3709179e2006fa4381a6e2c
size 1681159 size 59843

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5e908b95bb0ed533830acc5d8c703955160ad3495520e6205d8b5829fcc18309 oid sha256:6dfe8549f6e38f0b10c457737af3d0abb9e8001f0716350e97012671ec1657b6
size 1909883 size 130

View File

@ -2,11 +2,9 @@
touch /boot/do_purge_kernels touch /boot/do_purge_kernels
suffix= suffix=
case @FLAVOR@ in if test "@FLAVOR@" = "vanilla"; then
xen*|ec2|vanilla)
suffix=-@FLAVOR@ suffix=-@FLAVOR@
;; fi
esac
for x in /boot/@IMAGE@ /boot/initrd; do for x in /boot/@IMAGE@ /boot/initrd; do
rm -f $x$suffix rm -f $x$suffix
ln -s ${x##*/}-@KERNELRELEASE@-@FLAVOR@ $x$suffix ln -s ${x##*/}-@KERNELRELEASE@-@FLAVOR@ $x$suffix

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,3 @@
2016-06-15 16:03:26 +0200 2016-06-26 09:34:33 +0200
GIT Revision: 1c2aaa5c797fabfd29562f85592cabd6465e6191 GIT Revision: d4bcf2abd85a8d69da9d3f3e4e5dc57c556bca61
GIT Branch: SLE12 GIT Branch: stable

View File

@ -19,7 +19,7 @@ if test $? -ne 0; then
exit 1 exit 1
fi fi
eval set -- "$options" eval set -- "$options"
opt_base= opt_builddir=
opt_out=. opt_out=.
opt_dir=. opt_dir=.
opt_ignore_errors=false opt_ignore_errors=false
@ -34,7 +34,7 @@ while test $# -gt 0; do
esac esac
case "$opt" in case "$opt" in
-b) -b)
opt_base=$arg ;; opt_builddir=$arg ;;
-d) -d)
opt_dir=$arg ;; opt_dir=$arg ;;
-o) -o)
@ -50,7 +50,7 @@ while test $# -gt 0; do
exit 1 exit 1
esac esac
done done
if test -z "$opt_base"; then if test -z "$opt_builddir"; then
usage >&2 usage >&2
exit 1 exit 1
fi fi
@ -110,15 +110,34 @@ add_dependent_modules()
} }
# base # base
sed 'y/-/_/' <"$opt_base" | add_dependent_modules >"$tmp/base" sed 'y/-/_/' <"$opt_builddir/Module.base" | add_dependent_modules >"$tmp/base"
join -j 1 -o 2.2 "$tmp/base" "$tmp/all" >"$opt_out/base-modules" join -j 1 -o 2.2 "$tmp/base" "$tmp/all" >"$opt_out/base-modules"
# base firmware
kver=$(make -s -C "$opt_builddir" kernelrelease)
if test -d "$opt_dir/lib/firmware/$kver"; then
join <(/sbin/modinfo -F firmware \
$(sed "s:^:$opt_dir:" "$opt_out/base-modules") | sort) \
<(find "$opt_dir/lib/firmware/$kver" -type f -printf '%P\n' | sort)
fi | sed "s:^:/lib/firmware/$kver/:" >"$opt_out/base-firmware"
# kmps
for f in "$opt_builddir"/Module.*-kmp; do
kmp=${f##*/Module.}
sed 'y/-/_/' <"$f" >"$tmp/$kmp"
join -j 1 -o 2.2 "$tmp/$kmp" "$tmp/all" >"$opt_out/$kmp-modules"
cat "$tmp/$kmp"
done | sort -u >"$tmp/kmp-all"
join -v1 "$tmp/supp" "$tmp/kmp-all" >"$tmp/supp-main"
# main # main
add_dependent_modules "$tmp/supp-explain" <"$tmp/supp" >"$tmp/supp-all" add_dependent_modules "$tmp/supp-explain" <"$tmp/supp-main" >"$tmp/supp-all"
if ! cmp -s "$tmp/supp" "$tmp/supp-all"; then if ! cmp -s "$tmp/supp-main" "$tmp/supp-all"; then
# FIXME: Error message not accurate if a supported KMP module is
# needed by a module in the main package
echo "The following unsupported modules are used by supported modules:" >&2 echo "The following unsupported modules are used by supported modules:" >&2
join -j1 -a2 <(sort "$tmp/supp-explain") \ join -j1 -a2 <(sort "$tmp/supp-explain") \
<(join -v2 "$tmp/supp" "$tmp/supp-all") >&2 <(join -v2 "$tmp/supp-main" "$tmp/supp-all") >&2
echo "Please fix supported.conf." >&2 echo "Please fix supported.conf." >&2
if ! $opt_ignore_errors; then if ! $opt_ignore_errors; then
exit 1 exit 1
@ -127,7 +146,7 @@ fi
join -j 1 -o 2.2 "$tmp/supp-all" "$tmp/all" >"$opt_out/main-modules" join -j 1 -o 2.2 "$tmp/supp-all" "$tmp/all" >"$opt_out/main-modules"
# unsupported # unsupported
join -j 1 -v 2 -o 2.2 "$tmp/supp-all" "$tmp/all" >"$opt_out/unsupported-modules" join -j 1 -v 2 -o 2.2 <(sort -u "$tmp/supp-all" "$tmp/kmp-all") "$tmp/all" >"$opt_out/unsupported-modules"
exit 0 exit 0

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:4f52f53a399072b4b65065e3e6a7d8644e7b6d7cec0d95ce99c25498d5211210 oid sha256:f9b11db009db01d930ee604ba73105eb260790a62fdf3daf5521cb0aeacc22c3
size 870 size 841