sys-kernel/kpatch: add 0.9.10

Updated no werror patch for kpatch 0.9.10

Signed-off-by: Arisu Tachibana <alicef@gentoo.org>
This commit is contained in:
Arisu Tachibana
2025-03-12 16:14:59 +09:00
parent b7b87b7240
commit 1956a83bd7
3 changed files with 116 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST kpatch-0.9.10.tar.gz 341303 BLAKE2B 90cdad8b065ad93bac07c60ba990c6ef2c5311b53e5e9ae715d84ae8207c46b467db68ec17510d1238b86a1722f1b056bd4e2082ea90bc93bfc91a0f8414dca4 SHA512 d27f0e92d93539cc6ae6137419a99d124e5e2dba8bfbf67d15b0bf89230d2e92584c974ccae6932ce7a02460d73da9d46806e9104ee019ea3c6d3cfe8658be83
DIST kpatch-0.9.7.tar.gz 283662 BLAKE2B c57578b2e5db8582cb09b9ba2bf2040cc5a178cd6c8fdb7f14a0819c50fd71eb8576b08264d019678498e98baf2875c3bd38247ebae31a9631f0e6a17ec5941a SHA512 c876d9b1e5f6e6ab858fa6f302e78152beb3e50cedd93f3c61ab6f747e32199b0601ad4a36d426d43d0e9a37d9bf1d6bbfddccc86df4b31d5e3e6edead6cded3
DIST kpatch-0.9.8.tar.gz 297451 BLAKE2B 7970da061d2dfb66871e6fc3ff058da97dfb6bc224c9cff3fb25df586056389e1632e891cc481b007405f4662466441f78f82032ad0803d5ac7b10f9b5c500b6 SHA512 ab3a771dfcde92a9eee768afcf7fddb6f1ad5ba9e8c7f44d579d258ce9b6ee1722869b1b70c4597ae951b0faf71413efa26a5b135f50308c996b284a9dcee5b7

View File

@@ -0,0 +1,14 @@
https://bugs.gentoo.org/776925
diff --git a/kpatch-build/Makefile b/kpatch-build/Makefile
index 4e964b7..fc2d796 100644
--- a/kpatch-build/Makefile
+++ b/kpatch-build/Makefile
@@ -1,7 +1,7 @@
include ../Makefile.inc
CFLAGS += -std=gnu11 -MMD -MP -I../kmod/patch -Iinsn -Wall -Wsign-compare \
- -Wconversion -Wno-sign-conversion -g -Werror
+ -Wconversion -Wno-sign-conversion -g
LDLIBS = -lelf
TARGETS = create-diff-object create-klp-module create-kpatch-module

View File

@@ -0,0 +1,101 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic linux-mod-r1
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/dynup/${PN}.git"
else
SRC_URI="https://github.com/dynup/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
fi
DESCRIPTION="Dynamic kernel patching for Linux"
HOMEPAGE="https://github.com/dynup/kpatch"
LICENSE="GPL-2+"
SLOT="0"
IUSE="contrib +kpatch +kpatch-build kmod test"
RESTRICT="!test? ( test )"
RDEPEND="
app-crypt/pesign
sys-libs/zlib
sys-apps/pciutils
"
DEPEND="
${RDEPEND}
dev-libs/elfutils
app-alternatives/yacc
test? ( || ( dev-util/shellcheck-bin dev-util/shellcheck ) )
"
PATCHES=(
"${FILESDIR}"/${PN}-0.9.10-no-werror.patch
)
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
eerror
eerror "kpatch is not available for Linux kernels below 4.0.0"
eerror
die "Upgrade the kernel sources before installing kpatch."
fi
check_extra_config
fi
linux-mod-r1_pkg_setup
}
src_prepare() {
replace-flags '-O?' '-O1'
default
}
src_compile() {
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() {
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
dodoc README.md doc/patch-author-guide.md
}