commit: b18ea9658a78e825c03f32e3e7bd6318484fd8ca Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Sat Jan 17 15:30:35 2026 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Sat Jan 17 15:33:14 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b18ea965
app-crypt/freepg: Use a dist archive instead of git sources Closes: https://bugs.gentoo.org/968413 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> app-crypt/freepg/Manifest | 1 + app-crypt/freepg/freepg-2.5.16-r1.ebuild | 199 +++++++++++++++++++++++++++++++ 2 files changed, 200 insertions(+) diff --git a/app-crypt/freepg/Manifest b/app-crypt/freepg/Manifest index 6caef60dc8e4..cb75a419996c 100644 --- a/app-crypt/freepg/Manifest +++ b/app-crypt/freepg/Manifest @@ -1,2 +1,3 @@ +DIST gnupg-2.5.16-freepg.tar.bz2 7611667 BLAKE2B 1ac116ec185d9d3615d93ea4d46f5c585e7b58dfb0920189ede502fa2e3d931e074db6bec8fce71f7891b1e266d76f4b32de6359f1fae0afae95c2c525de3c85 SHA512 0dc3edc4004773d3785f039187e340181a78de05b36ab1844456f941e52e41c0cfae73baf191dfaadac14c2c69b34bf28ee5aa57650421bc17d251e38901b975 DIST gnupg-gnupg-2.5.14-freepg.tar.bz2 9752062 BLAKE2B 5af35618c713cda116ee3365f47d542cb6bdc046930c8c7b5e337575d5deccf2db29fda2d7043898b0dfb9ae9e9a04e260d07acd8297197f6c3b2f7361f5e8c5 SHA512 6517de1e47e611d01523929127d884efe7e3ec3e7c0b4cc21b0c562b55176ff13ba43b93b646150cd428392746fe0e19494651f4c35b1a3fb9a1cebb40cb68e2 DIST gnupg-gnupg-2.5.16-freepg.tar.bz2 9766553 BLAKE2B c44ba127bc6c870d8918726797fc573f934fa61f2f8010286e8158734cb8273e3e355cab1e5f64e0f4c26566b9e8b0898ddff3e3da0c777114b8cea4df62ef16 SHA512 b246abcd3d899b9ca03c33f880ec75031eedf95f386d3c3cc129751de12913e0536155ddd35559bb312af920602a1d877e0f38c491881377c7fc61a00f85ea02 diff --git a/app-crypt/freepg/freepg-2.5.16-r1.ebuild b/app-crypt/freepg/freepg-2.5.16-r1.ebuild new file mode 100644 index 000000000000..382150eaacf9 --- /dev/null +++ b/app-crypt/freepg/freepg-2.5.16-r1.ebuild @@ -0,0 +1,199 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Keep (roughly) in sync with app-crypt/gnupg! +# in-source builds are not supported: https://dev.gnupg.org/T6313#166339 +inherit flag-o-matic out-of-source multiprocessing systemd toolchain-funcs + +# dist archive instructions at the bottom +MY_P="gnupg-${PV}-freepg" +DESCRIPTION="Cross-distro GnuPG fork focused on OpenPGP compliance" +HOMEPAGE=" + https://freepg.org/ + https://gitlab.com/freepg/gnupg/ +" +SRC_URI=" + https://dev.gentoo.org/~mgorny/dist/${MY_P}.tar.bz2 +" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +IUSE="bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server" +RESTRICT="!test? ( test )" +REQUIRED_USE="test? ( tofu )" + +# Existence of executables is checked during configuration. +# Note: On each bump, update dep bounds on each version from configure.ac! +DEPEND=" + >=dev-libs/libassuan-3.0.0:= + >=dev-libs/libgcrypt-1.11.0:= + >=dev-libs/libgpg-error-1.56 + >=dev-libs/libksba-1.6.3 + >=dev-libs/npth-1.2 + virtual/zlib:= + bzip2? ( app-arch/bzip2 ) + ldap? ( net-nds/openldap:= ) + readline? ( sys-libs/readline:0= ) + smartcard? ( usb? ( virtual/libusb:1 ) ) + tofu? ( >=dev-db/sqlite-3.27 ) + tpm? ( >=app-crypt/tpm2-tss-2.4.0:= ) + ssl? ( >=net-libs/gnutls-3.2:0= ) +" +RDEPEND=" + ${DEPEND} + nls? ( virtual/libintl ) + selinux? ( sec-policy/selinux-gpg ) + wks-server? ( virtual/mta ) + !app-crypt/gnupg +" +PDEPEND=" + app-alternatives/gpg[-reference] + app-crypt/pinentry +" +BDEPEND=" + virtual/pkgconfig + doc? ( sys-apps/texinfo ) + nls? ( sys-devel/gettext ) +" + +DOCS=( + ChangeLog NEWS README THANKS TODO VERSION + doc/FAQ doc/DETAILS doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER +) + +PATCHES=( + "${FILESDIR}"/gnupg-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch +) + +my_src_configure() { + # Upstream don't support LTO, bug #854222. + filter-lto + + local myconf=( + $(use_enable bzip2) + $(use_enable nls) + $(use_enable smartcard scdaemon) + $(use_enable ssl gnutls) + $(use_enable test all-tests) + $(use_enable test tests) + $(use_enable tofu) + $(use_enable tofu keyboxd) + $(use_enable tofu sqlite) + $(usex tpm '--with-tss=intel' '--disable-tpm2d') + $(use smartcard && use_enable usb ccid-driver || echo '--disable-ccid-driver') + $(use_enable wks-server wks-tools) + $(use_with ldap) + $(use_with readline) + + # Hardcode mailprog to /usr/libexec/sendmail even if it does not exist. + # As of GnuPG 2.3, the mailprog substitution is used for the binary called + # by wks-client & wks-server; and if it's autodetected but not not exist at + # build time, then then 'gpg-wks-client --send' functionality will not + # work. This has an unwanted side-effect in stage3 builds: there was a + # [R]DEPEND on virtual/mta, which also brought in virtual/logger, bloating + # the build where the install guide previously make the user chose the + # logger & mta early in the install. + --with-mailprog=/usr/libexec/sendmail + + --disable-ntbtls + --enable-gpgsm + --enable-large-secmem + + CC_FOR_BUILD="$(tc-getBUILD_CC)" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') + ) + + if use prefix && use usb; then + # bug #649598 + append-cppflags -I"${ESYSROOT}/usr/include/libusb-1.0" + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # https://dev.gnupg.org/T7368 + export ac_cv_should_define__xopen_source=yes + fi + + # bug #663142 + if use user-socket; then + myconf+=( --enable-run-gnupg-user-socket ) + fi + + # glib fails and picks up clang's internal stdint.h causing weird errors + tc-is-clang && export gl_cv_absolute_stdint_h="${ESYSROOT}"/usr/include/stdint.h + + econf "${myconf[@]}" +} + +my_src_compile() { + default + + use doc && emake -C doc html +} + +my_src_test() { + export TESTFLAGS="--parallel=$(makeopts_jobs)" + + default +} + +my_src_install() { + emake DESTDIR="${D}" install + + # rename for app-alternatives/gpg + mv "${ED}"/usr/bin/gpg{,-freepg} || die + mv "${ED}"/usr/bin/gpgv{,-freepg} || die + mv "${ED}"/usr/share/man/man1/gpg{,-freepg}.1 || die + mv "${ED}"/usr/share/man/man1/gpgv{,-freepg}.1 || die + + # create *-reference symlinks too, to make it easier to use "some GnuPG" + dosym gpg-freepg /usr/bin/gpg-reference + dosym gpgv-freepg /usr/bin/gpgv-reference + newman - gpg-reference.1 <<<".so gpg-freepg.1" + newman - gpgv-reference.1 <<<".so gpgv-freepg.1" + + use tools && dobin tools/{gpgconf,gpgsplit,gpg-check-pattern} tools/make-dns-cert + + dodir /etc/env.d + echo "CONFIG_PROTECT=/usr/share/gnupg/qualified.txt" >> "${ED}"/etc/env.d/30gnupg || die + + use doc && dodoc doc/gnupg.html/* +} + +my_src_install_all() { + einstalldocs + + use tools && dobin tools/{convert-from-106,mail-signed-keys,lspgpot} + use doc && dodoc doc/*.png + systemd_douserunit doc/examples/systemd-user/*.{service,socket} + newdoc doc/examples/systemd-user/README README-systemd +} + +pkg_preinst() { + if has_version app-crypt/gnupg; then + elog "When switching between GnuPG and FreePG, it is recommended to stop all" + elog "daemons, using: gpgconf --kill all" + fi +} + +pkg_postrm() { + if has_version app-crypt/gnupg; then + elog "When switching between GnuPG and FreePG, it is recommended to stop all" + elog "daemons, using: gpgconf --kill all" + fi +} + +# Copy-paste instructions for creating a dist archive. +make_dist_archive() { + git checkout "gnupg-${PV}-freepg" && + rm -rf .git && + sed -i -e '/beta=yes/d' -e 's:-unknown:-freepg:' autogen.sh && + bash autogen.sh && + ./configure --enable-maintainer-mode && + make -j dist +}
