diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6a98fe6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/v0.6.1.tar.gz diff --git a/.kpatch.metadata b/.kpatch.metadata new file mode 100644 index 0000000..654277d --- /dev/null +++ b/.kpatch.metadata @@ -0,0 +1 @@ +7a0395e649f58026a3dd66dd13e3bcecdb9e97a4 SOURCES/v0.6.1.tar.gz diff --git a/SOURCES/0001-contrib-disable-upstart-kpatch.conf-install.patch b/SOURCES/0001-contrib-disable-upstart-kpatch.conf-install.patch new file mode 100644 index 0000000..44eb5b4 --- /dev/null +++ b/SOURCES/0001-contrib-disable-upstart-kpatch.conf-install.patch @@ -0,0 +1,46 @@ +From f056d60fb309896a52882fd3fc10fb5305f5a47e Mon Sep 17 00:00:00 2001 +From: Joe Lawrence +Date: Thu, 21 Jun 2018 15:40:20 -0400 +Subject: [PATCH] contrib: disable upstart kpatch.conf install + +Do not install the upstart configuration file to avoid this rhpkg +build complaint: + + Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/kpatch-0.6.1-1.el7.noarch + error: Installed (but unpackaged) file(s) found: + /etc/init/kpatch.conf + Installed (but unpackaged) file(s) found: + /etc/init/kpatch.conf + +We'll need to think of a better way to do this upstream, but for now, +just skip the unneeded file on RHEL. + +Signed-off-by: Joe Lawrence +--- + contrib/Makefile | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/contrib/Makefile b/contrib/Makefile +index 0b0eeeb23a56..e873f27d6eae 100644 +--- a/contrib/Makefile ++++ b/contrib/Makefile +@@ -6,12 +6,12 @@ install: all + $(INSTALL) -d $(SYSTEMDDIR) + $(INSTALL) -m 0644 kpatch.service $(SYSTEMDDIR) + sed -i 's~PREFIX~$(PREFIX)~' $(SYSTEMDDIR)/kpatch.service +- $(INSTALL) -d $(UPSTARTDIR) +- $(INSTALL) -m 0644 kpatch.conf $(UPSTARTDIR) +- sed -i 's~PREFIX~$(PREFIX)~' $(UPSTARTDIR)/kpatch.conf ++# $(INSTALL) -d $(UPSTARTDIR) ++# $(INSTALL) -m 0644 kpatch.conf $(UPSTARTDIR) ++# sed -i 's~PREFIX~$(PREFIX)~' $(UPSTARTDIR)/kpatch.conf + + uninstall: + $(RM) $(SYSTEMDDIR)/kpatch.service +- $(RM) $(UPSTARTDIR)/kpatch.conf ++# $(RM) $(UPSTARTDIR)/kpatch.conf + + clean: +-- +1.8.3.1 + diff --git a/SOURCES/0002-contrib-service-don-t-unload-modules-on-stop.patch b/SOURCES/0002-contrib-service-don-t-unload-modules-on-stop.patch new file mode 100644 index 0000000..559b00f --- /dev/null +++ b/SOURCES/0002-contrib-service-don-t-unload-modules-on-stop.patch @@ -0,0 +1,31 @@ +From 8909e63c54adb34a0324200f99c63fcd7db5cbc5 Mon Sep 17 00:00:00 2001 +From: Joe Lawrence +Date: Mon, 10 Jun 2019 16:55:54 -0400 +Subject: [PATCH] contrib/service: don't unload modules on stop + +The kpatch.service file shouldn't unload patch modules on service stop +(this is also executed by systemd on reboot). Patch modules may not be +designed to be safely unloaded and/or may patch kernel routines that +need to continue to run throughout system bring down. + +Suggested-by: disaster123 +Signed-off-by: Joe Lawrence +--- + contrib/kpatch.service | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/contrib/kpatch.service b/contrib/kpatch.service +index 5286f6c929e0..cf13f40105d9 100644 +--- a/contrib/kpatch.service ++++ b/contrib/kpatch.service +@@ -6,7 +6,6 @@ ConditionKernelCommandLine=!kpatch.enable=0 + Type=oneshot + RemainAfterExit=yes + ExecStart=PREFIX/sbin/kpatch load --all +-ExecStop=PREFIX/sbin/kpatch unload --all + + [Install] + WantedBy=multi-user.target +-- +2.21.0 + diff --git a/SPECS/kpatch.spec b/SPECS/kpatch.spec new file mode 100644 index 0000000..41df3c5 --- /dev/null +++ b/SPECS/kpatch.spec @@ -0,0 +1,109 @@ +Name: kpatch +Version: 0.6.1 +Release: 3%{?dist} +Summary: Dynamic kernel patch manager + +Group: System Environment/Kernel +License: GPLv2 +URL: https://github.com/dynup/kpatch +Source0: https://github.com/dynup/kpatch/archive/v%{version}.tar.gz +Patch0: 0001-contrib-disable-upstart-kpatch.conf-install.patch +Patch1: 0002-contrib-service-don-t-unload-modules-on-stop.patch + +Requires: bash kmod binutils + +BuildArch: noarch + + +%description +kpatch is a live kernel patch module manager. It allows the user to manage +a collection of binary kernel patch modules which can be used to dynamically +patch the kernel without rebooting. + + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 + + +%build +make -C man + + +%install +make install PREFIX=/usr DESTDIR=%{buildroot} -C kpatch +make install PREFIX=/usr DESTDIR=%{buildroot} -C man +make install PREFIX=/usr DESTDIR=%{buildroot} -C contrib +rm -f %{buildroot}/usr/share/man/man1/kpatch-build.1.gz + + +%files +%{_sbindir}/kpatch +%{_usr}/lib/systemd/system/kpatch.service +%doc %{_mandir}/man1/kpatch.1.gz + + +%changelog +* Wed Jun 12 2019 Joe Lawrence 0.6.1-2 +- kpatch: patches shouldn't be unloaded on system shutdown (rhbz#1719305) + +* Wed Jun 5 2019 Josh Poimboeuf 0.6.1-2 +- CI gating test (rhbz#1717417) + +* Tue Aug 14 2018 Joe Lawrence 0.6.1-1 +- update to 0.6.1 (rhbz#1615880) + +* Mon Aug 13 2018 Troy Dawson - 0.4.0-4 +- Release Bumped for el8 Mass Rebuild + +* Thu Nov 16 2017 Joe Lawrence 0.4.0-3 +- kpatch: better livepatch module support (rhbz#1504066) + +* Wed Oct 18 2017 Josh Poimboeuf 0.4.0-2 +- fix backwards compatibility with RHEL 7.3 patches (rhbz#1497735) + +* Mon Mar 13 2017 Josh Poimboeuf 0.4.0-1 +- update to 0.4.0 (rhbz#1427642) + +* Wed Jun 15 2016 Josh Poimboeuf 0.3.2-1 +- update to 0.3.2 (rhbz#1282508) + +* Wed Nov 18 2015 Josh Poimboeuf 0.3.1-1 +- update to 0.3.1 (rhbz#1282508) + +* Tue Sep 16 2014 Seth Jennings 0.1.10-4 +- fix dracut dependencies (rhbz#1170369) + +* Tue Sep 16 2014 Seth Jennings 0.1.10-3 +- support re-enabling forced modules (rhbz#1140268) + +* Thu Sep 11 2014 Seth Jennings 0.1.10-2 +- support modprobe format names (rhbz#1133045) + +* Thu Jul 31 2014 Josh Poimboeuf 0.1.10-1 +- update to kpatch 0.1.10 + +* Wed Jul 23 2014 Josh Poimboeuf 0.1.9-1 +- update to kpatch 0.1.9 + +* Tue Jul 15 2014 Josh Poimboeuf 0.1.8-1 +- update to kpatch 0.1.8 + +* Wed May 21 2014 Josh Poimboeuf 0.1.2-1 +- update to kpatch 0.1.2 + +* Mon May 19 2014 Josh Poimboeuf 0.1.1-2 +- fix initramfs core module path + +* Mon May 19 2014 Josh Poimboeuf 0.1.1-1 +- rebase to kpatch 0.1.1 + +* Fri May 9 2014 Josh Poimboeuf 0.1.0-2 +- modprobe core module + +* Tue May 6 2014 Josh Poimboeuf 0.1.0-1 +- Initial kpatch release 0.1.0 + +* Thu Jan 30 2014 Josh Poimboeuf 0.0-1 +- Initial build