Commit Graph

38 Commits

Author SHA1 Message Date
loretob
c9614c4298 Adding support to upstart systems.
Currently kpatch rely on systemd to load all kmods on startup.
This patch aims to enable kpatch to be used on upstart systems.

Limitations:
With systemd, it would be possible to unload all modules by issuing:
        systemctl stop kpatch
It was not possible to make a reasonable upstart's equivalent of it, so
to unload the modules it will be necessary to call kpatch explicitly:
        kpatch unload --all

I believe this it an non-issue, as it is still possible to unload
the modules by calling kpatch explicitly.

The file /etc/init/kpatch.conf will be installed unconditionally, and
removed on uninstall.

On my tests I have verified that all newly added files by this commit
are also deleted on uninstall.

It was also verified that applied patches are loaded again on startup.

rpmlint does not complain about anything new.

Signed-off-by: Bruno Loreto <loretob@amazon.com>
2018-04-06 16:12:02 +02:00
Alice Ferrazzi
db6efbb8c7 version update 2017-12-27 22:13:14 +09:00
Josh Poimboeuf
07daab89b7 bump version to 0.4.0
This release has many fixes and improvements since 0.3.4.  The '0.3' was
bumped to '0.4' because of commit 0bb5c106ef ("kmod: restructure
kpatch sysfs tree"), which broke the ABI between the kpatch core module
and the kpatch script, as it changed the sysfs layout.

Other notable changes since 0.3.4:

- The tools underlying kpatch-build have been made more modular, in
  preparation for making create-diff-object more generally useful to
  other use cases (kernel livepatch, Xen live patching, user space
  patching).
- Support for all new upstream kernels up to 4.10.
- KASLR support.
- Many other bug fixes and improvements.
2017-03-13 12:49:42 -05:00
Jessica Yu
2935ec3de0 bump version to 0.3.4 2016-10-11 11:28:44 -07:00
Josh Poimboeuf
6645f8ef44 bump version to 0.3.3 2016-08-19 12:39:24 -05:00
Evgenii Shatokhin
20eddbac0c contrib/service: allow to turn the service off at boot time
It may be convenient to be able to turn off the automatic loading of
the patches that kpatch.service does. This helps, for example, if a
buggy patch is installed and crashes the system at boot.

This commit allows to specify kpatch.enable=0 in the kernel command
line. In this case, the binary patches will not be loaded automatically,
and the users should be able to remove or replace the offending patches
after the system boots.

Signed-off-by: Evgenii Shatokhin <eshatokhin@virtuozzo.com>
2016-04-04 16:52:40 +03:00
Josh Poimboeuf
a24b13cfb1 bump version to 0.3.2 2016-02-17 15:36:40 -06:00
Seth Jennings
740163ae12 set mode 0644 on service unit
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2015-06-03 09:09:07 -05:00
Seth Jennings
743f70f002 use PREFIX for absolute path in service unit
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2015-06-03 08:47:14 -05:00
Seth Jennings
bfc088ff89 fixup review comments
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2015-04-29 12:53:39 -05:00
Seth Jennings
aae4d82ecc cleanup spec file
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2015-04-29 10:16:52 -05:00
Seth Jennings
3810ff8f2f add kpatch systemd service
Add a systemd service file for loading of the kpatch modules

Signed-off-by: Seth Jennings <sjenning@redhat.com>
2015-04-29 10:16:52 -05:00
Seth Jennings
2d45022052 remove dracut integration
Remove the dracut support for adding the kpatch modules to the
initramfs.  This creates a sizeable delay in installation time and
doesn't offer any added protect over just applying the patches at boot
time using a systemd service.  Additional, we are seeing more platforms,
namely atomic and netboot environments, where changing the initramfs
can't be done.

Signed-off-by: Seth Jennings <sjenning@redhat.com>
2015-04-29 09:51:28 -05:00
Josh Poimboeuf
07fccdb577 change inst_symlink to inst for insmod
Use "inst" instead of "inst_symlink" for insmod, since insmod might not
necessarily be a symlink on some distros.  inst_symlink is functionally
the same as inst, with an additional check to make sure that it's a
symlink (which we don't care about either way).
2014-12-03 16:10:21 -06:00
Josh Poimboeuf
6cdb5011c5 fix dracut dependencies
The "kpatch install" command is broken because the kpatch script has
some missing dependencies in the initramfs.  Make sure the new
dependencies (readelf and awk) are added to the initramfs.
2014-12-03 16:09:50 -06:00
Josh Poimboeuf
874c438bb6 bump version to 0.2.2 2014-12-03 09:02:55 -06:00
Corey Henderson
88f7d9e834 April 10th was a Thursday 2014-09-05 01:27:42 -04:00
Corey Henderson
b2ac34aa2e Use proper _usr macro on Makefile sed 2014-09-05 01:08:53 -04:00
Josh Poimboeuf
24d8e961ea 0.2.1 release 2014-09-02 11:11:14 -05:00
Josh Poimboeuf
9a7a1038ac 0.2.0 release
ABI breakage b/w core module <-> patch module:
6a69f5f91a
2014-08-20 11:09:05 -05:00
Josh Poimboeuf
6a2b4bb93c 0.1.10 release 2014-07-31 11:22:08 -05:00
Josh Poimboeuf
ec77b26c76 kpatch: change core module path again
On RHEL I'm seeing issues with putting the core module in the "extra"
path.  On the next depmod run, it gets added to modules.dep, and on a
subsequent kpatch install I see the following errors:

    /usr/lib/dracut/modules.d/50drm/module-setup.sh: line 26: /lib/modules/3.10.0-123.4.4.el7.x86_64//weak-updates/kpatch/kpatch.ko: No such file or directory
    /usr/lib/dracut/modules.d/90kernel-modules/module-setup.sh: line 14: /lib/modules/3.10.0-123.4.4.el7.x86_64//weak-updates/kpatch/kpatch.ko: No such file or directory
    modinfo: ERROR: Module /lib/modules/3.10.0-123.4.4.el7.x86_64/weak-updates/kpatch/kpatch.ko not found.

Until the core module gets merged into Linux, I think we can put it in
/usr/lib/kpatch, which is also where the patch modules are going to be
delivered in the RHEL RPM.

Making sure the other options still work with the kpatch utility for
now, so as to keep backwards compatibility between a newer kpatch
utility and older core modules.  We can break this compatibility for
kpatch 0.2.0.
2014-07-28 20:30:20 -05:00
Udo Seidel
5c7630ee76 Rebase of SPEC file to current version 2014-07-07 22:08:54 +02:00
Udo Seidel
d6af58d3ab rebased SPEC file to current version 2014-05-24 14:51:11 +02:00
Josh Poimboeuf
8779d79c50 kpatch: get rid of system-installed modules
The user-installed vs system-installed dichotomy is confusing.  Let's
just have "installed".  RPM-installed modules can just call "kpatch
install" in their post-install step.
2014-05-21 16:50:28 -05:00
Josh Poimboeuf
57ca8eae40 dracut: fix core module path
Forgot to update this file when moving the core module to the extras
subdirectory with a6694fffff.
2014-05-19 19:49:05 -05:00
Madper Xie
b74395c537 Add dirname to initramfs
kpatch script need dirname to git SCRIPTDIR. But dracut won't copy it to
initramfs by default.

Signed-off-by: Madper Xie <cxie@redhat.com>
2014-05-06 17:43:49 +08:00
Josh Poimboeuf
ac53b4e7a0 remove systemd service unit file
Now that we're using dracut instead of systemd to load modules at boot
time, the systemd unit file is no longer needed.
2014-04-15 13:50:18 -05:00
Josh Poimboeuf
3083d4ef85 contrib: change kpatch-apply-all to kpatch-load-all 2014-04-14 12:27:55 -05:00
Udo Seidel
f0b5756267 changelog of SPEC updated ... forgotten before :-( 2014-04-10 23:53:45 +02:00
Udo Seidel
177b42d951 adapted Makefile.inc contrib/Makefile and SPEC file for dracut modules 2014-04-10 22:23:00 +02:00
Seth Jennings
c4d652c5da remove vim metadata from files
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-04-07 12:13:53 -05:00
Seth Jennings
8ba2d549cc add -R to remove directory
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-04-07 12:06:58 -05:00
Josh Poimboeuf
ff2b545f04 kpatch: load core module in kpatch apply 2014-04-01 15:47:22 -05:00
Josh Poimboeuf
eb1bd13278 kpatch: install to initrd and load patch modules on boot
When doing "kpatch install", copy the patch modules to the initrd and
install a dracut hook which calls "kpatch apply --all".
2014-04-01 15:47:22 -05:00
Udo Seidel
fd11e9f5d6 added man pages and updated SPEC file 2014-03-25 08:36:20 +01:00
Udo Seidel
a95589a816 reworked version of spec file 2014-03-24 17:53:42 +01:00
Josh Poimboeuf
4f27b9ae31 functional reorganization
Organize the files functionally:
- kmod/core: core kmod source
- kmod/patch: patch kmod source
- kpatch: kpatch script
- kpatch-build: kpatch build script and supporting tools
- contrib: distro-related files
2014-02-13 11:00:06 -06:00