From 62ab48d8edb336e83f2a8988f09c85766c368c75 Mon Sep 17 00:00:00 2001 From: Sam James Date: Fri, 5 Jan 2024 05:17:51 +0000 Subject: sys-libs/libcap-ng: fix swig-4.2.0 compat Closes: https://bugs.gentoo.org/921305 Signed-off-by: Sam James --- .../libcap-ng/files/libcap-ng-0.8.4-swig.patch | 31 ++++++ sys-libs/libcap-ng/libcap-ng-0.8.4-r1.ebuild | 104 +++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 sys-libs/libcap-ng/files/libcap-ng-0.8.4-swig.patch create mode 100644 sys-libs/libcap-ng/libcap-ng-0.8.4-r1.ebuild diff --git a/sys-libs/libcap-ng/files/libcap-ng-0.8.4-swig.patch b/sys-libs/libcap-ng/files/libcap-ng-0.8.4-swig.patch new file mode 100644 index 000000000000..4b3f41a580ab --- /dev/null +++ b/sys-libs/libcap-ng/files/libcap-ng-0.8.4-swig.patch @@ -0,0 +1,31 @@ +https://bugs.gentoo.org/921305 +https://github.com/stevegrubb/libcap-ng/issues/48 +https://github.com/stevegrubb/libcap-ng/commit/30453b6553948cd05c438f9f509013e3bb84f25b + +From 30453b6553948cd05c438f9f509013e3bb84f25b Mon Sep 17 00:00:00 2001 +From: Steve Grubb +Date: Thu, 4 Jan 2024 15:06:29 -0500 +Subject: [PATCH] Remove python global exception handler since its deprecated + +--- + bindings/src/capng_swig.i | 7 ------- + 2 files changed, 1 insertion(+), 7 deletions(-) + +diff --git a/bindings/src/capng_swig.i b/bindings/src/capng_swig.i +index fcdaf18..fa85e13 100644 +--- a/bindings/src/capng_swig.i ++++ b/bindings/src/capng_swig.i +@@ -30,13 +30,6 @@ + + %varargs(16, signed capability = 0) capng_updatev; + +-%except(python) { +- $action +- if (result < 0) { +- PyErr_SetFromErrno(PyExc_OSError); +- return NULL; +- } +-} + #endif + + %define __signed__ diff --git a/sys-libs/libcap-ng/libcap-ng-0.8.4-r1.ebuild b/sys-libs/libcap-ng/libcap-ng-0.8.4-r1.ebuild new file mode 100644 index 000000000000..1774677f7280 --- /dev/null +++ b/sys-libs/libcap-ng/libcap-ng-0.8.4-r1.ebuild @@ -0,0 +1,104 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Keep an eye on Fedora's packaging (https://src.fedoraproject.org/rpms/libcap-ng/tree/rawhide) for patches +# Same maintainer in Fedora as upstream +PYTHON_COMPAT=( python3_{10..12} ) +inherit autotools flag-o-matic python-r1 + +DESCRIPTION="POSIX 1003.1e capabilities" +HOMEPAGE="https://people.redhat.com/sgrubb/libcap-ng/" +SRC_URI="https://people.redhat.com/sgrubb/${PN}/${P}.tar.gz" + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" +IUSE="python static-libs" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="python? ( ${PYTHON_DEPS} )" +DEPEND=" + ${RDEPEND} + sys-kernel/linux-headers +" +BDEPEND="python? ( >=dev-lang/swig-2 )" + +PATCHES=( + "${FILESDIR}"/${P}-swig.patch +) + +src_prepare() { + default + + if use prefix ; then + sed -i "s@cat /usr@cat ${EPREFIX}/usr@" bindings/python*/Makefile.am || die + # bug #668722 + eautomake + fi +} + +src_configure() { + use sparc && replace-flags -O? -O0 + + local ECONF_SOURCE="${S}" + + local myconf=( + $(use_enable static-libs static) + ) + + local pythonconf=( + --without-python3 + ) + + # Set up python bindings build(s) + if use python ; then + setup_python_flags_configure() { + pythonconf=( + --with-python3 + ) + + run_in_build_dir econf "${pythonconf[@]}" "${myconf[@]}" + } + + python_foreach_impl setup_python_flags_configure + else + local BUILD_DIR="${WORKDIR}"/build + run_in_build_dir econf "${pythonconf[@]}" "${myconf[@]}" + fi +} + +src_compile() { + if use python ; then + python_foreach_impl run_in_build_dir emake + else + local BUILD_DIR="${WORKDIR}"/build + emake -C "${BUILD_DIR}" + fi +} + +src_test() { + if [[ "${EUID}" -eq 0 ]] ; then + ewarn "Skipping tests due to root permissions." + return + fi + + if use python ; then + python_foreach_impl run_in_build_dir emake check + else + local BUILD_DIR="${WORKDIR}"/build + emake -C "${BUILD_DIR}" check + fi +} + +src_install() { + if use python ; then + python_foreach_impl run_in_build_dir emake DESTDIR="${D}" install + else + local BUILD_DIR="${WORKDIR}"/build + emake -C "${BUILD_DIR}" DESTDIR="${D}" install + fi + + find "${ED}" -name '*.la' -delete || die +} -- cgit v1.2.3-65-gdbad