mirror of
https://github.com/dynup/kpatch
synced 2024-12-26 23:32:04 +00:00
8779d79c50
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.
43 lines
1.0 KiB
Bash
Executable File
43 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Licensed under the GPLv2
|
|
#
|
|
# Copyright 2014 Red Hat, Inc.
|
|
# Josh Poimboeuf <jpoimboe@redhat.com>
|
|
|
|
# called by dracut
|
|
check() {
|
|
if [[ -e /var/lib/kpatch/$kernel ]]; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# called by dracut
|
|
install() {
|
|
# install kpatch script
|
|
inst_any -d /usr/sbin/kpatch /usr/local/sbin/kpatch /usr/sbin/kpatch
|
|
|
|
# install insmod (needed by kpatch script)
|
|
inst_symlink /usr/sbin/insmod
|
|
|
|
# install dirname (needed by kpatch script)
|
|
inst /usr/bin/dirname
|
|
|
|
# install core module
|
|
inst_any -d /usr/lib/modules/$kernel/extra/kpatch/kpatch.ko /usr/local/lib/modules/$kernel/extra/kpatch/kpatch.ko /usr/lib/modules/$kernel/extra/kpatch/kpatch.ko
|
|
|
|
# install patch modules
|
|
if [[ -e /var/lib/kpatch/$kernel ]]; then
|
|
inst_dir /var/lib/kpatch/$kernel
|
|
for i in /var/lib/kpatch/$kernel/*; do
|
|
[[ -e $i ]] || continue
|
|
inst "$i"
|
|
done
|
|
fi
|
|
|
|
# install hook script
|
|
inst_hook pre-udev 00 "$moddir/kpatch-load-all.sh"
|
|
}
|