diff --git a/_service b/_service
index 9e596b3..b7c9485 100644
--- a/_service
+++ b/_service
@@ -15,6 +15,7 @@
*/suse-module-tools.spec
suse-module-tools.spec
+
*.tar
diff --git a/_servicedata b/_servicedata
index b6d1cb5..f5c8921 100644
--- a/_servicedata
+++ b/_servicedata
@@ -1,4 +1,4 @@
https://github.com/openSUSE/suse-module-tools.git
- 8d786330ba9510ca0793556e2b0df3de3e034e8a
\ No newline at end of file
+ 78c25ddfe50b0f79b984e81a305fbf1336025ac3
\ No newline at end of file
diff --git a/suse-module-tools-16.0.6.obscpio b/suse-module-tools-16.0.6.obscpio
deleted file mode 100644
index 9cf971e..0000000
--- a/suse-module-tools-16.0.6.obscpio
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:09f5dcecc5140ea325b45752a2e69e8e1ca46fd84597d43dce685432296c16a3
-size 98827
diff --git a/suse-module-tools-16.0.7.obscpio b/suse-module-tools-16.0.7.obscpio
new file mode 100644
index 0000000..ded797a
--- /dev/null
+++ b/suse-module-tools-16.0.7.obscpio
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f9c14a71fbe35e4e48abd2aacbdbf545ee957261aa706b737a0765fdf8bf77e8
+size 100875
diff --git a/suse-module-tools.changes b/suse-module-tools.changes
index 8eb9773..1b00aa1 100644
--- a/suse-module-tools.changes
+++ b/suse-module-tools.changes
@@ -1,3 +1,11 @@
+-------------------------------------------------------------------
+Thu Aug 19 11:31:32 UTC 2021 - Martin Wilck
+
+- Update to version 16.0.7:
+ * add kernel-sysctl.service and boot-sysctl.service for applying
+ kernel-specific sysctl settings (bsc#1184804)
+ * add support for zstd-compressed kernel modules
+
-------------------------------------------------------------------
Mon Jul 5 15:14:47 UTC 2021 - Martin Wilck
diff --git a/suse-module-tools.obsinfo b/suse-module-tools.obsinfo
index ceec59b..46a34d5 100644
--- a/suse-module-tools.obsinfo
+++ b/suse-module-tools.obsinfo
@@ -1,5 +1,5 @@
name: suse-module-tools
-version: 16.0.6
-mtime: 1625260529
-commit: 8d786330ba9510ca0793556e2b0df3de3e034e8a
+version: 16.0.7
+mtime: 1629372581
+commit: 78c25ddfe50b0f79b984e81a305fbf1336025ac3
diff --git a/suse-module-tools.spec b/suse-module-tools.spec
index 8b9273e..7b69239 100644
--- a/suse-module-tools.spec
+++ b/suse-module-tools.spec
@@ -24,10 +24,17 @@
%if 0%{?suse_version} >= 1550
%global modprobe_dir /usr/lib/modprobe.d
%global depmod_dir /usr/lib/depmod.d
+%global with_kernel_sysctl 1
+# boot_sysctl may be dropped on TW when we can assume that nobody keeps
+# kernel packages around that store sysctl files under /boot
+%bcond_without boot_sysctl
%else
%global modprobe_dir /lib/modprobe.d
%global depmod_dir /lib/depmod.d
+%global with_boot_sysctl 1
%endif
+%global sysctl_dropin %{_unitdir}/systemd-sysctl.service.d/50-kernel-uname_r.conf
+%global systemd_units %{?with_boot_sysctl:boot-sysctl.service} %{?with_kernel_sysctl:kernel-sysctl.service}
# List of legacy file systems to be blacklisted by default
%global fs_blacklist adfs affs bfs befs cramfs efs erofs exofs freevxfs hfs hpfs jfs minix nilfs2 ntfs omfs qnx4 qnx6 sysv ufs
@@ -38,7 +45,7 @@
%global modprobe_conf_rpmsave %(echo "%{modprobe_conf_files}" | sed 's,\\([^ ]*\\),%{_sysconfdir}/modprobe.d/\\1.conf.rpmsave,g')
Name: suse-module-tools
-Version: 16.0.6
+Version: 16.0.7
Release: 0
Summary: Configuration for module loading and SUSE-specific utilities for KMPs
License: GPL-2.0-or-later
@@ -46,6 +53,7 @@ Group: System/Base
URL: https://github.com/openSUSE/suse-module-tools
Source0: %{name}-%{version}.tar.xz
Source1: %{name}.rpmlintrc
+BuildRequires: pkgconfig(systemd)
Requires: /usr/bin/grep
Requires: /usr/bin/gzip
Requires: /usr/bin/sed
@@ -132,9 +140,17 @@ install -pm 755 "regenerate-initrd-posttrans" "%{buildroot}/usr/lib/module-init-
install -d -m 755 "%{buildroot}%{_prefix}/bin"
install -pm 755 kmp-install "%{buildroot}%{_bindir}/"
-# systemd service to load /boot/sysctl.conf-`uname -r`
+# systemd service(s) to load kernel-specific sysctl settings
install -d -m 755 "%{buildroot}%{_unitdir}/systemd-sysctl.service.d"
-install -pm 644 50-kernel-uname_r.conf "%{buildroot}%{_unitdir}/systemd-sysctl.service.d"
+echo '[Unit]' >"%{buildroot}%{sysctl_dropin}"
+%if %{with kernel_sysctl}
+install -m 644 kernel-sysctl.service "%{buildroot}%{_unitdir}"
+echo 'Wants=kernel-sysctl.service' >>"%{buildroot}%{sysctl_dropin}"
+%endif
+%if %{with boot_sysctl}
+install -m 644 boot-sysctl.service "%{buildroot}%{_unitdir}"
+echo 'Wants=boot-sysctl.service' >>"%{buildroot}%{sysctl_dropin}"
+%endif
# Ensure that the sg driver is loaded early (bsc#1036463)
# Not needed in SLE11, where sg is loaded via udev rule.
@@ -163,10 +179,8 @@ install $mod /usr/lib/module-init-tools/unblacklist $mod; /sbin/modprobe --ignor
done
%endif
-%post
-exit 0
-
%pre
+%service_add_pre %{systemd_units}
# Avoid restoring old .rpmsave files in %posttrans
for f in %{modprobe_conf_rpmsave}; do
if [ -f ${f} ]; then
@@ -179,6 +193,18 @@ if [ -f %{_sysconfdir}/depmod.d/00-system.conf.rpmsave ]; then
fi
exit 0
+%post
+%service_add_post %{systemd_units}
+exit 0
+
+%preun
+%service_del_preun %{systemd_units}
+exit 0
+
+%postun
+%service_del_postun_without_restart %{systemd_units}
+exit 0
+
%posttrans
# If the user had modified any of the configuration files installed under
# /etc, they'll now be renamed to .rpmsave files. Restore them.
@@ -208,6 +234,7 @@ exit 0
%{_bindir}/kmp-install
/usr/lib/module-init-tools
%exclude /usr/lib/module-init-tools/weak-modules
+%{_unitdir}/*.service
%{_unitdir}/systemd-sysctl.service.d
%{_modulesloaddir}
%ifarch ppc64 ppc64le