Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2018-04-22 14:38:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-source (Old)
and /work/SRC/openSUSE:Factory/.kernel-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source"
Sun Apr 22 14:38:35 2018 rev:421 rq:598818 version:4.16.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes 2018-04-16 12:44:23.999129656 +0200
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/dtb-aarch64.changes 2018-04-22 14:38:41.711018225 +0200
@@ -1,0 +2,156 @@
+Thu Apr 19 22:52:31 CEST 2018 - jslaby@suse.cz
+
+- Linux 4.16.3 (bnc#1012628).
+- cdc_ether: flag the Cinterion AHS8 modem by gemalto as WWAN
+ (bnc#1012628).
+- rds: MP-RDS may use an invalid c_path (bnc#1012628).
+- slip: Check if rstate is initialized before uncompressing
+ (bnc#1012628).
+- vhost: fix vhost_vq_access_ok() log check (bnc#1012628).
+- l2tp: fix races in tunnel creation (bnc#1012628).
+- l2tp: fix race in duplicate tunnel detection (bnc#1012628).
+- ip_gre: clear feature flags when incompatible o_flags are set
+ (bnc#1012628).
+- vhost: Fix vhost_copy_to_user() (bnc#1012628).
+- lan78xx: Correctly indicate invalid OTP (bnc#1012628).
+- sparc64: Properly range check DAX completion index
+ (bnc#1012628).
+- media: v4l2-compat-ioctl32: don't oops on overlay (bnc#1012628).
+- media: v4l: vsp1: Fix header display list status check in
+ continuous mode (bnc#1012628).
+- ipmi: Fix some error cleanup issues (bnc#1012628).
+- parisc: Fix out of array access in match_pci_device()
+ (bnc#1012628).
+- parisc: Fix HPMC handler by increasing size to multiple of 16
+ bytes (bnc#1012628).
+- iwlwifi: add a bunch of new 9000 PCI IDs (bnc#1012628).
+- Drivers: hv: vmbus: do not mark HV_PCIE as perf_device
+ (bnc#1012628).
+- PCI: hv: Serialize the present and eject work items
+ (bnc#1012628).
+- PCI: hv: Fix 2 hang issues in hv_compose_msi_msg()
+ (bnc#1012628).
+- KVM: PPC: Book3S HV: trace_tlbie must not be called in realmode
+ (bnc#1012628).
+- perf intel-pt: Fix overlap detection to identify consecutive
+ buffers correctly (bnc#1012628).
+- perf intel-pt: Fix sync_switch (bnc#1012628).
+- perf intel-pt: Fix error recovery from missing TIP packet
+ (bnc#1012628).
+- perf intel-pt: Fix timestamp following overflow (bnc#1012628).
+- perf/core: Fix use-after-free in uprobe_perf_close()
+ (bnc#1012628).
+- radeon: hide pointless #warning when compile testing
+ (bnc#1012628).
+- x86/mce/AMD: Pass the bank number to smca_get_bank_type()
+ (bnc#1012628).
+- x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type
+ (bnc#1012628).
+- x86/mce/AMD: Get address from already initialized block
+ (bnc#1012628).
+- ath9k: Protect queue draining by rcu_read_lock() (bnc#1012628).
+- x86/uapi: Fix asm/bootparam.h userspace compilation errors
+ (bnc#1012628).
+- x86/apic: Fix signedness bug in APIC ID validity checks
+ (bnc#1012628).
+- sunrpc: remove incorrect HMAC request initialization
+ (bnc#1012628).
+- f2fs: fix heap mode to reset it back (bnc#1012628).
+- block: Change a rcu_read_{lock,unlock}_sched() pair into
+ rcu_read_{lock,unlock}() (bnc#1012628).
+- nvme: Skip checking heads without namespaces (bnc#1012628).
+- lib: fix stall in __bitmap_parselist() (bnc#1012628).
+- zboot: fix stack protector in compressed boot phase
+ (bnc#1012628).
+- blk-mq: Directly schedule q->timeout_work when aborting a
+ request (bnc#1012628).
+- blk-mq: order getting budget and driver tag (bnc#1012628).
+- blk-mq: make sure that correct hctx->next_cpu is set
+ (bnc#1012628).
+- blk-mq: don't keep offline CPUs mapped to hctx 0 (bnc#1012628).
+- ovl: Set d->last properly during lookup (bnc#1012628).
+- ovl: fix lookup with middle layer opaque dir and absolute path
+ redirects (bnc#1012628).
+- ovl: set i_ino to the value of st_ino for NFS export
+ (bnc#1012628).
+- ovl: set lower layer st_dev only if setting lower st_ino
+ (bnc#1012628).
+- xen: xenbus_dev_frontend: Fix XS_TRANSACTION_END handling
+ (bnc#1012628).
+- hugetlbfs: fix bug in pgoff overflow checking (bnc#1012628).
+- nfsd: fix incorrect umasks (bnc#1012628).
+- scsi: scsi_dh: Don't look for NULL devices handlers by name
+ (bnc#1012628).
+- scsi: qla2xxx: Fix small memory leak in qla2x00_probe_one on
+ probe failure (bnc#1012628).
+- Revert "scsi: core: return BLK_STS_OK for DID_OK in
+ __scsi_error_from_host_byte()" (bnc#1012628).
+- apparmor: fix logging of the existence test for signals
+ (bnc#1012628).
+- apparmor: fix display of .ns_name for containers (bnc#1012628).
+- apparmor: fix resource audit messages when auditing peer
+ (bnc#1012628).
+- block/loop: fix deadlock after loop_set_status (bnc#1012628).
+- nfit: fix region registration vs block-data-window ranges
+ (bnc#1012628).
+- s390/qdio: don't retry EQBS after CCQ 96 (bnc#1012628).
+- s390/qdio: don't merge ERROR output buffers (bnc#1012628).
+- s390/ipl: ensure loadparm valid flag is set (bnc#1012628).
+- s390/compat: fix setup_frame32 (bnc#1012628).
+- get_user_pages_fast(): return -EFAULT on access_ok failure
+ (bnc#1012628).
+- mm/gup_benchmark: handle gup failures (bnc#1012628).
+- getname_kernel() needs to make sure that ->name != ->iname in
+ long case (bnc#1012628).
+- Bluetooth: Fix connection if directed advertising and privacy
+ is used (bnc#1012628).
+- Bluetooth: hci_bcm: Treat Interrupt ACPI resources as always
+ being active-low (bnc#1012628).
+- rtl8187: Fix NULL pointer dereference in priv->conf_mutex
+ (bnc#1012628).
+- Refresh patches.suse/0001-AppArmor-basic-networking-rules.patch.
+- commit 771261a
+
+-------------------------------------------------------------------
+Thu Apr 19 17:47:45 CEST 2018 - tiwai@suse.de
+
+- resource: fix integer overflow at reallocation (bsc#1086739).
+- commit 4cf2593
+
+-------------------------------------------------------------------
+Thu Apr 19 17:26:11 CEST 2018 - tiwai@suse.de
+
+- Update tags of upstreamed patches
+ Refresh
+ patches.suse/Revert-drm-amd-display-disable-CRTCs-with-NULL-FB.patch
+ patches.suse/media-v4l2-core-fix-size-of-devnode_nums-bitarray.patch
+ patches.suse/swiotlb-Fix-unexpected-swiotlb_alloc_coherent-failur.patch
+- commit e2aa76d
+
+-------------------------------------------------------------------
+Thu Apr 19 15:42:41 CEST 2018 - msuchanek@suse.de
+
+- objtool, perf: Fix GCC 8 -Wrestrict error (bsc#1084620).
+- commit 0c6114f
+
+-------------------------------------------------------------------
+Wed Apr 18 14:16:28 CEST 2018 - msuchanek@suse.de
+
+- supported.conf: update from openSUSE-15.0
+- commit 4ef3f17
+
+-------------------------------------------------------------------
+Mon Apr 16 13:45:34 CEST 2018 - tiwai@suse.de
+
+- Revert "drm/amd/display: disable CRTCs with NULL FB on their
+ primary plane (V2)" (bsc#1089615, bsc#1088902).
+- commit e881e16
+
+-------------------------------------------------------------------
+Mon Apr 16 11:22:14 CEST 2018 - mbrugger@suse.com
+
+- arm64: Update config files. (bsc#1089764)
+ Increase NR_CPUS to 384
+- commit 6f06d9e
+
+-------------------------------------------------------------------
@@ -2892,0 +3049,18 @@
+
+-------------------------------------------------------------------
+Thu Feb 15 14:30:11 CET 2018 - jmoreira@suse.de
+
+- Add kernel livepatch-devel package
+ Resolving non-exported static symbols in kernel livepatches cannot
+ be done implicitly. For such, the relocations of these symbols must
+ follow a specially crafted format in the respective elf file. Willing
+ to make the task of converting the elf into the right format, a tool
+ named klp-convert was proposed. Through a file that maps all kernel
+ symbols into their respective kernel object, this tool infers which
+ non-exported symbol is relative to a livepatch relocation and
+ automatically formats the final elf file.
+ Add support to the generation of a map file right after the kernel
+ compilation.
+ Add the package kernel-<flavour>-livepatch-devel that brings
+ the map file.
+- commit 0b1b4d3
dtb-armv6l.changes: same change
dtb-armv7l.changes: same change
kernel-64kb.changes: same change
kernel-debug.changes: same change
kernel-default.changes: same change
kernel-docs.changes: same change
kernel-kvmsmall.changes: same change
kernel-lpae.changes: same change
kernel-obs-build.changes: same change
kernel-obs-qa.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-syzkaller.changes: same change
kernel-vanilla.changes: same change
kernel-zfcpdump.changes: same change
New:
----
klp-symbols
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dtb-aarch64.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.410594866 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.414594722 +0200
@@ -17,7 +17,7 @@
%define srcversion 4.16
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -26,12 +26,12 @@
%define dtc_symbols 1
%endif
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols})
Name: dtb-aarch64
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -98,6 +98,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
dtb-armv6l.spec: same change
dtb-armv7l.spec: same change
++++++ kernel-64kb.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.542590090 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.546589945 +0200
@@ -18,7 +18,7 @@
%define srcversion 4.16
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%define vanilla_only 0
@@ -37,7 +37,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -58,9 +58,9 @@
Summary: Kernel with 64kb PAGE_SIZE
License: GPL-2.0
Group: System/Kernel
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -164,10 +164,10 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
# END COMMON DEPS
-Provides: %name-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: %name-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
@@ -219,6 +219,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
@@ -298,6 +299,7 @@
NoSource: 74
NoSource: 75
NoSource: 76
+NoSource: 77
NoSource: 100
NoSource: 101
NoSource: 102
@@ -412,7 +414,7 @@
subpackages=(
base
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-
+ cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -561,6 +563,11 @@
fi
done
+# Generate list of symbols that are used to create kernel livepatches
+%if ! 0%{?skip_klp_symbols:1}
+ %_sourcedir/klp-symbols . Symbols.list
+%endif
+
%install
# sign the modules, firmware and possibly the kernel in the buildservice
@@ -777,6 +784,11 @@
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
+ # List of symbols that are used to generate kernel livepatches
+ %if ! 0%{?skip_klp_symbols:1}
+ cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
+ %endif
+
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@@ -1055,8 +1067,8 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%obsolete_rebuilds %name-base
%ifarch %ix86
@@ -1186,6 +1198,7 @@
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%obj_install_dir/%cpu_arch_flavor
+%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %kmp_target_cpu != %cpu_arch
%obj_install_dir/%kmp_target_cpu
/usr/src/linux-obj/%kmp_target_cpu
@@ -1217,7 +1230,236 @@
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
+%if ! 0%{?skip_klp_symbols:1}
+
+%package livepatch-devel
+Summary: Kernel symbols file used during livepatch development
+Group: System/Kernel
+Provides: klp-symbols = %version
+
+%description livepatch-devel
+This package brings a file named Symbols.list, which contains a list of all
+kernel symbols and its respective kernel object . This list is to be used by
+the klp-convert tool, which helps livepatch developers by enabling automatic
+symbol resolution.
+
+%files livepatch-devel
+%defattr(-, root, root)
+%dir %obj_install_dir
+%dir %obj_install_dir/%cpu_arch
+%dir %obj_install_dir/%cpu_arch_flavor/
+%obj_install_dir/%cpu_arch_flavor/Symbols.list
+
+%endif
+
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
+%package -n cluster-md-kmp-%build_flavor
+Summary: Clustering support for MD devices
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: cluster-md-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n cluster-md-kmp-%build_flavor
+Clustering support for MD devices. This enables locking and
+synchronization across multiple systems on the cluster, so all
+nodes in the cluster can access the MD devices simultaneously.
+
+%post -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n cluster-md-kmp-%build_flavor
+nvr=cluster-md-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor -f cluster-md-kmp.files
+%defattr(-, root, root)
+
+%package -n dlm-kmp-%build_flavor
+Summary: DLM kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: dlm-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n dlm-kmp-%build_flavor
+DLM stands for Distributed Lock Manager, a means to synchronize access to
+shared resources over the cluster.
+
+%post -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n dlm-kmp-%build_flavor
+nvr=dlm-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor -f dlm-kmp.files
+%defattr(-, root, root)
+
+%package -n gfs2-kmp-%build_flavor
+Summary: GFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: gfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n gfs2-kmp-%build_flavor
+GFS2 is Global Filesystem, a shared device filesystem.
+
+%post -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n gfs2-kmp-%build_flavor
+nvr=gfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor -f gfs2-kmp.files
+%defattr(-, root, root)
+
+%package -n kselftests-kmp-%build_flavor
+Summary: kselftests kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: kselftests-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n kselftests-kmp-%build_flavor
+kselftests kernel modules.
+
+%post -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n kselftests-kmp-%build_flavor
+nvr=kselftests-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor -f kselftests-kmp.files
+%defattr(-, root, root)
+
+%package -n ocfs2-kmp-%build_flavor
+Summary: OCFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: ocfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n ocfs2-kmp-%build_flavor
+OCFS2 is the Oracle Cluster Filesystem, a filesystem for shared devices
+accessible simultaneously from multiple nodes of a cluster.
+
+%post -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n ocfs2-kmp-%build_flavor
+nvr=ocfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
+%defattr(-, root, root)
+
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.650586182 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.658585893 +0200
@@ -18,7 +18,7 @@
%define srcversion 4.16
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%define vanilla_only 0
@@ -37,7 +37,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -58,9 +58,9 @@
Summary: A Debug Version of the Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -164,10 +164,10 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
# END COMMON DEPS
-Provides: %name-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: %name-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%ifarch ppc64
Provides: kernel-kdump = 2.6.28
Obsoletes: kernel-kdump <= 2.6.28
@@ -227,6 +227,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
@@ -306,6 +307,7 @@
NoSource: 74
NoSource: 75
NoSource: 76
+NoSource: 77
NoSource: 100
NoSource: 101
NoSource: 102
@@ -418,7 +420,7 @@
subpackages=(
base
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-
+ cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -567,6 +569,11 @@
fi
done
+# Generate list of symbols that are used to create kernel livepatches
+%if ! 0%{?skip_klp_symbols:1}
+ %_sourcedir/klp-symbols . Symbols.list
+%endif
+
%install
# sign the modules, firmware and possibly the kernel in the buildservice
@@ -783,6 +790,11 @@
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
+ # List of symbols that are used to generate kernel livepatches
+ %if ! 0%{?skip_klp_symbols:1}
+ cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
+ %endif
+
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@@ -1061,8 +1073,8 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%ifarch ppc64
Provides: kernel-kdump-base = 2.6.28
@@ -1200,6 +1212,7 @@
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%obj_install_dir/%cpu_arch_flavor
+%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %kmp_target_cpu != %cpu_arch
%obj_install_dir/%kmp_target_cpu
/usr/src/linux-obj/%kmp_target_cpu
@@ -1231,7 +1244,236 @@
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
+%if ! 0%{?skip_klp_symbols:1}
+
+%package livepatch-devel
+Summary: Kernel symbols file used during livepatch development
+Group: System/Kernel
+Provides: klp-symbols = %version
+
+%description livepatch-devel
+This package brings a file named Symbols.list, which contains a list of all
+kernel symbols and its respective kernel object . This list is to be used by
+the klp-convert tool, which helps livepatch developers by enabling automatic
+symbol resolution.
+
+%files livepatch-devel
+%defattr(-, root, root)
+%dir %obj_install_dir
+%dir %obj_install_dir/%cpu_arch
+%dir %obj_install_dir/%cpu_arch_flavor/
+%obj_install_dir/%cpu_arch_flavor/Symbols.list
+
+%endif
+
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
+%package -n cluster-md-kmp-%build_flavor
+Summary: Clustering support for MD devices
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: cluster-md-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n cluster-md-kmp-%build_flavor
+Clustering support for MD devices. This enables locking and
+synchronization across multiple systems on the cluster, so all
+nodes in the cluster can access the MD devices simultaneously.
+
+%post -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n cluster-md-kmp-%build_flavor
+nvr=cluster-md-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor -f cluster-md-kmp.files
+%defattr(-, root, root)
+
+%package -n dlm-kmp-%build_flavor
+Summary: DLM kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: dlm-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n dlm-kmp-%build_flavor
+DLM stands for Distributed Lock Manager, a means to synchronize access to
+shared resources over the cluster.
+
+%post -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n dlm-kmp-%build_flavor
+nvr=dlm-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor -f dlm-kmp.files
+%defattr(-, root, root)
+
+%package -n gfs2-kmp-%build_flavor
+Summary: GFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: gfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n gfs2-kmp-%build_flavor
+GFS2 is Global Filesystem, a shared device filesystem.
+
+%post -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n gfs2-kmp-%build_flavor
+nvr=gfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor -f gfs2-kmp.files
+%defattr(-, root, root)
+
+%package -n kselftests-kmp-%build_flavor
+Summary: kselftests kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: kselftests-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n kselftests-kmp-%build_flavor
+kselftests kernel modules.
+
+%post -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n kselftests-kmp-%build_flavor
+nvr=kselftests-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor -f kselftests-kmp.files
+%defattr(-, root, root)
+
+%package -n ocfs2-kmp-%build_flavor
+Summary: OCFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: ocfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n ocfs2-kmp-%build_flavor
+OCFS2 is the Oracle Cluster Filesystem, a filesystem for shared devices
+accessible simultaneously from multiple nodes of a cluster.
+
+%post -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n ocfs2-kmp-%build_flavor
+nvr=ocfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
+%defattr(-, root, root)
+
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
++++++ kernel-default.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.706584156 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.710584011 +0200
@@ -18,7 +18,7 @@
%define srcversion 4.16
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%define vanilla_only 0
@@ -37,7 +37,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -58,9 +58,9 @@
Summary: The Standard Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -164,10 +164,10 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
# END COMMON DEPS
-Provides: %name-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: %name-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%ifarch %ix86
Provides: kernel-smp = 2.6.17
Obsoletes: kernel-smp <= 2.6.17
@@ -271,6 +271,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
@@ -350,6 +351,7 @@
NoSource: 74
NoSource: 75
NoSource: 76
+NoSource: 77
NoSource: 100
NoSource: 101
NoSource: 102
@@ -461,7 +463,7 @@
subpackages=(
base
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-
+ cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -610,6 +612,11 @@
fi
done
+# Generate list of symbols that are used to create kernel livepatches
+%if ! 0%{?skip_klp_symbols:1}
+ %_sourcedir/klp-symbols . Symbols.list
+%endif
+
%install
# sign the modules, firmware and possibly the kernel in the buildservice
@@ -826,6 +833,11 @@
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
+ # List of symbols that are used to generate kernel livepatches
+ %if ! 0%{?skip_klp_symbols:1}
+ cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
+ %endif
+
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@@ -1104,8 +1116,8 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%ifarch %ix86
Provides: kernel-trace-base = 3.13
@@ -1301,6 +1313,7 @@
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%obj_install_dir/%cpu_arch_flavor
+%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %kmp_target_cpu != %cpu_arch
%obj_install_dir/%kmp_target_cpu
/usr/src/linux-obj/%kmp_target_cpu
@@ -1332,7 +1345,236 @@
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
+%if ! 0%{?skip_klp_symbols:1}
+
+%package livepatch-devel
+Summary: Kernel symbols file used during livepatch development
+Group: System/Kernel
+Provides: klp-symbols = %version
+
+%description livepatch-devel
+This package brings a file named Symbols.list, which contains a list of all
+kernel symbols and its respective kernel object . This list is to be used by
+the klp-convert tool, which helps livepatch developers by enabling automatic
+symbol resolution.
+
+%files livepatch-devel
+%defattr(-, root, root)
+%dir %obj_install_dir
+%dir %obj_install_dir/%cpu_arch
+%dir %obj_install_dir/%cpu_arch_flavor/
+%obj_install_dir/%cpu_arch_flavor/Symbols.list
+
+%endif
+
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
+%package -n cluster-md-kmp-%build_flavor
+Summary: Clustering support for MD devices
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: cluster-md-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n cluster-md-kmp-%build_flavor
+Clustering support for MD devices. This enables locking and
+synchronization across multiple systems on the cluster, so all
+nodes in the cluster can access the MD devices simultaneously.
+
+%post -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n cluster-md-kmp-%build_flavor
+nvr=cluster-md-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor -f cluster-md-kmp.files
+%defattr(-, root, root)
+
+%package -n dlm-kmp-%build_flavor
+Summary: DLM kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: dlm-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n dlm-kmp-%build_flavor
+DLM stands for Distributed Lock Manager, a means to synchronize access to
+shared resources over the cluster.
+
+%post -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n dlm-kmp-%build_flavor
+nvr=dlm-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor -f dlm-kmp.files
+%defattr(-, root, root)
+
+%package -n gfs2-kmp-%build_flavor
+Summary: GFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: gfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n gfs2-kmp-%build_flavor
+GFS2 is Global Filesystem, a shared device filesystem.
+
+%post -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n gfs2-kmp-%build_flavor
+nvr=gfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor -f gfs2-kmp.files
+%defattr(-, root, root)
+
+%package -n kselftests-kmp-%build_flavor
+Summary: kselftests kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: kselftests-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n kselftests-kmp-%build_flavor
+kselftests kernel modules.
+
+%post -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n kselftests-kmp-%build_flavor
+nvr=kselftests-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor -f kselftests-kmp.files
+%defattr(-, root, root)
+
+%package -n ocfs2-kmp-%build_flavor
+Summary: OCFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: ocfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n ocfs2-kmp-%build_flavor
+OCFS2 is the Oracle Cluster Filesystem, a filesystem for shared devices
+accessible simultaneously from multiple nodes of a cluster.
+
+%post -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n ocfs2-kmp-%build_flavor
+nvr=ocfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
+%defattr(-, root, root)
+
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.738582998 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.742582853 +0200
@@ -17,7 +17,7 @@
%define srcversion 4.16
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -25,15 +25,15 @@
%define build_html 1
%define build_pdf 0
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols})
Name: kernel-docs
Summary: Kernel Documentation
License: GPL-2.0
Group: Documentation/Man
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -63,7 +63,7 @@
%endif
Url: http://www.kernel.org/
Provides: %name = %version-%source_rel
-Provides: %name-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: %name-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
@@ -116,6 +116,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
@@ -181,6 +182,7 @@
NoSource: 74
NoSource: 75
NoSource: 76
+NoSource: 77
NoSource: 100
NoSource: 101
NoSource: 102
++++++ kernel-kvmsmall.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.766581985 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.770581840 +0200
@@ -18,7 +18,7 @@
%define srcversion 4.16
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%define vanilla_only 0
@@ -37,7 +37,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -58,9 +58,9 @@
Summary: The Small Developer Kernel for KVM
License: GPL-2.0
Group: System/Kernel
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -164,10 +164,10 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
# END COMMON DEPS
-Provides: %name-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: %name-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
@@ -219,6 +219,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
@@ -298,6 +299,7 @@
NoSource: 74
NoSource: 75
NoSource: 76
+NoSource: 77
NoSource: 100
NoSource: 101
NoSource: 102
@@ -416,7 +418,7 @@
subpackages=(
base
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-
+ cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -565,6 +567,11 @@
fi
done
+# Generate list of symbols that are used to create kernel livepatches
+%if ! 0%{?skip_klp_symbols:1}
+ %_sourcedir/klp-symbols . Symbols.list
+%endif
+
%install
# sign the modules, firmware and possibly the kernel in the buildservice
@@ -781,6 +788,11 @@
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
+ # List of symbols that are used to generate kernel livepatches
+ %if ! 0%{?skip_klp_symbols:1}
+ cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
+ %endif
+
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@@ -1059,8 +1071,8 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%obsolete_rebuilds %name-base
%ifarch %ix86
@@ -1198,6 +1210,7 @@
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%obj_install_dir/%cpu_arch_flavor
+%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %kmp_target_cpu != %cpu_arch
%obj_install_dir/%kmp_target_cpu
/usr/src/linux-obj/%kmp_target_cpu
@@ -1229,7 +1242,236 @@
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
+%if ! 0%{?skip_klp_symbols:1}
+
+%package livepatch-devel
+Summary: Kernel symbols file used during livepatch development
+Group: System/Kernel
+Provides: klp-symbols = %version
+
+%description livepatch-devel
+This package brings a file named Symbols.list, which contains a list of all
+kernel symbols and its respective kernel object . This list is to be used by
+the klp-convert tool, which helps livepatch developers by enabling automatic
+symbol resolution.
+
+%files livepatch-devel
+%defattr(-, root, root)
+%dir %obj_install_dir
+%dir %obj_install_dir/%cpu_arch
+%dir %obj_install_dir/%cpu_arch_flavor/
+%obj_install_dir/%cpu_arch_flavor/Symbols.list
+
+%endif
+
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
+%package -n cluster-md-kmp-%build_flavor
+Summary: Clustering support for MD devices
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: cluster-md-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n cluster-md-kmp-%build_flavor
+Clustering support for MD devices. This enables locking and
+synchronization across multiple systems on the cluster, so all
+nodes in the cluster can access the MD devices simultaneously.
+
+%post -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n cluster-md-kmp-%build_flavor
+nvr=cluster-md-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor -f cluster-md-kmp.files
+%defattr(-, root, root)
+
+%package -n dlm-kmp-%build_flavor
+Summary: DLM kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: dlm-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n dlm-kmp-%build_flavor
+DLM stands for Distributed Lock Manager, a means to synchronize access to
+shared resources over the cluster.
+
+%post -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n dlm-kmp-%build_flavor
+nvr=dlm-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor -f dlm-kmp.files
+%defattr(-, root, root)
+
+%package -n gfs2-kmp-%build_flavor
+Summary: GFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: gfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n gfs2-kmp-%build_flavor
+GFS2 is Global Filesystem, a shared device filesystem.
+
+%post -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n gfs2-kmp-%build_flavor
+nvr=gfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor -f gfs2-kmp.files
+%defattr(-, root, root)
+
+%package -n kselftests-kmp-%build_flavor
+Summary: kselftests kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: kselftests-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n kselftests-kmp-%build_flavor
+kselftests kernel modules.
+
+%post -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n kselftests-kmp-%build_flavor
+nvr=kselftests-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor -f kselftests-kmp.files
+%defattr(-, root, root)
+
+%package -n ocfs2-kmp-%build_flavor
+Summary: OCFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: ocfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n ocfs2-kmp-%build_flavor
+OCFS2 is the Oracle Cluster Filesystem, a filesystem for shared devices
+accessible simultaneously from multiple nodes of a cluster.
+
+%post -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n ocfs2-kmp-%build_flavor
+nvr=ocfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
+%defattr(-, root, root)
+
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
kernel-lpae.spec: same change
++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.850578945 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.854578801 +0200
@@ -19,7 +19,7 @@
#!BuildIgnore: post-build-checks
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%define vanilla_only 0
@@ -45,7 +45,7 @@
%endif
%endif
%endif
-BuildRequires: kernel%kernel_flavor-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+BuildRequires: kernel%kernel_flavor-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%if 0%{?rhel_version}
BuildRequires: kernel
@@ -64,9 +64,9 @@
Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0
Group: SLES
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
++++++ kernel-obs-qa.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.886577642 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.890577498 +0200
@@ -17,7 +17,7 @@
# needsrootforbuild
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -36,9 +36,9 @@
Summary: Basic QA tests for the kernel
License: GPL-2.0
Group: SLES
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.926576195 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.930576050 +0200
@@ -18,7 +18,7 @@
%define srcversion 4.16
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%define vanilla_only 0
@@ -37,7 +37,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -58,9 +58,9 @@
Summary: Kernel with PAE Support
License: GPL-2.0
Group: System/Kernel
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -164,10 +164,10 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
# END COMMON DEPS
-Provides: %name-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: %name-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%ifarch %ix86
Provides: kernel-bigsmp = 2.6.17
Obsoletes: kernel-bigsmp <= 2.6.17
@@ -241,6 +241,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
@@ -320,6 +321,7 @@
NoSource: 74
NoSource: 75
NoSource: 76
+NoSource: 77
NoSource: 100
NoSource: 101
NoSource: 102
@@ -438,7 +440,7 @@
subpackages=(
base
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-
+ cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -587,6 +589,11 @@
fi
done
+# Generate list of symbols that are used to create kernel livepatches
+%if ! 0%{?skip_klp_symbols:1}
+ %_sourcedir/klp-symbols . Symbols.list
+%endif
+
%install
# sign the modules, firmware and possibly the kernel in the buildservice
@@ -803,6 +810,11 @@
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
+ # List of symbols that are used to generate kernel livepatches
+ %if ! 0%{?skip_klp_symbols:1}
+ cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
+ %endif
+
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@@ -1081,8 +1093,8 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%ifarch %ix86
Provides: kernel-vmi-base = 2.6.38
@@ -1250,6 +1262,7 @@
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%obj_install_dir/%cpu_arch_flavor
+%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %kmp_target_cpu != %cpu_arch
%obj_install_dir/%kmp_target_cpu
/usr/src/linux-obj/%kmp_target_cpu
@@ -1281,7 +1294,236 @@
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
+%if ! 0%{?skip_klp_symbols:1}
+
+%package livepatch-devel
+Summary: Kernel symbols file used during livepatch development
+Group: System/Kernel
+Provides: klp-symbols = %version
+
+%description livepatch-devel
+This package brings a file named Symbols.list, which contains a list of all
+kernel symbols and its respective kernel object . This list is to be used by
+the klp-convert tool, which helps livepatch developers by enabling automatic
+symbol resolution.
+
+%files livepatch-devel
+%defattr(-, root, root)
+%dir %obj_install_dir
+%dir %obj_install_dir/%cpu_arch
+%dir %obj_install_dir/%cpu_arch_flavor/
+%obj_install_dir/%cpu_arch_flavor/Symbols.list
+
+%endif
+
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
+%package -n cluster-md-kmp-%build_flavor
+Summary: Clustering support for MD devices
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: cluster-md-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n cluster-md-kmp-%build_flavor
+Clustering support for MD devices. This enables locking and
+synchronization across multiple systems on the cluster, so all
+nodes in the cluster can access the MD devices simultaneously.
+
+%post -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n cluster-md-kmp-%build_flavor
+nvr=cluster-md-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor -f cluster-md-kmp.files
+%defattr(-, root, root)
+
+%package -n dlm-kmp-%build_flavor
+Summary: DLM kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: dlm-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n dlm-kmp-%build_flavor
+DLM stands for Distributed Lock Manager, a means to synchronize access to
+shared resources over the cluster.
+
+%post -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n dlm-kmp-%build_flavor
+nvr=dlm-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor -f dlm-kmp.files
+%defattr(-, root, root)
+
+%package -n gfs2-kmp-%build_flavor
+Summary: GFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: gfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n gfs2-kmp-%build_flavor
+GFS2 is Global Filesystem, a shared device filesystem.
+
+%post -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n gfs2-kmp-%build_flavor
+nvr=gfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor -f gfs2-kmp.files
+%defattr(-, root, root)
+
+%package -n kselftests-kmp-%build_flavor
+Summary: kselftests kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: kselftests-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n kselftests-kmp-%build_flavor
+kselftests kernel modules.
+
+%post -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n kselftests-kmp-%build_flavor
+nvr=kselftests-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor -f kselftests-kmp.files
+%defattr(-, root, root)
+
+%package -n ocfs2-kmp-%build_flavor
+Summary: OCFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: ocfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n ocfs2-kmp-%build_flavor
+OCFS2 is the Oracle Cluster Filesystem, a filesystem for shared devices
+accessible simultaneously from multiple nodes of a cluster.
+
+%post -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n ocfs2-kmp-%build_flavor
+nvr=ocfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
+%defattr(-, root, root)
+
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.950575327 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.958575037 +0200
@@ -18,7 +18,7 @@
%define srcversion 4.16
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%define vanilla_only 0
@@ -30,9 +30,9 @@
Summary: The Linux Kernel Sources
License: GPL-2.0
Group: Development/Sources
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -43,7 +43,7 @@
BuildRequires: sed
Requires(post): coreutils sed
Provides: %name = %version-%source_rel
-Provides: %name-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: %name-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
Provides: linux
Provides: multiversion(kernel)
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
@@ -96,6 +96,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
@@ -117,7 +118,7 @@
Requires: kernel-devel%variant = %version-%source_rel
Recommends: openssl-devel
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols})
%define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
%define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac)
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:53.986574024 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:53.990573879 +0200
@@ -24,10 +24,10 @@
Summary: Kernel Symbol Versions (modversions)
License: GPL-2.0
Group: Development/Sources
-Version: 4.16.2
+Version: 4.16.3
%if %using_buildservice
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -55,7 +55,7 @@
%endif
Requires: pesign-obs-integration
Provides: %name = %version-%source_rel
-Provides: %name-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: %name-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
Provides: multiversion(kernel)
Source: README.KSYMS
Requires: kernel-devel%variant = %version-%source_rel
++++++ kernel-syzkaller.spec ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:54.014573011 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:54.014573011 +0200
@@ -18,7 +18,7 @@
%define srcversion 4.16
-%define patchversion 4.16.2
+%define patchversion 4.16.3
%define variant %{nil}
%define vanilla_only 0
@@ -37,7 +37,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-%srcversion/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -58,9 +58,9 @@
Summary: Kernel used for fuzzing by syzkaller
License: GPL-2.0
Group: System/Kernel
-Version: 4.16.2
+Version: 4.16.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g7b2d22b
+Release: <RELEASE>.g2fd48c5
%else
Release: 0
%endif
@@ -164,10 +164,10 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
# END COMMON DEPS
-Provides: %name-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: %name-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
@@ -219,6 +219,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
@@ -298,6 +299,7 @@
NoSource: 74
NoSource: 75
NoSource: 76
+NoSource: 77
NoSource: 100
NoSource: 101
NoSource: 102
@@ -411,7 +413,7 @@
subpackages=(
base
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
-
+ cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -560,6 +562,11 @@
fi
done
+# Generate list of symbols that are used to create kernel livepatches
+%if ! 0%{?skip_klp_symbols:1}
+ %_sourcedir/klp-symbols . Symbols.list
+%endif
+
%install
# sign the modules, firmware and possibly the kernel in the buildservice
@@ -776,6 +783,11 @@
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
+ # List of symbols that are used to generate kernel livepatches
+ %if ! 0%{?skip_klp_symbols:1}
+ cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
+ %endif
+
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@@ -1054,8 +1066,8 @@
Conflicts: libc.so.6()(64bit)
%endif
Provides: kernel = %version-%source_rel
-Provides: kernel-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
-Provides: kernel-%build_flavor-base-srchash = 7b2d22b118d1ce275f762e1458e957a45ff84018
+Provides: kernel-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
+Provides: kernel-%build_flavor-base-srchash = 2fd48c572fd197b449f996338b5f5dba6e054711
%obsolete_rebuilds %name-base
%ifarch %ix86
@@ -1183,6 +1195,7 @@
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%obj_install_dir/%cpu_arch_flavor
+%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %kmp_target_cpu != %cpu_arch
%obj_install_dir/%kmp_target_cpu
/usr/src/linux-obj/%kmp_target_cpu
@@ -1214,7 +1227,236 @@
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
+%if ! 0%{?skip_klp_symbols:1}
+
+%package livepatch-devel
+Summary: Kernel symbols file used during livepatch development
+Group: System/Kernel
+Provides: klp-symbols = %version
+
+%description livepatch-devel
+This package brings a file named Symbols.list, which contains a list of all
+kernel symbols and its respective kernel object . This list is to be used by
+the klp-convert tool, which helps livepatch developers by enabling automatic
+symbol resolution.
+
+%files livepatch-devel
+%defattr(-, root, root)
+%dir %obj_install_dir
+%dir %obj_install_dir/%cpu_arch
+%dir %obj_install_dir/%cpu_arch_flavor/
+%obj_install_dir/%cpu_arch_flavor/Symbols.list
+
+%endif
+
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
+%package -n cluster-md-kmp-%build_flavor
+Summary: Clustering support for MD devices
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: cluster-md-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n cluster-md-kmp-%build_flavor
+Clustering support for MD devices. This enables locking and
+synchronization across multiple systems on the cluster, so all
+nodes in the cluster can access the MD devices simultaneously.
+
+%post -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n cluster-md-kmp-%build_flavor
+nvr=cluster-md-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n cluster-md-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=cluster-md-kmp-%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 cluster-md-kmp-%build_flavor -f cluster-md-kmp.files
+%defattr(-, root, root)
+
+%package -n dlm-kmp-%build_flavor
+Summary: DLM kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: dlm-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n dlm-kmp-%build_flavor
+DLM stands for Distributed Lock Manager, a means to synchronize access to
+shared resources over the cluster.
+
+%post -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n dlm-kmp-%build_flavor
+nvr=dlm-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n dlm-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=dlm-kmp-%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 dlm-kmp-%build_flavor -f dlm-kmp.files
+%defattr(-, root, root)
+
+%package -n gfs2-kmp-%build_flavor
+Summary: GFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: gfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n gfs2-kmp-%build_flavor
+GFS2 is Global Filesystem, a shared device filesystem.
+
+%post -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n gfs2-kmp-%build_flavor
+nvr=gfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n gfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=gfs2-kmp-%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 gfs2-kmp-%build_flavor -f gfs2-kmp.files
+%defattr(-, root, root)
+
+%package -n kselftests-kmp-%build_flavor
+Summary: kselftests kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: kselftests-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+
+%description -n kselftests-kmp-%build_flavor
+kselftests kernel modules.
+
+%post -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n kselftests-kmp-%build_flavor
+nvr=kselftests-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n kselftests-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=kselftests-kmp-%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 kselftests-kmp-%build_flavor -f kselftests-kmp.files
+%defattr(-, root, root)
+
+%package -n ocfs2-kmp-%build_flavor
+Summary: OCFS2 kernel modules
+Group: System/Kernel
+Requires: %name = %version-%source_rel
+Provides: ocfs2-kmp = %version-%source_rel
+Provides: multiversion(kernel)
+# tell weak-modules2 to ignore this package
+Provides: kmp_in_kernel
+Requires(post): suse-module-tools >= 12.4
+Requires: dlm-kmp-%build_flavor = %version-%release
+
+%description -n ocfs2-kmp-%build_flavor
+OCFS2 is the Oracle Cluster Filesystem, a filesystem for shared devices
+accessible simultaneously from multiple nodes of a cluster.
+
+%post -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor
+%{?regenerate_initrd_posttrans}
+
+%preun -n ocfs2-kmp-%build_flavor
+nvr=ocfs2-kmp-%build_flavor-%version-%release
+rpm -ql "$nvr" | grep '\.ko$' > "/var/run/rpm-$nvr-modules"
+
+%postun -n ocfs2-kmp-%build_flavor
+wm2=/usr/lib/module-init-tools/weak-modules2
+nvr=ocfs2-kmp-%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 ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
+%defattr(-, root, root)
+
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
kernel-vanilla.spec: same change
kernel-zfcpdump.spec: same change
++++++ config.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/arm64/default new/config/arm64/default
--- old/config/arm64/default 2018-04-11 11:59:12.000000000 +0200
+++ new/config/arm64/default 2018-04-19 10:51:55.000000000 +0200
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm64 4.16.0 Kernel Configuration
+# Linux/arm64 4.16.1 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
@@ -582,7 +582,7 @@
# CONFIG_CPU_BIG_ENDIAN is not set
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
-CONFIG_NR_CPUS=128
+CONFIG_NR_CPUS=384
CONFIG_HOTPLUG_CPU=y
CONFIG_NUMA=y
CONFIG_NODES_SHIFT=2
++++++ kernel-binary.spec.in ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:54.662549563 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:54.662549563 +0200
@@ -434,6 +434,11 @@
fi
done
+# Generate list of symbols that are used to create kernel livepatches
+%if ! 0%{?skip_klp_symbols:1}
+ %_sourcedir/klp-symbols . Symbols.list
+%endif
+
%install
# sign the modules, firmware and possibly the kernel in the buildservice
@@ -650,6 +655,11 @@
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
+ # List of symbols that are used to generate kernel livepatches
+ %if ! 0%{?skip_klp_symbols:1}
+ cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
+ %endif
+
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
@@ -992,6 +1002,7 @@
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%obj_install_dir/%cpu_arch_flavor
+%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %kmp_target_cpu != %cpu_arch
%obj_install_dir/%kmp_target_cpu
/usr/src/linux-obj/%kmp_target_cpu
@@ -1023,6 +1034,28 @@
%dir /lib/modules/%kernelrelease-%build_flavor
%endif
+%if ! 0%{?skip_klp_symbols:1}
+
+%package livepatch-devel
+Summary: Kernel symbols file used during livepatch development
+Group: System/Kernel
+Provides: klp-symbols = %version
+
+%description livepatch-devel
+This package brings a file named Symbols.list, which contains a list of all
+kernel symbols and its respective kernel object . This list is to be used by
+the klp-convert tool, which helps livepatch developers by enabling automatic
+symbol resolution.
+
+%files livepatch-devel
+%defattr(-, root, root)
+%dir %obj_install_dir
+%dir %obj_install_dir/%cpu_arch
+%dir %obj_install_dir/%cpu_arch_flavor/
+%obj_install_dir/%cpu_arch_flavor/Symbols.list
+
+%endif
+
%if %CONFIG_SUSE_KERNEL_SUPPORTED == "y"
# BEGIN KMP
%package -n @KMP_NAME@-%build_flavor
++++++ kernel-source.spec.in ++++++
--- /var/tmp/diff_new_pack.yGFdqI/_old 2018-04-22 14:38:54.798544642 +0200
+++ /var/tmp/diff_new_pack.yGFdqI/_new 2018-04-22 14:38:54.806544353 +0200
@@ -96,6 +96,7 @@
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
+Source77: klp-symbols
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
++++++ klp-symbols ++++++
#!/bin/bash
set -e
export LC_COLLATE=C
usage()
{
echo "Tool to generate list of symbols that are used to build kernel livepatches"
echo
echo "Usage: ${0##*/} kernel_build_dir klp_symbols"
echo " kernel_build_dir Directory where to find the built kernel binaries"
echo " klp_symbols Output file with the list of symbols"
}
if test "$1" == "-h" -o "$1" == "--help" -o $# -ne 2 ; then
usage >&2
exit 1
fi
KERNEL_BUILD_DIR="$1"
KLP_SYMBOLS="$2"
VMLINUX="$KERNEL_BUILD_DIR/vmlinux"
MODVER_DIR="$KERNEL_BUILD_DIR/.tmp_versions"
if ! test -f "$VMLINUX" ; then
echo "Error: Cannot open file: $VMLINUX" >&2
exit 1
fi
if ! test -d "$MODVER_DIR" ; then
echo "Error: Directory does not exist: $MODVER_DIR" >&2
exit 1
fi
get_symbols()
{
nm -f posix "$1" | grep -v '\( [UN] \)\|\(\.L\|__crc_\)' | cut -d\ -f1,2
}
echo "*vmlinux" > "$KLP_SYMBOLS"
get_symbols "$VMLINUX" >> "$KLP_SYMBOLS"
find "$MODVER_DIR" -iname '*.mod' | while read KMOD ; do
# read .ko path and file from .mod file
KO_FILE="$(head -n1 $KMOD)"
# obtain module name and its object file by processing .ko file name
NO_SUFFIX="$(basename -s .ko $KO_FILE)"
KMOD_NAME="$(echo $NO_SUFFIX | sed 's/-/_/g')"
OBJ_FILE="$(dirname $KO_FILE)/$NO_SUFFIX.o"
# write module name to Symbols file
echo "*$KMOD_NAME" >> "$KLP_SYMBOLS"
# extract symbols from object file and write them to Symbols file
get_symbols "$OBJ_FILE" >> "$KLP_SYMBOLS"
done
exit 0
++++++ patches.kernel.org.tar.bz2 ++++++
++++ 6804 lines of diff (skipped)
++++++ patches.rpmify.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.rpmify/objtool-perf-Fix-GCC-8-Wrestrict-error.patch new/patches.rpmify/objtool-perf-Fix-GCC-8-Wrestrict-error.patch
--- old/patches.rpmify/objtool-perf-Fix-GCC-8-Wrestrict-error.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.rpmify/objtool-perf-Fix-GCC-8-Wrestrict-error.patch 2018-04-19 15:42:41.000000000 +0200
@@ -0,0 +1,52 @@
+From 854e55ad289ef8888e7991f0ada85d5846f5afb9 Mon Sep 17 00:00:00 2001
+From: Josh Poimboeuf