summaryrefslogtreecommitdiff
path: root/sys-apps/keyutils
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /sys-apps/keyutils
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'sys-apps/keyutils')
-rw-r--r--sys-apps/keyutils/Manifest1
-rw-r--r--sys-apps/keyutils/files/keyutils-1.5.10-disable-tests.patch51
-rw-r--r--sys-apps/keyutils/files/keyutils-1.6-makefile-fixup.patch25
-rw-r--r--sys-apps/keyutils/files/keyutils-1.6.3-EDQUOT-tests.patch58
-rw-r--r--sys-apps/keyutils/files/keyutils-1.6.3-fix-rpmspec-check.patch38
-rw-r--r--sys-apps/keyutils/files/keyutils-1.6.3-symbols.patch30
-rw-r--r--sys-apps/keyutils/files/keyutils-1.6.3-tests.patch76
-rw-r--r--sys-apps/keyutils/keyutils-1.6.3-r1.ebuild124
-rw-r--r--sys-apps/keyutils/metadata.xml18
9 files changed, 421 insertions, 0 deletions
diff --git a/sys-apps/keyutils/Manifest b/sys-apps/keyutils/Manifest
new file mode 100644
index 000000000000..a4690bb30144
--- /dev/null
+++ b/sys-apps/keyutils/Manifest
@@ -0,0 +1 @@
+DIST keyutils-1.6.3.tar.gz 137022 BLAKE2B b5620b1b6109415fec1268963c2c65d774f3ef7a69eb1ce8d5d8e78b4b807e4fdfda861662a1b5556975ef867add8f985362a31b6608ac2dc198c8d0395d516b SHA512 f65965b8566037078b8eeffa66c6fdbe121c8c2bea7fa5bce04cf7ba5ccc50d5b48e51f4a67ca91e4d5d9a12469e7e3eb3036c920ab25e3feba6e93b4c149cf9
diff --git a/sys-apps/keyutils/files/keyutils-1.5.10-disable-tests.patch b/sys-apps/keyutils/files/keyutils-1.5.10-disable-tests.patch
new file mode 100644
index 000000000000..fa82792cddbd
--- /dev/null
+++ b/sys-apps/keyutils/files/keyutils-1.5.10-disable-tests.patch
@@ -0,0 +1,51 @@
+disable tests that mess with system wide settings
+
+https://bugs.gentoo.org/519062
+
+--- keyutils-1.5.10/tests/bugzillas/bz1031154/runtest.sh
++++ keyutils-1.5.10/tests/bugzillas/bz1031154/runtest.sh
+@@ -27,6 +27,8 @@
+
+ echo "++++ BEGINNING TEST" >$OUTPUTFILE
+
++if false ; then
++
+ # we need a reference time to scan the audit log from so as not to pick up old
+ # results from this test.
+ base_date=`date +"%x@%X"`
+@@ -97,6 +99,10 @@
+ fi
+ fi
+
++else
++marker "Gentoo: skipping test due to system wide modifications"
++fi
++
+ echo "++++ FINISHED TEST: $result" >>$OUTPUTFILE
+
+ # --- then report the results in the database ---
+
+https://bugs.gentoo.org/522050
+
+--- keyutils-1.5.10/tests/keyctl/padd/useradd/runtest.sh
++++ keyutils-1.5.10/tests/keyctl/padd/useradd/runtest.sh
+@@ -40,6 +40,8 @@
+ marker "UNLINK KEY"
+ unlink_key $keyid @s
+
++if false ; then
++
+ if [ $skip_root_required = 0 ] && {
+ [ $OSDIST = RHEL ] && ! version_less_than $OSRELEASE 6.6 ||
+ keyutils_at_or_later_than 1.5.6 ;
+@@ -85,6 +87,10 @@
+ fi
+ fi
+
++else
++marker "Gentoo: skipping test due to system wide modifications"
++fi
++
+ echo "++++ FINISHED TEST: $result" >>$OUTPUTFILE
+
+ # --- then report the results in the database ---
diff --git a/sys-apps/keyutils/files/keyutils-1.6-makefile-fixup.patch b/sys-apps/keyutils/files/keyutils-1.6-makefile-fixup.patch
new file mode 100644
index 000000000000..25dcdeb5fc39
--- /dev/null
+++ b/sys-apps/keyutils/files/keyutils-1.6-makefile-fixup.patch
@@ -0,0 +1,25 @@
+From d1a02ed81c86fe7140f93b9a160fbb53be148446 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 16 Nov 2018 12:39:12 +0100
+Subject: [PATCH] depend on $(DEVELLIB) not -lkeyutils
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 33a451e..845b8fe 100644
+--- a/Makefile
++++ b/Makefile
+@@ -184,7 +184,7 @@ ifeq ($(NO_SOLIB),0)
+ $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
+ $(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
+ mkdir -p $(DESTDIR)$(USRLIBDIR)
+- $(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
++ $(LNS) $(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
+ sed \
+ -e 's,@VERSION\@,$(VERSION),g' \
+ -e 's,@prefix\@,$(PREFIX),g' \
+--
+2.19.1
+
diff --git a/sys-apps/keyutils/files/keyutils-1.6.3-EDQUOT-tests.patch b/sys-apps/keyutils/files/keyutils-1.6.3-EDQUOT-tests.patch
new file mode 100644
index 000000000000..abaed8b79f09
--- /dev/null
+++ b/sys-apps/keyutils/files/keyutils-1.6.3-EDQUOT-tests.patch
@@ -0,0 +1,58 @@
+https://lore.kernel.org/keyrings/20250810224041.3025756-1-mattst88@gmail.com/
+https://bugs.gentoo.org/789837#c9
+https://bugs.gentoo.org/938132
+
+From: Matt Turner <mattst88@gmail.com>
+To: David Howells <dhowells@redhat.com>
+Cc: keyrings@vger.kernel.org,
+ Matt Turner <mattst88@gmail.com>
+Subject: [PATCH] test: Handle EDQUOT in act_keyctl_test_limits
+Date: Sun, 10 Aug 2025 18:40:41 -0400
+Message-ID: <20250810224041.3025756-1-mattst88@gmail.com>
+X-Mailer: git-send-email 2.49.1
+Precedence: bulk
+X-Mailing-List: keyrings@vger.kernel.org
+List-Id: <keyrings.vger.kernel.org>
+List-Subscribe: <mailto:keyrings+subscribe@vger.kernel.org>
+List-Unsubscribe: <mailto:keyrings+unsubscribe@vger.kernel.org>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+
+This matches the behavior in `act_keyctl_test_limits2` and avoids a test
+failure [1] on some platforms:
+
+```
+TEST SIZE 192._._._._._._
+197 desc wrong error: Disk quota exceeded
+._
+198 desc wrong error: Disk quota exceeded
+._
+199 desc wrong error: Disk quota exceeded
+._
+200 desc wrong error: Disk quota exceeded
+```
+
+[1] https://bugs.gentoo.org/789837#c9
+
+Signed-off-by: Matt Turner <mattst88@gmail.com>
+---
+ keyctl_testing.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git ./keyctl_testing.c ./keyctl_testing.c
+index 3161467..588fa83 100644
+--- ./keyctl_testing.c
++++ ./keyctl_testing.c
+@@ -126,6 +126,10 @@ static void act_keyctl_test_limits(int argc, char *argv[])
+ fprintf(stderr, "%d desc failed: %m\n", i);
+ nr_fail++;
+ }
++ } else if (errno == EDQUOT) {
++ /* This might happen due to us creating keys
++ * really fast.
++ */
+ } else {
+ putchar('\n');
+ fprintf(stderr, "%d desc wrong error: %m\n", i);
+--
+2.49.1
diff --git a/sys-apps/keyutils/files/keyutils-1.6.3-fix-rpmspec-check.patch b/sys-apps/keyutils/files/keyutils-1.6.3-fix-rpmspec-check.patch
new file mode 100644
index 000000000000..3fb659712aed
--- /dev/null
+++ b/sys-apps/keyutils/files/keyutils-1.6.3-fix-rpmspec-check.patch
@@ -0,0 +1,38 @@
+https://bugs.gentoo.org/760633
+
+From 41077f8901b642d36b63f94b0fc62377a07fc0b2 Mon Sep 17 00:00:00 2001
+From: Adrian Ratiu <adrian.ratiu@collabora.com>
+Date: Tue, 4 Jan 2022 03:51:10 +0200
+Subject: [PATCH] Makefile: only run rpmspec if it exists
+
+keyutils is built on many distros which do not use rpm like
+Gentoo, ChromeOS or Arch. Older versions of bash silently
+ignored the fact that rpmspec was missing, but newer bash
+like v5.1 issue a new error:
+
+/bin/sh: line 1: rpmspec: command not found
+
+This happens every time the Makefile is parsed, including
+for a simple "make" invocation or "make install" even if
+a rpm package is not desired.
+
+Arch Linux simply ignores this new error but Gentoo and
+ChromeOS fail because portage actively monitors the build
+log for errors like this. See bug report [1].
+
+Fix this by calling rpmspec only if it exists.
+
+[1] https://bugs.gentoo.org/760633
+
+Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
+--- a/Makefile
++++ b/Makefile
+@@ -285,7 +285,7 @@ SRCBALL := rpmbuild/SOURCES/$(TARBALL)
+ ZSRCBALL := rpmbuild/SOURCES/$(ZTARBALL)
+
+ BUILDID := .local
+-rpmver0 := $(shell rpmspec -q ./keyutils.spec --define "buildid $(BUILDID)")
++rpmver0 := $(shell if which rpmspec >/dev/null 2>&1; then rpmspec -q ./keyutils.spec --define "buildid $(BUILDID)"; fi)
+ rpmver1 := $(word 1,$(rpmver0))
+ rpmver2 := $(subst ., ,$(rpmver1))
+ rpmver3 := $(lastword $(rpmver2))
diff --git a/sys-apps/keyutils/files/keyutils-1.6.3-symbols.patch b/sys-apps/keyutils/files/keyutils-1.6.3-symbols.patch
new file mode 100644
index 000000000000..b7be1e71b725
--- /dev/null
+++ b/sys-apps/keyutils/files/keyutils-1.6.3-symbols.patch
@@ -0,0 +1,30 @@
+https://lore.kernel.org/keyrings/85561febfcf0618a9280448d5c53775646f470d6.1703712863.git.nvinson234@gmail.com/raw
+
+Functions keyctl_restrict() and keyctl_dh_compute_kdf_alloc() are
+nodefined. Their inclusion in version.lds causes clang/llvm LTO
+optimizations to fail with error messages similar to
+
+ error: version script assignment of KEYUTILS_1.7 to symbol
+ keyctl_restrict failed: symbol not defined
+
+This patch fixes the issue by removing the symbol names from
+version.lds.
+
+Fixes Gentoo bug 914637 (https://bugs.gentoo.org/914637)
+
+Signed-off-by: Nicholas Vinson <nvinson234@gmail.com>
+
+--- a/version.lds
++++ b/version.lds
+@@ -76,9 +76,7 @@ KEYUTILS_1.6 {
+
+ KEYUTILS_1.7 {
+ /* management functions */
+- keyctl_restrict;
+ keyctl_dh_compute_kdf;
+- keyctl_dh_compute_kdf_alloc;
+
+ } KEYUTILS_1.6;
+
+--
+2.43.0
diff --git a/sys-apps/keyutils/files/keyutils-1.6.3-tests.patch b/sys-apps/keyutils/files/keyutils-1.6.3-tests.patch
new file mode 100644
index 000000000000..d9414e800a6c
--- /dev/null
+++ b/sys-apps/keyutils/files/keyutils-1.6.3-tests.patch
@@ -0,0 +1,76 @@
+https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/commit/?id=c076dff259e99d84d3822b4d2ad7f3f66532f411
+
+From c076dff259e99d84d3822b4d2ad7f3f66532f411 Mon Sep 17 00:00:00 2001
+From: Pavel Reichl <preichl@redhat.com>
+Date: Tue, 20 Dec 2022 14:13:29 +0100
+Subject: test: Fix test expectation based on kernel config
+
+Some test results are dependent on the kernel configuration option
+CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE.
+
+Check the kernel configuration file for its presence and expect appropriate
+test results.
+
+Function has_kernel_config is based on its xfstsests counterpart.
+
+Signed-off-by: Pavel Reichl <preichl@redhat.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+--- a/tests/features/builtin_trusted/runtest.sh
++++ b/tests/features/builtin_trusted/runtest.sh
+@@ -33,7 +33,11 @@ expect_error EACCES
+ create_key --fail user a a $stk
+ expect_error EOPNOTSUPP
+ create_key --fail user a a $blk
+-expect_error EACCES
++if has_kernel_config "CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE"; then
++ expect_error EOPNOTSUPP
++else
++ expect_error EACCES
++fi
+
+ # Try adding a key to the keyrings
+ marker "TRY ADDING ASYMMETRIC KEYS"
+@@ -89,7 +93,11 @@ expect_error EACCES
+ create_key --fail -x asymmetric "" "$x509" $stk
+ expect_error ENOKEY
+ create_key --fail -x asymmetric "" "$x509" $blk
+-expect_error EACCES
++if has_kernel_config "CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE"; then
++ expect_error EOPNOTSUPP
++else
++ expect_error EACCES
++fi
+
+ echo "++++ FINISHED TEST: $result" >>$OUTPUTFILE
+
+--- a/tests/prepare.inc.sh
++++ b/tests/prepare.inc.sh
+@@ -4,6 +4,26 @@
+ includes=${BASH_SOURCE[0]}
+ includes=${includes%/*}/
+
++# Check if currently running kernel has option set
++function has_kernel_config()
++{
++ local option=$1
++ local uname=$(uname -r)
++ local config_list="$KCONFIG_PATH
++ /lib/modules/$uname/build/.config
++ /boot/config-$uname
++ /lib/kernel/config-$uname"
++
++ for config in $config_list; do
++ [ ! -f $config ] && continue
++ grep -qE "^${option}=[my]" $config
++ return
++ done
++
++ echo "Failed to find kernel configuration file"
++ return false
++}
++
+ # --- need to run in own session keyring
+ watch_fd=0
+ if [ "$1" != "--inside-test-session" ]
+--
+cgit 1.2.3-korg
diff --git a/sys-apps/keyutils/keyutils-1.6.3-r1.ebuild b/sys-apps/keyutils/keyutils-1.6.3-r1.ebuild
new file mode 100644
index 000000000000..92ccac098c42
--- /dev/null
+++ b/sys-apps/keyutils/keyutils-1.6.3-r1.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs linux-info multilib-minimal
+
+DESCRIPTION="Linux Key Management Utilities"
+HOMEPAGE="https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git"
+SRC_URI="https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0/1.9"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="static static-libs test"
+RESTRICT="!test? ( test )"
+
+RDEPEND=""
+DEPEND="!prefix? ( >=sys-kernel/linux-headers-2.6.11 )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6-makefile-fixup.patch
+ "${FILESDIR}"/${PN}-1.5.10-disable-tests.patch #519062 #522050
+ "${FILESDIR}"/${PN}-1.6.3-fix-rpmspec-check.patch
+ "${FILESDIR}"/${PN}-1.6.3-symbols.patch
+ "${FILESDIR}"/${P}-tests.patch
+ "${FILESDIR}"/${PN}-1.6.3-EDQUOT-tests.patch
+)
+
+pkg_setup() {
+ # To prevent a failure in test phase and false positive bug reports
+ # we are enforcing the following options because testsuite expects
+ # that these options are available. I.e. testsuite only decides based
+ # on kernel version which tests will be called, no feature checking.
+ if use test ; then
+ CONFIG_CHECK="KEYS"
+ ERROR_KEYS="You must have CONFIG_KEYS to run the package testsuite!"
+
+ if kernel_is -ge 2 6 10 && kernel_is -lt 4 0 0 ; then
+ CONFIG_CHECK="${CONFIG_CHECK} KEYS_DEBUG_PROC_KEYS"
+ ERROR_KEYS_DEBUG_PROC_KEYS="You must have CONFIG_KEYS_DEBUG_PROC_KEYS to run the package testsuite!"
+ fi
+
+ if kernel_is -ge 4 7 ; then
+ CONFIG_CHECK="${CONFIG_CHECK} KEY_DH_OPERATIONS"
+ ERROR_KEY_DH_OPERATIONS="You must have CONFIG_KEY_DH_OPERATIONS to run the package testsuite!"
+ fi
+ else
+ CONFIG_CHECK="~KEYS"
+ ERROR_KEYS="You will be unable to use this package on this system because CONFIG_KEYS is not set!"
+
+ if kernel_is -ge 4 7 ; then
+ CONFIG_CHECK="${CONFIG_CHECK} ~KEY_DH_OPERATIONS"
+ ERROR_KEY_DH_OPERATIONS="You will be unable to use Diffie-Hellman on this system because CONFIG_KEY_DH_OPERATIONS is not set!"
+ fi
+ fi
+
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # The lsb check is useless, so avoid spurious command not found messages.
+ sed -i -e 's,lsb_release,:,' tests/prepare.inc.sh || die
+ # Some tests call the kernel which calls userspace, but that will
+ # run the install keyutils rather than the locally compiled one,
+ # so disable round trip tests.
+ rm -rf tests/keyctl/requesting/{bad-args,piped,valid}
+
+ multilib_copy_sources
+}
+
+mymake() {
+ local args=(
+ PREFIX="${EPREFIX}/usr"
+ ETCDIR="${EPREFIX}/etc"
+ BINDIR="${EPREFIX}/bin"
+ SBINDIR="${EPREFIX}/sbin"
+ SHAREDIR="${EPREFIX}/usr/share/keyutils"
+ MANDIR="${EPREFIX}/usr/share/man"
+ INCLUDEDIR="${EPREFIX}/usr/include"
+ LIBDIR="${EPREFIX}/usr/$(get_libdir)"
+ USRLIBDIR="${EPREFIX}/usr/$(get_libdir)"
+ CFLAGS="${CFLAGS}"
+ CXXFLAGS="${CXXFLAGS}"
+ RPATH=$(usex static -static '')
+ BUILDFOR=
+ NO_ARLIB="${NO_ARLIB}"
+ )
+ if use static; then
+ args+=( LIB_DEPENDENCY='$(ARLIB)' )
+ fi
+ emake "${args[@]}" "$@"
+}
+
+multilib_src_compile() {
+ local NO_ARLIB
+ if use static; then
+ NO_ARLIB=0
+ else
+ NO_ARLIB=$(usex static-libs 0 1)
+ fi
+ tc-export AR CC CXX
+ mymake
+}
+
+multilib_src_test() {
+ # Execute the locally compiled code rather than the
+ # older versions already installed in the system.
+ LD_LIBRARY_PATH=${BUILD_DIR} \
+ PATH="${BUILD_DIR}:${PATH}" \
+ mymake test
+}
+
+multilib_src_install() {
+ # Possibly undo the setting for USE=static (see src_compile).
+ local NO_ARLIB=$(usex static-libs 0 1)
+ mymake DESTDIR="${D}" install
+}
+
+multilib_src_install_all() {
+ dodoc README
+}
diff --git a/sys-apps/keyutils/metadata.xml b/sys-apps/keyutils/metadata.xml
new file mode 100644
index 000000000000..07a39d5453ca
--- /dev/null
+++ b/sys-apps/keyutils/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:keyutils_project:keyutils</remote-id>
+ </upstream>
+ <slots>
+ <subslots>Reflect ABI compatibility for libkeyutils.so.</subslots>
+ </slots>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>