diff options
author | Stefan Strogin <steils@gentoo.org> | 2019-07-29 05:28:03 +0300 |
---|---|---|
committer | Stefan Strogin <steils@gentoo.org> | 2019-07-30 04:11:58 +0300 |
commit | d1ad77934e0f1cea04a344365affb0b644a1251b (patch) | |
tree | de478737e5c0d5c77870df4e37085729ca11c05a /sys-kernel/kpatch | |
parent | sys-kernel/kpatch: bump version to 0.7.1 (diff) | |
download | gentoo-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.ebuild | 78 |
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 } |