diff options
author | Ross Burton <ross.burton@intel.com> | 2017-02-07 14:35:43 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-02-23 12:49:49 -0800 |
commit | 9a1ac06139591f70a72cd915059a5705d856a1ee (patch) | |
tree | 6432dda71c82e02a45856e7cd7b655d784cd8044 | |
parent | f14fb8d124926d41785673a9a6cbdce849c305f8 (diff) | |
download | poky-9a1ac06139591f70a72cd915059a5705d856a1ee.tar.gz |
slang: rewrite recipe to run autoconf
I discovered that we were not running autoreconf (and cannot due to the
unconvential file structure upstream), so manually run autoconf and move the
generated configure to the right place as we do already for gnu-configize.
Update no-x.patch (now that it is actually being used) so that it doesn't break
the build.
Patch out the use of INST_LIB_DIR in slsh/Makefile.in as this is the *target*
path, so is inappropriate to link to. This means we can remove the custom
do_install() which was working around the problem.
Remove all rpath patches (now overwritten by autoconf) and replace
with just passing RPATH='' via oe_runmake.
Remove the library search path patches (now overwritten by autoconf) and replace
with passing explicit pointers to the sysroot in the options.
[ YOCTO #10969 ]
(From OE-Core rev: 48fe39b09fbac973ba188938ab2a080f71ee8d68)
(From OE-Core rev: 3506898dbd62bb028349b83e1538a7ea665c3d1c)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
6 files changed, 31 insertions, 335 deletions
diff --git a/meta/recipes-extended/slang/slang/dont-link-to-host.patch b/meta/recipes-extended/slang/slang/dont-link-to-host.patch new file mode 100644 index 0000000000..42dba0fae4 --- /dev/null +++ b/meta/recipes-extended/slang/slang/dont-link-to-host.patch | |||
@@ -0,0 +1,16 @@ | |||
1 | SLANG_INST_LIB is the location of where slang will end up, but when building for | ||
2 | packaging this doesn't have DESTDIR appended so can potentially link to the host | ||
3 | for cross builds and will trigger QA errors. | ||
4 | |||
5 | As this is obviously wrong, delete it. | ||
6 | |||
7 | Upstream-Status: Pending | ||
8 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
9 | |||
10 | diff --git a/slsh/Makefile.in b/slsh/Makefile.in | ||
11 | index cba9d81..4c1c370 100644 | ||
12 | --- a/slsh/Makefile.in | ||
13 | +++ b/slsh/Makefile.in | ||
14 | @@ -80 +80 @@ SHELL = /bin/sh | ||
15 | -INST_LIBS = $(DEST_LIB_DIR) $(RPATH) $(SLANG_INST_LIB) -lslang $(READLINE_LIB) $(DYNAMIC_LIBS) | ||
16 | +INST_LIBS = $(DEST_LIB_DIR) $(RPATH) -lslang $(READLINE_LIB) $(DYNAMIC_LIBS) | ||
diff --git a/meta/recipes-extended/slang/slang/fix-check-pcre.patch b/meta/recipes-extended/slang/slang/fix-check-pcre.patch deleted file mode 100644 index a0ec0ff658..0000000000 --- a/meta/recipes-extended/slang/slang/fix-check-pcre.patch +++ /dev/null | |||
@@ -1,116 +0,0 @@ | |||
1 | fix the pcre existence checking | ||
2 | |||
3 | when check if there is pcre, the configure file always check | ||
4 | the host dir. now we make it work by adding correct prefix for | ||
5 | cross-compile environment. | ||
6 | |||
7 | When enable pcre-module, we see a QA warning because rpaths | ||
8 | hardcoded into the build, rpaths are not needed, so lets turn | ||
9 | this off. | ||
10 | |||
11 | Upstream-Status: Inappropriate | ||
12 | Signed-off-by: Roy.Li <rongqing.li@windriver.com> | ||
13 | --- | ||
14 | configure | 72 +++++--------------------------------------------------------- | ||
15 | 1 file changed, 6 insertions(+), 66 deletions(-) | ||
16 | |||
17 | diff --git a/configure b/configure | ||
18 | --- a/configure | ||
19 | +++ b/configure | ||
20 | @@ -7191,6 +7191,7 @@ $as_echo_n "checking for the pcre library and header files ... " >&6; } | ||
21 | /usr/include/pcre,/usr/lib \ | ||
22 | /usr/pcre/include,/usr/pcre/lib \ | ||
23 | /usr/include,/usr/lib \ | ||
24 | + /usr/include,/usr/lib64 \ | ||
25 | /opt/include/pcre,/opt/lib \ | ||
26 | /opt/pcre/include,/opt/pcre/lib \ | ||
27 | /opt/include,/opt/lib" | ||
28 | @@ -7221,14 +7222,14 @@ $as_echo_n "checking for the pcre library and header files ... " >&6; } | ||
29 | xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $1}'` | ||
30 | xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $2}'` | ||
31 | found=0 | ||
32 | - if test -r $xincdir/$xincfile | ||
33 | + if test -r $PKG_CONFIG_SYSROOT_DIR/$xincdir/$xincfile | ||
34 | then | ||
35 | for E in $exts | ||
36 | do | ||
37 | - if test -r "$xlibdir/$xlibfile.$E" | ||
38 | + if test -r "$PKG_CONFIG_SYSROOT_DIR/$xlibdir/$xlibfile.$E" | ||
39 | then | ||
40 | - jd_pcre_include_dir="$xincdir" | ||
41 | - jd_pcre_library_dir="$xlibdir" | ||
42 | + jd_pcre_include_dir="$PKG_CONFIG_SYSROOT_DIR/$xincdir" | ||
43 | + jd_pcre_library_dir="$PKG_CONFIG_SYSROOT_DIR/$xlibdir" | ||
44 | jd_with_pcre_library="yes" | ||
45 | found=1 | ||
46 | break | ||
47 | @@ -7255,68 +7255,7 @@ $as_echo "yes: $jd_pcre_library_dir and $jd_pcre_include_dir" >&6; } | ||
48 | then | ||
49 | PCRE_LIB="" | ||
50 | else | ||
51 | - | ||
52 | -if test "X$jd_pcre_library_dir" != "X" | ||
53 | -then | ||
54 | - if test "X$RPATH" = "X" | ||
55 | - then | ||
56 | - | ||
57 | -case "$host_os" in | ||
58 | - *linux*|*solaris* ) | ||
59 | - if test "X$GCC" = Xyes | ||
60 | - then | ||
61 | - if test "X$ac_R_nospace" = "Xno" | ||
62 | - then | ||
63 | - RPATH="-Wl,-R," | ||
64 | - else | ||
65 | - RPATH="-Wl,-R" | ||
66 | - fi | ||
67 | - else | ||
68 | - if test "X$ac_R_nospace" = "Xno" | ||
69 | - then | ||
70 | - RPATH="-R " | ||
71 | - else | ||
72 | - RPATH="-R" | ||
73 | - fi | ||
74 | - fi | ||
75 | - ;; | ||
76 | - *osf*|*openbsd*|*freebsd*) | ||
77 | - if test "X$GCC" = Xyes | ||
78 | - then | ||
79 | - RPATH="-Wl,-rpath," | ||
80 | - else | ||
81 | - RPATH="-rpath " | ||
82 | - fi | ||
83 | - ;; | ||
84 | - *netbsd*) | ||
85 | - if test "X$GCC" = Xyes | ||
86 | - then | ||
87 | - RPATH="-Wl,-R" | ||
88 | - fi | ||
89 | - ;; | ||
90 | -esac | ||
91 | - | ||
92 | - if test "X$RPATH" != "X" | ||
93 | - then | ||
94 | - RPATH="$RPATH$jd_pcre_library_dir" | ||
95 | - fi | ||
96 | - else | ||
97 | - _already_there=0 | ||
98 | - for X in `echo $RPATH | sed 's/:/ /g'` | ||
99 | - do | ||
100 | - if test "$X" = "$jd_pcre_library_dir" | ||
101 | - then | ||
102 | - _already_there=1 | ||
103 | - break | ||
104 | - fi | ||
105 | - done | ||
106 | - if test $_already_there = 0 | ||
107 | - then | ||
108 | - RPATH="$RPATH:$jd_pcre_library_dir" | ||
109 | - fi | ||
110 | - fi | ||
111 | -fi | ||
112 | - | ||
113 | + RPATH="" | ||
114 | fi | ||
115 | |||
116 | PCRE_INC=-I$jd_pcre_include_dir | ||
diff --git a/meta/recipes-extended/slang/slang/no-x.patch b/meta/recipes-extended/slang/slang/no-x.patch index d7666bfc89..7dc1602fe3 100644 --- a/meta/recipes-extended/slang/slang/no-x.patch +++ b/meta/recipes-extended/slang/slang/no-x.patch | |||
@@ -12,3 +12,7 @@ index b61e974..a3e5db2 100644 | |||
12 | -# For the socket module | 12 | -# For the socket module |
13 | -AC_PATH_XTRA | 13 | -AC_PATH_XTRA |
14 | - | 14 | - |
15 | --- a/modules/Makefile.in | ||
16 | +++ b/modules/Makefile.in | ||
17 | @@ -67 +66,0 @@ ZLIB_LIB = @Z_LIB@ -lz | ||
18 | -SOCKET_LIBS = @X_EXTRA_LIBS@ | ||
diff --git a/meta/recipes-extended/slang/slang/rpathfix.patch b/meta/recipes-extended/slang/slang/rpathfix.patch deleted file mode 100644 index f82a5313d5..0000000000 --- a/meta/recipes-extended/slang/slang/rpathfix.patch +++ /dev/null | |||
@@ -1,82 +0,0 @@ | |||
1 | Without this patch we see rpaths hardcoded into the build which results in QA | ||
2 | warnings. These rpaths are not needed so lets turn this off. | ||
3 | |||
4 | Upstream-Status: Inappropriate | ||
5 | (but could be turned into a proper configure option) | ||
6 | |||
7 | RP 2012/03/14 | ||
8 | |||
9 | Index: slang-2.2.4/configure | ||
10 | =================================================================== | ||
11 | --- slang-2.2.4.orig/configure 2012-03-14 23:40:01.283560679 +0000 | ||
12 | +++ slang-2.2.4/configure 2012-03-14 23:41:18.023558900 +0000 | ||
13 | @@ -6246,68 +6246,7 @@ esac | ||
14 | ELF_CFLAGS="$ELF_CFLAGS $IEEE_CFLAGS" | ||
15 | CFLAGS="$CFLAGS $IEEE_CFLAGS" | ||
16 | |||
17 | - | ||
18 | -if test "X$libdir" != "X" | ||
19 | -then | ||
20 | - if test "X$RPATH" = "X" | ||
21 | - then | ||
22 | - | ||
23 | -case "$host_os" in | ||
24 | - *linux*|*solaris* ) | ||
25 | - if test "X$GCC" = Xyes | ||
26 | - then | ||
27 | - if test "X$ac_R_nospace" = "Xno" | ||
28 | - then | ||
29 | - RPATH="-Wl,-R," | ||
30 | - else | ||
31 | - RPATH="-Wl,-R" | ||
32 | - fi | ||
33 | - else | ||
34 | - if test "X$ac_R_nospace" = "Xno" | ||
35 | - then | ||
36 | - RPATH="-R " | ||
37 | - else | ||
38 | - RPATH="-R" | ||
39 | - fi | ||
40 | - fi | ||
41 | - ;; | ||
42 | - *osf*|*openbsd*|*freebsd*) | ||
43 | - if test "X$GCC" = Xyes | ||
44 | - then | ||
45 | - RPATH="-Wl,-rpath," | ||
46 | - else | ||
47 | - RPATH="-rpath " | ||
48 | - fi | ||
49 | - ;; | ||
50 | - *netbsd*) | ||
51 | - if test "X$GCC" = Xyes | ||
52 | - then | ||
53 | - RPATH="-Wl,-R" | ||
54 | - fi | ||
55 | - ;; | ||
56 | -esac | ||
57 | - | ||
58 | - if test "X$RPATH" != "X" | ||
59 | - then | ||
60 | - RPATH="$RPATH$libdir" | ||
61 | - fi | ||
62 | - else | ||
63 | - _already_there=0 | ||
64 | - for X in `echo $RPATH | sed 's/:/ /g'` | ||
65 | - do | ||
66 | - if test "$X" = "$libdir" | ||
67 | - then | ||
68 | - _already_there=1 | ||
69 | - break | ||
70 | - fi | ||
71 | - done | ||
72 | - if test $_already_there = 0 | ||
73 | - then | ||
74 | - RPATH="$RPATH:$libdir" | ||
75 | - fi | ||
76 | - fi | ||
77 | -fi | ||
78 | - | ||
79 | +RPATH="" | ||
80 | |||
81 | # The cast to long int works around a bug in the HP C Compiler | ||
82 | # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects | ||
diff --git a/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch b/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch deleted file mode 100644 index 850551ef0a..0000000000 --- a/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch +++ /dev/null | |||
@@ -1,125 +0,0 @@ | |||
1 | From 4588f4a0287787788eb86fb16f326cbaa7454e1d Mon Sep 17 00:00:00 2001 | ||
2 | From: Zheng Junling <zhengjunling@huawei.com> | ||
3 | Date: Mon, 16 Jun 2014 12:51:25 +0000 | ||
4 | Subject: [PATCH] slang: fix the iconv existence checking | ||
5 | |||
6 | When checking whether there is iconv, the configure file always check | ||
7 | the host env. | ||
8 | |||
9 | Now we make it working properly by adding correct prefix for cross- | ||
10 | compiling environment. | ||
11 | |||
12 | When enabling iconv-module, we see a QA warning because rpaths hardcoded | ||
13 | into the build. And rpaths are not needed, so let's turn this off. | ||
14 | |||
15 | This patch is generated by referencing the existing "fix-check-pcre" | ||
16 | patch. | ||
17 | |||
18 | Upstream-Status: Inappropriate | ||
19 | |||
20 | Signed-off-by: Zheng Junling <zhengjunling@huawei.com> | ||
21 | --- | ||
22 | configure | 72 +++++--------------------------------------------------------- | ||
23 | 1 file changed, 6 insertions(+), 66 deletions(-) | ||
24 | |||
25 | diff --git a/configure b/configure | ||
26 | index fa395ff..7fa769c 100755 | ||
27 | --- a/configure | ||
28 | +++ b/configure | ||
29 | @@ -8259,6 +8259,7 @@ $as_echo_n "checking for the iconv library and header files ... " >&6; } | ||
30 | /usr/include/iconv,/usr/lib \ | ||
31 | /usr/iconv/include,/usr/iconv/lib \ | ||
32 | /usr/include,/usr/lib \ | ||
33 | + /usr/include,/usr/lib64 \ | ||
34 | /opt/include/iconv,/opt/lib \ | ||
35 | /opt/iconv/include,/opt/iconv/lib \ | ||
36 | /opt/include,/opt/lib" | ||
37 | @@ -8289,14 +8290,14 @@ $as_echo_n "checking for the iconv library and header files ... " >&6; } | ||
38 | xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $1}'` | ||
39 | xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $2}'` | ||
40 | found=0 | ||
41 | - if test -r $xincdir/$xincfile | ||
42 | + if test -r $PKG_CONFIG_SYSROOT_DIR/$xincdir/$xincfile | ||
43 | then | ||
44 | for E in $exts | ||
45 | do | ||
46 | - if test -r "$xlibdir/$xlibfile.$E" | ||
47 | + if test -r "$PKG_CONFIG_SYSROOT_DIR/$xlibdir/$xlibfile.$E" | ||
48 | then | ||
49 | - jd_iconv_include_dir="$xincdir" | ||
50 | - jd_iconv_library_dir="$xlibdir" | ||
51 | + jd_iconv_include_dir="$PKG_CONFIG_SYSROOT_DIR/$xincdir" | ||
52 | + jd_iconv_library_dir="$PKG_CONFIG_SYSROOT_DIR/$xlibdir" | ||
53 | jd_with_iconv_library="yes" | ||
54 | found=1 | ||
55 | break | ||
56 | @@ -8201,68 +8201,7 @@ $as_echo "yes: $jd_iconv_library_dir and $jd_iconv_include_dir" >&6; } | ||
57 | then | ||
58 | ICONV_LIB="" | ||
59 | else | ||
60 | - | ||
61 | -if test "X$jd_iconv_library_dir" != "X" | ||
62 | -then | ||
63 | - if test "X$RPATH" = "X" | ||
64 | - then | ||
65 | - | ||
66 | -case "$host_os" in | ||
67 | - *linux*|*solaris* ) | ||
68 | - if test "X$GCC" = Xyes | ||
69 | - then | ||
70 | - if test "X$ac_R_nospace" = "Xno" | ||
71 | - then | ||
72 | - RPATH="-Wl,-R," | ||
73 | - else | ||
74 | - RPATH="-Wl,-R" | ||
75 | - fi | ||
76 | - else | ||
77 | - if test "X$ac_R_nospace" = "Xno" | ||
78 | - then | ||
79 | - RPATH="-R " | ||
80 | - else | ||
81 | - RPATH="-R" | ||
82 | - fi | ||
83 | - fi | ||
84 | - ;; | ||
85 | - *osf*|*openbsd*|*freebsd*) | ||
86 | - if test "X$GCC" = Xyes | ||
87 | - then | ||
88 | - RPATH="-Wl,-rpath," | ||
89 | - else | ||
90 | - RPATH="-rpath " | ||
91 | - fi | ||
92 | - ;; | ||
93 | - *netbsd*) | ||
94 | - if test "X$GCC" = Xyes | ||
95 | - then | ||
96 | - RPATH="-Wl,-R" | ||
97 | - fi | ||
98 | - ;; | ||
99 | -esac | ||
100 | - | ||
101 | - if test "X$RPATH" != "X" | ||
102 | - then | ||
103 | - RPATH="$RPATH$jd_iconv_library_dir" | ||
104 | - fi | ||
105 | - else | ||
106 | - _already_there=0 | ||
107 | - for X in `echo $RPATH | sed 's/:/ /g'` | ||
108 | - do | ||
109 | - if test "$X" = "$jd_iconv_library_dir" | ||
110 | - then | ||
111 | - _already_there=1 | ||
112 | - break | ||
113 | - fi | ||
114 | - done | ||
115 | - if test $_already_there = 0 | ||
116 | - then | ||
117 | - RPATH="$RPATH:$jd_iconv_library_dir" | ||
118 | - fi | ||
119 | - fi | ||
120 | -fi | ||
121 | - | ||
122 | + RPATH="" | ||
123 | fi | ||
124 | |||
125 | ICONV_INC=-I$jd_iconv_include_dir | ||
diff --git a/meta/recipes-extended/slang/slang_2.3.1.bb b/meta/recipes-extended/slang/slang_2.3.1.bb index 7bf3af6836..3a5030354c 100644 --- a/meta/recipes-extended/slang/slang_2.3.1.bb +++ b/meta/recipes-extended/slang/slang_2.3.1.bb | |||
@@ -14,12 +14,9 @@ DEPENDS = "ncurses virtual/libiconv" | |||
14 | LICENSE = "GPLv2" | 14 | LICENSE = "GPLv2" |
15 | LIC_FILES_CHKSUM = "file://COPYING;md5=a52a18a472d4f7e45479b06563717c02" | 15 | LIC_FILES_CHKSUM = "file://COPYING;md5=a52a18a472d4f7e45479b06563717c02" |
16 | 16 | ||
17 | |||
18 | SRC_URI = "http://www.jedsoft.org/releases/${BPN}/${BP}.tar.bz2 \ | 17 | SRC_URI = "http://www.jedsoft.org/releases/${BPN}/${BP}.tar.bz2 \ |
19 | file://rpathfix.patch \ | ||
20 | file://fix-check-pcre.patch \ | ||
21 | file://slang-fix-the-iconv-existence-checking.patch \ | ||
22 | file://no-x.patch \ | 18 | file://no-x.patch \ |
19 | file://dont-link-to-host.patch \ | ||
23 | " | 20 | " |
24 | 21 | ||
25 | SRC_URI[md5sum] = "bd46d1dc17a50c72004ad842829d7b1f" | 22 | SRC_URI[md5sum] = "bd46d1dc17a50c72004ad842829d7b1f" |
@@ -32,24 +29,26 @@ inherit autotools-brokensep | |||
32 | CLEANBROKEN = "1" | 29 | CLEANBROKEN = "1" |
33 | 30 | ||
34 | EXTRA_OECONF = "--without-onig" | 31 | EXTRA_OECONF = "--without-onig" |
32 | # There's no way to turn off rpaths and slang will -rpath to the default search | ||
33 | # path. Unset RPATH to stop this. | ||
34 | EXTRA_OEMAKE = "RPATH=''" | ||
35 | 35 | ||
36 | PACKAGECONFIG ??= "pcre" | 36 | PACKAGECONFIG ??= "pcre" |
37 | PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,pcre" | 37 | PACKAGECONFIG[pcre] = "--with-pcre=${STAGING_DIR_HOST}${prefix},--without-pcre,pcre" |
38 | PACKAGECONFIG[png] = "--with-png,--without-png,libpng" | 38 | PACKAGECONFIG[png] = "--with-png=${STAGING_DIR_HOST}${prefix},--without-png,libpng" |
39 | PACKAGECONFIG[zlib] = "--with-z,--without-z,zlib" | 39 | PACKAGECONFIG[zlib] = "--with-z=${STAGING_DIR_HOST}${prefix},--without-z,zlib" |
40 | 40 | ||
41 | do_configure_prepend() { | 41 | do_configure_prepend() { |
42 | cd ${S}/autoconf | ||
42 | # slang keeps configure.ac and rest of autoconf files in autoconf/ directory | 43 | # slang keeps configure.ac and rest of autoconf files in autoconf/ directory |
43 | # we have to go there to be able to run gnu-configize cause it expects configure.{in,ac} | 44 | # we have to go there to be able to run gnu-configize cause it expects configure.{in,ac} |
44 | # to be present. Resulting files land in autoconf/autoconf/ so we need to move them. | 45 | # to be present. Resulting files land in autoconf/autoconf/ so we need to move them. |
45 | cd ${S}/autoconf && gnu-configize --force && mv autoconf/config.* . | 46 | gnu-configize --force && mv autoconf/config.* . |
47 | # For the same reason we also need to run autoconf manually. | ||
48 | autoconf && mv configure .. | ||
46 | cd ${B} | 49 | cd ${B} |
47 | } | 50 | } |
48 | 51 | ||
49 | do_install() { | ||
50 | oe_runmake install DESTDIR=${D} -e 'INST_LIB_DIR=${STAGING_DIR_HOST}/usr/lib' | ||
51 | } | ||
52 | |||
53 | FILES_${PN} += "${libdir}/${BPN}/v2/modules/ ${datadir}/slsh/" | 52 | FILES_${PN} += "${libdir}/${BPN}/v2/modules/ ${datadir}/slsh/" |
54 | 53 | ||
55 | PARALLEL_MAKE = "" | 54 | PARALLEL_MAKE = "" |