diff options
Diffstat (limited to 'yocto-poky/meta/recipes-support/gnutls')
7 files changed, 256 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-support/gnutls/gnutls.inc b/yocto-poky/meta/recipes-support/gnutls/gnutls.inc new file mode 100644 index 000000000..e9b138a03 --- /dev/null +++ b/yocto-poky/meta/recipes-support/gnutls/gnutls.inc @@ -0,0 +1,49 @@ +SUMMARY = "GNU Transport Layer Security Library" +HOMEPAGE = "http://www.gnu.org/software/gnutls/" +BUGTRACKER = "https://savannah.gnu.org/support/?group=gnutls" +DEPENDS = "nettle" + +LICENSE = "GPLv3+ & LGPLv2.1+" +LICENSE_${PN} = "LGPLv2.1+" +LICENSE_${PN}-xx = "LGPLv2.1+" +LICENSE_${PN}-bin = "GPLv3+" +LICENSE_${PN}-openssl = "GPLv3+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343" + + +SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" + +SRC_URI = "ftp://ftp.gnutls.org/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz" + +inherit autotools texinfo binconfig pkgconfig gettext lib_package + +EXTRA_OECONF="--disable-rpath \ + --with-included-libtasn1 \ + --enable-local-libopts \ + --with-libpthread-prefix=${STAGING_DIR_HOST}${prefix} \ + --disable-guile \ + --disable-crywrap \ + --without-p11-kit \ + " + +do_configure_prepend() { + for dir in . lib; do + rm -f ${dir}/aclocal.m4 ${dir}/m4/libtool.m4 ${dir}/m4/lt*.m4 + done +} + +PACKAGECONFIG ??= "zlib" +PACKAGECONFIG[tpm] = "--with-tpm, --without-tpm, trousers" +PACKAGECONFIG[zlib] = "--with-zlib, --without-zlib, zlib" + +PACKAGES =+ "${PN}-openssl ${PN}-xx" + +FILES_${PN}-dev += "${bindir}/gnutls-cli-debug" +FILES_${PN}-openssl = "${libdir}/libgnutls-openssl.so.*" +FILES_${PN}-xx = "${libdir}/libgnutlsxx.so.*" + +LDFLAGS_append_libc-uclibc += " -pthread" + +BBCLASSEXTEND = "native nativesdk" diff --git a/yocto-poky/meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch b/yocto-poky/meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch new file mode 100644 index 000000000..44a9934b5 --- /dev/null +++ b/yocto-poky/meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch @@ -0,0 +1,31 @@ +From eb93aa7b986c84da60a3db40afb29d1a70c50223 Mon Sep 17 00:00:00 2001 +From: Robert Yang <liezhi.yang@windriver.com> +Date: Sat, 17 Jan 2015 17:02:15 +0000 +Subject: [PATCH] configure.ac: fix sed command + +The "sed 's/.bak//g'" matchs "bitbake", which would cause strange errors +when the S contains "bitbake", fix to "sed 's/\.bak$//'`" + +Upstream-Status: Pending + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index c6818a0..1c4582d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -466,7 +466,7 @@ if test "$NEED_LIBOPTS_DIR" = "true";then + dnl replace libopts-generated files with distributed backups, if present + missing_baks= + for i in ${srcdir}/src/*-args.c.bak ${srcdir}/src/*-args.h.bak; do +- nam=`echo $i|sed 's/.bak//g'` ++ nam=`echo $i|sed 's/\.bak$//'` + if test -f $i;then + cp -f $i $nam + else +-- +2.0.1 + diff --git a/yocto-poky/meta/recipes-support/gnutls/gnutls/correct_rpl_gettimeofday_signature.patch b/yocto-poky/meta/recipes-support/gnutls/gnutls/correct_rpl_gettimeofday_signature.patch new file mode 100644 index 000000000..5e452c52e --- /dev/null +++ b/yocto-poky/meta/recipes-support/gnutls/gnutls/correct_rpl_gettimeofday_signature.patch @@ -0,0 +1,67 @@ +From ae3370788ed3447bba16969d9eb1bf1b9631e1b7 Mon Sep 17 00:00:00 2001 +From: Valentin Popa <valentin.popa@intel.com> +Date: Fri, 25 Apr 2014 13:58:55 +0300 +Subject: [PATCH] Correct rpl_gettimeofday signature + +Currently we fail on uclibc like below + +| In file included from /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-uclibc/sysroots/qemuarm/usr/include/sys/procfs.h:32:0, +| from /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-uclibc/sysroots/qemuarm/usr/include/sys/ucontext.h:26, +| from /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-uclibc/sysroots/qemuarm/usr/include/signal.h:392, +| from ../../gl/signal.h:52, +| from ../../gl/sys/select.h:58, +| from /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-uclibc/sysroots/qemuarm/usr/include/sys/types.h:220, +| from ../../gl/sys/types.h:28, +| from ../../lib/includes/gnutls/gnutls.h:46, +| from ex-cxx.cpp:3: +| ../../gl/sys/time.h:396:66: error: conflicting declaration 'void* restrict' +| ../../gl/sys/time.h:396:50: error: 'restrict' has a previous declaration as 'timeval* restrict' +| make[4]: *** [ex-cxx.o] Error 1 +| make[4]: *** Waiting for unfinished jobs.... + +GCC detects that we call 'restrict' as param name in function +signatures and complains since both params are called 'restrict' +therefore we use __restrict to denote the C99 keywork + +This only happens of uclibc since this code is not excercised with +eglibc otherwise we will have same issue there too + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + gl/sys_time.in.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/gl/sys_time.in.h b/gl/sys_time.in.h +index 84a17c9..6ceadc3 100644 +--- a/gl/sys_time.in.h ++++ b/gl/sys_time.in.h +@@ -93,20 +93,20 @@ struct timeval + # define gettimeofday rpl_gettimeofday + # endif + _GL_FUNCDECL_RPL (gettimeofday, int, +- (struct timeval *restrict, void *restrict) ++ (struct timeval *__restrict, void *__restrict) + _GL_ARG_NONNULL ((1))); + _GL_CXXALIAS_RPL (gettimeofday, int, +- (struct timeval *restrict, void *restrict)); ++ (struct timeval *__restrict, void *__restrict)); + # else + # if !@HAVE_GETTIMEOFDAY@ + _GL_FUNCDECL_SYS (gettimeofday, int, +- (struct timeval *restrict, void *restrict) ++ (struct timeval *__restrict, void *__restrict) + _GL_ARG_NONNULL ((1))); + # endif + /* Need to cast, because on glibc systems, by default, the second argument is + struct timezone *. */ + _GL_CXXALIAS_SYS_CAST (gettimeofday, int, +- (struct timeval *restrict, void *restrict)); ++ (struct timeval *__restrict, void *__restrict)); + # endif + _GL_CXXALIASWARN (gettimeofday); + #elif defined GNULIB_POSIXCHECK +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-support/gnutls/gnutls/use-pkg-config-to-locate-zlib.patch b/yocto-poky/meta/recipes-support/gnutls/gnutls/use-pkg-config-to-locate-zlib.patch new file mode 100644 index 000000000..0e1b7c8f7 --- /dev/null +++ b/yocto-poky/meta/recipes-support/gnutls/gnutls/use-pkg-config-to-locate-zlib.patch @@ -0,0 +1,67 @@ +From cee80af1fe93f5b76765afeebfcc3b902768f5d6 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 26 May 2015 21:41:24 -0700 +Subject: [PATCH] use pkg-config to locate zlib + +AC_LIB_HAVE_LINKFLAGS can sometimes find host libs and is therefore not +robust when cross-compiling. Remove it for zlib and use PKG_CHECK_MODULES +instead. + +Removing AC_LIB_HAVE_LINKFLAGS for zlib also removes the --with-libz-prefix +configure option. If zlib support is enabled, then failure to find zlib via +pkg-config is now treated as a fatal error. + +Change based on ChromeOS gnutls 2.12.23 cross-compile fixes patch: + + https://chromium-review.googlesource.com/#/c/271661/ + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + configure.ac | 24 ++++++++++-------------- + 1 file changed, 10 insertions(+), 14 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 1b561d5..0c787dc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -508,25 +508,21 @@ AC_ARG_WITH(zlib, AS_HELP_STRING([--without-zlib], + AC_MSG_CHECKING([whether to include zlib compression support]) + if test x$ac_zlib != xno; then + AC_MSG_RESULT(yes) +- AC_LIB_HAVE_LINKFLAGS(z,, [#include <zlib.h>], [compress (0, 0, 0, 0);]) +- if test x$ac_cv_libz != xyes; then +- AC_MSG_WARN( +-*** +-*** ZLIB was not found. You will not be able to use ZLIB compression.) +- fi + else + AC_MSG_RESULT(no) + fi + +-PKG_CHECK_EXISTS(zlib, ZLIB_HAS_PKGCONFIG=y, ZLIB_HAS_PKGCONFIG=n) +- + if test x$ac_zlib != xno; then +- if test "$ZLIB_HAS_PKGCONFIG" = "y" ; then +- if test "x$GNUTLS_REQUIRES_PRIVATE" = x; then +- GNUTLS_REQUIRES_PRIVATE="Requires.private: zlib" +- else +- GNUTLS_REQUIRES_PRIVATE="$GNUTLS_REQUIRES_PRIVATE, zlib" +- fi ++ PKG_CHECK_MODULES(ZLIB, zlib) ++ HAVE_LIBZ=yes ++ AC_DEFINE([HAVE_LIBZ], [1], [zlib is enabled]) ++ AC_SUBST(HAVE_LIBZ) ++ LTLIBZ=$ZLIB_LIBS ++ AC_SUBST(LTLIBZ) ++ if test "x$GNUTLS_REQUIRES_PRIVATE" = x; then ++ GNUTLS_REQUIRES_PRIVATE="Requires.private: zlib" ++ else ++ GNUTLS_REQUIRES_PRIVATE="$GNUTLS_REQUIRES_PRIVATE, zlib" + fi + fi + AC_SUBST(GNUTLS_REQUIRES_PRIVATE) +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-support/gnutls/gnutls_3.3.17.1.bb b/yocto-poky/meta/recipes-support/gnutls/gnutls_3.3.17.1.bb new file mode 100644 index 000000000..018579752 --- /dev/null +++ b/yocto-poky/meta/recipes-support/gnutls/gnutls_3.3.17.1.bb @@ -0,0 +1,8 @@ +require gnutls.inc + +SRC_URI += "file://correct_rpl_gettimeofday_signature.patch \ + file://configure.ac-fix-sed-command.patch \ + file://use-pkg-config-to-locate-zlib.patch \ + " +SRC_URI[md5sum] = "8d01c7e7f2cbc5871fdca832d2260b6b" +SRC_URI[sha256sum] = "b40f158030a92f450a07b20300a3996710ca19800848d9f6fd62493170c5bbb4" diff --git a/yocto-poky/meta/recipes-support/gnutls/libtasn1/dont-depend-on-help2man.patch b/yocto-poky/meta/recipes-support/gnutls/libtasn1/dont-depend-on-help2man.patch new file mode 100644 index 000000000..2ac89f3b3 --- /dev/null +++ b/yocto-poky/meta/recipes-support/gnutls/libtasn1/dont-depend-on-help2man.patch @@ -0,0 +1,14 @@ +Upstream-Status: Inappropriate + +Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> +diff -Nurd libtasn1-2.14/doc/Makefile.am libtasn1-2.14/doc/Makefile.am +--- libtasn1-2.14/doc/Makefile.am 2012-09-24 15:08:42.000000000 +0300 ++++ libtasn1-2.14/doc/Makefile.am 2013-01-03 07:35:26.702763403 +0200 +@@ -31,7 +31,7 @@ + AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) \ + --no-split --number-sections --css-include=texinfo.css + +-dist_man_MANS = $(gdoc_MANS) asn1Parser.1 asn1Coding.1 asn1Decoding.1 ++dist_man_MANS = $(gdoc_MANS) + + HELP2MAN_OPTS = --info-page libtasn1 diff --git a/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.5.bb b/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.5.bb new file mode 100644 index 000000000..f874574c5 --- /dev/null +++ b/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.5.bb @@ -0,0 +1,20 @@ +SUMMARY = "Library for ASN.1 and DER manipulation" +HOMEPAGE = "http://www.gnu.org/software/libtasn1/" + +LICENSE = "GPLv3+ & LGPLv2.1+" +LICENSE_${PN}-bin = "GPLv3+" +LICENSE_${PN} = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ + file://README;endline=8;md5=c3803a3e8ca5ab5eb1e5912faa405351" + +SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \ + file://dont-depend-on-help2man.patch \ + " + +SRC_URI[md5sum] = "81d272697545e82d39f6bd14854b68f0" +SRC_URI[sha256sum] = "89b3b5dce119273431544ecb305081f3530911001bb12e5d76588907edb71bda" + +inherit autotools texinfo binconfig lib_package + +BBCLASSEXTEND = "native" |