diff options
Diffstat (limited to 'meta/recipes-devtools/perl-cross')
6 files changed, 238 insertions, 0 deletions
diff --git a/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch b/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch new file mode 100644 index 0000000000..3b0fc453e5 --- /dev/null +++ b/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch | |||
@@ -0,0 +1,69 @@ | |||
1 | From 19c1987b455998d2959a5fdf3d1ed911d35e70f2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Wed, 2 Jan 2019 17:55:35 +0100 | ||
4 | Subject: [PATCH] configure_path.sh: do not hardcode $prefix/lib as library | ||
5 | path | ||
6 | |||
7 | Upstream-Status: Pending | ||
8 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
9 | |||
10 | --- | ||
11 | cnf/configure_args.sh | 2 +- | ||
12 | cnf/configure_path.sh | 11 ++++++----- | ||
13 | 2 files changed, 7 insertions(+), 6 deletions(-) | ||
14 | |||
15 | diff --git a/cnf/configure_args.sh b/cnf/configure_args.sh | ||
16 | index 29ca4f5..3297fb3 100644 | ||
17 | --- a/cnf/configure_args.sh | ||
18 | +++ b/cnf/configure_args.sh | ||
19 | @@ -155,7 +155,7 @@ while [ $i -le $# -o -n "$n" ]; do | ||
20 | help) mode="help" ;; | ||
21 | regen|regenerate) mode="regen" ;; | ||
22 | keeplog) defuser "$a" 1 ;; | ||
23 | - prefix|html[13]dir|libsdir) defuser $a "$v" ;; | ||
24 | + prefix|html[13]dir|libsdir|libdir) defuser $a "$v" ;; | ||
25 | man[13]dir|otherlibsdir) defuser $a "$v" ;; | ||
26 | siteprefix|sitehtml[13]dir) defuser $a "$v" ;; | ||
27 | siteman[13]dir|vendorman[13]dir)defuser $a "$v" ;; | ||
28 | diff --git a/cnf/configure_path.sh b/cnf/configure_path.sh | ||
29 | index fe7eac7..bcba8b8 100644 | ||
30 | --- a/cnf/configure_path.sh | ||
31 | +++ b/cnf/configure_path.sh | ||
32 | @@ -30,6 +30,7 @@ definst() { | ||
33 | define "$1" "$installpath$v" | ||
34 | } | ||
35 | |||
36 | +define libdir "$prefix/lib" | ||
37 | define sharedir "$prefix/share" | ||
38 | define html1dir "$sharedir/doc/$perlname/html" | ||
39 | define html3dir "$sharedir/doc/$perlname/html" | ||
40 | @@ -38,16 +39,16 @@ define man1ext "1" | ||
41 | define man3dir "$sharedir/man/man3" | ||
42 | define man3ext "3" | ||
43 | define bin "$prefix/bin" | ||
44 | -define lib "$prefix/lib" | ||
45 | +define lib "$libdir" | ||
46 | define scriptdir "$prefix/bin" | ||
47 | define libsdirs ' ' | ||
48 | -defrel privlib "$prefix/lib/$package/$version" | ||
49 | -defrel archlib "$prefix/lib/$package/$version/$archname" | ||
50 | +defrel privlib "$libdir/$package/$version" | ||
51 | +defrel archlib "$libdir/$package/$version/$archname" | ||
52 | define perlpath "$prefix/bin/$perlname" | ||
53 | define d_archlib 'define' | ||
54 | |||
55 | define sitebin "$prefix/bin" | ||
56 | -defrel sitelib_stem "$prefix/lib/$package/site_perl" | ||
57 | +defrel sitelib_stem "$libdir/$package/site_perl" | ||
58 | define sitelib "$sitelib_stem/$version" | ||
59 | define sitearch "$sitelib_stem/$version/$archname" | ||
60 | define siteprefix "$prefix" | ||
61 | @@ -145,7 +146,7 @@ vendortest() { | ||
62 | } | ||
63 | |||
64 | vendorpath vendorbin "$vendorprefix/bin" | ||
65 | -vendorpath vendorlib_stem "$vendorprefix/lib/$package/vendor_perl" | ||
66 | +vendorpath vendorlib_stem "$libdir/$package/vendor_perl" | ||
67 | vendorpath vendorlib "$vendorlib_stem/$version" | ||
68 | vendorpath vendorarch "$vendorlib_stem/$version/$archname" | ||
69 | vendorpath vendorscript "$vendorprefix/bin" | ||
diff --git a/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch b/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch new file mode 100644 index 0000000000..0aaeaa29eb --- /dev/null +++ b/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | From a66811c487ecf8ba8724879c253bb10dfa82aeb5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Fri, 1 Jun 2018 19:57:32 +0300 | ||
4 | Subject: [PATCH] configure_tool.sh: do not quote the argument to 'command' | ||
5 | |||
6 | As it seems to break things if the argument has spaces and arguments in it. | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
10 | --- | ||
11 | cnf/configure_tool.sh | 2 +- | ||
12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
13 | |||
14 | diff --git a/cnf/configure_tool.sh b/cnf/configure_tool.sh | ||
15 | index 32201c0..461bc68 100644 | ||
16 | --- a/cnf/configure_tool.sh | ||
17 | +++ b/cnf/configure_tool.sh | ||
18 | @@ -2,7 +2,7 @@ | ||
19 | |||
20 | tryprog() { | ||
21 | log "trying $1=$2" | ||
22 | - if command -v "$2" 1>/dev/null 2>/dev/null; then | ||
23 | + if command -v $2 1>/dev/null 2>/dev/null; then | ||
24 | define "$1" "$2" | ||
25 | result "$2" | ||
26 | return 0 | ||
27 | -- | ||
28 | 2.17.0 | ||
29 | |||
diff --git a/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch b/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch new file mode 100644 index 0000000000..e7985036a0 --- /dev/null +++ b/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | From f824cbec9ac8f113a4ae35d57bd18625d415a71b Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Tue, 27 Nov 2018 15:37:40 +0100 | ||
4 | Subject: [PATCH] perl-cross: add LDFLAGS when linking libperl | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
8 | --- | ||
9 | Makefile | 2 +- | ||
10 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
11 | |||
12 | diff --git a/Makefile b/Makefile | ||
13 | index 01644cd..be811a7 100644 | ||
14 | --- a/Makefile | ||
15 | +++ b/Makefile | ||
16 | @@ -180,7 +180,7 @@ endif | ||
17 | |||
18 | ifeq ($(useshrplib),true) | ||
19 | $(LIBPERL): | ||
20 | - $(CC) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) | ||
21 | + $(CC) $(LDFLAGS) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) | ||
22 | else | ||
23 | $(LIBPERL): | ||
24 | $(AR) cru $@ $(filter %$o,$^) | ||
25 | -- | ||
26 | 2.17.1 | ||
27 | |||
diff --git a/meta/recipes-devtools/perl-cross/files/README.md b/meta/recipes-devtools/perl-cross/files/README.md new file mode 100644 index 0000000000..93217245c8 --- /dev/null +++ b/meta/recipes-devtools/perl-cross/files/README.md | |||
@@ -0,0 +1,29 @@ | |||
1 | **perl-cross** provides configure script, top-level Makefile | ||
2 | and some auxiliary files for [perl](http://www.perl.org), | ||
3 | with the primary emphasis on cross-compiling the source. | ||
4 | |||
5 | # Get perl and perl-cross sources | ||
6 | curl -L -O http://www.cpan.org/src/5.0/perl-5.24.1.tar.gz | ||
7 | curl -L -O https://github.com/arsv/perl-cross/releases/download/1.1.3/perl-cross-1.1.3.tar.gz | ||
8 | |||
9 | # Unpack perl-cross over perl, overwriting Makefile | ||
10 | tar -zxf perl-5.24.1.tar.gz | ||
11 | cd perl-5.24.1 | ||
12 | tar --strip-components=1 -zxf ../perl-cross-1.1.3.tar.gz | ||
13 | |||
14 | # Proceed as usual with most autoconfed packages | ||
15 | ./configure --target=arm-linux-gnueabi --prefix=/usr -Duseshrplib | ||
16 | make -j4 | ||
17 | make DESTDIR=/path/to/staging/dir install | ||
18 | |||
19 | Unlike mainline Perl, this configure never runs any target executables, | ||
20 | relying solely on compile/link tests and pre-defined hints. | ||
21 | On the flip side, it is only meant to run on resonably sane modern unix systems. | ||
22 | |||
23 | Check [project pages](http://arsv.github.io/perl-cross/) for more info. | ||
24 | In particular, [configure usage](http://arsv.github.io/perl-cross/usage.html) | ||
25 | lists available configure options. | ||
26 | |||
27 | Perl-cross is a free software licensed under the same terms | ||
28 | as the original perl source. | ||
29 | See LICENSE, Copying and Artistic files. | ||
diff --git a/meta/recipes-devtools/perl-cross/files/determinism.patch b/meta/recipes-devtools/perl-cross/files/determinism.patch new file mode 100644 index 0000000000..e9bf752bcb --- /dev/null +++ b/meta/recipes-devtools/perl-cross/files/determinism.patch | |||
@@ -0,0 +1,46 @@ | |||
1 | Fixes to make the perl build reproducible: | ||
2 | |||
3 | a) Remove the \n from configure_attr.sh since it gets quoted differently depending on | ||
4 | whether the shell is bash or dash which can cause the test result to be incorrect. | ||
5 | Reported upstream: https://github.com/arsv/perl-cross/issues/87 | ||
6 | |||
7 | b) Sort the order of the module lists from configure_mods.sh since otherwise | ||
8 | the result isn't the same leading to makefile differences. | ||
9 | Reported upstream: https://github.com/arsv/perl-cross/issues/88 | ||
10 | |||
11 | c) Sort the Encode::Byte byte_t.fnm file output (and the makefile depends whilst | ||
12 | there for good measure) | ||
13 | This needs to go to upstream perl (not done) | ||
14 | |||
15 | d) Use bash for perl-cross configure since otherwise trnl gets set to "\n" with bash | ||
16 | and "" with dash | ||
17 | Reported upstream: https://github.com/arsv/perl-cross/issues/87 | ||
18 | |||
19 | RP 2020/2/7 | ||
20 | |||
21 | Upstream-Status: Pending [75% submitted] | ||
22 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org | ||
23 | |||
24 | Index: perl-5.30.1/cnf/configure_mods.sh | ||
25 | =================================================================== | ||
26 | --- perl-5.30.1.orig/cnf/configure_mods.sh | ||
27 | +++ perl-5.30.1/cnf/configure_mods.sh | ||
28 | @@ -82,7 +82,7 @@ extonlyif() { | ||
29 | } | ||
30 | |||
31 | definetrimspaces() { | ||
32 | - v=`echo "$2" | sed -r -e 's/\s+/ /g' -e 's/^\s+//' -e 's/\s+$//'` | ||
33 | + v=`echo "$2" | sed -r -e 's/\s+/ /g' -e 's/^\s+//' -e 's/\s+$//' | xargs -n1 | LANG=C sort | xargs` | ||
34 | define $1 "$v" | ||
35 | } | ||
36 | |||
37 | Index: perl-5.30.1/cnf/configure | ||
38 | =================================================================== | ||
39 | --- perl-5.30.1.orig/cnf/configure | ||
40 | +++ perl-5.30.1/cnf/configure | ||
41 | @@ -1,4 +1,4 @@ | ||
42 | -#!/bin/sh | ||
43 | +#!/bin/bash | ||
44 | |||
45 | base=${0%/*}; test -z "$base" && base=. | ||
46 | |||
diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.3.5.bb b/meta/recipes-devtools/perl-cross/perlcross_1.3.5.bb new file mode 100644 index 0000000000..0d81d4d0f1 --- /dev/null +++ b/meta/recipes-devtools/perl-cross/perlcross_1.3.5.bb | |||
@@ -0,0 +1,38 @@ | |||
1 | SUMMARY = "Perl-cross build system" | ||
2 | HOMEPAGE = "https://github.com/arsv/perl-cross" | ||
3 | DESCRIPTION = "perl-cross provides configure script, top-level Makefile and some auxiliary files for perl, \ | ||
4 | with the primary emphasis on cross-compiling the source." | ||
5 | SECTION = "devel" | ||
6 | LICENSE = "Artistic-1.0 | GPL-1.0+" | ||
7 | # README.md is taken from https://github.com/arsv/perl-cross/blob/master/README.md | ||
8 | # but is not provided inside the release tarballs | ||
9 | LIC_FILES_CHKSUM = "file://${WORKDIR}/README.md;md5=252fcce2026b765fee1ad74d2fb07a3b" | ||
10 | |||
11 | inherit allarch | ||
12 | |||
13 | SRC_URI = "https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross-${PV}.tar.gz;name=perl-cross \ | ||
14 | file://README.md \ | ||
15 | file://0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch \ | ||
16 | file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \ | ||
17 | file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \ | ||
18 | file://determinism.patch \ | ||
19 | " | ||
20 | UPSTREAM_CHECK_URI = "https://github.com/arsv/perl-cross/releases/" | ||
21 | |||
22 | SRC_URI[perl-cross.sha256sum] = "91c66f6b2b99fccfd4fee14660b677380b0c98f9456359e91449798c2ad2ef25" | ||
23 | |||
24 | S = "${WORKDIR}/perl-cross-${PV}" | ||
25 | |||
26 | do_configure () { | ||
27 | } | ||
28 | |||
29 | do_compile () { | ||
30 | } | ||
31 | |||
32 | do_install_class-native() { | ||
33 | mkdir -p ${D}/${datadir}/perl-cross/ | ||
34 | cp -rf ${S}/* ${D}/${datadir}/perl-cross/ | ||
35 | } | ||
36 | |||
37 | BBCLASSEXTEND = "native" | ||
38 | |||