commit: e3fce3694156e8fd4a82d973fd35706ed66ae3cc Author: orbea <orbea <AT> riseup <DOT> net> AuthorDate: Thu Jul 7 23:05:41 2022 +0000 Commit: Quentin Retornaz <gentoo <AT> retornaz <DOT> com> CommitDate: Sun Jul 10 22:51:02 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=e3fce369
net-libs/ldns: Add package Patch from OpenBSD. Signed-off-by: orbea <orbea <AT> riseup.net> Signed-off-by: Quentin Retornaz <gentoo <AT> retornaz.com> net-libs/ldns/Manifest | 3 + net-libs/ldns/files/ldns-1.7.1-Makefile.patch | 11 +++ net-libs/ldns/files/ldns-1.7.1-libressl.patch | 84 ++++++++++++++++ net-libs/ldns/files/ldns-1.8.1-pkgconfig.patch | 10 ++ net-libs/ldns/ldns-1.7.1-r5.ebuild | 122 +++++++++++++++++++++++ net-libs/ldns/ldns-1.7.1-r6.ebuild | 112 +++++++++++++++++++++ net-libs/ldns/ldns-1.8.0-r1.ebuild | 132 +++++++++++++++++++++++++ net-libs/ldns/ldns-1.8.0-r4.ebuild | 123 +++++++++++++++++++++++ net-libs/ldns/ldns-1.8.1.ebuild | 93 +++++++++++++++++ net-libs/ldns/metadata.xml | 24 +++++ 10 files changed, 714 insertions(+) diff --git a/net-libs/ldns/Manifest b/net-libs/ldns/Manifest new file mode 100644 index 0000000..fae7322 --- /dev/null +++ b/net-libs/ldns/Manifest @@ -0,0 +1,3 @@ +DIST ldns-1.7.1.tar.gz 1244394 BLAKE2B 8f2d9c6e34c4f13924ce1531a5757c4a619fc31ebc5a0a3d4aaf43fcfc8b53e8f371984b1c60ab74f735a05a9ca0710fc29a40fffeaef66eb54395eb3a727a0d SHA512 e8f72a4ff4aa544acac5e7be9a8ba38c6b8d388bb26f9a0ed04c1a921622f8582cc8539beafc76a29187a55c94069b7c1875e77522e1a7e7bb3e297dd1e4c2b7 +DIST ldns-1.8.0.tar.gz 1283220 BLAKE2B f916a8c76d788ac7c52aea8bfe675ad4c614a0c6fb011b61f5a27d4a5dc1a2adb33b5c6992b4813b3758c9b7cceab1c77f8c1d66baaa4de993f23888bce69df1 SHA512 54b306160bb7fd76d181f4be0a13134017f6f98ae96e0c954409f31f262e9dbe611c4b76fb6dff47bb6155c652ed8d026b52a50dfcf611e54d9c204b314c4fd6 +DIST ldns-1.8.1.tar.gz 1284971 BLAKE2B ae01ef32571fe3996ddd41f911815239abb704ea1dee479fa612bfd701ca369222ab709923f014662248988cb4452a75bc5debad47d2b0386dc59169b353e6a3 SHA512 600f8e221716742caf439a425008827aef1814fc1d9e751f8f492d0235ff45ca48df90abba17979bac9f4485947bb9fe8102924d9cebe6cb56d5b788e1c4bd14 diff --git a/net-libs/ldns/files/ldns-1.7.1-Makefile.patch b/net-libs/ldns/files/ldns-1.7.1-Makefile.patch new file mode 100644 index 0000000..d654bbd --- /dev/null +++ b/net-libs/ldns/files/ldns-1.7.1-Makefile.patch @@ -0,0 +1,11 @@ +--- Makefile.in.orig 2019-09-29 15:17:24.728446345 +0200 ++++ Makefile.in 2019-09-29 15:18:09.544008785 +0200 +@@ -301,7 +301,7 @@ + $(COMP_LIB) -I./include/ldns $(LIBSSL_CPPFLAGS) $(PYTHON_CPPFLAGS) $(PYTHON_X_CFLAGS) -c $(pywrapdir)/ldns_wrapper.c -o $@ + + _ldns.la: ldns_wrapper.lo libldns.la +- $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS) ++ $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LDFLAGS) $(PYTHON_LDFLAGS) $(LIBS) + + $(p5_dns_ldns_dir)/Makefile: $(p5_dns_ldns_dir)/Makefile.PL + BUILDDIR=`pwd`; cd $(p5_dns_ldns_dir); LD_LIBRARY_PATH="$$BUILDDIR/.libs:$$LD_LIBRARY_PATH" DYLD_LIBRARY_PATH="$$BUILDDIR/.libs:$$DYLD_LIBRARY_PATH" $(PERL) Makefile.PL LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR" diff --git a/net-libs/ldns/files/ldns-1.7.1-libressl.patch b/net-libs/ldns/files/ldns-1.7.1-libressl.patch new file mode 100644 index 0000000..916380b --- /dev/null +++ b/net-libs/ldns/files/ldns-1.7.1-libressl.patch @@ -0,0 +1,84 @@ +From OpenBSD. + +Fix build with opaque DSA/RSA in LibreSSL 3.5. +https://github.com/NLnetLabs/ldns/pull/151 + +Index: dnssec.c +--- a/dnssec.c.orig ++++ b/dnssec.c +@@ -380,7 +380,7 @@ ldns_key_buf2dsa_raw(const unsigned char* key, size_t + BN_free(Y); + return NULL; + } +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + #ifndef S_SPLINT_S + dsa->p = P; + dsa->q = Q; +@@ -466,7 +466,7 @@ ldns_key_buf2rsa_raw(const unsigned char* key, size_t + BN_free(modulus); + return NULL; + } +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + #ifndef S_SPLINT_S + rsa->n = modulus; + +Fix build with opaque DSA/RSA in LibreSSL 3.5. +https://github.com/NLnetLabs/ldns/pull/151 + +Index: host2str.c +--- a/host2str.c.orig ++++ b/host2str.c +@@ -2207,7 +2207,7 @@ ldns_key2buffer_str(ldns_buffer *output, const ldns_ke + const BIGNUM *n=NULL, *e=NULL, *d=NULL, + *p=NULL, *q=NULL, *dmp1=NULL, + *dmq1=NULL, *iqmp=NULL; +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + n = rsa->n; + e = rsa->e; + d = rsa->d; +@@ -2259,7 +2259,7 @@ ldns_key2buffer_str(ldns_buffer *output, const ldns_ke + if(1) { + const BIGNUM *p=NULL, *q=NULL, *g=NULL, + *priv_key=NULL, *pub_key=NULL; +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + #ifndef S_SPLINT_S + p = dsa->p; + q = dsa->q; + +Fix build with opaque DSA/RSA in LibreSSL 3.5. +https://github.com/NLnetLabs/ldns/pull/151 + +Index: keys.c +--- a/keys.c.orig ++++ b/keys.c +@@ -860,7 +860,7 @@ ldns_key_new_frm_fp_rsa_l(FILE *f, int *line_nr) + } + #endif /* splint */ + +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + # ifndef S_SPLINT_S + rsa->n = n; + rsa->e = e; +@@ -980,7 +980,7 @@ ldns_key_new_frm_fp_dsa_l(FILE *f, ATTR_UNUSED(int *li + } + #endif /* splint */ + +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + # ifndef S_SPLINT_S + dsa->p = p; + dsa->q = q; +@@ -1657,7 +1657,7 @@ ldns_key_rsa2bin(unsigned char *data, RSA *k, uint16_t + if (!k) { + return false; + } +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + n = k->n; + e = k->e; + #else diff --git a/net-libs/ldns/files/ldns-1.8.1-pkgconfig.patch b/net-libs/ldns/files/ldns-1.8.1-pkgconfig.patch new file mode 100644 index 0000000..7731ff6 --- /dev/null +++ b/net-libs/ldns/files/ldns-1.8.1-pkgconfig.patch @@ -0,0 +1,10 @@ +--- a/packaging/libldns.pc.in ++++ b/packaging/libldns.pc.in +@@ -8,6 +8,6 @@ + URL: http://www.nlnetlabs.nl/projects/ldns + Version: @PACKAGE_VERSION@ + Requires: ++Requires.private: libcrypto libssl + Libs: -L${libdir} -lldns +-Libs.private: @LDFLAGS@ + Cflags: -I${includedir} diff --git a/net-libs/ldns/ldns-1.7.1-r5.ebuild b/net-libs/ldns/ldns-1.7.1-r5.ebuild new file mode 100644 index 0000000..82c4552 --- /dev/null +++ b/net-libs/ldns/ldns-1.7.1-r5.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{7,8,9,10} ) +inherit multilib-minimal python-single-r1 + +DESCRIPTION="A library with the aim to simplify DNS programming in C" +HOMEPAGE="https://www.nlnetlabs.nl/projects/ldns/" +SRC_URI="https://www.nlnetlabs.nl/downloads/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/3" +KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="+dane doc +ecdsa ed25519 ed448 gost python static-libs vim-syntax" + +# configure will die if ecdsa is enabled and ssl is not +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) +" + +RDEPEND=" + python? ( ${PYTHON_DEPS} ) + ecdsa? ( + >=dev-libs/openssl-1.0.1e:0=[-bindist(-),${MULTILIB_USEDEP}] + ) + ed25519? ( + >=dev-libs/openssl-1.1.0:0=[-bindist(-),${MULTILIB_USEDEP}] + ) + ed448? ( + >=dev-libs/openssl-1.1.1:0=[-bindist(-),${MULTILIB_USEDEP}] + ) + >=dev-libs/openssl-1.0.1e:0=[${MULTILIB_USEDEP}] +" +DEPEND="${RDEPEND} + python? ( dev-lang/swig ) + doc? ( app-doc/doxygen ) +" + +RESTRICT="test" # 1.6.9 has no test directory + +MULTILIB_CHOST_TOOLS=( + /usr/bin/ldns-config +) + +PATCHES=( + "${FILESDIR}"/${P}-libressl.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +multilib_src_configure() { + # >=openssl-1.1.0 required for dane-ta + if has_version "<dev-libs/openssl-1.1.0"; then + local dane_ta_usage="--disable-dane-ta-usage" + else + local dane_ta_usage="" + fi + + # "OpenSSL does not support offline DANE verification (Needed for the + # DANE-TA usage type). Please upgrade OpenSSL to version >= 1.1.0 or rerun + # with --disable-dane-verify or --disable-dane-ta-usage" + + ECONF_SOURCE=${S} \ + econf \ + $(use_enable static-libs static) \ + $(use_enable gost) \ + $(use_enable ecdsa) \ + $(use_enable ed25519) \ + $(use_enable ed448) \ + $(use_enable dane) \ + $(multilib_native_use_with python pyldns) \ + $(multilib_native_use_with python pyldnsx) \ + --with-ssl="${EPREFIX}"/usr \ + --enable-sha2 \ + --without-drill \ + --without-examples \ + ${dane_ta_usage} \ + --disable-dane-ta-usage \ + --disable-rpath +} + +src_prepare() { + default + eapply -p0 "${FILESDIR}/${P}-Makefile.patch" + # remove non-existing dependency for target packaging/libldns.pc + sed -i 's,packaging/libldns.pc.in,,' "${S}"/Makefile.in || die 'could not patch Makefile.in' +} + +multilib_src_compile() { + default + + if multilib_is_native_abi && use doc ; then + emake doxygen + fi +} + +multilib_src_install() { + default + + if multilib_is_native_abi && use doc ; then + dodoc -r doc/html + fi +} + +multilib_src_install_all() { + dodoc Changelog README* + + find "${D}" -name '*.la' -delete || die + use python && python_optimize + + if use vim-syntax ; then + insinto /usr/share/vim/vimfiles/ftdetect + doins libdns.vim + fi + + einfo + elog "Install net-dns/ldns-utils if you want drill and examples" + einfo +} diff --git a/net-libs/ldns/ldns-1.7.1-r6.ebuild b/net-libs/ldns/ldns-1.7.1-r6.ebuild new file mode 100644 index 0000000..c586bc5 --- /dev/null +++ b/net-libs/ldns/ldns-1.7.1-r6.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{7,8,9,10} ) +inherit multilib-minimal python-single-r1 + +DESCRIPTION="A library with the aim to simplify DNS programming in C" +HOMEPAGE="https://www.nlnetlabs.nl/projects/ldns/" +SRC_URI="https://www.nlnetlabs.nl/downloads/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="+dane doc +ecdsa ed25519 ed448 gost python static-libs vim-syntax" + +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) +" + +RDEPEND=" + python? ( ${PYTHON_DEPS} ) + >=dev-libs/openssl-1.1.1l-r1:0=[${MULTILIB_USEDEP}] +" +DEPEND="${RDEPEND} + python? ( dev-lang/swig ) + doc? ( app-doc/doxygen ) +" + +RESTRICT="test" # 1.6.9 has no test directory + +MULTILIB_CHOST_TOOLS=( + /usr/bin/ldns-config +) + +PATCHES=( + "${FILESDIR}"/${P}-libressl.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +multilib_src_configure() { + # >=openssl-1.1.0 required for dane-ta + if has_version "<dev-libs/openssl-1.1.0"; then + local dane_ta_usage="--disable-dane-ta-usage" + else + local dane_ta_usage="" + fi + + # "OpenSSL does not support offline DANE verification (Needed for the + # DANE-TA usage type). Please upgrade OpenSSL to version >= 1.1.0 or rerun + # with --disable-dane-verify or --disable-dane-ta-usage" + + ECONF_SOURCE=${S} \ + econf \ + $(use_enable static-libs static) \ + $(use_enable gost) \ + $(use_enable ecdsa) \ + $(use_enable ed25519) \ + $(use_enable ed448) \ + $(use_enable dane) \ + $(multilib_native_use_with python pyldns) \ + $(multilib_native_use_with python pyldnsx) \ + --with-ssl="${EPREFIX}"/usr \ + --enable-sha2 \ + --without-drill \ + --without-examples \ + ${dane_ta_usage} \ + --disable-dane-ta-usage \ + --disable-rpath +} + +src_prepare() { + default + eapply -p0 "${FILESDIR}/${P}-Makefile.patch" + # remove non-existing dependency for target packaging/libldns.pc + sed -i 's,packaging/libldns.pc.in,,' "${S}"/Makefile.in || die 'could not patch Makefile.in' +} + +multilib_src_compile() { + default + + if multilib_is_native_abi && use doc ; then + emake doxygen + fi +} + +multilib_src_install() { + default + + if multilib_is_native_abi && use doc ; then + dodoc -r doc/html + fi +} + +multilib_src_install_all() { + dodoc Changelog README* + + find "${D}" -name '*.la' -delete || die + use python && python_optimize + + if use vim-syntax ; then + insinto /usr/share/vim/vimfiles/ftdetect + doins libdns.vim + fi + + einfo + elog "Install net-dns/ldns-utils if you want drill and examples" + einfo +} diff --git a/net-libs/ldns/ldns-1.8.0-r1.ebuild b/net-libs/ldns/ldns-1.8.0-r1.ebuild new file mode 100644 index 0000000..1d7a575 --- /dev/null +++ b/net-libs/ldns/ldns-1.8.0-r1.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{7,8,9,10} ) +inherit python-single-r1 autotools multilib-minimal + +DESCRIPTION="A library with the aim to simplify DNS programming in C" +HOMEPAGE="https://www.nlnetlabs.nl/projects/ldns/" +SRC_URI="https://www.nlnetlabs.nl/downloads/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/3" +KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="+dane doc +ecdsa ed25519 ed448 gost python static-libs vim-syntax" + +# configure will die if ecdsa is enabled and ssl is not +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) +" + +RDEPEND=" + python? ( ${PYTHON_DEPS} ) + ecdsa? ( + >=dev-libs/openssl-1.0.1e:0=[-bindist(-),${MULTILIB_USEDEP}] + ) + ed25519? ( + >=dev-libs/openssl-1.1.0:0=[-bindist(-),${MULTILIB_USEDEP}] + ) + ed448? ( + >=dev-libs/openssl-1.1.1:0=[-bindist(-),${MULTILIB_USEDEP}] + ) + >=dev-libs/openssl-1.0.1e:0=[${MULTILIB_USEDEP}] +" +DEPEND="${RDEPEND} + python? ( dev-lang/swig ) + doc? ( app-doc/doxygen ) +" + +RESTRICT="test" # 1.6.9 has no test directory + +MULTILIB_CHOST_TOOLS=( + /usr/bin/ldns-config +) + +PATCHES=( + "${FILESDIR}"/${PN}-1.7.1-libressl.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +multilib_src_configure() { + # >=openssl-1.1.0 required for dane-ta + if has_version "<dev-libs/openssl-1.1.0"; then + local dane_ta_usage="--disable-dane-ta-usage" + else + local dane_ta_usage="" + fi + + # "OpenSSL does not support offline DANE verification (Needed for the + # DANE-TA usage type). Please upgrade OpenSSL to version >= 1.1.0 or rerun + # with --disable-dane-verify or --disable-dane-ta-usage" + + ECONF_SOURCE=${S} \ + econf \ + $(use_enable static-libs static) \ + $(use_enable gost) \ + $(use_enable ecdsa) \ + $(use_enable ed25519) \ + $(use_enable ed448) \ + $(use_enable dane) \ + $(multilib_native_use_with python pyldns) \ + $(multilib_native_use_with python pyldnsx) \ + --with-ssl="${EPREFIX}"/usr \ + --enable-sha2 \ + --without-drill \ + --without-examples \ + ${dane_ta_usage} \ + --disable-dane-ta-usage \ + --disable-rpath +} + +src_prepare() { + default + # remove non-existing dependency for target packaging/libldns.pc + sed -i 's,$(srcdir)/packaging/libldns.pc.in,,' "${S}"/Makefile.in || die 'could not patch Makefile.in' + + # remove $(srcdir) from path for multilib build + sed -i 's,$(srcdir)/packaging/libldns.pc,packaging/libldns.pc,' "${S}"/Makefile.in || die 'could not patch Makefile.in' + + # remove Libs.private, see bug #695672 + sed -i '/^Libs.private:/d' "${S}"/packaging/libldns.pc.in || die 'could not patch libldns.pc.in' + + # backport https://github.com/NLnetLabs/ldns/commit/bc9d017f6fd8b6b5d2ff6e4489a2931d0aab8184 + sed -i 's/AC_SUBST(VERSION_INFO.*/AC_SUBST(VERSION_INFO, [5:0:2])/' "${S}"/configure.ac || die 'could not patch configure.ac' + + eautoreconf +} + +multilib_src_compile() { + default + + if multilib_is_native_abi && use doc ; then + emake doxygen + fi +} + +multilib_src_install() { + default + + if multilib_is_native_abi && use doc ; then + dodoc -r doc/html + fi +} + +multilib_src_install_all() { + dodoc Changelog README* + + find "${D}" -name '*.la' -delete || die + use python && python_optimize + + if use vim-syntax ; then + insinto /usr/share/vim/vimfiles/ftdetect + doins libdns.vim + fi + + einfo + elog "Install net-dns/ldns-utils if you want drill and examples" + einfo +} diff --git a/net-libs/ldns/ldns-1.8.0-r4.ebuild b/net-libs/ldns/ldns-1.8.0-r4.ebuild new file mode 100644 index 0000000..d087f39 --- /dev/null +++ b/net-libs/ldns/ldns-1.8.0-r4.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{7,8,9,10} ) +inherit python-single-r1 autotools multilib-minimal + +DESCRIPTION="A library with the aim to simplify DNS programming in C" +HOMEPAGE="https://www.nlnetlabs.nl/projects/ldns/" +SRC_URI="https://www.nlnetlabs.nl/downloads/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/3" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="+dane doc +ecdsa ed25519 ed448 examples gost python static-libs vim-syntax" + +# configure will die if ecdsa is enabled and ssl is not +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) +" + +COMMON_DEPEND=" + python? ( ${PYTHON_DEPS} ) + >=dev-libs/openssl-1.0.1e:0=[${MULTILIB_USEDEP}] + examples? ( net-libs/libpcap ) +" +DEPEND="${COMMON_DEPEND} + python? ( dev-lang/swig ) + doc? ( app-doc/doxygen ) +" +RDEPEND="${COMMON_DEPEND} + !<net-dns/ldns-utils-1.8.0-r2 +" + +RESTRICT="test" # 1.6.9 has no test directory + +MULTILIB_CHOST_TOOLS=( + /usr/bin/ldns-config +) + +PATCHES=( + "${FILESDIR}"/${PN}-1.7.1-libressl.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +multilib_src_configure() { + # >=openssl-1.1.0 required for dane-ta + if has_version "<dev-libs/openssl-1.1.0"; then + local dane_ta_usage="--disable-dane-ta-usage" + else + local dane_ta_usage="" + fi + + # "OpenSSL does not support offline DANE verification (Needed for the + # DANE-TA usage type). Please upgrade OpenSSL to version >= 1.1.0 or rerun + # with --disable-dane-verify or --disable-dane-ta-usage" + + ECONF_SOURCE=${S} \ + econf \ + $(use_enable static-libs static) \ + $(use_enable gost) \ + $(use_enable ecdsa) \ + $(use_enable ed25519) \ + $(use_enable ed448) \ + $(use_enable dane) \ + $(multilib_native_use_with python pyldns) \ + $(multilib_native_use_with python pyldnsx) \ + --with-ssl="${EPREFIX}"/usr \ + --enable-sha2 \ + $(multilib_native_with drill) \ + $(multilib_native_use_with examples) \ + ${dane_ta_usage} \ + --disable-dane-ta-usage \ + --disable-rpath +} + +src_prepare() { + default + # remove non-existing dependency for target packaging/libldns.pc + sed -i 's,$(srcdir)/packaging/libldns.pc.in,,' "${S}"/Makefile.in || die 'could not patch Makefile.in' + + # remove $(srcdir) from path for multilib build + sed -i 's,$(srcdir)/packaging/libldns.pc,packaging/libldns.pc,' "${S}"/Makefile.in || die 'could not patch Makefile.in' + + # remove Libs.private, see bug #695672 + sed -i '/^Libs.private:/d' "${S}"/packaging/libldns.pc.in || die 'could not patch libldns.pc.in' + + # backport https://github.com/NLnetLabs/ldns/commit/bc9d017f6fd8b6b5d2ff6e4489a2931d0aab8184 + sed -i 's/AC_SUBST(VERSION_INFO.*/AC_SUBST(VERSION_INFO, [5:0:2])/' "${S}"/configure.ac || die 'could not patch configure.ac' + + eautoreconf +} + +multilib_src_compile() { + default + + if multilib_is_native_abi && use doc ; then + emake doxygen + fi +} + +multilib_src_install() { + default + + if multilib_is_native_abi && use doc ; then + dodoc -r doc/html + fi +} + +multilib_src_install_all() { + dodoc Changelog README* + + find "${D}" -name '*.la' -delete || die + use python && python_optimize + + if use vim-syntax ; then + insinto /usr/share/vim/vimfiles/ftdetect + doins libdns.vim + fi +} diff --git a/net-libs/ldns/ldns-1.8.1.ebuild b/net-libs/ldns/ldns-1.8.1.ebuild new file mode 100644 index 0000000..da06869 --- /dev/null +++ b/net-libs/ldns/ldns-1.8.1.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{8,9,10} ) +inherit python-single-r1 multilib-minimal + +DESCRIPTION="A library with the aim to simplify DNS programming in C" +HOMEPAGE="https://www.nlnetlabs.nl/projects/ldns/" +SRC_URI="https://www.nlnetlabs.nl/downloads/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="doc examples python static-libs" + +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) +" + +BDEPEND=" + python? ( dev-lang/swig ) + doc? ( app-doc/doxygen ) +" +DEPEND=" + python? ( ${PYTHON_DEPS} ) + >=dev-libs/openssl-1.1.1l-r1:0=[${MULTILIB_USEDEP},static-libs?] + examples? ( net-libs/libpcap ) +" +RDEPEND="${DEPEND} + !<net-dns/ldns-utils-1.8.0-r2 +" + +RESTRICT="test" # missing test directory + +MULTILIB_CHOST_TOOLS=( + /usr/bin/ldns-config +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + local PATCHES=( + "${FILESDIR}/ldns-1.7.1-libressl.patch" + "${FILESDIR}/ldns-1.8.1-pkgconfig.patch" + ) + default +} + +multilib_src_configure() { + # "OpenSSL does not support offline DANE verification (Needed for the + # DANE-TA usage type). Please upgrade OpenSSL to version >= 1.1.0 or rerun + # with --disable-dane-verify or --disable-dane-ta-usage" + + ECONF_SOURCE=${S} \ + econf \ + $(use_enable static-libs static) \ + $(multilib_native_use_with python pyldns) \ + $(multilib_native_use_with python pyldnsx) \ + --with-ssl="${EPREFIX}"/usr \ + $(multilib_native_with drill) \ + $(multilib_native_use_with examples) \ + --disable-dane-ta-usage \ + --disable-rpath +} + +multilib_src_compile() { + default + + if multilib_is_native_abi && use doc ; then + emake doxygen + fi +} + +multilib_src_install() { + default + + if multilib_is_native_abi && use doc ; then + dodoc -r doc/html + fi +} + +multilib_src_install_all() { + dodoc Changelog README* + + find "${D}" -name '*.la' -delete || die + use python && python_optimize + + insinto /usr/share/vim/vimfiles/ftdetect + doins libdns.vim +} diff --git a/net-libs/ldns/metadata.xml b/net-libs/ldns/metadata.xml new file mode 100644 index 0000000..bea05fd --- /dev/null +++ b/net-libs/ldns/metadata.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>msch...@gentoo.org</email> + <name>Marc Schiffbauer</name> + </maintainer> + <longdescription lang="en"> + ldns is a library with the aim to simplify DNS programming in C. All + lowlevel DNS/DNSSEC operations are supported. We also define a higher + level API which allows a programmer to (for instance) create or sign + packets. + </longdescription> + <use> + <flag name="dane">Enable DNS-based Authentication of Named Entities (DANE) support</flag> + <flag name="ecdsa">Enable ECDSA support</flag> + <flag name="ed25519">Enable ED25519 support</flag> + <flag name="ed448">Enable ED448 support</flag> + <flag name="gost">Enable GOST support</flag> + </use> + <upstream> + <remote-id type="github">NLnetLabs/ldns</remote-id> + </upstream> +</pkgmetadata>