From 25dbda5817c9281c11f214be4a7e24f3d1ff24ed Mon Sep 17 00:00:00 2001 From: Kristian Fiskerstrand Date: Wed, 4 Jan 2017 13:43:27 +0100 Subject: app-crypt/gnupg: Fix CNAME dns regression introduced in 2.1.17 Upstream patch to fix CNAME DNS regression introduced in released 2.1.17 relating to trailing dot in name. Package-Manager: Portage-2.3.3, Repoman-2.3.1 --- ...ip-root-zone-suffix-from-libdns-cname-res.patch | 46 ++++++++ app-crypt/gnupg/gnupg-2.1.17-r1.ebuild | 128 +++++++++++++++++++++ app-crypt/gnupg/gnupg-2.1.17.ebuild | 128 --------------------- 3 files changed, 174 insertions(+), 128 deletions(-) create mode 100644 app-crypt/gnupg/files/gnupg-2.1.17-dirmngr-Strip-root-zone-suffix-from-libdns-cname-res.patch create mode 100644 app-crypt/gnupg/gnupg-2.1.17-r1.ebuild delete mode 100644 app-crypt/gnupg/gnupg-2.1.17.ebuild (limited to 'app-crypt/gnupg') diff --git a/app-crypt/gnupg/files/gnupg-2.1.17-dirmngr-Strip-root-zone-suffix-from-libdns-cname-res.patch b/app-crypt/gnupg/files/gnupg-2.1.17-dirmngr-Strip-root-zone-suffix-from-libdns-cname-res.patch new file mode 100644 index 000000000000..4b715028f678 --- /dev/null +++ b/app-crypt/gnupg/files/gnupg-2.1.17-dirmngr-Strip-root-zone-suffix-from-libdns-cname-res.patch @@ -0,0 +1,46 @@ +From b200e636ab20d2aa93d9f71f3789db5a04af0a56 Mon Sep 17 00:00:00 2001 +From: Werner Koch +Date: Mon, 2 Jan 2017 10:00:33 +0100 +Subject: [PATCH] dirmngr: Strip root zone suffix from libdns cname results. + +* dirmngr/dns-stuff.c (resolve_name_libdns): Strip trailing dot. +(get_dns_cname_libdns): Ditto. +-- + +Signed-off-by: Werner Koch +--- + dirmngr/dns-stuff.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/dirmngr/dns-stuff.c b/dirmngr/dns-stuff.c +index a31b073..f2e1df9 100644 +--- a/dirmngr/dns-stuff.c ++++ b/dirmngr/dns-stuff.c +@@ -732,6 +732,10 @@ resolve_name_libdns (const char *name, unsigned short port, + err = gpg_error_from_syserror (); + goto leave; + } ++ /* Libdns appends the root zone part which is problematic ++ * for most other functions - strip it. */ ++ if (**r_canonname && (*r_canonname)[strlen (*r_canonname)-1] == '.') ++ (*r_canonname)[strlen (*r_canonname)-1] = 0; + } + + dai = xtrymalloc (sizeof *dai + ent->ai_addrlen -1); +@@ -1899,6 +1903,13 @@ get_dns_cname_libdns (const char *name, char **r_cname) + *r_cname = xtrystrdup (cname.host); + if (!*r_cname) + err = gpg_error_from_syserror (); ++ else ++ { ++ /* Libdns appends the root zone part which is problematic ++ * for most other functions - strip it. */ ++ if (**r_cname && (*r_cname)[strlen (*r_cname)-1] == '.') ++ (*r_cname)[strlen (*r_cname)-1] = 0; ++ } + + leave: + dns_free (ans); +-- +2.8.1 + diff --git a/app-crypt/gnupg/gnupg-2.1.17-r1.ebuild b/app-crypt/gnupg/gnupg-2.1.17-r1.ebuild new file mode 100644 index 000000000000..d682e326589d --- /dev/null +++ b/app-crypt/gnupg/gnupg-2.1.17-r1.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit eutils flag-o-matic toolchain-funcs + +DESCRIPTION="The GNU Privacy Guard, a GPL OpenPGP implementation" +HOMEPAGE="http://www.gnupg.org/" +LICENSE="GPL-3" + +MY_P="${P/_/-}" +SRC_URI="mirror://gnupg/gnupg/${MY_P}.tar.bz2" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" + +SLOT="0" +IUSE="bzip2 doc +gnutls ldap nls readline selinux +smartcard tofu tools usb wks-server" + +COMMON_DEPEND_LIBS=" + >=dev-libs/npth-1.2 + >=dev-libs/libassuan-2.4.3 + >=dev-libs/libgcrypt-1.7.3 + >=dev-libs/libgpg-error-1.24 + >=dev-libs/libksba-1.3.4 + >=net-misc/curl-7.10 + gnutls? ( >=net-libs/gnutls-3.0:0= ) + sys-libs/zlib + ldap? ( net-nds/openldap ) + bzip2? ( app-arch/bzip2 ) + readline? ( sys-libs/readline:0= ) + smartcard? ( usb? ( virtual/libusb:0 ) ) + tofu? ( >=dev-db/sqlite-3.7 ) + " +COMMON_DEPEND_BINS="app-crypt/pinentry + !app-crypt/dirmngr" + +# Existence of executables is checked during configuration. +DEPEND="${COMMON_DEPEND_LIBS} + ${COMMON_DEPEND_BINS} + nls? ( sys-devel/gettext ) + doc? ( sys-apps/texinfo )" + +RDEPEND="${COMMON_DEPEND_LIBS} + ${COMMON_DEPEND_BINS} + selinux? ( sec-policy/selinux-gpg ) + nls? ( virtual/libintl )" + +S="${WORKDIR}/${MY_P}" + +src_prepare() { + default + epatch "${FILESDIR}/${PN}-2.1.16-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch" \ + "${FILESDIR}/${P}-dirmngr-Strip-root-zone-suffix-from-libdns-cname-res.patch" + epatch_user +} + +src_configure() { + local myconf=() + + if use smartcard; then + myconf+=( + --enable-scdaemon + $(use_enable usb ccid-driver) + ) + else + myconf+=( --disable-scdaemon ) + fi + + if use elibc_SunOS || use elibc_AIX; then + myconf+=( --disable-symcryptrun ) + else + myconf+=( --enable-symcryptrun ) + fi + + # glib fails and picks up clang's internal stdint.h causing weird errors + [[ ${CC} == *clang ]] && \ + export gl_cv_absolute_stdint_h=/usr/include/stdint.h + + econf \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + --enable-gpg \ + --enable-gpgsm \ + --enable-large-secmem \ + "${myconf[@]}" \ + $(use_enable bzip2) \ + $(use_enable gnutls) \ + $(use_with ldap) \ + $(use_enable nls) \ + $(use_with readline) \ + $(use_enable tofu) \ + --enable-tools \ + $(use_enable wks-server wks-tools) \ + CC_FOR_BUILD="$(tc-getBUILD_CC)" +} + +src_compile() { + default + + if use doc; then + cd doc + emake html + fi +} + +src_install() { + default + + use tools && dobin tools/{convert-from-106,gpg-check-pattern} \ + tools/{gpg-zip,gpgconf,gpgsplit,lspgpot,mail-signed-keys} \ + tools/make-dns-cert + emake DESTDIR="${D}" -f doc/Makefile uninstall-nobase_dist_docDATA + + dodoc ChangeLog NEWS README THANKS TODO VERSION doc/FAQ doc/DETAILS \ + doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER doc/help* + + dosym gpg2 /usr/bin/gpg + dosym gpgv2 /usr/bin/gpgv + echo ".so man1/gpg2.1" > "${ED}"/usr/share/man/man1/gpg.1 + echo ".so man1/gpgv2.1" > "${ED}"/usr/share/man/man1/gpgv.1 + + dodir /etc/env.d + echo "CONFIG_PROTECT=/usr/share/gnupg/qualified.txt" >> "${ED}"/etc/env.d/30gnupg + + if use doc; then + dohtml doc/gnupg.html/* doc/*.png + fi +} diff --git a/app-crypt/gnupg/gnupg-2.1.17.ebuild b/app-crypt/gnupg/gnupg-2.1.17.ebuild deleted file mode 100644 index 62dc0e9b34d3..000000000000 --- a/app-crypt/gnupg/gnupg-2.1.17.ebuild +++ /dev/null @@ -1,128 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI="5" - -inherit eutils flag-o-matic toolchain-funcs - -DESCRIPTION="The GNU Privacy Guard, a GPL OpenPGP implementation" -HOMEPAGE="http://www.gnupg.org/" -LICENSE="GPL-3" - -MY_P="${P/_/-}" -SRC_URI="mirror://gnupg/gnupg/${MY_P}.tar.bz2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" - -SLOT="0" -IUSE="bzip2 doc +gnutls ldap nls readline selinux +smartcard tofu tools usb wks-server" - -COMMON_DEPEND_LIBS=" - >=dev-libs/npth-1.2 - >=dev-libs/libassuan-2.4.3 - >=dev-libs/libgcrypt-1.7.3 - >=dev-libs/libgpg-error-1.24 - >=dev-libs/libksba-1.3.4 - >=net-misc/curl-7.10 - gnutls? ( >=net-libs/gnutls-3.0:0= ) - sys-libs/zlib - ldap? ( net-nds/openldap ) - bzip2? ( app-arch/bzip2 ) - readline? ( sys-libs/readline:0= ) - smartcard? ( usb? ( virtual/libusb:0 ) ) - tofu? ( >=dev-db/sqlite-3.7 ) - " -COMMON_DEPEND_BINS="app-crypt/pinentry - !app-crypt/dirmngr" - -# Existence of executables is checked during configuration. -DEPEND="${COMMON_DEPEND_LIBS} - ${COMMON_DEPEND_BINS} - nls? ( sys-devel/gettext ) - doc? ( sys-apps/texinfo )" - -RDEPEND="${COMMON_DEPEND_LIBS} - ${COMMON_DEPEND_BINS} - selinux? ( sec-policy/selinux-gpg ) - nls? ( virtual/libintl )" - -S="${WORKDIR}/${MY_P}" - -src_prepare() { - default - epatch "${FILESDIR}/${PN}-2.1.16-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch" - epatch_user -} - -src_configure() { - local myconf=() - - if use smartcard; then - myconf+=( - --enable-scdaemon - $(use_enable usb ccid-driver) - ) - else - myconf+=( --disable-scdaemon ) - fi - - if use elibc_SunOS || use elibc_AIX; then - myconf+=( --disable-symcryptrun ) - else - myconf+=( --enable-symcryptrun ) - fi - - # glib fails and picks up clang's internal stdint.h causing weird errors - [[ ${CC} == *clang ]] && \ - export gl_cv_absolute_stdint_h=/usr/include/stdint.h - - econf \ - --docdir="${EPREFIX}/usr/share/doc/${PF}" \ - --enable-gpg \ - --enable-gpgsm \ - --enable-large-secmem \ - --without-adns \ - "${myconf[@]}" \ - $(use_enable bzip2) \ - $(use_enable gnutls) \ - $(use_with ldap) \ - $(use_enable nls) \ - $(use_with readline) \ - $(use_enable tofu) \ - --enable-tools \ - $(use_enable wks-server wks-tools) \ - CC_FOR_BUILD="$(tc-getBUILD_CC)" -} - -src_compile() { - default - - if use doc; then - cd doc - emake html - fi -} - -src_install() { - default - - use tools && dobin tools/{convert-from-106,gpg-check-pattern} \ - tools/{gpg-zip,gpgconf,gpgsplit,lspgpot,mail-signed-keys} \ - tools/make-dns-cert - emake DESTDIR="${D}" -f doc/Makefile uninstall-nobase_dist_docDATA - - dodoc ChangeLog NEWS README THANKS TODO VERSION doc/FAQ doc/DETAILS \ - doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER doc/help* - - dosym gpg2 /usr/bin/gpg - dosym gpgv2 /usr/bin/gpgv - echo ".so man1/gpg2.1" > "${ED}"/usr/share/man/man1/gpg.1 - echo ".so man1/gpgv2.1" > "${ED}"/usr/share/man/man1/gpgv.1 - - dodir /etc/env.d - echo "CONFIG_PROTECT=/usr/share/gnupg/qualified.txt" >> "${ED}"/etc/env.d/30gnupg - - if use doc; then - dohtml doc/gnupg.html/* doc/*.png - fi -} -- cgit v1.2.3-65-gdbad