diff options
Diffstat (limited to 'meta/recipes-support')
3 files changed, 159 insertions, 1 deletions
diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch b/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch new file mode 100644 index 0000000000..4bd9d31c0e --- /dev/null +++ b/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch @@ -0,0 +1,60 @@ +From 99679fda405e535a282f04a4decc2381154a749f Mon Sep 17 00:00:00 2001 +From: Christopher Larson <chris_larson@mentor.com> +Date: Mon, 15 Feb 2016 15:59:58 -0700 +Subject: [PATCH 1/2] If the libc is lacking argp, use libargp + +Patch pulled from Gentoo: + + On glibc systems, argp is provided by libc. However, on + uclibc and other systems which lack argp in their C library, + argp might be provided by a stand alone library, libargp. + This patch adds tests to the build system to find who provides + argp. + + X-Gentoo-Bug: 292191 + X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191 + Reported-by: Ed Wildgoose <gentoo@wildgooses.com> + Signed-off-by: Anthony G. Basile <blueness@gentoo.org> + +Upstream-Status: Pending +Signed-off-by: Christopher Larson <chris_larson@mentor.com> +--- + configure.ac | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 27a2dba..04fcd25 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -82,6 +82,28 @@ AS_IF( + ] + ) + ++dnl First check if we have argp available from libc ++AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM( ++ [#include <argp.h>], ++ [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;] ++ )], ++ [libc_has_argp="true"], ++ [libc_has_argp="false"] ++) ++ ++dnl If libc doesn't provide argp, then test for libargp ++if test "$libc_has_argp" = "false" ; then ++ AC_MSG_WARN("libc does not have argp") ++ AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"]) ++ ++ if test "$have_argp" = "false"; then ++ AC_MSG_ERROR("no libargp found") ++ else ++ LIBS+=" -largp" ++ fi ++fi ++ + dnl ----------------- + dnl Configure options + dnl ----------------- +-- +2.2.1 + diff --git a/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch b/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch new file mode 100644 index 0000000000..1c8a79ce0b --- /dev/null +++ b/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch @@ -0,0 +1,92 @@ +From afc8712a9e6c72fbd03c36f84ecf8703e5d22a8c Mon Sep 17 00:00:00 2001 +From: Christopher Larson <chris_larson@mentor.com> +Date: Mon, 15 Feb 2016 16:11:32 -0700 +Subject: [PATCH 2/2] Add argument to control the libargp dependency + +This ensures that the builds are always deterministic. If the argument isn't +passed, the default behavior is to use libargp if the libc doesn't have argp. + +Upstream-Status: Pending +Signed-off-by: Christopher Larson <chris_larson@mentor.com> +--- + configure.ac | 55 ++++++++++++++++++++++++++++++++++++------------------- + 1 file changed, 36 insertions(+), 19 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 04fcd25..11a5321 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -32,6 +32,13 @@ AC_ARG_WITH([libgcrypt], + [with_libgcrypt=check] + ) + ++AC_ARG_WITH([libargp], ++ AS_HELP_STRING([--without-libargp], ++ [Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]), ++ [with_libargp=$withval], ++ [with_libargp=check] ++) ++ + dnl Make sure anyone changing configure.ac/Makefile.am has a clue + AM_MAINTAINER_MODE + +@@ -82,27 +89,37 @@ AS_IF( + ] + ) + +-dnl First check if we have argp available from libc +-AC_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [#include <argp.h>], +- [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;] +- )], +- [libc_has_argp="true"], +- [libc_has_argp="false"] ++dnl Determine if we need libargp: either user requested, or libc has no argp ++AS_IF( ++ [test "x$with_libargp" != "xyes"], ++ [ ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM( ++ [#include <argp.h>], ++ [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;] ++ )], ++ [need_libargp=no], ++ [need_libargp=yes ++ if test "x$with_libargp" = "xno"; then ++ AC_MSG_FAILURE([libargp disabled and libc does not have argp]) ++ fi] ++ ) ++ ], ++ [need_libargp=yes], + ) + +-dnl If libc doesn't provide argp, then test for libargp +-if test "$libc_has_argp" = "false" ; then +- AC_MSG_WARN("libc does not have argp") +- AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"]) +- +- if test "$have_argp" = "false"; then +- AC_MSG_ERROR("no libargp found") +- else +- LIBS+=" -largp" +- fi +-fi ++dnl Check for libargp ++AS_IF( ++ [test "x$need_libargp" = "xyes"], ++ [ ++ AC_CHECK_LIB( ++ [argp], ++ [argp_parse], ++ [LIBS="$LIBS -largp"], ++ [AC_MSG_FAILURE([libargp not found])] ++ ) ++ ] ++) + + dnl ----------------- + dnl Configure options +-- +2.2.1 + diff --git a/meta/recipes-support/rng-tools/rng-tools_5.bb b/meta/recipes-support/rng-tools/rng-tools_5.bb index 67f53f2998..9a19d1cb42 100644 --- a/meta/recipes-support/rng-tools/rng-tools_5.bb +++ b/meta/recipes-support/rng-tools/rng-tools_5.bb @@ -1,9 +1,10 @@ SUMMARY = "Random number generator daemon" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=0b6f033afe6db235e559456585dc8cdc" -DEPENDS_append_libc-uclibc = " argp-standalone" SRC_URI = "http://heanet.dl.sourceforge.net/sourceforge/gkernel/${BP}.tar.gz \ + file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \ + file://0002-Add-argument-to-control-the-libargp-dependency.patch \ file://init \ file://default" @@ -19,6 +20,11 @@ python () { inherit autotools update-rc.d +PACKAGECONFIG = "" +PACKAGECONFIG_libc-musl = "libargp" +PACKAGECONFIG_libc-uclibc = "libargp" +PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone," + RDEPENDS_${PN} = "libgcrypt" do_install_append() { |