diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/files/ecd0c86d62351d267bdc9566286c532a394c711b.patch b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/files/ecd0c86d62351d267bdc9566286c532a394c711b.patch new file mode 100644 index 0000000000..5e7a37d9ff --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/files/ecd0c86d62351d267bdc9566286c532a394c711b.patch @@ -0,0 +1,40 @@ +From ecd0c86d62351d267bdc9566286c532a394c711b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= +Date: Mon, 2 Sep 2024 15:33:25 +0200 +Subject: [PATCH] build,python: Fix build with setuptools 72.2.0+ + +* lang/python/setup.py.in (BuildExtFirstHack.run): Extend members of the +extension instead of lists that were passed to the extension. +-- + +setuptools 72.2.0 integrated changes in distutils which included +"Support for Pathlike objects in data files and extensions". With this +change the extensions now take a copy of the sources list passed to the +constructor instead of keeping a reference to the passed list. Hence, +modifying the sources list that was passed to the extension didn't +change the sources list of the extension anymore. This is fixed by +modifying the sources list of the extension directly. For consistency +we do the same for the swig_opts list. + +GnuPG-bug-id: 7281 +--- + lang/python/setup.py.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in +index 7b64ba7b..d6f537e0 100755 +--- a/lang/python/setup.py.in ++++ b/lang/python/setup.py.in +@@ -217,9 +217,9 @@ class BuildExtFirstHack(build): + def run(self): + self._generate() + +- swig_sources.extend((self._in_build_base('gpgme.i'), +- self._in_build_base('helpers.c'))) +- swig_opts.extend([ ++ swige.sources.extend((self._in_build_base('gpgme.i'), ++ self._in_build_base('helpers.c'))) ++ swige.swig_opts.extend([ + '-I' + self.build_base, '-outdir', + os.path.join(self.build_lib, 'gpg') + ]) diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.23.2.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.23.2-r1.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.23.2.ebuild rename to sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.23.2-r1.ebuild index 729e18d1df..d2971998fa 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.23.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.23.2-r1.ebuild @@ -33,7 +33,7 @@ LICENSE="GPL-2 LGPL-2.1" # Bump FUDGE if a release is made which breaks ABI without changing SONAME. # (Reset to 0 if FUDGE != 0 if libgpgme/libgpgmepp/libqpggme change.) SLOT="1/11.6.15.2" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="common-lisp static-libs +cxx python qt5 qt6 test" RESTRICT="!test? ( test )" REQUIRED_USE=" @@ -69,6 +69,8 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-1.18.0-tests-start-stop-agent-use-command-v.patch "${FILESDIR}"/${PN}-1.23.1-tests-gnupg-no-tofu.patch + # backport fix for setuptools 72.2 breakage + "${FILESDIR}"/ecd0c86d62351d267bdc9566286c532a394c711b.patch ) src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.23.2-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.23.2-r2.ebuild new file mode 100644 index 0000000000..8ed22d8e19 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.23.2-r2.ebuild @@ -0,0 +1,232 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should: +# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ +# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 +# (find the one for the current release then subscribe to it + +# any subsequent ones linked within so you're covered for a while.) + +DISTUTILS_EXT=1 +DISTUTILS_OPTIONAL=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..13} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc + +# in-source builds are not supported: +# * https://dev.gnupg.org/T6313#166339 +# * https://dev.gnupg.org/T6673#174545 +inherit distutils-r1 libtool flag-o-matic multibuild qmake-utils toolchain-funcs verify-sig + +DESCRIPTION="GnuPG Made Easy is a library for making GnuPG easier to use" +HOMEPAGE="https://www.gnupg.org/related_software/gpgme" +SRC_URI=" + mirror://gnupg/gpgme/${P}.tar.bz2 + verify-sig? ( mirror://gnupg/gpgme/${P}.tar.bz2.sig ) +" + +LICENSE="GPL-2 LGPL-2.1" +# Please check ABI on each bump, even if SONAMEs didn't change: bug #833355 +# Use e.g. app-portage/iwdevtools integration with dev-libs/libabigail's abidiff. +# Subslot: SONAME of each: +# Bump FUDGE if a release is made which breaks ABI without changing SONAME. +# (Reset to 0 if FUDGE != 0 if libgpgme/libgpgmepp/libqpggme change.) +SLOT="1/11.6.15.2" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="common-lisp static-libs +cxx python qt5 qt6 test" +RESTRICT="!test? ( test )" +REQUIRED_USE=" + qt5? ( cxx ) + qt6? ( cxx ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +# - On each bump, update dep bounds on each version from configure.ac! +RDEPEND=" + >=app-crypt/gnupg-2 + >=dev-libs/libassuan-2.5.3:= + >=dev-libs/libgpg-error-1.46-r1:= + python? ( ${PYTHON_DEPS} ) + qt5? ( dev-qt/qtcore:5 ) + qt6? ( dev-qt/qtbase:6 ) +" +DEPEND=" + ${RDEPEND} + test? ( + qt5? ( dev-qt/qttest:5 ) + ) +" +#doc? ( app-text/doxygen[dot] ) +BDEPEND=" + python? ( + ${PYTHON_DEPS} + ${DISTUTILS_DEPS} + dev-lang/swig + ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.18.0-tests-start-stop-agent-use-command-v.patch + "${FILESDIR}"/${PN}-1.23.1-tests-gnupg-no-tofu.patch + # backport fix for setuptools 72.2 breakage + "${FILESDIR}"/ecd0c86d62351d267bdc9566286c532a394c711b.patch +) + +src_prepare() { + default + + elibtoolize + + # bug #697456 + addpredict /run/user/$(id -u)/gnupg + + local MAX_WORKDIR=66 + if use test && [[ "${#WORKDIR}" -gt "${MAX_WORKDIR}" ]]; then + eerror "Unable to run tests as WORKDIR='${WORKDIR}' is longer than ${MAX_WORKDIR} which causes failure!" + die "Could not run tests as requested with too-long WORKDIR." + fi + + # Make best effort to allow longer PORTAGE_TMPDIR + # as usock limitation fails build/tests + ln -s "${P}" "${WORKDIR}/b" || die + S="${WORKDIR}/b" + + # Qt 5 and Qt 6 are mutually exclusive in the gpgme build. We don't have + # to do three builds (normal, qt5, qt6), and we can instead just + # do normal+qt5 or normal+qt6. For now, we pessimise qt6 by making it + # be a separate build, but in time, we can swap it so qt5 has to be + # the separate one so some build time gets saved in the common case. + MULTIBUILD_VARIANTS=( + base + $(usev qt6 qt6) + ) + + gpgme_create_builddir() { + mkdir -p "${BUILD_DIR}" || die + } + + multibuild_foreach_variant gpgme_create_builddir +} + +src_configure() { + multibuild_foreach_variant gpgme_src_configure +} + +gpgme_src_configure() { + # bug #847955 + append-lfs-flags + + cd "${BUILD_DIR}" || die + + local languages=() + + case ${MULTIBUILD_VARIANT} in + base) + languages=( + $(usev common-lisp 'cl') + $(usev cxx 'cpp') + $(usev qt5 'qt5') + ) + + if use qt5; then + #use doc || + export DOXYGEN=true + export MOC="$(qt5_get_bindir)/moc" + fi + + ;; + *) + # Sanity check for refactoring, the non-base variant is only for Qt 6 + use qt6 || die "Non-base variant shouldn't be built without Qt 6! Please report at bugs.gentoo.org." + + languages=( + cpp + qt6 + ) + + export MOC="$(qt6_get_libdir)/qt6/libexec/moc" + + ;; + esac + + local myeconfargs=( + $(use test || echo "--disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test") + --enable-languages="${languages[*]}" + $(use_enable static-libs static) + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if [[ ${MULTIBUILD_VARIANT} == base ]] && use python ; then + emake -C lang/python prepare + + pushd lang/python > /dev/null || die + top_builddir="../.." srcdir="${S}/lang/python" CPP="$(tc-getCPP)" distutils-r1_src_configure + popd > /dev/null || die + fi +} + +src_compile() { + multibuild_foreach_variant gpgme_src_compile +} + +gpgme_src_compile() { + cd "${BUILD_DIR}" || die + + emake + + if [[ ${MULTIBUILD_VARIANT} == base ]] && use python ; then + pushd lang/python > /dev/null || die + top_builddir="../.." srcdir="${S}/lang/python" CPP="$(tc-getCPP)" distutils-r1_src_compile + popd > /dev/null || die + fi +} + +src_test() { + multibuild_foreach_variant gpgme_src_test +} + +gpgme_src_test() { + cd "${BUILD_DIR}" || die + + emake check + + if [[ ${MULTIBUILD_VARIANT} == base ]] && use python ; then + distutils-r1_src_test + fi +} + +python_test() { + emake -C lang/python/tests check \ + PYTHON=${EPYTHON} \ + PYTHONS=${EPYTHON} \ + TESTFLAGS="--python-libdir=${BUILD_DIR}/lib" +} + +src_install() { + einstalldocs + multibuild_foreach_variant gpgme_src_install +} + +gpgme_src_install() { + cd "${BUILD_DIR}" || die + + emake DESTDIR="${D}" install + + if [[ ${MULTIBUILD_VARIANT} == base ]] && use python ; then + pushd lang/python > /dev/null || die + top_builddir="../.." srcdir="${S}/lang/python" CPP="$(tc-getCPP)" distutils-r1_src_install + popd > /dev/null || die + fi + + find "${ED}" -type f -name '*.la' -delete || die + + # Backward compatibility for gentoo + # (in the past, we had slots) + dodir /usr/include/gpgme + dosym -r /usr/include/gpgme.h /usr/include/gpgme/gpgme.h +}