diff options
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 @@ | |||
1 | From 99679fda405e535a282f04a4decc2381154a749f Mon Sep 17 00:00:00 2001 | ||
2 | From: Christopher Larson <chris_larson@mentor.com> | ||
3 | Date: Mon, 15 Feb 2016 15:59:58 -0700 | ||
4 | Subject: [PATCH 1/2] If the libc is lacking argp, use libargp | ||
5 | |||
6 | Patch pulled from Gentoo: | ||
7 | |||
8 | On glibc systems, argp is provided by libc. However, on | ||
9 | uclibc and other systems which lack argp in their C library, | ||
10 | argp might be provided by a stand alone library, libargp. | ||
11 | This patch adds tests to the build system to find who provides | ||
12 | argp. | ||
13 | |||
14 | X-Gentoo-Bug: 292191 | ||
15 | X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191 | ||
16 | Reported-by: Ed Wildgoose <gentoo@wildgooses.com> | ||
17 | Signed-off-by: Anthony G. Basile <blueness@gentoo.org> | ||
18 | |||
19 | Upstream-Status: Pending | ||
20 | Signed-off-by: Christopher Larson <chris_larson@mentor.com> | ||
21 | --- | ||
22 | configure.ac | 22 ++++++++++++++++++++++ | ||
23 | 1 file changed, 22 insertions(+) | ||
24 | |||
25 | diff --git a/configure.ac b/configure.ac | ||
26 | index 27a2dba..04fcd25 100644 | ||
27 | --- a/configure.ac | ||
28 | +++ b/configure.ac | ||
29 | @@ -82,6 +82,28 @@ AS_IF( | ||
30 | ] | ||
31 | ) | ||
32 | |||
33 | +dnl First check if we have argp available from libc | ||
34 | +AC_LINK_IFELSE( | ||
35 | + [AC_LANG_PROGRAM( | ||
36 | + [#include <argp.h>], | ||
37 | + [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;] | ||
38 | + )], | ||
39 | + [libc_has_argp="true"], | ||
40 | + [libc_has_argp="false"] | ||
41 | +) | ||
42 | + | ||
43 | +dnl If libc doesn't provide argp, then test for libargp | ||
44 | +if test "$libc_has_argp" = "false" ; then | ||
45 | + AC_MSG_WARN("libc does not have argp") | ||
46 | + AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"]) | ||
47 | + | ||
48 | + if test "$have_argp" = "false"; then | ||
49 | + AC_MSG_ERROR("no libargp found") | ||
50 | + else | ||
51 | + LIBS+=" -largp" | ||
52 | + fi | ||
53 | +fi | ||
54 | + | ||
55 | dnl ----------------- | ||
56 | dnl Configure options | ||
57 | dnl ----------------- | ||
58 | -- | ||
59 | 2.2.1 | ||
60 | |||
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 @@ | |||
1 | From afc8712a9e6c72fbd03c36f84ecf8703e5d22a8c Mon Sep 17 00:00:00 2001 | ||
2 | From: Christopher Larson <chris_larson@mentor.com> | ||
3 | Date: Mon, 15 Feb 2016 16:11:32 -0700 | ||
4 | Subject: [PATCH 2/2] Add argument to control the libargp dependency | ||
5 | |||
6 | This ensures that the builds are always deterministic. If the argument isn't | ||
7 | passed, the default behavior is to use libargp if the libc doesn't have argp. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | Signed-off-by: Christopher Larson <chris_larson@mentor.com> | ||
11 | --- | ||
12 | configure.ac | 55 ++++++++++++++++++++++++++++++++++++------------------- | ||
13 | 1 file changed, 36 insertions(+), 19 deletions(-) | ||
14 | |||
15 | diff --git a/configure.ac b/configure.ac | ||
16 | index 04fcd25..11a5321 100644 | ||
17 | --- a/configure.ac | ||
18 | +++ b/configure.ac | ||
19 | @@ -32,6 +32,13 @@ AC_ARG_WITH([libgcrypt], | ||
20 | [with_libgcrypt=check] | ||
21 | ) | ||
22 | |||
23 | +AC_ARG_WITH([libargp], | ||
24 | + AS_HELP_STRING([--without-libargp], | ||
25 | + [Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]), | ||
26 | + [with_libargp=$withval], | ||
27 | + [with_libargp=check] | ||
28 | +) | ||
29 | + | ||
30 | dnl Make sure anyone changing configure.ac/Makefile.am has a clue | ||
31 | AM_MAINTAINER_MODE | ||
32 | |||
33 | @@ -82,27 +89,37 @@ AS_IF( | ||
34 | ] | ||
35 | ) | ||
36 | |||
37 | -dnl First check if we have argp available from libc | ||
38 | -AC_LINK_IFELSE( | ||
39 | - [AC_LANG_PROGRAM( | ||
40 | - [#include <argp.h>], | ||
41 | - [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;] | ||
42 | - )], | ||
43 | - [libc_has_argp="true"], | ||
44 | - [libc_has_argp="false"] | ||
45 | +dnl Determine if we need libargp: either user requested, or libc has no argp | ||
46 | +AS_IF( | ||
47 | + [test "x$with_libargp" != "xyes"], | ||
48 | + [ | ||
49 | + AC_LINK_IFELSE( | ||
50 | + [AC_LANG_PROGRAM( | ||
51 | + [#include <argp.h>], | ||
52 | + [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;] | ||
53 | + )], | ||
54 | + [need_libargp=no], | ||
55 | + [need_libargp=yes | ||
56 | + if test "x$with_libargp" = "xno"; then | ||
57 | + AC_MSG_FAILURE([libargp disabled and libc does not have argp]) | ||
58 | + fi] | ||
59 | + ) | ||
60 | + ], | ||
61 | + [need_libargp=yes], | ||
62 | ) | ||
63 | |||
64 | -dnl If libc doesn't provide argp, then test for libargp | ||
65 | -if test "$libc_has_argp" = "false" ; then | ||
66 | - AC_MSG_WARN("libc does not have argp") | ||
67 | - AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"]) | ||
68 | - | ||
69 | - if test "$have_argp" = "false"; then | ||
70 | - AC_MSG_ERROR("no libargp found") | ||
71 | - else | ||
72 | - LIBS+=" -largp" | ||
73 | - fi | ||
74 | -fi | ||
75 | +dnl Check for libargp | ||
76 | +AS_IF( | ||
77 | + [test "x$need_libargp" = "xyes"], | ||
78 | + [ | ||
79 | + AC_CHECK_LIB( | ||
80 | + [argp], | ||
81 | + [argp_parse], | ||
82 | + [LIBS="$LIBS -largp"], | ||
83 | + [AC_MSG_FAILURE([libargp not found])] | ||
84 | + ) | ||
85 | + ] | ||
86 | +) | ||
87 | |||
88 | dnl ----------------- | ||
89 | dnl Configure options | ||
90 | -- | ||
91 | 2.2.1 | ||
92 | |||
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 @@ | |||
1 | SUMMARY = "Random number generator daemon" | 1 | SUMMARY = "Random number generator daemon" |
2 | LICENSE = "GPLv2" | 2 | LICENSE = "GPLv2" |
3 | LIC_FILES_CHKSUM = "file://COPYING;md5=0b6f033afe6db235e559456585dc8cdc" | 3 | LIC_FILES_CHKSUM = "file://COPYING;md5=0b6f033afe6db235e559456585dc8cdc" |
4 | DEPENDS_append_libc-uclibc = " argp-standalone" | ||
5 | 4 | ||
6 | SRC_URI = "http://heanet.dl.sourceforge.net/sourceforge/gkernel/${BP}.tar.gz \ | 5 | SRC_URI = "http://heanet.dl.sourceforge.net/sourceforge/gkernel/${BP}.tar.gz \ |
6 | file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \ | ||
7 | file://0002-Add-argument-to-control-the-libargp-dependency.patch \ | ||
7 | file://init \ | 8 | file://init \ |
8 | file://default" | 9 | file://default" |
9 | 10 | ||
@@ -19,6 +20,11 @@ python () { | |||
19 | 20 | ||
20 | inherit autotools update-rc.d | 21 | inherit autotools update-rc.d |
21 | 22 | ||
23 | PACKAGECONFIG = "" | ||
24 | PACKAGECONFIG_libc-musl = "libargp" | ||
25 | PACKAGECONFIG_libc-uclibc = "libargp" | ||
26 | PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone," | ||
27 | |||
22 | RDEPENDS_${PN} = "libgcrypt" | 28 | RDEPENDS_${PN} = "libgcrypt" |
23 | 29 | ||
24 | do_install_append() { | 30 | do_install_append() { |