summaryrefslogtreecommitdiff
path: root/app-crypt/gpgme
diff options
context:
space:
mode:
Diffstat (limited to 'app-crypt/gpgme')
-rw-r--r--app-crypt/gpgme/Manifest4
-rw-r--r--app-crypt/gpgme/files/ecd0c86d62351d267bdc9566286c532a394c711b.patch40
-rw-r--r--app-crypt/gpgme/gpgme-1.23.2-r1.ebuild (renamed from app-crypt/gpgme/gpgme-1.23.2.ebuild)7
-rw-r--r--app-crypt/gpgme/gpgme-1.23.2-r2.ebuild232
4 files changed, 280 insertions, 3 deletions
diff --git a/app-crypt/gpgme/Manifest b/app-crypt/gpgme/Manifest
index b62f2c20eeaa..ec2eb4e1f131 100644
--- a/app-crypt/gpgme/Manifest
+++ b/app-crypt/gpgme/Manifest
@@ -1,6 +1,8 @@
+AUX ecd0c86d62351d267bdc9566286c532a394c711b.patch 1687 BLAKE2B d452eba64f0b5a607064c3956c8c48c52b0e29a047ed23a9f8281b1924f55902c61c9bb9750e948dd1878dde9995d2f91d79a159cf682b8c0fb3cc3d7f42c9c7 SHA512 489f8130e7bb21592b349b3002188c8c2c8e96edaf22c04349f6159786cee0202fbc759533c0885b5834249cfe45da00c29cf7b15e0d0d41c0ad0009037d5996
AUX gpgme-1.18.0-tests-start-stop-agent-use-command-v.patch 771 BLAKE2B c0ab8ad60cbeda32910fe79ada37dab798b6d38d997516ae5d4c0b9acdad8bd1c98fda5e82769e6475ebce770661666e474ab8fad467338f919edcfebd5a2bc9 SHA512 b0bf27bcbf7973638345b8b526ec8b77df8257455a8b716715b62f16bc1b445238086ac54e3fc026277bed95b5f1fcae1e73e566a63bf5b2e5c51ecb52b023d9
AUX gpgme-1.23.1-tests-gnupg-no-tofu.patch 828 BLAKE2B a46a844bc2e44ceb2c647486eb108dc43b0b517ab2171317a936e9a3f8f4d5f0e1c0e3cbd4881540c4f48940975d72a8199e0554d93918be121585223f83032c SHA512 533ed3810736d5cbea3a9cc30cd1b8b3f02051853afab80f564e860afc70097fc0cc6d1d269664b68d58eca78601f90c399a9dcd995c16d65f9bd29e85724b8f
DIST gpgme-1.23.2.tar.bz2 1836904 BLAKE2B 563e470e861c7cc64ecb3e8dd0a0ed8436bc0867105093abcec09f4d1e1dd95cbf64c8161cf8500b9842583b57f6583efff63e5111234e36fda1e6fbedce2f78 SHA512 6cfcd07e81a93de240582de5a46545420cee93d1f27fe20ea2c983780fdd3036b69fdba073cf549d68a20791e189bf4b3cdde14a43f912d2ab9ef3414c83ac75
DIST gpgme-1.23.2.tar.bz2.sig 238 BLAKE2B fafba6e2f1f34c53fa3f7e05953298132f7b046048660b9f2df5bc11ccb9694b581117ca78883a8f4ca9af060397a39f3132a3711be1cd28183b7c2f8f93a8b7 SHA512 65b7cdd4ce06bb0b15b13033d226423380338efdcb47ffc3f33780a92973453053f8f59b12a3f37e392e773bdd207a7420c25aa3a210c15eec45b7bfef6e891e
-EBUILD gpgme-1.23.2.ebuild 5908 BLAKE2B d34c538aacd229b68e2a337199a5638b7b040d4774cb5c5ebcdc571ed969c95608c0291f08697e6b14c18dea654b60a740460d1ebd52c9fdacc113aaf8eb14ba SHA512 020bfe708252a04adf744d69fd29db50b50398545f18b0f3e7f37210513a4015dbbd5659fde3d746b2987e8416138065fb4aeff81a918dfb6463d2f54118dcbd
+EBUILD gpgme-1.23.2-r1.ebuild 6068 BLAKE2B 1b33d1d0f31374d0a088f99c713c776bbdc99627bc31a4b98668b29ba2ed541c6f40ed7dc1b793c5bdd9123016722f867c594e463b636d1faff0f5acf0334283 SHA512 9d4585824bd5c9a16c588746583dbbc9807cc37cac4b725e4363fd5ef8d0bd80e403af7cbe9745b66879c5e8798462d507bf9c03be994336f350dc9aad61a674
+EBUILD gpgme-1.23.2-r2.ebuild 6066 BLAKE2B 54e25d4467fe005ddcbdf789abb175470f0700e906bbeddd9b8837498887781590c1c7f26172c81d042e618640ed3817ee6416d9e034fee773eadc243fa2ce9a SHA512 13a95dade0198fba948e46e171ea82d8497ba73f27b9c8088f8131a348e59510e792598e1cd5ed73399030b829b890eb595efe117b39ce98283730ff58bb22a7
MISC metadata.xml 333 BLAKE2B 6dd18b63ec1f7656ab8bd705242bec45d7820db8be31f326172cad400711e6d7268c156d6b81facfdfa79118c04728ac910a8f8de36a11454227a1399235a582 SHA512 21b8d7bf3f14b5ab7e2ea587027395cdd881ecddd5a4f70237cafc70dc904b396a33f70dd7ef37519df5a204f4e3a89d9ea6ffc221df41bd9cbf23e69863f12f
diff --git a/app-crypt/gpgme/files/ecd0c86d62351d267bdc9566286c532a394c711b.patch b/app-crypt/gpgme/files/ecd0c86d62351d267bdc9566286c532a394c711b.patch
new file mode 100644
index 000000000000..5e7a37d9ff01
--- /dev/null
+++ b/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?= <dev@ingo-kloecker.de>
+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/app-crypt/gpgme/gpgme-1.23.2.ebuild b/app-crypt/gpgme/gpgme-1.23.2-r1.ebuild
index 933a0672a758..d2971998fa7e 100644
--- a/app-crypt/gpgme/gpgme-1.23.2.ebuild
+++ b/app-crypt/gpgme/gpgme-1.23.2-r1.ebuild
@@ -11,7 +11,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_OPTIONAL=1
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc
# in-source builds are not supported:
@@ -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() {
@@ -152,6 +154,7 @@ gpgme_src_configure() {
$(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[@]}"
diff --git a/app-crypt/gpgme/gpgme-1.23.2-r2.ebuild b/app-crypt/gpgme/gpgme-1.23.2-r2.ebuild
new file mode 100644
index 000000000000..8ed22d8e19c7
--- /dev/null
+++ b/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: <libgpgme.libgpgmepp.libqgpgme.FUDGE>
+# 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
+}