commit: 69237ad3160488a4eab566ecc3446322d32e64a1 Author: Mike Gilbert <floppym <AT> gentoo <DOT> org> AuthorDate: Wed Dec 10 01:55:54 2025 +0000 Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org> CommitDate: Wed Dec 10 01:55:54 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69237ad3
sys-libs/libselinux: run python logic in multilib context The python code links with a just-built copy of libselinux. Closes: https://bugs.gentoo.org/966314 Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org> ...-3.8.1-r1.ebuild => libselinux-3.8.1-r2.ebuild} | 108 ++++++++++----------- sys-libs/libselinux/libselinux-9999.ebuild | 108 ++++++++++----------- 2 files changed, 106 insertions(+), 110 deletions(-) diff --git a/sys-libs/libselinux/libselinux-3.8.1-r1.ebuild b/sys-libs/libselinux/libselinux-3.8.1-r2.ebuild similarity index 68% rename from sys-libs/libselinux/libselinux-3.8.1-r1.ebuild rename to sys-libs/libselinux/libselinux-3.8.1-r2.ebuild index 3d2d95404922..e3929b3c323c 100644 --- a/sys-libs/libselinux/libselinux-3.8.1-r1.ebuild +++ b/sys-libs/libselinux/libselinux-3.8.1-r2.ebuild @@ -68,35 +68,33 @@ multilib_src_compile() { FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ all - if multilib_is_native_abi && use ruby; then - building() { - einfo "Calling rubywrap for ${1}" - # Clean up .lo file to force rebuild - rm -f src/selinuxswig_ruby_wrap.lo || die - emake \ - RUBY=${1} \ - LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_LFS=y \ - USE_PCRE2=y \ - FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ - rubywrap - } - for RUBYTARGET in ${USE_RUBY}; do - use ruby_targets_${RUBYTARGET} || continue - - building ${RUBYTARGET} - done - fi -} - -src_compile() { - multilib-minimal_src_compile - - if use python; then - cd src || die - distutils-r1_src_compile + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi + if use ruby; then + building() { + einfo "Calling rubywrap for ${1}" + # Clean up .lo file to force rebuild + rm -f src/selinuxswig_ruby_wrap.lo || die + emake \ + RUBY=${1} \ + LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_LFS=y \ + USE_PCRE2=y \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + building ${RUBYTARGET} + done + fi fi } @@ -108,37 +106,37 @@ multilib_src_install() { USE_PCRE2=y \ install - if multilib_is_native_abi && use ruby; then - installation() { - einfo "Calling install-rubywrap for ${1}" - # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions - rm src/selinuxswig_ruby_wrap.lo - emake DESTDIR="${D}" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - RUBY=${1} \ - USE_LFS=y \ - USE_PCRE2=y \ - install-rubywrap - } - for RUBYTARGET in ${USE_RUBY}; do - use ruby_targets_${RUBYTARGET} || continue - - installation ${RUBYTARGET} - done + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + mv selinux.py __init__.py || die + distutils-r1_src_install + popd >/dev/null || die + fi + if use ruby; then + installation() { + einfo "Calling install-rubywrap for ${1}" + # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions + rm src/selinuxswig_ruby_wrap.lo + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + RUBY=${1} \ + USE_LFS=y \ + USE_PCRE2=y \ + install-rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + installation ${RUBYTARGET} + done + fi fi use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a || die } -multilib_src_install_all() { - if use python; then - cd src || die - mv selinux.py __init__.py || die - distutils-r1_src_install - fi -} - python_install() { # this installs the C extensions only distutils-r1_python_install diff --git a/sys-libs/libselinux/libselinux-9999.ebuild b/sys-libs/libselinux/libselinux-9999.ebuild index cb6d3ab5c7b7..372ceec423d8 100644 --- a/sys-libs/libselinux/libselinux-9999.ebuild +++ b/sys-libs/libselinux/libselinux-9999.ebuild @@ -68,35 +68,33 @@ multilib_src_compile() { FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ all - if multilib_is_native_abi && use ruby; then - building() { - einfo "Calling rubywrap for ${1}" - # Clean up .lo file to force rebuild - rm -f src/selinuxswig_ruby_wrap.lo || die - emake \ - RUBY=${1} \ - LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_LFS=y \ - USE_PCRE2=y \ - FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ - rubywrap - } - for RUBYTARGET in ${USE_RUBY}; do - use ruby_targets_${RUBYTARGET} || continue - - building ${RUBYTARGET} - done - fi -} - -src_compile() { - multilib-minimal_src_compile - - if use python; then - cd src || die - distutils-r1_src_compile + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi + if use ruby; then + building() { + einfo "Calling rubywrap for ${1}" + # Clean up .lo file to force rebuild + rm -f src/selinuxswig_ruby_wrap.lo || die + emake \ + RUBY=${1} \ + LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_LFS=y \ + USE_PCRE2=y \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + building ${RUBYTARGET} + done + fi fi } @@ -108,37 +106,37 @@ multilib_src_install() { USE_PCRE2=y \ install - if multilib_is_native_abi && use ruby; then - installation() { - einfo "Calling install-rubywrap for ${1}" - # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions - rm src/selinuxswig_ruby_wrap.lo - emake DESTDIR="${D}" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - RUBY=${1} \ - USE_LFS=y \ - USE_PCRE2=y \ - install-rubywrap - } - for RUBYTARGET in ${USE_RUBY}; do - use ruby_targets_${RUBYTARGET} || continue - - installation ${RUBYTARGET} - done + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + mv selinux.py __init__.py || die + distutils-r1_src_install + popd >/dev/null || die + fi + if use ruby; then + installation() { + einfo "Calling install-rubywrap for ${1}" + # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions + rm src/selinuxswig_ruby_wrap.lo + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + RUBY=${1} \ + USE_LFS=y \ + USE_PCRE2=y \ + install-rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + installation ${RUBYTARGET} + done + fi fi use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a || die } -multilib_src_install_all() { - if use python; then - cd src || die - mv selinux.py __init__.py || die - distutils-r1_src_install - fi -} - python_install() { # this installs the C extensions only distutils-r1_python_install
