summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Strogin <steils@gentoo.org>2019-07-29 05:28:03 +0300
committerStefan Strogin <steils@gentoo.org>2019-07-30 04:11:58 +0300
commitd1ad77934e0f1cea04a344365affb0b644a1251b (patch)
treede478737e5c0d5c77870df4e37085729ca11c05a /sys-kernel/kpatch
parentsys-kernel/kpatch: bump version to 0.7.1 (diff)
downloadgentoo-d1ad77934e0f1cea04a344365affb0b644a1251b.tar.gz
gentoo-d1ad77934e0f1cea04a344365affb0b644a1251b.tar.bz2
gentoo-d1ad77934e0f1cea04a344365affb0b644a1251b.zip
sys-kernel/kpatch: sync live ebuild
Package-Manager: Portage-2.3.69, Repoman-2.3.16 Signed-off-by: Stefan Strogin <steils@gentoo.org>
Diffstat (limited to 'sys-kernel/kpatch')
-rw-r--r--sys-kernel/kpatch/kpatch-9999.ebuild78
1 files changed, 48 insertions, 30 deletions
diff --git a/sys-kernel/kpatch/kpatch-9999.ebuild b/sys-kernel/kpatch/kpatch-9999.ebuild
index 0d6aa6e706a4..dd2b30d0b351 100644
--- a/sys-kernel/kpatch/kpatch-9999.ebuild
+++ b/sys-kernel/kpatch/kpatch-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="6"
+EAPI=7
-inherit linux-info linux-mod flag-o-matic
+inherit flag-o-matic linux-mod
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
@@ -18,45 +18,46 @@ HOMEPAGE="https://github.com/dynup/kpatch"
LICENSE="GPL-2+"
SLOT="0"
-IUSE="examples +modules test"
+IUSE="contrib +kpatch +kpatch-build kmod test"
RDEPEND="
app-crypt/pesign
- dev-libs/openssl:0=
sys-libs/zlib
sys-apps/pciutils
"
DEPEND="
${RDEPEND}
- test? ( dev-util/shellcheck )
dev-libs/elfutils
sys-devel/bison
+ test? ( dev-util/shellcheck-bin )
"
-pkg_pretend() {
- if kernel_is gt 3 9 0; then
- if ! linux_config_exists; then
- eerror "Unable to check the currently running kernel for kpatch support"
- eerror "Please be sure a .config file is available in the kernel src dir"
- eerror "and ensure the kernel has been built."
+pkg_setup() {
+ if use kmod; then
+ if kernel_is gt 3 9 0; then
+ if ! linux_config_exists; then
+ eerror "Unable to check the currently running kernel for kpatch support"
+ eerror "Please be sure a .config file is available in the kernel src dir"
+ eerror "and ensure the kernel has been built."
+ else
+ # Fail to build if these kernel options are not enabled (see kpatch/kmod/core/Makefile)
+ CONFIG_CHECK="FUNCTION_TRACER HAVE_FENTRY MODULES SYSFS KALLSYMS_ALL"
+ ERROR_FUNCTION_TRACER="CONFIG_FUNCTION_TRACER must be enabled in the kernel's config file"
+ ERROR_HAVE_FENTRY="CONFIG_HAVE_FENTRY must be enabled in the kernel's config file"
+ ERROR_MODULES="CONFIG_MODULES must be enabled in the kernel's config file"
+ ERROR_SYSFS="CONFIG_SYSFS must be enabled in the kernel's config file"
+ ERROR_KALLSYMS_ALL="CONFIG_KALLSYMS_ALL must be enabled in the kernel's config file"
+ fi
else
- # Fail to build if these kernel options are not enabled (see kpatch/kmod/core/Makefile)
- CONFIG_CHECK="FUNCTION_TRACER HAVE_FENTRY MODULES SYSFS KALLSYMS_ALL"
- ERROR_FUNCTION_TRACER="CONFIG_FUNCTION_TRACER must be enabled in the kernel's config file"
- ERROR_HAVE_FENTRY="CONFIG_HAVE_FENTRY must be enabled in the kernel's config file"
- ERROR_MODULES="CONFIG_MODULES must be enabled in the kernel's config file"
- ERROR_SYSFS="CONFIG_SYSFS must be enabled in the kernel's config file"
- ERROR_KALLSYMS_ALL="CONFIG_KALLSYMS_ALL must be enabled in the kernel's config file"
+ eerror
+ eerror "kpatch is not available for Linux kernels below 4.0.0"
+ eerror
+ die "Upgrade the kernel sources before installing kpatch."
fi
- else
- eerror
- eerror "kpatch is not available for Linux kernels below 4.0.0"
- eerror
- die "Upgrade the kernel sources before installing kpatch."
+ check_extra_config
fi
- check_extra_config
}
src_prepare() {
@@ -65,13 +66,30 @@ src_prepare() {
}
src_compile() {
- set_arch_to_kernel
- emake all
+ use kpatch-build && emake -C kpatch-build
+ use kpatch && emake -C kpatch
+ use kmod && set_arch_to_kernel && emake -C kmod
+ use contrib && emake -C contrib
+ use test && emake check
}
src_install() {
- set_arch_to_kernel
- emake DESTDIR="${D}" PREFIX="/usr" install
+ if use kpatch-build; then
+ emake DESTDIR="${D}" PREFIX="/usr" install -C kpatch-build
+ insinto /usr/share/${PN}/patch
+ doins kmod/patch/kpatch{.lds.S,-macros.h,-patch.h,-patch-hook.c}
+ doins kmod/patch/{livepatch-patch-hook.c,Makefile,patch-hook.c}
+ doins kmod/core/kpatch.h
+ doman man/kpatch-build.1
+ fi
+
+ if use kpatch; then
+ emake DESTDIR="${D}" PREFIX="/usr" install -C kpatch
+ doman man/kpatch.1
+ fi
+
+ use kmod && set_arch_to_kernel && emake DESTDIR="${D}" PREFIX="/usr" install -C kmod
+ use contrib && emake DESTDIR="${D}" PREFIX="/usr" install -C contrib
- einstalldocs
+ dodoc README.md doc/patch-author-guide.md
}