diff --git a/net-libs/gnutls/gnutls-3.7.3.recipe b/net-libs/gnutls/gnutls-3.7.3.recipe new file mode 100644 index 000000000..7d6c1898a --- /dev/null +++ b/net-libs/gnutls/gnutls-3.7.3.recipe @@ -0,0 +1,222 @@ +SUMMARY="A TLS 1.0 and SSL 3.0 implementation for the GNU project" +DESCRIPTION="GnuTLS is a secure communications library implementing the SSL, \ +TLS and DTLS protocols and technologies around them. It provides a simple C \ +language application programming interface (API) to access the secure \ +communications protocols as well as APIs to parse and write X.509, PKCS #12, \ +OpenPGP and other required structures. It is aimed to be portable and \ +efficient with focus on security and interoperability." +HOMEPAGE="https://www.gnutls.org/" +COPYRIGHT="2000-2018 Free Software Fundation Inc. + 2004-2008 Simon Josefsson + 2000-2004 Nikos Mavrogiannopoulos" +LICENSE="GNU LGPL v2.1" +REVISION="1" +SOURCE_URI="https://www.gnupg.org/ftp/gcrypt/gnutls/v${portVersion%\.*}/gnutls-$portVersion.tar.xz" +CHECKSUM_SHA256="fc59c43bc31ab20a6977ff083029277a31935b8355ce387b634fa433f8f6c49a" +SOURCE_DIR="gnutls-$portVersion" +PATCHES="gnutls-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2 ?arm ?ppc" +SECONDARY_ARCHITECTURES="x86" + +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +libgnutls_opensslVersion="27.0.2" +libgnutlsVersion="30.31.0" +libgnutlsxxVersion="28.1.0" + +libgnutls_opensslVersionCompat="$libgnutls_opensslVersion compat >= ${libgnutls_opensslVersion%%.*}" +libgnutlsVersionCompat="$libgnutlsVersion compat >= ${libgnutlsVersion%%.*}" +libgnutlsxxVersionCompat="$libgnutlsxxVersion compat >= ${libgnutlsxxVersion%%.*}" + +PROVIDES=" + gnutls$secondaryArchSuffix = $portVersion + lib:libgnutls_openssl$secondaryArchSuffix = $libgnutls_opensslVersionCompat + lib:libgnutls$secondaryArchSuffix = $libgnutlsVersionCompat + lib:libgnutlsxx$secondaryArchSuffix = $libgnutlsxxVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libgcrypt$secondaryArchSuffix + lib:libgmp$secondaryArchSuffix + lib:libgpg_error$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libidn2$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libnettle$secondaryArchSuffix + lib:libp11_kit$secondaryArchSuffix + lib:libtasn1$secondaryArchSuffix + lib:libunistring$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +CONFLICTS=" + gnutls34$secondaryArchSuffix + gnutls35$secondaryArchSuffix + gnutls36$secondaryArchSuffix + " +REPLACES=" +# gnutls36$secondaryArchSuffix + " + +if [ -z "$commandSuffix" ]; then +PROVIDES_bin=" + gnutls${secondaryArchSuffix}_bin = $portVersion + cmd:certtool + cmd:gnutls_cli + cmd:gnutls_cli_debug + cmd:gnutls_serv + cmd:ocsptool + cmd:p11tool + cmd:psktool + cmd:srptool + " +REQUIRES_bin=" + gnutls$secondaryArchSuffix == $portVersion base + haiku$secondaryArchSuffix + lib:libgcrypt$secondaryArchSuffix + lib:libgpg_error$secondaryArchSuffix + lib:libgmp$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libidn2$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libnettle$secondaryArchSuffix + lib:libp11_kit$secondaryArchSuffix + lib:libtasn1$secondaryArchSuffix + lib:libunistring$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +CONFLICTS_bin=" + gnutls34${secondaryArchSuffix}_bin + gnutls35${secondaryArchSuffix}_bin + gnutls36${secondaryArchSuffix}_bin + " +REPLACES_bin=" +# gnutls36${secondaryArchSuffix}_bin + " +fi + +PROVIDES_devel=" + gnutls${secondaryArchSuffix}_devel = $portVersion + devel:libgnutls_openssl$secondaryArchSuffix = $libgnutls_opensslVersionCompat + devel:libgnutls$secondaryArchSuffix = $libgnutlsVersionCompat + devel:libgnutlsxx$secondaryArchSuffix = $libgnutlsxxVersionCompat + " +REQUIRES_devel=" + gnutls$secondaryArchSuffix == $portVersion base + devel:libgcrypt$secondaryArchSuffix + devel:libgpg_error$secondaryArchSuffix + devel:libidn2$secondaryArchSuffix + devel:libnettle$secondaryArchSuffix >= 8 + devel:libp11_kit$secondaryArchSuffix + devel:libtasn1$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +CONFLICTS_devel=" + gnutls34${secondaryArchSuffix}_devel + gnutls35${secondaryArchSuffix}_devel + gnutls36${secondaryArchSuffix}_devel + " +REPLACES_devel=" +# gnutls36${secondaryArchSuffix}_devel + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libgcrypt$secondaryArchSuffix + devel:libgmp$secondaryArchSuffix + devel:libgpg_error$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libidn2$secondaryArchSuffix + devel:libnettle$secondaryArchSuffix >= 8 + devel:libp11_kit$secondaryArchSuffix + devel:libtasn1$secondaryArchSuffix + devel:libunistring$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:autoheader + cmd:automake + cmd:autopoint + cmd:find + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize$secondaryArchSuffix + cmd:make + cmd:makeinfo + cmd:perl + cmd:pkg_config$secondaryArchSuffix + " + +TEST_REQUIRES=" + cmd:cvs + cmd:git + " + +debugList=( + "$libDir"/libgnutls-openssl.so.$libgnutls_opensslVersion + "$libDir"/libgnutls.so.$libgnutlsVersion + "$libDir"/libgnutlsxx.so.$libgnutlsxxVersion + ) +if [ -z "$commandSuffix" ]; then +debugList+=( + "${commandBinDir/gnutls$secondaryArchSuffix/gnutls${secondaryArchSuffix}_bin}"/certtool + "${commandBinDir/gnutls$secondaryArchSuffix/gnutls${secondaryArchSuffix}_bin}"/gnutls-cli + "${commandBinDir/gnutls$secondaryArchSuffix/gnutls${secondaryArchSuffix}_bin}"/gnutls-cli-debug + "${commandBinDir/gnutls$secondaryArchSuffix/gnutls${secondaryArchSuffix}_bin}"/gnutls-serv + "${commandBinDir/gnutls$secondaryArchSuffix/gnutls${secondaryArchSuffix}_bin}"/ocsptool + "${commandBinDir/gnutls$secondaryArchSuffix/gnutls${secondaryArchSuffix}_bin}"/psktool + "${commandBinDir/gnutls$secondaryArchSuffix/gnutls${secondaryArchSuffix}_bin}"/srptool + ) +fi +defineDebugInfoPackage gnutls$secondaryArchSuffix "${debugList[@]}" + +BUILD() +{ + runConfigure --omit-dirs binDir ./configure --bindir="$commandBinDir" \ + --enable-openssl-compatibility \ + --disable-hardware-acceleration \ + --disable-nls \ + --with-default-trust-store-file=/system/data/ssl/CARootCertificates.pem + make $jobArgs AUTOCONF=: AUTOMAKE=: AUTOHEADER=: ACLOCAL=: +} + +INSTALL() +{ + make install AUTOCONF=: AUTOMAKE=: AUTOHEADER=: ACLOCAL=: + + rm -f "$infoDir"/dir + rm -f "$libDir"/libgnutls*.la + + prepareInstalledDevelLibs libgnutls-openssl libgnutls libgnutlsxx + fixPkgconfig + + if [ -n "$commandSuffix" ]; then + rm -rf "$commandBinDir" "$documentationDir" + maybe_manDir_man3= + else + maybe_manDir_man3="$manDir"/man3 + fi + + packageEntries devel \ + "$developDir" \ + ${maybe_manDir_man3:+"$maybe_manDir_man3"} + + if [ -z "$commandSuffix" ]; then + packageEntries bin \ + "$commandBinDir" \ + "$manDir"/man1 + rmdir "$manDir" + fi +} + +TEST() +{ + make check LIBS="-lgnu" +} diff --git a/net-libs/gnutls/patches/gnutls-3.7.3.patchset b/net-libs/gnutls/patches/gnutls-3.7.3.patchset new file mode 100644 index 000000000..86f918d26 --- /dev/null +++ b/net-libs/gnutls/patches/gnutls-3.7.3.patchset @@ -0,0 +1,94 @@ +From 8aebb8df1c307f513e3cb3f8d2d481a50519fc84 Mon Sep 17 00:00:00 2001 +From: fbrosson +Date: Tue, 7 Jun 2016 03:05:44 +0000 +Subject: include sys/select.h + + +diff --git a/tests/mini-dtls-mtu.c b/tests/mini-dtls-mtu.c +index d48c328..89fec50 100644 +--- a/tests/mini-dtls-mtu.c ++++ b/tests/mini-dtls-mtu.c +@@ -24,6 +24,9 @@ + + #include + #include ++#ifdef __HAIKU__ ++# include ++#endif + #include + #include + #include +diff --git a/tests/mini-dtls-record-asym.c b/tests/mini-dtls-record-asym.c +index 59e7467..820bd66 100644 +--- a/tests/mini-dtls-record-asym.c ++++ b/tests/mini-dtls-record-asym.c +@@ -26,6 +26,9 @@ + + #include + #include ++#ifdef __HAIKU__ ++# include ++#endif + #include + #include + #include +diff --git a/tests/mini-record-failure.c b/tests/mini-record-failure.c +index 5eb2eff..1f179e7 100644 +--- a/tests/mini-record-failure.c ++++ b/tests/mini-record-failure.c +@@ -27,6 +27,9 @@ + + #include + #include ++#ifdef __HAIKU__ ++# include ++#endif + + #if defined(_WIN32) + +-- +2.30.2 + + +From 00f79db0c87d92092b3ad468a7c45c90dc43f944 Mon Sep 17 00:00:00 2001 +From: fbrosson +Date: Wed, 6 Jul 2016 22:11:20 +0000 +Subject: Use /bin/perl instead of /usr/bin/perl. + + +diff --git a/doc/scripts/split-texi.pl b/doc/scripts/split-texi.pl +index 34978d3..96b1067 100755 +--- a/doc/scripts/split-texi.pl ++++ b/doc/scripts/split-texi.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/bin/perl + + # Copyright (C) 2011-2012 Free Software Foundation, Inc. + # +-- +2.30.2 + + +From c2c112879ee5621612e8d8a55f0ffbf8c6e9b0e6 Mon Sep 17 00:00:00 2001 +From: fbrosson +Date: Wed, 18 Jul 2018 07:44:23 +0000 +Subject: doc/examples/tlsproxy/tlsproxy.c calls strdupa and fails to build + +so let's just skip it for now. + +diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am +index c40bf4f..85c6bd6 100644 +--- a/doc/examples/Makefile.am ++++ b/doc/examples/Makefile.am +@@ -74,7 +74,6 @@ if ENABLE_SRP + noinst_PROGRAMS += ex-client-srp ex-serv-srp + endif + +-noinst_PROGRAMS += tlsproxy/tlsproxy + + tlsproxy_tlsproxy_SOURCES = tlsproxy/buffer.c tlsproxy/buffer.h tlsproxy/crypto-gnutls.c \ + tlsproxy/crypto-gnutls.h tlsproxy/tlsproxy.c +-- +2.30.2 +