Initial commit
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
From a033c9ece12b6eead48eed63f106ccdec6159b0c Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
Date: Fri, 20 Dec 2019 16:26:55 +0100
|
||||
Subject: [PATCH] CheckLib.pm: do not attempt to run a cross executable
|
||||
|
||||
Upstream-Status: Inappropriate [oe-core specific]
|
||||
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
---
|
||||
inc/Devel/CheckLib.pm | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/inc/Devel/CheckLib.pm b/inc/Devel/CheckLib.pm
|
||||
index 36a451a..b04acc1 100644
|
||||
--- a/inc/Devel/CheckLib.pm
|
||||
+++ b/inc/Devel/CheckLib.pm
|
||||
@@ -330,7 +330,7 @@ sub assert_lib {
|
||||
push @missing, $lib if $rv != 0 || !-x $exefile;
|
||||
my $absexefile = File::Spec->rel2abs($exefile);
|
||||
$absexefile = '"' . $absexefile . '"' if $absexefile =~ m/\s/;
|
||||
- push @wrongresult, $lib if $rv == 0 && -x $exefile && system($absexefile) != 0;
|
||||
+ push @wrongresult, $lib if $rv == 0 && -x $exefile && 0 != 0;
|
||||
unlink $ofile if -e $ofile;
|
||||
_cleanup_exe($exefile);
|
||||
}
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
From e8e095b9c71c58f8197d6315359446b6b084cb2b Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
Date: Tue, 5 Jun 2018 14:58:42 +0300
|
||||
Subject: [PATCH] Somehow this module breaks through the perl wrapper and
|
||||
declares perl binary to be 'perl.real'. This patch forces it back to perl.
|
||||
|
||||
Upstream-Status: Inappropriate [oe-core specific]
|
||||
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
---
|
||||
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
|
||||
index 948c476..f537526 100644
|
||||
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
|
||||
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
|
||||
@@ -1110,6 +1110,9 @@ WARNING
|
||||
}
|
||||
|
||||
foreach my $name (@$names){
|
||||
+ # Getting MakeMaker.pm use perl wrapper instead of 'perl.real' directly
|
||||
+ $name =~ s/perl\.real/perl/ if ($name =~ /perl\.real/);
|
||||
+
|
||||
my ($abs, $use_dir);
|
||||
if ($self->file_name_is_absolute($name)) { # /foo/bar
|
||||
$abs = $name;
|
||||
@@ -2006,6 +2009,7 @@ sub init_PERL {
|
||||
|
||||
$self->{PERL} ||=
|
||||
$self->find_perl(5.0, \@perls, \@defpath, $Verbose );
|
||||
+
|
||||
|
||||
my $perl = $self->{PERL};
|
||||
$perl =~ s/^"//;
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
From a73fff1fcf0def4ce93964f1b63fe3ad0967259d Mon Sep 17 00:00:00 2001
|
||||
From: Robert Yang <liezhi.yang@windriver.com>
|
||||
Date: Fri, 18 Feb 2022 09:44:26 +0000
|
||||
Subject: [PATCH] cpan/Sys-Syslog/Makefile.PL: Fix _PATH_LOG for deterministic
|
||||
|
||||
It checks host's path such as /dev/log and uses it, this doesn't make sense for
|
||||
cross build, and it causes undeterministic, for example, the contianer os
|
||||
usually doesn't have /dev/log which leads to a different build result since
|
||||
other host usually has /dev/log, so make it always use the default value to fix
|
||||
the issue.
|
||||
|
||||
Submitted a ticket to upstream: https://rt.cpan.org/Ticket/Display.html?id=141612
|
||||
|
||||
Upstream-Status: Inappropriate [OE specific]
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
---
|
||||
cpan/Sys-Syslog/Makefile.PL | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/cpan/Sys-Syslog/Makefile.PL b/cpan/Sys-Syslog/Makefile.PL
|
||||
index d09ba69..d44e58c 100644
|
||||
--- a/cpan/Sys-Syslog/Makefile.PL
|
||||
+++ b/cpan/Sys-Syslog/Makefile.PL
|
||||
@@ -130,6 +130,8 @@ else {
|
||||
$_PATH_LOG = "";
|
||||
}
|
||||
|
||||
+# OE specific
|
||||
+$_PATH_LOG = "";
|
||||
|
||||
# if possible, generate the code that handles the constants with
|
||||
# ExtUtils::Constant, otherwise use cached copy in fallback/
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From 260ebd15e16cd86b9b58e5c5f3a496b3853ca46d Mon Sep 17 00:00:00 2001
|
||||
From: Joshua Watt <JPEWhacker@gmail.com>
|
||||
Date: Mon, 17 Jun 2019 10:47:23 -0500
|
||||
Subject: [PATCH 2/2] Constant: Fix up shebang
|
||||
|
||||
The instructions indicate that the script should be explicitly passed to
|
||||
"perl -x", so automatically setting the #! to be ^X is unnecessary and
|
||||
makes the file non-reproducible when building because ^X could be the
|
||||
absolute path to miniperl.
|
||||
|
||||
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
|
||||
Upstream-Status: Submitted [https://rt.cpan.org/Public/Bug/Display.html?id=129866]
|
||||
---
|
||||
cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm
|
||||
index 14eb809714..d4d074e121 100644
|
||||
--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm
|
||||
+++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm
|
||||
@@ -219,7 +219,7 @@ sub dogfood {
|
||||
Regenerate these constant functions by feeding this entire source file to
|
||||
perl -x
|
||||
|
||||
-#!$^X -w
|
||||
+#!/usr/bin/env perl -x -w
|
||||
use ExtUtils::Constant qw (constant_types C_constant XS_constant);
|
||||
|
||||
EOT
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From a625ec2cc3a0b6116c1f8b831d3480deb621c245 Mon Sep 17 00:00:00 2001
|
||||
From: Stig Palmquist <git@stig.io>
|
||||
Date: Tue, 28 Feb 2023 11:54:06 +0100
|
||||
Subject: [PATCH] Add verify_SSL=>1 to HTTP::Tiny to verify https server
|
||||
identity
|
||||
|
||||
CVE: CVE-2023-31484
|
||||
|
||||
Upstream-Status: Backport [https://github.com/andk/cpanpm/commit/9c98370287f4e709924aee7c58ef21c85289a7f0]
|
||||
|
||||
Signed-off-by: Soumya <soumya.sambu@windriver.com>
|
||||
---
|
||||
cpan/CPAN/lib/CPAN/HTTP/Client.pm | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/cpan/CPAN/lib/CPAN/HTTP/Client.pm b/cpan/CPAN/lib/CPAN/HTTP/Client.pm
|
||||
index 4fc792c..a616fee 100644
|
||||
--- a/cpan/CPAN/lib/CPAN/HTTP/Client.pm
|
||||
+++ b/cpan/CPAN/lib/CPAN/HTTP/Client.pm
|
||||
@@ -32,6 +32,7 @@ sub mirror {
|
||||
|
||||
my $want_proxy = $self->_want_proxy($uri);
|
||||
my $http = HTTP::Tiny->new(
|
||||
+ verify_SSL => 1,
|
||||
$want_proxy ? (proxy => $self->{proxy}) : ()
|
||||
);
|
||||
|
||||
--
|
||||
2.40.0
|
||||
@@ -0,0 +1,217 @@
|
||||
From 77f557ef84698efeb6eed04e4a9704eaf85b741d
|
||||
From: Stig Palmquist <git@stig.io>
|
||||
Date: Mon Jun 5 16:46:22 2023 +0200
|
||||
Subject: [PATCH] Change verify_SSL default to 1, add ENV var to enable
|
||||
insecure default
|
||||
|
||||
- Changes the `verify_SSL` default parameter from `0` to `1`
|
||||
|
||||
Based on patch by Dominic Hargreaves:
|
||||
https://salsa.debian.org/perl-team/interpreter/perl/-/commit/1490431e40e22052f75a0b3449f1f53cbd27ba92
|
||||
|
||||
CVE: CVE-2023-31486
|
||||
|
||||
- Add check for `$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}` that
|
||||
enables the previous insecure default behaviour if set to `1`.
|
||||
|
||||
This provides a workaround for users who encounter problems with the
|
||||
new `verify_SSL` default.
|
||||
|
||||
Example to disable certificate checks:
|
||||
```
|
||||
$ PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1 ./script.pl
|
||||
```
|
||||
|
||||
- Updates to documentation:
|
||||
- Describe changing the verify_SSL value
|
||||
- Describe the escape-hatch environment variable
|
||||
- Remove rationale for not enabling verify_SSL
|
||||
- Add missing certificate search paths
|
||||
- Replace "SSL" with "TLS/SSL" where appropriate
|
||||
- Use "machine-in-the-middle" instead of "man-in-the-middle"
|
||||
|
||||
Upstream-Status: Backport [https://github.com/chansen/p5-http-tiny/commit/77f557ef84698efeb6eed04e4a9704eaf85b741d]
|
||||
|
||||
Signed-off-by: Soumya <soumya.sambu@windriver.com>
|
||||
---
|
||||
cpan/HTTP-Tiny/lib/HTTP/Tiny.pm | 86 ++++++++++++++++++++++-----------
|
||||
1 file changed, 57 insertions(+), 29 deletions(-)
|
||||
|
||||
diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
|
||||
index 83ca06d..ebc34a1 100644
|
||||
--- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
|
||||
+++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
|
||||
@@ -40,10 +40,14 @@ sub _croak { require Carp; Carp::croak(@_) }
|
||||
#pod * C<timeout> — Request timeout in seconds (default is 60) If a socket open,
|
||||
#pod read or write takes longer than the timeout, the request response status code
|
||||
#pod will be 599.
|
||||
-#pod * C<verify_SSL> — A boolean that indicates whether to validate the SSL
|
||||
-#pod certificate of an C<https> — connection (default is false)
|
||||
+#pod * C<verify_SSL> — A boolean that indicates whether to validate the TLS/SSL
|
||||
+#pod certificate of an C<https> — connection (default is true). Changed from false
|
||||
+#pod to true in version 0.083.
|
||||
#pod * C<SSL_options> — A hashref of C<SSL_*> — options to pass through to
|
||||
#pod L<IO::Socket::SSL>
|
||||
+#pod * C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}> - Changes the default
|
||||
+#pod certificate verification behavior to not check server identity if set to 1.
|
||||
+#pod Only effective if C<verify_SSL> is not set. Added in version 0.083.
|
||||
#pod
|
||||
#pod An accessor/mutator method exists for each attribute.
|
||||
#pod
|
||||
@@ -111,11 +115,17 @@ sub timeout {
|
||||
sub new {
|
||||
my($class, %args) = @_;
|
||||
|
||||
+ # Support lower case verify_ssl argument, but only if verify_SSL is not
|
||||
+ # true.
|
||||
+ if ( exists $args{verify_ssl} ) {
|
||||
+ $args{verify_SSL} ||= $args{verify_ssl};
|
||||
+ }
|
||||
+
|
||||
my $self = {
|
||||
max_redirect => 5,
|
||||
timeout => defined $args{timeout} ? $args{timeout} : 60,
|
||||
keep_alive => 1,
|
||||
- verify_SSL => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default
|
||||
+ verify_SSL => defined $args{verify_SSL} ? $args{verify_SSL} : _verify_SSL_default(),
|
||||
no_proxy => $ENV{no_proxy},
|
||||
};
|
||||
|
||||
@@ -134,6 +144,13 @@ sub new {
|
||||
return $self;
|
||||
}
|
||||
|
||||
+sub _verify_SSL_default {
|
||||
+ my ($self) = @_;
|
||||
+ # Check if insecure default certificate verification behaviour has been
|
||||
+ # changed by the user by setting PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1
|
||||
+ return (($ENV{PERL_HTTP_TINY_INSECURE_BY_DEFAULT} || '') eq '1') ? 0 : 1;
|
||||
+}
|
||||
+
|
||||
sub _set_proxies {
|
||||
my ($self) = @_;
|
||||
|
||||
@@ -1055,7 +1072,7 @@ sub new {
|
||||
timeout => 60,
|
||||
max_line_size => 16384,
|
||||
max_header_lines => 64,
|
||||
- verify_SSL => 0,
|
||||
+ verify_SSL => HTTP::Tiny::_verify_SSL_default(),
|
||||
SSL_options => {},
|
||||
%args
|
||||
}, $class;
|
||||
@@ -2043,11 +2060,11 @@ proxy
|
||||
timeout
|
||||
verify_SSL
|
||||
|
||||
-=head1 SSL SUPPORT
|
||||
+=head1 TLS/SSL SUPPORT
|
||||
|
||||
Direct C<https> connections are supported only if L<IO::Socket::SSL> 1.56 or
|
||||
greater and L<Net::SSLeay> 1.49 or greater are installed. An error will occur
|
||||
-if new enough versions of these modules are not installed or if the SSL
|
||||
+if new enough versions of these modules are not installed or if the TLS
|
||||
encryption fails. You can also use C<HTTP::Tiny::can_ssl()> utility function
|
||||
that returns boolean to see if the required modules are installed.
|
||||
|
||||
@@ -2055,7 +2072,7 @@ An C<https> connection may be made via an C<http> proxy that supports the CONNEC
|
||||
command (i.e. RFC 2817). You may not proxy C<https> via a proxy that itself
|
||||
requires C<https> to communicate.
|
||||
|
||||
-SSL provides two distinct capabilities:
|
||||
+TLS/SSL provides two distinct capabilities:
|
||||
|
||||
=over 4
|
||||
|
||||
@@ -2069,24 +2086,17 @@ Verification of server identity
|
||||
|
||||
=back
|
||||
|
||||
-B<By default, HTTP::Tiny does not verify server identity>.
|
||||
-
|
||||
-Server identity verification is controversial and potentially tricky because it
|
||||
-depends on a (usually paid) third-party Certificate Authority (CA) trust model
|
||||
-to validate a certificate as legitimate. This discriminates against servers
|
||||
-with self-signed certificates or certificates signed by free, community-driven
|
||||
-CA's such as L<CAcert.org|http://cacert.org>.
|
||||
+B<By default, HTTP::Tiny verifies server identity>.
|
||||
|
||||
-By default, HTTP::Tiny does not make any assumptions about your trust model,
|
||||
-threat level or risk tolerance. It just aims to give you an encrypted channel
|
||||
-when you need one.
|
||||
+This was changed in version 0.083 due to security concerns. The previous default
|
||||
+behavior can be enabled by setting C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}>
|
||||
+to 1.
|
||||
|
||||
-Setting the C<verify_SSL> attribute to a true value will make HTTP::Tiny verify
|
||||
-that an SSL connection has a valid SSL certificate corresponding to the host
|
||||
-name of the connection and that the SSL certificate has been verified by a CA.
|
||||
-Assuming you trust the CA, this will protect against a L<man-in-the-middle
|
||||
-attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>. If you are
|
||||
-concerned about security, you should enable this option.
|
||||
+Verification is done by checking that that the TLS/SSL connection has a valid
|
||||
+certificate corresponding to the host name of the connection and that the
|
||||
+certificate has been verified by a CA. Assuming you trust the CA, this will
|
||||
+protect against L<machine-in-the-middle
|
||||
+attacks|http://en.wikipedia.org/wiki/Machine-in-the-middle_attack>.
|
||||
|
||||
Certificate verification requires a file containing trusted CA certificates.
|
||||
|
||||
@@ -2094,9 +2104,7 @@ If the environment variable C<SSL_CERT_FILE> is present, HTTP::Tiny
|
||||
will try to find a CA certificate file in that location.
|
||||
|
||||
If the L<Mozilla::CA> module is installed, HTTP::Tiny will use the CA file
|
||||
-included with it as a source of trusted CA's. (This means you trust Mozilla,
|
||||
-the author of Mozilla::CA, the CPAN mirror where you got Mozilla::CA, the
|
||||
-toolchain used to install it, and your operating system security, right?)
|
||||
+included with it as a source of trusted CA's.
|
||||
|
||||
If that module is not available, then HTTP::Tiny will search several
|
||||
system-specific default locations for a CA certificate file:
|
||||
@@ -2115,13 +2123,33 @@ system-specific default locations for a CA certificate file:
|
||||
|
||||
/etc/ssl/ca-bundle.pem
|
||||
|
||||
+=item *
|
||||
+
|
||||
+/etc/openssl/certs/ca-certificates.crt
|
||||
+
|
||||
+=item *
|
||||
+
|
||||
+/etc/ssl/cert.pem
|
||||
+
|
||||
+=item *
|
||||
+
|
||||
+/usr/local/share/certs/ca-root-nss.crt
|
||||
+
|
||||
+=item *
|
||||
+
|
||||
+/etc/pki/tls/cacert.pem
|
||||
+
|
||||
+=item *
|
||||
+
|
||||
+/etc/certs/ca-certificates.crt
|
||||
+
|
||||
=back
|
||||
|
||||
An error will be occur if C<verify_SSL> is true and no CA certificate file
|
||||
is available.
|
||||
|
||||
-If you desire complete control over SSL connections, the C<SSL_options> attribute
|
||||
-lets you provide a hash reference that will be passed through to
|
||||
+If you desire complete control over TLS/SSL connections, the C<SSL_options>
|
||||
+attribute lets you provide a hash reference that will be passed through to
|
||||
C<IO::Socket::SSL::start_SSL()>, overriding any options set by HTTP::Tiny. For
|
||||
example, to provide your own trusted CA file:
|
||||
|
||||
@@ -2131,7 +2159,7 @@ example, to provide your own trusted CA file:
|
||||
|
||||
The C<SSL_options> attribute could also be used for such things as providing a
|
||||
client certificate for authentication to a server or controlling the choice of
|
||||
-cipher used for the SSL connection. See L<IO::Socket::SSL> documentation for
|
||||
+cipher used for the TLS/SSL connection. See L<IO::Socket::SSL> documentation for
|
||||
details.
|
||||
|
||||
=head1 PROXY SUPPORT
|
||||
--
|
||||
2.40.0
|
||||
@@ -0,0 +1,36 @@
|
||||
From a22785783b17cbaa28afaee4a024d81a1903701d
|
||||
From: Stig Palmquist <git@stig.io>
|
||||
Date: Sun Jun 18 11:36:05 2023 +0200
|
||||
Subject: [PATCH] Fix incorrect env var name for verify_SSL default
|
||||
|
||||
The variable to override the verify_SSL default differed slightly in the
|
||||
documentation from what was checked for in the code.
|
||||
|
||||
This commit makes the code use `PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT`
|
||||
as documented, instead of `PERL_HTTP_TINY_INSECURE_BY_DEFAULT` which was
|
||||
missing `SSL_`
|
||||
|
||||
CVE: CVE-2023-31486
|
||||
|
||||
Upstream-Status: Backport [https://github.com/chansen/p5-http-tiny/commit/a22785783b17cbaa28afaee4a024d81a1903701d]
|
||||
|
||||
Signed-off-by: Soumya <soumya.sambu@windriver.com>
|
||||
---
|
||||
cpan/HTTP-Tiny/lib/HTTP/Tiny.pm | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
|
||||
index ebc34a1..65ac8ff 100644
|
||||
--- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
|
||||
+++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
|
||||
@@ -148,7 +148,7 @@ sub _verify_SSL_default {
|
||||
my ($self) = @_;
|
||||
# Check if insecure default certificate verification behaviour has been
|
||||
# changed by the user by setting PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1
|
||||
- return (($ENV{PERL_HTTP_TINY_INSECURE_BY_DEFAULT} || '') eq '1') ? 0 : 1;
|
||||
+ return (($ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} || '') eq '1') ? 0 : 1;
|
||||
}
|
||||
|
||||
sub _set_proxies {
|
||||
--
|
||||
2.40.0
|
||||
@@ -0,0 +1,45 @@
|
||||
Fixes to make the perl build reproducible:
|
||||
|
||||
a) Remove the \n from configure_attr.sh since it gets quoted differently depending on
|
||||
whether the shell is bash or dash which can cause the test result to be incorrect.
|
||||
Reported upstream: https://github.com/arsv/perl-cross/issues/87
|
||||
|
||||
b) Sort the order of the module lists from configure_mods.sh since otherwise
|
||||
the result isn't the same leading to makefile differences.
|
||||
Reported upstream: https://github.com/arsv/perl-cross/issues/88
|
||||
|
||||
c) Sort the Encode::Byte byte_t.fnm file output (and the makefile depends whilst
|
||||
there for good measure)
|
||||
This needs to go to upstream perl (not done)
|
||||
|
||||
d) Use bash for perl-cross configure since otherwise trnl gets set to "\n" with bash
|
||||
and "" with dash
|
||||
Reported upstream: https://github.com/arsv/perl-cross/issues/87
|
||||
|
||||
RP 2020/2/7
|
||||
|
||||
Upstream-Status: Pending [75% submitted]
|
||||
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org
|
||||
|
||||
Index: perl-5.30.1/cpan/Encode/Byte/Makefile.PL
|
||||
===================================================================
|
||||
--- perl-5.30.1.orig/cpan/Encode/Byte/Makefile.PL
|
||||
+++ perl-5.30.1/cpan/Encode/Byte/Makefile.PL
|
||||
@@ -171,7 +171,7 @@ sub postamble
|
||||
my $lengthsofar = length($str);
|
||||
my $continuator = '';
|
||||
$str .= "$table.c : $enc2xs Makefile.PL";
|
||||
- foreach my $file (@{$tables{$table}})
|
||||
+ foreach my $file (sort (@{$tables{$table}}))
|
||||
{
|
||||
$str .= $continuator.' '.$self->catfile($dir,$file);
|
||||
if ( length($str)-$lengthsofar > 128*$numlines )
|
||||
@@ -189,7 +189,7 @@ sub postamble
|
||||
qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
|
||||
open (FILELIST, ">$table.fnm")
|
||||
|| die "Could not open $table.fnm: $!";
|
||||
- foreach my $file (@{$tables{$table}})
|
||||
+ foreach my $file (sort (@{$tables{$table}}))
|
||||
{
|
||||
print FILELIST $self->catfile($dir,$file) . "\n";
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
The code is encoding host compiler parameters into target builds. Avoid
|
||||
this for our target builds (patch is target specific, not native)
|
||||
|
||||
Upstream-Status: Inappropriate [Cross compile hack]
|
||||
RP 2020/2/18
|
||||
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
||||
|
||||
Index: perl-5.30.1/cpan/Encode/bin/enc2xs
|
||||
===================================================================
|
||||
--- perl-5.30.1.orig/cpan/Encode/bin/enc2xs
|
||||
+++ perl-5.30.1/cpan/Encode/bin/enc2xs
|
||||
@@ -195,7 +195,7 @@ sub compiler_info {
|
||||
# above becomes false.
|
||||
my $sized = $declaration && !($compat && !$pedantic);
|
||||
|
||||
- return ($cpp, $static, $sized);
|
||||
+ return (0, 1, 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From 8e1efba7560d8d55524c7a0f1b0539ddce419b86 Mon Sep 17 00:00:00 2001
|
||||
From: Brendan O'Dea <bod@debian.org>
|
||||
Date: Fri, 16 Dec 2005 01:32:14 +1100
|
||||
Subject: [PATCH 6/8] Remove Errno version check due to upgrade problems with
|
||||
long-running processes.
|
||||
|
||||
Bug-Debian: http://bugs.debian.org/343351
|
||||
|
||||
Remove version check which can cause problems for long running
|
||||
processes embedding perl when upgrading to a newer version,
|
||||
compatible, but built on a different machine.
|
||||
|
||||
Patch-Name: debian/errno_ver.diff
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
ext/Errno/Errno_pm.PL | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
|
||||
index 6251a3c..eeed445 100644
|
||||
--- a/ext/Errno/Errno_pm.PL
|
||||
+++ b/ext/Errno/Errno_pm.PL
|
||||
@@ -294,11 +294,6 @@ EDQ
|
||||
# they've already declared perl doesn't need to worry about this risk.
|
||||
if(!$ENV{'PERL_BUILD_EXPAND_CONFIG_VARS'}) {
|
||||
print <<"CONFIG_CHECK_END";
|
||||
-use Config;
|
||||
-"\$Config{'archname'}-\$Config{'osvers'}" eq
|
||||
-"$archname-$Config{'osvers'}" or
|
||||
- die "Errno architecture ($archname-$Config{'osvers'}) does not match executable architecture (\$Config{'archname'}-\$Config{'osvers'})";
|
||||
-
|
||||
CONFIG_CHECK_END
|
||||
}
|
||||
|
||||
--
|
||||
2.1.4
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
|
||||
Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm
|
||||
===================================================================
|
||||
--- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000
|
||||
+++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000
|
||||
@@ -1597,6 +1597,19 @@
|
||||
$self->{PERL_LIB} ||= $Config{privlibexp};
|
||||
$self->{PERL_ARCHLIB} ||= $Config{archlibexp};
|
||||
$self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now
|
||||
+ # Check for environment override so we'll find the headers in the correct place
|
||||
+ if (defined $ENV{PERL_LIB})
|
||||
+ {
|
||||
+ $self->{PERL_LIB} = $ENV{PERL_LIB};
|
||||
+ }
|
||||
+ if (defined $ENV{PERL_ARCHLIB})
|
||||
+ {
|
||||
+ $self->{PERL_ARCHLIB} = $ENV{PERL_ARCHLIB};
|
||||
+ }
|
||||
+ if (defined $ENV{PERL_INC})
|
||||
+ {
|
||||
+ $self->{PERL_INC} = $ENV{PERL_INC};
|
||||
+ }
|
||||
my $perl_h;
|
||||
|
||||
if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h"))
|
||||
@@ -0,0 +1,57 @@
|
||||
From e789c1a0c9de5928a3b49f5b9d81b63636f5c7bb Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
Date: Sun, 27 May 2007 21:04:11 +0000
|
||||
Subject: [PATCH] perl: 5.8.7 -> 5.8.8 (from OE)
|
||||
|
||||
This patch is used for perl-native only. It enables the switching of
|
||||
configuration files between Config_heavy.pl and
|
||||
Config_heavy-target.pl by setting the environment variables
|
||||
PERLCONFIGTARGET - the later containing settings for the target while
|
||||
the former contains those for the host. This will allow cpan.bbclass
|
||||
to use the settings appropriate for the native and/or target builds
|
||||
as required. This also disables the use of the cache since the cached
|
||||
values would be valid for the host only.
|
||||
|
||||
Upstream-Status: Inappropriate [native]
|
||||
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
|
||||
---
|
||||
configpm | 18 ++++++++++++++++--
|
||||
1 file changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configpm b/configpm
|
||||
index 94a4778..99b20c9 100755
|
||||
--- a/configpm
|
||||
+++ b/configpm
|
||||
@@ -687,7 +687,7 @@ sub FETCH {
|
||||
my($self, $key) = @_;
|
||||
|
||||
# check for cached value (which may be undef so we use exists not defined)
|
||||
- return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key);
|
||||
+ return $self->fetch_string($key);
|
||||
}
|
||||
|
||||
ENDOFEND
|
||||
@@ -845,7 +845,21 @@ $config_txt .= sprintf <<'ENDOFTIE', $fast_config;
|
||||
sub DESTROY { }
|
||||
|
||||
sub AUTOLOAD {
|
||||
- require 'Config_heavy.pl';
|
||||
+ my $cfgfile = 'Config_heavy.pl';
|
||||
+ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes")
|
||||
+ {
|
||||
+ $cfgfile = 'Config_heavy-target.pl';
|
||||
+ }
|
||||
+ if (defined $ENV{PERL_ARCHLIB})
|
||||
+ {
|
||||
+ push @INC, $ENV{PERL_ARCHLIB};
|
||||
+ require $cfgfile;
|
||||
+ pop @INC;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ require $cfgfile;
|
||||
+ }
|
||||
goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
|
||||
die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Allow the location that .so files are searched for for dynamic
|
||||
loading to be changed via an environment variable. This is to allow
|
||||
us to load .so's from the host system while building for the target
|
||||
system.
|
||||
|
||||
Update by Nitin A Kamble <nitin.a.kamble@intel.com> 2011/04/21
|
||||
|
||||
Index: perl-5.24.1/dist/XSLoader/XSLoader_pm.PL
|
||||
===================================================================
|
||||
--- perl-5.24.1.orig/dist/XSLoader/XSLoader_pm.PL
|
||||
+++ perl-5.24.1/dist/XSLoader/XSLoader_pm.PL
|
||||
@@ -52,6 +52,24 @@ sub load {
|
||||
my ($caller, $modlibname) = caller();
|
||||
my $module = $caller;
|
||||
|
||||
+ # OE: Allow env to form dynamic loader to look in a different place
|
||||
+ # This is so it finds the host .so files, not the targets
|
||||
+ if (defined $ENV{PERLHOSTLIB})
|
||||
+ {
|
||||
+ my $hostlib = $ENV{PERLHOSTLIB};
|
||||
+ my $hostarchlib = $ENV{PERLHOSTARCHLIB};
|
||||
+ print STDERR "*** Module name IN: $modlibname\n";
|
||||
+ my ($p1, $p2, $p3, $p4, $p5, $p6, $p7) = $modlibname =~ m/(^(.*lib\w*\/)?)((perl5\/[0-9\.]*\/)?)(([^\/]*)\/)?(.*)$/;
|
||||
+ print STDERR "*** p1: $p1 p3: $p3 p5: $p5 p7: $p7\n";
|
||||
+ if ( $p1 ne "" ) {
|
||||
+ $modlibname = $hostlib.$p7;
|
||||
+ }
|
||||
+ if ( $p6 ne "" ) {
|
||||
+ $modlibname = $hostarchlib.$p7;
|
||||
+ }
|
||||
+ print STDERR "*** Module name OUT: $modlibname\n";
|
||||
+ }
|
||||
+
|
||||
if (@_) {
|
||||
$module = $_[0];
|
||||
} else {
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
cd t && PERL_BUILD_PACKAGING=1 ./TEST | sed -u -e 's|\(.*\) .* ok$|PASS: \1|' -e 's|\(.*\) .* skipped|SKIP: \1|' -e 's|\(.*\) \.\(.*\)|FAIL: \1|'
|
||||
@@ -0,0 +1,49 @@
|
||||
SUMMARY = "Error - Error/exception handling in an OO-ish way"
|
||||
DESCRIPTION = "The Error package provides two interfaces. Firstly \
|
||||
Error provides a procedural interface to exception handling. \
|
||||
Secondly Error is a base class for errors/exceptions that can \
|
||||
either be thrown, for subsequent catch, or can simply be recorded."
|
||||
HOMEPAGE = "https://github.com/shlomif/perl-error.pm"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=8f3499d09ee74a050c0319391ff9d100"
|
||||
|
||||
PR = "r1"
|
||||
|
||||
DEPENDS += "perl"
|
||||
|
||||
RDEPENDS:${PN} += " \
|
||||
perl-module-carp \
|
||||
perl-module-exporter \
|
||||
perl-module-scalar-util \
|
||||
perl-module-overload \
|
||||
perl-module-strict \
|
||||
perl-module-vars \
|
||||
perl-module-warnings \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN}-ptest += " \
|
||||
perl-module-base \
|
||||
perl-module-file-spec \
|
||||
perl-module-io-handle \
|
||||
perl-module-ipc-open3 \
|
||||
perl-module-lib \
|
||||
perl-module-test-more \
|
||||
"
|
||||
|
||||
SRC_URI = "http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Error-${PV}.tar.gz"
|
||||
|
||||
SRC_URI[md5sum] = "6732b1c6207e4a9a3e2987c88368039a"
|
||||
SRC_URI[sha256sum] = "1a23f7913032aed6d4b68321373a3899ca66590f4727391a091ec19c95bf7adc"
|
||||
|
||||
S = "${WORKDIR}/Error-${PV}"
|
||||
|
||||
inherit cpan ptest-perl
|
||||
|
||||
do_install:prepend() {
|
||||
# test requires "-T" (taint) command line option
|
||||
rm -rf ${B}/t/pod-coverage.t
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
for case in `find t -type f -name '*.t'`; do
|
||||
perl -I inc -I blib -Mblib $case >$case.output 2>&1
|
||||
ret=$?
|
||||
cat $case.output
|
||||
if [ $ret -ne 0 ]; then
|
||||
echo "FAIL: ${case%.t}"
|
||||
else
|
||||
echo "PASS: ${case%.t}"
|
||||
fi
|
||||
|
||||
rm -f $case.output
|
||||
done
|
||||
@@ -0,0 +1,138 @@
|
||||
SUMMARY = "Module::Build - Build and install Perl modules"
|
||||
DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \
|
||||
Makefile.PL file to drive distribution configuration, build, test and \
|
||||
installation. Traditionally, Build.PL uses Module::Build as the underlying \
|
||||
build system. This module provides a simple, lightweight, drop-in replacement. \
|
||||
Whereas Module::Build has over 6,700 lines of code; this module has less than \
|
||||
120, yet supports the features needed by most distributions."
|
||||
|
||||
SECTION = "libs"
|
||||
|
||||
HOMEPAGE = "https://metacpan.org/release/Module-Build"
|
||||
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://README;beginline=881;endline=886;md5=3027f56c664545e54678c26b7f1ac19c"
|
||||
|
||||
SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-${PV}.tar.gz \
|
||||
file://run-ptest \
|
||||
"
|
||||
SRC_URI[sha256sum] = "66aeac6127418be5e471ead3744648c766bd01482825c5b66652675f2bc86a8f"
|
||||
|
||||
S = "${WORKDIR}/Module-Build-${PV}"
|
||||
|
||||
inherit cpan_build ptest-perl
|
||||
|
||||
# From:
|
||||
# https://github.com/rehsack/meta-cpan/blob/master/recipes-devel/module-build-perl/module-build-perl_0.4216.bb
|
||||
#
|
||||
do_patch_module_build () {
|
||||
cd ${S}
|
||||
sed -i -e 's,my $interpreter = $self->{properties}{perl};,my $interpreter = "${bindir}/perl";,g' lib/Module/Build/Base.pm
|
||||
}
|
||||
|
||||
do_patch[postfuncs] += "do_patch_module_build"
|
||||
|
||||
EXTRA_CPAN_BUILD_FLAGS = "--create_packlist=0"
|
||||
|
||||
do_install:prepend () {
|
||||
# We do not have a recipe for libpod-parser-perl which is for
|
||||
# documentation (and is deprecated in favor of Pod::Simple)
|
||||
rm -rf ${B}/t/pod_parser.t
|
||||
}
|
||||
|
||||
do_install:append () {
|
||||
rm -rf ${D}${docdir}/perl/html
|
||||
sed -i "s:^#!.*:#!/usr/bin/env perl:" ${D}${bindir}/config_data
|
||||
}
|
||||
|
||||
do_install_ptest() {
|
||||
cp -r ${B}/inc ${D}${PTEST_PATH}
|
||||
cp -r ${B}/blib ${D}${PTEST_PATH}
|
||||
cp -r ${B}/_build ${D}${PTEST_PATH}
|
||||
cp -r ${B}/lib ${D}${PTEST_PATH}
|
||||
chown -R root:root ${D}${PTEST_PATH}
|
||||
sed -i -e "s,'perl' => .*,'perl' => '/usr/bin/perl'\,,g" \
|
||||
-e "s,${STAGING_BINDIR_NATIVE}/perl-native/\.\.,${bindir}/,g" \
|
||||
-e "s,${S},,g" \
|
||||
-e "s,${D},,g" \
|
||||
${D}${PTEST_PATH}/_build/build_params \
|
||||
${D}${PTEST_PATH}/_build/runtime_params
|
||||
rm -rf ${D}${PTEST_PATH}/blib/libhtml/site/lib/Module/
|
||||
rm -rf ${D}${PTEST_PATH}/_build/magicnum
|
||||
}
|
||||
|
||||
RDEPENDS:${PN} += " \
|
||||
perl-module-carp \
|
||||
perl-module-cpan \
|
||||
perl-module-config \
|
||||
perl-module-cwd \
|
||||
perl-module-data-dumper \
|
||||
perl-module-encode \
|
||||
perl-module-extutils-cbuilder \
|
||||
perl-module-extutils-command \
|
||||
perl-module-extutils-install \
|
||||
perl-module-extutils-installed \
|
||||
perl-module-extutils-mkbootstrap \
|
||||
perl-module-extutils-packlist \
|
||||
perl-module-extutils-parsexs \
|
||||
perl-module-file-basename \
|
||||
perl-module-file-compare \
|
||||
perl-module-file-copy \
|
||||
perl-module-file-find \
|
||||
perl-module-file-glob \
|
||||
perl-module-file-path \
|
||||
perl-module-file-spec \
|
||||
perl-module-file-spec-functions \
|
||||
perl-module-getopt-long \
|
||||
perl-module-metadata \
|
||||
perl-module-perl-ostype \
|
||||
perl-module-pod-man \
|
||||
perl-module-tap-harness \
|
||||
perl-module-text-abbrev \
|
||||
perl-module-text-parsewords \
|
||||
perl-module-utf8 \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN}-ptest += " \
|
||||
packagegroup-core-buildessential \
|
||||
perl-dev \
|
||||
perl-module-blib \
|
||||
perl-module-encode-encoding \
|
||||
perl-module-extutils-cbuilder-base \
|
||||
perl-module-extutils-command-mm \
|
||||
perl-module-extutils-mm-unix \
|
||||
perl-module-file-temp \
|
||||
perl-module-lib \
|
||||
perl-module-parse-cpan-meta \
|
||||
perl-module-perlio \
|
||||
perl-module-perlio-encoding \
|
||||
perl-module-pod-simple-transcodesmart \
|
||||
perl-module-pod-text \
|
||||
perl-module-tap-base \
|
||||
perl-module-tap-formatter-base \
|
||||
perl-module-tap-formatter-file \
|
||||
perl-module-tap-formatter-session \
|
||||
perl-module-tap-harness-env \
|
||||
perl-module-tap-parser \
|
||||
perl-module-tap-parser-scheduler \
|
||||
perl-module-test-harness \
|
||||
perl-module-test-more \
|
||||
"
|
||||
|
||||
RPROVIDES:${PN} += "\
|
||||
libmodule-build-base-perl \
|
||||
libmodule-build-compat-perl \
|
||||
libmodule-build-config-perl \
|
||||
libmodule-build-cookbook-perl \
|
||||
libmodule-build-dumper-perl \
|
||||
libmodule-build-notes-perl \
|
||||
libmodule-build-ppmaker-perl \
|
||||
libmodule-build-platform-default-perl \
|
||||
libmodule-build-platform-unix-perl \
|
||||
libmodule-build-podparser-perl \
|
||||
"
|
||||
|
||||
# t/xs.t RDEPENDS on "EXTERN.h" provided by perl-dev
|
||||
INSANE_SKIP:${PN}-ptest = "dev-deps"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,36 @@
|
||||
SUMMARY = "Incredibly simple helpers for testing code with exceptions"
|
||||
DESCRIPTION = "Test::Fatal is an alternative to the popular Test::Exception.\
|
||||
It does much less, but should allow greater flexibility in testing \
|
||||
exception-throwing code with about the same amount of typing."
|
||||
HOMEPAGE = "https://github.com/rjbs/Test-Fatal"
|
||||
BUGTRACKER = "https://github.com/rjbs/Test-Fatal/issues"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=b5c851290cab1dda12fcfb0e9ec43639"
|
||||
|
||||
SRC_URI = "${CPAN_MIRROR}/authors/id/R/RJ/RJBS/Test-Fatal-${PV}.tar.gz"
|
||||
|
||||
SRC_URI[sha256sum] = "37dfffdafb84b762efe96b02fb2aa41f37026c73e6b83590db76229697f3c4a6"
|
||||
|
||||
S = "${WORKDIR}/Test-Fatal-${PV}"
|
||||
|
||||
inherit cpan ptest-perl
|
||||
|
||||
RDEPENDS:${PN} += "\
|
||||
libtry-tiny-perl \
|
||||
perl-module-carp \
|
||||
perl-module-exporter \
|
||||
perl-module-test-builder \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN}-ptest += "\
|
||||
perl-module-extutils-makemaker \
|
||||
perl-module-extutils-mm-unix \
|
||||
perl-module-file-spec \
|
||||
perl-module-overload \
|
||||
perl-module-test-builder-tester \
|
||||
perl-module-test-more \
|
||||
"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
@@ -0,0 +1,28 @@
|
||||
SUMMARY = "Skip tests when modules not available"
|
||||
DESCRIPTION = "Skip test scripts if modules are not available. \
|
||||
The requested modules will be loaded, and optionally have their versions \
|
||||
checked. If the module is missing, the test script will be skipped. Modules \
|
||||
that are found but fail to compile will exit with an error rather than skip."
|
||||
|
||||
HOMEPAGE = "https://metacpan.org/release/Test-Needs"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
|
||||
CPAN_NAME = "Test-Needs"
|
||||
CPAN_AUTHOR = "HAARG"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://README;md5=3f3ccd21a0a48aa313db212cc3b1bc09;beginline=88;endline=89"
|
||||
|
||||
DEPENDS += "perl"
|
||||
|
||||
SRC_URI = "https://cpan.metacpan.org/authors/id/H/HA/${CPAN_AUTHOR}/${CPAN_NAME}-${PV}.tar.gz"
|
||||
|
||||
SRC_URI[sha256sum] = "923ffdc78fcba96609753e4bae26b0ba0186893de4a63cd5236e012c7c90e208"
|
||||
|
||||
S = "${WORKDIR}/${CPAN_NAME}-${PV}"
|
||||
|
||||
inherit cpan ptest-perl
|
||||
|
||||
RDEPENDS:${PN}-ptest += "perl-module-test-more perl-module-ipc-open3 perl-module-lib perl-module-version"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,39 @@
|
||||
# Copyright (C) 2020 Jens Rehsack <sno@netbsd.org>
|
||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||
|
||||
SUMMARY = "Test::Warnings - Test for warnings and the lack of them"
|
||||
DESCRIPTION = "If you've ever tried to use Test::NoWarnings to confirm there are no \
|
||||
warnings generated by your tests, combined with the convenience of \
|
||||
\\"done_testing\\" to not have to declare a test count, you'll have discovered \
|
||||
that these two features do not play well together, as the test count will \
|
||||
be calculated *before* the warnings test is run, resulting in a TAP error. \
|
||||
(See "examples/test_nowarnings.pl" in this distribution for a \
|
||||
demonstration.)"
|
||||
HOMEPAGE = "https://github.com/karenetheridge/Test-Warnings"
|
||||
BUGTRACKER = "https://rt.cpan.org/Public/Dist/Display.html?Name=Test-Warnings"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENCE;md5=6f2b02f39e7d359efd9525fbc56c84a1"
|
||||
|
||||
SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Test-Warnings-${PV}.tar.gz"
|
||||
|
||||
SRC_URI[sha256sum] = "1e542909fef305e45563e9878ea1c3b0c7cef1b28bb7ae07eba2e1efabec477b"
|
||||
|
||||
S = "${WORKDIR}/Test-Warnings-${PV}"
|
||||
|
||||
inherit cpan ptest-perl
|
||||
|
||||
RDEPENDS:${PN} += "\
|
||||
perl-module-test-builder \
|
||||
"
|
||||
|
||||
# Many hidden dependencies and mysterious failures occur without full perl-modules
|
||||
RDEPENDS:${PN}-ptest += "perl-modules"
|
||||
|
||||
do_install_ptest_perl:append () {
|
||||
cp -r ${B}/t/lib ${D}${PTEST_PATH}/t/
|
||||
chown -R root:root ${D}${PTEST_PATH}/t/lib
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
@@ -0,0 +1,36 @@
|
||||
SUMMARY = "Try::Tiny - Minimal try/catch with proper preservation of $@"
|
||||
DESCRIPTION = "This module provides bare bones try/catch/finally statements \
|
||||
that are designed to minimize common mistakes with eval blocks, and NOTHING \
|
||||
else."
|
||||
HOMEPAGE = "https://github.com/p5sagit/Try-Tiny"
|
||||
BUGTRACKER = "https://rt.cpan.org/Public/Dist/Display.html?Name=Try-Tiny"
|
||||
SECTION = "libs"
|
||||
LICENSE = "MIT"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENCE;md5=5dc332c2d4aade55f5db244681000091"
|
||||
|
||||
SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Try-Tiny-${PV}.tar.gz"
|
||||
|
||||
SRC_URI[sha256sum] = "3300d31d8a4075b26d8f46ce864a1d913e0e8467ceeba6655d5d2b2e206c11be"
|
||||
|
||||
S = "${WORKDIR}/Try-Tiny-${PV}"
|
||||
|
||||
inherit cpan ptest-perl
|
||||
|
||||
RDEPENDS:${PN} += "\
|
||||
perl-module-carp \
|
||||
perl-module-constant \
|
||||
perl-module-exporter \
|
||||
"
|
||||
RRECOMMENDS:${PN} += "\
|
||||
perl-module-sub-util \
|
||||
"
|
||||
RDEPENDS:${PN}-ptest += "\
|
||||
perl-module-extutils-makemaker \
|
||||
perl-module-extutils-mm-unix \
|
||||
perl-module-file-spec \
|
||||
perl-module-if \
|
||||
perl-module-test-more \
|
||||
"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
From 858daa5047b00e7d5aa795302a9fad5504c8f0b9 Mon Sep 17 00:00:00 2001
|
||||
From: Tim Orling <tim.orling@konsulko.com>
|
||||
Date: Thu, 17 Nov 2022 16:33:20 -0800
|
||||
Subject: [PATCH] Skip TODO test cases that fail
|
||||
|
||||
TODO cases report as "not ok" with ptest-runner
|
||||
|
||||
Upstream-Status: Inappropriate [ptest-runner specific]
|
||||
|
||||
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
|
||||
|
||||
---
|
||||
t/escape-char.t | 20 ++++++++++----------
|
||||
t/iri.t | 18 +++++++++---------
|
||||
t/mailto.t | 12 ++++++------
|
||||
3 files changed, 25 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/t/escape-char.t b/t/escape-char.t
|
||||
index c6ce79c..5e62ad5 100644
|
||||
--- a/t/escape-char.t
|
||||
+++ b/t/escape-char.t
|
||||
@@ -6,16 +6,16 @@ use warnings;
|
||||
use Test::More;
|
||||
use URI ();
|
||||
|
||||
-TODO: {
|
||||
- my $str = "http://foo/\xE9";
|
||||
- utf8::upgrade($str);
|
||||
- my $uri = URI->new($str);
|
||||
-
|
||||
- local $TODO = 'URI::Escape::escape_char misunderstands utf8';
|
||||
-
|
||||
- # http://foo/%C3%A9
|
||||
- is("$uri", 'http://foo/%E9', 'correctly created a URI from a utf8-upgraded string');
|
||||
-}
|
||||
+#TODO: {
|
||||
+# my $str = "http://foo/\xE9";
|
||||
+# utf8::upgrade($str);
|
||||
+# my $uri = URI->new($str);
|
||||
+#
|
||||
+# local $TODO = 'URI::Escape::escape_char misunderstands utf8';
|
||||
+#
|
||||
+# # http://foo/%C3%A9
|
||||
+# is("$uri", 'http://foo/%E9', 'correctly created a URI from a utf8-upgraded string');
|
||||
+#}
|
||||
|
||||
{
|
||||
my $str = "http://foo/\xE9";
|
||||
diff --git a/t/iri.t b/t/iri.t
|
||||
index 2eb64b2..9c663c9 100644
|
||||
--- a/t/iri.t
|
||||
+++ b/t/iri.t
|
||||
@@ -6,7 +6,7 @@ use Test::More;
|
||||
use Config qw( %Config );
|
||||
|
||||
if (defined $Config{useperlio}) {
|
||||
- plan tests=>26;
|
||||
+ plan tests=>24;
|
||||
} else {
|
||||
plan skip_all=>'this perl doesn\'t support PerlIO layers';
|
||||
}
|
||||
@@ -60,17 +60,17 @@ is $u->as_iri, "http://➡.ws/";
|
||||
# draft-duerst-iri-bis.txt examples (section 3.7.1):
|
||||
is(URI->new("http://www.example.org/D%C3%BCrst")->as_iri, "http://www.example.org/D\xFCrst");
|
||||
is(URI->new("http://www.example.org/D%FCrst")->as_iri, "http://www.example.org/D%FCrst");
|
||||
-TODO: {
|
||||
- local $TODO = "some chars (like U+202E, RIGHT-TO-LEFT OVERRIDE) need to stay escaped";
|
||||
-is(URI->new("http://xn--99zt52a.example.org/%e2%80%ae")->as_iri, "http://\x{7D0D}\x{8C46}.example.org/%e2%80%ae");
|
||||
-}
|
||||
+#TODO: {
|
||||
+# local $TODO = "some chars (like U+202E, RIGHT-TO-LEFT OVERRIDE) need to stay escaped";
|
||||
+#is(URI->new("http://xn--99zt52a.example.org/%e2%80%ae")->as_iri, "http://\x{7D0D}\x{8C46}.example.org/%e2%80%ae");
|
||||
+#}
|
||||
|
||||
# try some URLs that can't be IDNA encoded (fallback to encoded UTF8 bytes)
|
||||
$u = URI->new("http://" . ("ü" x 128));
|
||||
is $u, "http://" . ("%C3%BC" x 128);
|
||||
is $u->host, ("\xC3\xBC" x 128);
|
||||
-TODO: {
|
||||
- local $TODO = "should ihost decode UTF8 bytes?";
|
||||
- is $u->ihost, ("ü" x 128);
|
||||
-}
|
||||
+#TODO: {
|
||||
+# local $TODO = "should ihost decode UTF8 bytes?";
|
||||
+# is $u->ihost, ("ü" x 128);
|
||||
+#}
|
||||
is $u->as_iri, "http://" . ("ü" x 128);
|
||||
diff --git a/t/mailto.t b/t/mailto.t
|
||||
index 79e9a13..c68cfb2 100644
|
||||
--- a/t/mailto.t
|
||||
+++ b/t/mailto.t
|
||||
@@ -48,12 +48,12 @@ $u = URI->new('mailto:user+detail@example.com');
|
||||
is $u->to, 'user+detail@example.com', 'subaddress with `+` parsed correctly';
|
||||
is $u, 'mailto:user+detail@example.com', '... and stringification works';
|
||||
|
||||
-TODO: {
|
||||
- local $TODO = "We can't handle quoted local parts without properly parsing the email addresses";
|
||||
- $u = URI->new('mailto:"foo bar+baz"@example.com');
|
||||
- is $u->to, '"foo bar+baz"@example.com', 'address with quoted local part containing spaces is parsed correctly';
|
||||
- is $u, 'mailto:%22foo%20bar+baz%22@example.com', '... and stringification works';
|
||||
-}
|
||||
+#TODO: {
|
||||
+# local $TODO = "We can't handle quoted local parts without properly parsing the email addresses";
|
||||
+# $u = URI->new('mailto:"foo bar+baz"@example.com');
|
||||
+# is $u->to, '"foo bar+baz"@example.com', 'address with quoted local part containing spaces is parsed correctly';
|
||||
+# is $u, 'mailto:%22foo%20bar+baz%22@example.com', '... and stringification works';
|
||||
+#}
|
||||
|
||||
# RFC 5321 (4.1.3) - Address Literals
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
SUMMARY = "Perl module to manipulate and access URI strings"
|
||||
DESCRIPTION = "This package contains the URI.pm module with friends. \
|
||||
The module implements the URI class. URI objects can be used to access \
|
||||
and manipulate the various components that make up these strings."
|
||||
HOMEPAGE = "https://metacpan.org/dist/URI"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=d8ca5f628bf2cd180bc4fa044cb8ef41"
|
||||
|
||||
SRC_URI = "${CPAN_MIRROR}/authors/id/O/OA/OALDERS/URI-${PV}.tar.gz \
|
||||
file://0001-Skip-TODO-test-cases-that-fail.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "5f7e42b769cb27499113cfae4b786c37d49e7c7d32dbb469602cd808308568f8"
|
||||
|
||||
S = "${WORKDIR}/URI-${PV}"
|
||||
|
||||
EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
|
||||
|
||||
inherit cpan ptest-perl
|
||||
|
||||
do_compile() {
|
||||
export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
|
||||
cpan_do_compile
|
||||
}
|
||||
|
||||
do_install:prepend() {
|
||||
# these tests require "-T" (taint) command line option
|
||||
rm -rf ${B}/t/cwd.t
|
||||
rm -rf ${B}/t/file.t
|
||||
}
|
||||
|
||||
RDEPENDS:${PN} += "\
|
||||
perl-module-integer \
|
||||
perl-module-mime-base64 \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN}-ptest += " \
|
||||
libtest-fatal-perl \
|
||||
libtest-needs-perl \
|
||||
libtest-warnings-perl \
|
||||
perl-module-encode \
|
||||
perl-module-encode-encoding \
|
||||
perl-module-extutils-makemaker \
|
||||
perl-module-extutils-mm-unix \
|
||||
perl-module-file-spec-functions \
|
||||
perl-module-net-domain \
|
||||
perl-module-perlio \
|
||||
perl-module-perlio-encoding \
|
||||
perl-module-test \
|
||||
perl-module-test-more \
|
||||
perl-module-utf8 \
|
||||
"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,59 @@
|
||||
SUMMARY = "XML::Parser - A perl module for parsing XML documents"
|
||||
HOMEPAGE = "https://libexpat.github.io/"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://Parser.pm;beginline=1;endline=7;md5=d12cc778c80fc4c518f0e5dee29fd5fb"
|
||||
|
||||
DEPENDS += "expat"
|
||||
|
||||
SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz \
|
||||
file://ptest-perl/run-ptest \
|
||||
file://0001-CheckLib.pm-do-not-attempt-to-run-a-cross-executable.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "80bb18a8e6240fcf7ec2f7b57601c170"
|
||||
SRC_URI[sha256sum] = "d331332491c51cccfb4cb94ffc44f9cd73378e618498d4a37df9e043661c515d"
|
||||
|
||||
S = "${WORKDIR}/XML-Parser-${PV}"
|
||||
|
||||
EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR} CC='${CC}' LD='${CCLD}' FULL_AR='${AR}'"
|
||||
|
||||
inherit cpan ptest-perl
|
||||
|
||||
# fix up sub MakeMaker project as arguments don't get propagated though
|
||||
# see https://rt.cpan.org/Public/Bug/Display.html?id=28632
|
||||
do_configure:append:class-target() {
|
||||
sed -E \
|
||||
-e 's:-L${STAGING_LIBDIR}::g' -e 's:-I${STAGING_INCDIR}::g' \
|
||||
-i Makefile Expat/Makefile
|
||||
}
|
||||
|
||||
do_configure:append() {
|
||||
sed -e 's:--sysroot=.*\(\s\|$\):--sysroot=${STAGING_DIR_TARGET} :g' \
|
||||
-i Makefile Expat/Makefile
|
||||
sed 's:^FULL_AR = .*:FULL_AR = ${AR}:g' -i Expat/Makefile
|
||||
# make sure these two do not build in parallel
|
||||
sed 's!^$(INST_DYNAMIC):!$(INST_DYNAMIC): $(BOOTSTRAP)!' -i Expat/Makefile
|
||||
}
|
||||
|
||||
do_compile() {
|
||||
export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
|
||||
cpan_do_compile
|
||||
}
|
||||
|
||||
do_compile:class-native() {
|
||||
cpan_do_compile
|
||||
}
|
||||
|
||||
do_install_ptest() {
|
||||
sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/xmlstats
|
||||
sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/xmlfilter
|
||||
sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/xmlcomments
|
||||
sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/canonical
|
||||
cp -r ${B}/samples ${D}${PTEST_PATH}
|
||||
chown -R root:root ${D}${PTEST_PATH}/samples
|
||||
}
|
||||
|
||||
RDEPENDS:${PN} += "perl-module-carp perl-module-file-spec"
|
||||
RDEPENDS:${PN}-ptest += "perl-module-filehandle perl-module-if perl-module-test perl-module-test-more"
|
||||
|
||||
BBCLASSEXTEND="native nativesdk"
|
||||
@@ -0,0 +1,30 @@
|
||||
DESCRIPTION = "libxml-perl is a collection of smaller Perl modules, scripts, and \
|
||||
documents for working with XML in Perl. libxml-perl software \
|
||||
works in combination with XML::Parser, PerlSAX, XML::DOM, \
|
||||
XML::Grove and others."
|
||||
HOMEPAGE = "http://search.cpan.org/dist/libxml-perl/"
|
||||
SUMMARY = "Collection of Perl modules for working with XML"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
PR = "r3"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://README;beginline=33;endline=35;md5=1705549eef7577a3d6ba71123a1f0ce8"
|
||||
|
||||
DEPENDS += "libxml-parser-perl"
|
||||
|
||||
SRC_URI = "http://www.cpan.org/modules/by-module/XML/${BPN}-${PV}.tar.gz"
|
||||
|
||||
SRC_URI[md5sum] = "0ed5fbdda53d1301ddaed88db10503bb"
|
||||
SRC_URI[sha256sum] = "4571059b7b5d48b7ce52b01389e95d798bf5cf2020523c153ff27b498153c9cb"
|
||||
|
||||
EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
|
||||
|
||||
inherit cpan ptest-perl
|
||||
|
||||
do_compile() {
|
||||
export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
|
||||
cpan_do_compile
|
||||
}
|
||||
|
||||
RDEPENDS:${PN} += "perl-module-carp perl-module-overload perl-module-universal perl-module-io-handle"
|
||||
RDEPENDS:${PN}-ptest += "libxml-parser-perl perl-module-file-glob perl-module-cwd perl-module-constant"
|
||||
@@ -0,0 +1,35 @@
|
||||
SUMMARY = "Perl module for reading and writing XML"
|
||||
DESCRIPTION = "The XML::Simple Perl module provides a simple API layer \
|
||||
on top of an underlying XML parsing module to maintain XML files \
|
||||
(especially configuration files). It is a blunt rewrite of XML::Simple \
|
||||
(by Grant McLean) to use the XML::LibXML parser for XML structures, \
|
||||
where the original uses plain Perl or SAX parsers."
|
||||
HOMEPAGE = "http://search.cpan.org/~markov/XML-LibXML-Simple-0.93/lib/XML/LibXML/Simple.pod"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=cf206df8c9fe775f1d4c484386491eac"
|
||||
DEPENDS += "libxml-parser-perl"
|
||||
|
||||
SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Simple-${PV}.tar.gz"
|
||||
|
||||
SRC_URI[md5sum] = "bb841dce889a26c89a1c2739970e9fbc"
|
||||
SRC_URI[sha256sum] = "531fddaebea2416743eb5c4fdfab028f502123d9a220405a4100e68fc480dbf8"
|
||||
|
||||
S = "${WORKDIR}/XML-Simple-${PV}"
|
||||
|
||||
EXTRA_PERLFLAGS = "-I ${PERLHOSTLIB}"
|
||||
|
||||
inherit cpan ptest-perl
|
||||
|
||||
RDEPENDS:${PN} += " \
|
||||
libxml-namespacesupport-perl \
|
||||
libxml-parser-perl \
|
||||
libxml-sax-perl \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN}-ptest += " \
|
||||
perl-module-file-temp \
|
||||
perl-module-test-more \
|
||||
"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,63 @@
|
||||
inherit ptest
|
||||
|
||||
SRC_URI += "file://run-ptest \
|
||||
"
|
||||
|
||||
DEBUG_PREFIX_MAP_REGEX = "${@'\\|'.join(d.getVar('DEBUG_PREFIX_MAP').split())}"
|
||||
|
||||
do_install_ptest () {
|
||||
mkdir -p ${D}${PTEST_PATH}
|
||||
sed -e "s:\/usr\/local:${bindir}:g" -i cpan/version/t/*
|
||||
sed -e "s:\/opt:\/usr:" -i Porting/add-package.pl
|
||||
sed -e "s:\/local\/gnu\/:\/:" -i hints/cxux.sh
|
||||
tar -c --exclude=try --exclude=a.out --exclude='*.o' --exclude=libperl.so* --exclude=[Mm]akefile --exclude=hostperl \
|
||||
--exclude=cygwin --exclude=os2 --exclude=djgpp --exclude=qnx --exclude=symbian --exclude=haiku \
|
||||
--exclude=vms --exclude=vos --exclude=NetWare --exclude=amigaos4 --exclude=buildcustomize.pl \
|
||||
--exclude='win32/config.*' --exclude=plan9 --exclude=README.plan9 --exclude=perlplan9.pod --exclude=Configure \
|
||||
--exclude=veryclean.sh --exclude=realclean.sh --exclude=getioctlsizes \
|
||||
--exclude=dl_aix.xs --exclude=sdbm.3 --exclude='cflags.SH' --exclude=[Mm]akefile.old \
|
||||
--exclude=miniperl --exclude=generate_uudmap --exclude=patches --exclude='config.log' * | ( cd ${D}${PTEST_PATH} && tar -x )
|
||||
|
||||
ln -sf ${bindir}/perl ${D}${PTEST_PATH}/t/perl
|
||||
|
||||
# Remove build host references from various scattered files...
|
||||
find "${D}${PTEST_PATH}" \
|
||||
\( -name '*.PL' -o -name 'myconfig' -o -name 'cflags' -o -name '*.pl' -o -name '*.sh' -o -name '*.pm' \
|
||||
-o -name 'h2xs' -o -name 'h2ph' \
|
||||
-o -name '*.h' -o -name 'config.sh-*' -o -name 'pod2man' -o -name 'pod2text' -o -name 'Makefile.config' \) \
|
||||
-type f -exec sed -i \
|
||||
-e "s,${D},,g" \
|
||||
-e "s,--sysroot=${STAGING_DIR_HOST},,g" \
|
||||
-e "s,-isystem${STAGING_INCDIR} ,,g" \
|
||||
-e 's^${DEBUG_PREFIX_MAP_REGEX}^^g' \
|
||||
-e "s,${STAGING_BINDIR_NATIVE}/perl-native/,${bindir}/,g" \
|
||||
-e "s,${STAGING_LIBDIR},${libdir},g" \
|
||||
-e "s,${STAGING_BINDIR},${bindir},g" \
|
||||
-e "s,${STAGING_INCDIR},${includedir},g" \
|
||||
-e "s,${STAGING_BINDIR_NATIVE}/,,g" \
|
||||
-e "s,${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX},${bindir},g" \
|
||||
-e 's:${RECIPE_SYSROOT_NATIVE}::g' \
|
||||
-e 's:${RECIPE_SYSROOT}::g' \
|
||||
{} +
|
||||
|
||||
# Remove a useless timestamp...
|
||||
sed -i -e '/Autogenerated starting on/d' ${D}${PTEST_PATH}/lib/unicore/mktables.lst
|
||||
|
||||
# Remove files with host-specific configuration for building native binaries
|
||||
rm ${D}${PTEST_PATH}/Makefile.config ${D}${PTEST_PATH}/xconfig.h ${D}${PTEST_PATH}/xconfig.sh
|
||||
}
|
||||
|
||||
python populate_packages:prepend() {
|
||||
# Put all *.t files from the lib dir in the ptest package
|
||||
# do_split_packages requires a pair of () in the regex, but we have nothing
|
||||
# to match, so use an empty pair.
|
||||
if bb.utils.contains('DISTRO_FEATURES', 'ptest', True, False, d):
|
||||
do_split_packages(d, d.expand('${libdir}/perl/${PV}'), r'.*\.t()',
|
||||
'${PN}-ptest%s', '%s', recursive=True, match_path=True)
|
||||
}
|
||||
|
||||
RDEPENDS:${PN}-ptest += "${PN}-modules ${PN}-doc sed procps-ps"
|
||||
|
||||
# The perl-ptest package contains Perl internal modules and generating file
|
||||
# dependencies for it causes problems.
|
||||
SKIP_FILEDEPS:${PN}-ptest = '1'
|
||||
@@ -0,0 +1,420 @@
|
||||
SUMMARY = "Perl scripting language"
|
||||
HOMEPAGE = "http://www.perl.org/"
|
||||
DESCRIPTION = "Perl is a highly capable, feature-rich programming language"
|
||||
SECTION = "devel"
|
||||
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://Copying;md5=5b122a36d0f6dc55279a0ebc69f3c60b \
|
||||
file://Artistic;md5=71a4d5d9acc18c0952a6df2218bb68da \
|
||||
"
|
||||
|
||||
|
||||
SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
|
||||
file://perl-rdepends.txt \
|
||||
file://0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch \
|
||||
file://errno_ver.diff \
|
||||
file://native-perlinc.patch \
|
||||
file://perl-dynloader.patch \
|
||||
file://0002-Constant-Fix-up-shebang.patch \
|
||||
file://determinism.patch \
|
||||
file://0001-cpan-Sys-Syslog-Makefile.PL-Fix-_PATH_LOG-for-determ.patch \
|
||||
file://CVE-2023-31484.patch \
|
||||
file://CVE-2023-31486-0001.patch \
|
||||
file://CVE-2023-31486-0002.patch \
|
||||
"
|
||||
SRC_URI:append:class-native = " \
|
||||
file://perl-configpm-switch.patch \
|
||||
"
|
||||
SRC_URI:append:class-target = " \
|
||||
file://encodefix.patch \
|
||||
"
|
||||
|
||||
SRC_URI[perl.sha256sum] = "68203665d8ece02988fc77dc92fccbb297a83a4bb4b8d07558442f978da54cc1"
|
||||
|
||||
B = "${WORKDIR}/perl-${PV}-build"
|
||||
|
||||
inherit upstream-version-is-even update-alternatives
|
||||
|
||||
DEPENDS += "perlcross-native zlib virtual/crypt"
|
||||
# make 4.1 has race issues with the double-colon usage of MakeMaker, see #14096
|
||||
DEPENDS += "make-native"
|
||||
|
||||
PERL_LIB_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}.0"
|
||||
|
||||
PACKAGECONFIG ??= "gdbm"
|
||||
PACKAGECONFIG[bdb] = ",-Ui_db,db"
|
||||
PACKAGECONFIG[gdbm] = ",-Ui_gdbm,gdbm"
|
||||
|
||||
# Don't generate comments in enc2xs output files. They are not reproducible
|
||||
export ENC2XS_NO_COMMENTS = "1"
|
||||
|
||||
CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||
|
||||
do_configure:prepend() {
|
||||
rm -rf ${B}
|
||||
cp -rfp ${S} ${B}
|
||||
cp -rfp ${STAGING_DATADIR_NATIVE}/perl-cross/* ${B}
|
||||
cd ${B}
|
||||
}
|
||||
|
||||
do_configure:class-target() {
|
||||
./configure --prefix=${prefix} --libdir=${libdir} \
|
||||
--target=${TARGET_SYS} \
|
||||
-Duseshrplib \
|
||||
-Dusethreads \
|
||||
-Dsoname=libperl.so.5 \
|
||||
-Dvendorprefix=${prefix} \
|
||||
-Dvendorlibdir=${libdir} \
|
||||
-Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \
|
||||
-Dlibpth='${libdir} ${base_libdir}' \
|
||||
-Dglibpth='${libdir} ${base_libdir}' \
|
||||
-Alddlflags=' ${LDFLAGS}' \
|
||||
-Dd_gnulibc=define \
|
||||
${PACKAGECONFIG_CONFARGS}
|
||||
|
||||
#perl.c uses an ARCHLIB_EXP define to generate compile-time code that
|
||||
#adds the archlibexp path to @INC during run-time initialization of a
|
||||
#new perl interpreter.
|
||||
|
||||
#Because we've changed this value in a temporary way to make it
|
||||
#possible to use ExtUtils::Embed in the target build (the temporary
|
||||
#value in config.sh gets re-stripped out during packaging), the
|
||||
#ARCHLIB_EXP value that gets generated still uses the temporary version
|
||||
#instead of the original expected version (i.e. becauses it's in the
|
||||
#generated config.h, it doesn't get stripped out during packaging like
|
||||
#the others in config.sh).
|
||||
|
||||
sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h
|
||||
}
|
||||
|
||||
do_configure:class-nativesdk() {
|
||||
./configure --prefix=${prefix} \
|
||||
--target=${TARGET_SYS} \
|
||||
-Duseshrplib \
|
||||
-Dusethreads \
|
||||
-Dsoname=libperl.so.5 \
|
||||
-Dvendorprefix=${prefix} \
|
||||
-Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \
|
||||
-Alddlflags=' ${LDFLAGS}' \
|
||||
${PACKAGECONFIG_CONFARGS}
|
||||
|
||||
# See the comment above
|
||||
sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h
|
||||
}
|
||||
|
||||
do_configure:class-native() {
|
||||
./configure --prefix=${prefix} \
|
||||
-Dbin=${bindir}/perl-native \
|
||||
-Duseshrplib \
|
||||
-Dusethreads \
|
||||
-Dsoname=libperl.so.5 \
|
||||
-Dvendorprefix=${prefix} \
|
||||
-Ui_xlocale \
|
||||
-Alddlflags=' ${LDFLAGS}' \
|
||||
${PACKAGECONFIG_CONFARGS}
|
||||
|
||||
# This prevents leakage of build paths into perl-native binaries, which
|
||||
# causes non-deterministic troubles when those paths no longer exist or aren't accessible.
|
||||
sed -i -e "s,${STAGING_LIBDIR},/completelyboguspath,g" config.h
|
||||
}
|
||||
|
||||
do_configure:append() {
|
||||
if [ -n "$SOURCE_DATE_EPOCH" ]; then
|
||||
PERL_BUILD_DATE="$(${PYTHON} -c "\
|
||||
from datetime import datetime, timezone; \
|
||||
print(datetime.fromtimestamp($SOURCE_DATE_EPOCH, timezone.utc).strftime('%a %b %d %H:%M:%S %Y')) \
|
||||
")"
|
||||
echo "#define PERL_BUILD_DATE \"$PERL_BUILD_DATE\"" >> config.h
|
||||
fi
|
||||
}
|
||||
|
||||
do_compile() {
|
||||
oe_runmake
|
||||
}
|
||||
|
||||
do_install() {
|
||||
oe_runmake 'DESTDIR=${D}' install
|
||||
|
||||
install -d ${D}${libdir}/perl5
|
||||
install -d ${D}${libdir}/perl5/${PV}/
|
||||
install -d ${D}${libdir}/perl5/${PV}/ExtUtils/
|
||||
|
||||
# Save native config
|
||||
install config.sh ${D}${libdir}/perl5
|
||||
install lib/Config.pm ${D}${libdir}/perl5/${PV}/
|
||||
install lib/ExtUtils/typemap ${D}${libdir}/perl5/${PV}/ExtUtils/
|
||||
|
||||
# Fix up shared library
|
||||
dir=$(echo ${D}/${libdir}/perl5/${PV}/*/CORE)
|
||||
rm $dir/libperl.so
|
||||
ln -sf ../../../../libperl.so.${PERL_LIB_VER} $dir/libperl.so
|
||||
|
||||
# Try to catch Bug #13946
|
||||
if [ -e ${D}/${libdir}/perl5/${PV}/Storable.pm ]; then
|
||||
bbfatal 'non-arch specific Storable.pm found! See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13946'
|
||||
fi
|
||||
}
|
||||
|
||||
do_install:append:class-target() {
|
||||
# This is used to substitute target configuration when running native perl via perl-configpm-switch.patch
|
||||
ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl
|
||||
|
||||
# This contains host-specific information used for building miniperl (a helper executable built with host compiler)
|
||||
# and therefore isn't reproducible. I believe the file isn't actually needed on target.
|
||||
rm ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/xconfig.h
|
||||
}
|
||||
|
||||
do_install:append:class-nativesdk() {
|
||||
# This is used to substitute target configuration when running native perl via perl-configpm-switch.patch
|
||||
ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl
|
||||
|
||||
create_wrapper ${D}${bindir}/perl \
|
||||
PERL5LIB='$PERL5LIB:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/site_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/vendor_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/${PV}'
|
||||
}
|
||||
|
||||
do_install:append:class-native () {
|
||||
# Those wrappers mean that perl installed from sstate (which may change
|
||||
# path location) works and that in the nativesdk case, the SDK can be
|
||||
# installed to a different location from the one it was built for.
|
||||
create_wrapper ${D}${bindir}/perl-native/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl5/site_perl/${PV}:${STAGING_LIBDIR}/perl5/vendor_perl/${PV}:${STAGING_LIBDIR}/perl5/${PV}'
|
||||
|
||||
# Use /usr/bin/env nativeperl for the perl script.
|
||||
for f in `grep -Il '#! *${bindir}/perl' ${D}/${bindir}/*`; do
|
||||
sed -i -e 's|${bindir}/perl|/usr/bin/env nativeperl|' $f
|
||||
done
|
||||
}
|
||||
|
||||
PACKAGE_PREPROCESS_FUNCS += "perl_package_preprocess"
|
||||
|
||||
perl_package_preprocess () {
|
||||
# Fix up installed configuration
|
||||
sed -i -e "s,${D},,g" \
|
||||
-e "s,${DEBUG_PREFIX_MAP},,g" \
|
||||
-e "s,--sysroot=${STAGING_DIR_HOST},,g" \
|
||||
-e "s,-isystem${STAGING_INCDIR} ,,g" \
|
||||
-e "s,${STAGING_LIBDIR},${libdir},g" \
|
||||
-e "s,${STAGING_BINDIR},${bindir},g" \
|
||||
-e "s,${STAGING_INCDIR},${includedir},g" \
|
||||
-e "s,${STAGING_BINDIR_NATIVE}/perl-native/,${bindir}/,g" \
|
||||
-e "s,${STAGING_BINDIR_NATIVE}/,,g" \
|
||||
-e "s,${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX},${bindir},g" \
|
||||
-e 's:${RECIPE_SYSROOT}::g' \
|
||||
${PKGD}${bindir}/h2xs.perl \
|
||||
${PKGD}${bindir}/h2ph.perl \
|
||||
${PKGD}${bindir}/pod2man.perl \
|
||||
${PKGD}${bindir}/pod2text.perl \
|
||||
${PKGD}${bindir}/pod2usage.perl \
|
||||
${PKGD}${bindir}/podchecker.perl \
|
||||
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/config.h \
|
||||
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/perl.h \
|
||||
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/pp.h \
|
||||
${PKGD}${libdir}/perl5/${PV}/Config.pm \
|
||||
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \
|
||||
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pod \
|
||||
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_git.pl \
|
||||
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy.pl \
|
||||
${PKGD}${libdir}/perl5/${PV}/ExtUtils/Liblist/Kid.pm \
|
||||
${PKGD}${libdir}/perl5/${PV}/FileCache.pm \
|
||||
${PKGD}${libdir}/perl5/${PV}/pod/*.pod \
|
||||
${PKGD}${libdir}/perl5/config.sh
|
||||
}
|
||||
|
||||
inherit update-alternatives
|
||||
|
||||
ALTERNATIVE_PRIORITY = "100"
|
||||
|
||||
ALTERNATIVE:${PN}-misc = "corelist cpan enc2xs encguess h2ph h2xs instmodsh json_pp libnetcfg \
|
||||
piconv pl2pm pod2html pod2man pod2text pod2usage podchecker \
|
||||
prove ptar ptardiff ptargrep shasum splain streamzip xsubpp zipdetails"
|
||||
ALTERNATIVE_LINK_NAME[corelist] = "${bindir}/corelist"
|
||||
ALTERNATIVE_LINK_NAME[cpan] = "${bindir}/cpan"
|
||||
ALTERNATIVE_LINK_NAME[enc2xs] = "${bindir}/enc2xs"
|
||||
ALTERNATIVE_LINK_NAME[encguess] = "${bindir}/encguess"
|
||||
ALTERNATIVE_LINK_NAME[h2ph] = "${bindir}/h2ph"
|
||||
ALTERNATIVE_LINK_NAME[h2xs] = "${bindir}/h2xs"
|
||||
ALTERNATIVE_LINK_NAME[instmodsh] = "${bindir}/instmodsh"
|
||||
ALTERNATIVE_LINK_NAME[json_pp] = "${bindir}/json_pp"
|
||||
ALTERNATIVE_LINK_NAME[libnetcfg] = "${bindir}/libnetcfg"
|
||||
ALTERNATIVE_LINK_NAME[piconv] = "${bindir}/piconv"
|
||||
ALTERNATIVE_LINK_NAME[pl2pm] = "${bindir}/pl2pm"
|
||||
ALTERNATIVE_LINK_NAME[pod2html] = "${bindir}/pod2html"
|
||||
ALTERNATIVE_LINK_NAME[pod2man] = "${bindir}/pod2man"
|
||||
ALTERNATIVE_LINK_NAME[pod2text] = "${bindir}/pod2text"
|
||||
ALTERNATIVE_LINK_NAME[pod2usage] = "${bindir}/pod2usage"
|
||||
ALTERNATIVE_LINK_NAME[podchecker] = "${bindir}/podchecker"
|
||||
ALTERNATIVE_LINK_NAME[prove] = "${bindir}/prove"
|
||||
ALTERNATIVE_LINK_NAME[ptar] = "${bindir}/ptar"
|
||||
ALTERNATIVE_LINK_NAME[ptardiff] = "${bindir}/ptardiff"
|
||||
ALTERNATIVE_LINK_NAME[ptargrep] = "${bindir}/ptargrep"
|
||||
ALTERNATIVE_LINK_NAME[shasum] = "${bindir}/shasum"
|
||||
ALTERNATIVE_LINK_NAME[splain] = "${bindir}/splain"
|
||||
ALTERNATIVE_LINK_NAME[streamzip] = "${bindir}/streamzip"
|
||||
ALTERNATIVE_LINK_NAME[xsubpp] = "${bindir}/xsubpp"
|
||||
ALTERNATIVE_LINK_NAME[zipdetails] = "${bindir}/zipdetails"
|
||||
|
||||
require perl-ptest.inc
|
||||
|
||||
FILES:${PN} = "${bindir}/perl ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/libperl.so* \
|
||||
${libdir}/perl5/site_perl \
|
||||
${libdir}/perl5/${PV}/Config.pm \
|
||||
${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \
|
||||
${libdir}/perl5/${PV}/*/Config_git.pl \
|
||||
${libdir}/perl5/${PV}/*/Config_heavy-target.pl \
|
||||
${libdir}/perl5/config.sh \
|
||||
${libdir}/perl5/${PV}/strict.pm \
|
||||
${libdir}/perl5/${PV}/warnings.pm \
|
||||
${libdir}/perl5/${PV}/warnings \
|
||||
${libdir}/perl5/${PV}/vars.pm \
|
||||
${libdir}/perl5/site_perl \
|
||||
${libdir}/perl5/${PV}/ExtUtils/MANIFEST.SKIP \
|
||||
${libdir}/perl5/${PV}/ExtUtils/xsubpp \
|
||||
${libdir}/perl5/${PV}/ExtUtils/typemap \
|
||||
"
|
||||
RPROVIDES:${PN} += "perl-module-strict perl-module-vars perl-module-config perl-module-warnings \
|
||||
perl-module-warnings-register"
|
||||
|
||||
FILES:${PN}-staticdev:append = " ${libdir}/perl5/${PV}/*/CORE/libperl.a"
|
||||
|
||||
FILES:${PN}-dev:append = " ${libdir}/perl5/${PV}/*/CORE"
|
||||
|
||||
FILES:${PN}-doc:append = " ${libdir}/perl5/${PV}/Unicode/Collate/*.txt \
|
||||
${libdir}/perl5/${PV}/*/.packlist \
|
||||
${libdir}/perl5/${PV}/Encode/encode.h \
|
||||
"
|
||||
PACKAGES += "${PN}-misc"
|
||||
|
||||
FILES:${PN}-misc = "${bindir}/*"
|
||||
|
||||
PACKAGES += "${PN}-pod"
|
||||
|
||||
FILES:${PN}-pod = "${libdir}/perl5/${PV}/pod \
|
||||
${libdir}/perl5/${PV}/*.pod \
|
||||
${libdir}/perl5/${PV}/*/*.pod \
|
||||
${libdir}/perl5/${PV}/*/*/*.pod \
|
||||
${libdir}/perl5/${PV}/*/*/*/*.pod \
|
||||
"
|
||||
|
||||
PACKAGES += "${PN}-module-cpan ${PN}-module-unicore"
|
||||
|
||||
FILES:${PN}-module-cpan += "${libdir}/perl5/${PV}/CPAN \
|
||||
"
|
||||
FILES:${PN}-module-unicore += "${libdir}/perl5/${PV}/unicore"
|
||||
|
||||
ALTERNATIVE_PRIORITY = "40"
|
||||
ALTERNATIVE:${PN}-doc = "Thread.3"
|
||||
ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3"
|
||||
|
||||
# Create a perl-modules package recommending all the other perl
|
||||
# packages (actually the non modules packages and not created too)
|
||||
ALLOW_EMPTY:${PN}-modules = "1"
|
||||
PACKAGES += "${PN}-modules "
|
||||
|
||||
PACKAGESPLITFUNCS =+ "split_perl_packages"
|
||||
|
||||
python split_perl_packages () {
|
||||
libdir = d.expand('${libdir}/perl5/${PV}')
|
||||
do_split_packages(d, libdir, r'.*/auto/([^.]*)/[^/]*\.(so|ld|ix|al)', '${PN}-module-%s', 'perl module %s', recursive=True, match_path=True, prepend=False)
|
||||
do_split_packages(d, libdir, r'.*linux/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
|
||||
do_split_packages(d, libdir, r'Module/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
|
||||
do_split_packages(d, libdir, r'Module/([^\/]*)/.*', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
|
||||
do_split_packages(d, libdir, r'.*linux/([^\/].*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
|
||||
do_split_packages(d, libdir, r'(^(?!(CPAN\/|CPANPLUS\/|Module\/|unicore\/|.*linux\/)[^\/]).*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
|
||||
|
||||
# perl-modules should recommend every perl module, and only the
|
||||
# modules. Don't attempt to use the result of do_split_packages() as some
|
||||
# modules are manually split (eg. perl-module-unicore).
|
||||
packages = filter(lambda p: 'perl-module-' in p, d.getVar('PACKAGES').split())
|
||||
d.setVar(d.expand("RRECOMMENDS:${PN}-modules"), ' '.join(packages))
|
||||
|
||||
# Read the pre-generated dependency file, and use it to set module dependecies
|
||||
for line in open(d.expand("${WORKDIR}") + '/perl-rdepends.txt').readlines():
|
||||
splitline = line.split()
|
||||
# Filter empty lines and comments
|
||||
if len(splitline) == 0 or splitline[0].startswith("#"):
|
||||
continue
|
||||
if bb.data.inherits_class('native', d):
|
||||
module = splitline[0] + '-native'
|
||||
depends = "perl-native"
|
||||
else:
|
||||
module = splitline[0].replace("RDEPENDS:perl", "RDEPENDS:${PN}")
|
||||
depends = splitline[2].strip('"').replace("perl-module", "${PN}-module")
|
||||
d.appendVar(d.expand(module), " " + depends)
|
||||
}
|
||||
|
||||
python() {
|
||||
if d.getVar('CLASSOVERRIDE') == "class-target":
|
||||
d.setVar("PACKAGES_DYNAMIC", "^${MLPREFIX}perl-module-.*(?<!native)$")
|
||||
elif d.getVar('CLASSOVERRIDE') == "class-native":
|
||||
d.setVar("PACKAGES_DYNAMIC", "^perl-module-.*-native$")
|
||||
elif d.getVar('CLASSOVERRIDE') == "class-nativesdk":
|
||||
d.setVar("PACKAGES_DYNAMIC", "^nativesdk-perl-module-.*")
|
||||
}
|
||||
|
||||
RDEPENDS:${PN}-misc += "perl perl-modules"
|
||||
RDEPENDS:${PN}-pod += "perl"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
SSTATE_SCAN_FILES += "*.pm *.pod *.h *.pl *.sh"
|
||||
|
||||
do_create_rdepends_inc() {
|
||||
cd ${WORKDIR}
|
||||
cat <<'EOPREAMBLE' > ${WORKDIR}/perl-rdepends.inc
|
||||
|
||||
# Some additional dependencies that the above doesn't manage to figure out
|
||||
RDEPENDS:${PN}-module-file-spec += "${PN}-module-file-spec-unix"
|
||||
RDEPENDS:${PN}-module-scalar-util += "${PN}-module-list-util"
|
||||
RDEPENDS:${PN}-module-file-temp += "${PN}-module-scalar-util"
|
||||
RDEPENDS:${PN}-module-file-temp += "${PN}-module-file-spec"
|
||||
RDEPENDS:${PN}-module-io-file += "${PN}-module-symbol"
|
||||
RDEPENDS:${PN}-module-io-file += "${PN}-module-carp"
|
||||
RDEPENDS:${PN}-module-math-bigint += "${PN}-module-math-bigint-calc"
|
||||
RDEPENDS:${PN}-module-test-builder += "${PN}-module-list-util"
|
||||
RDEPENDS:${PN}-module-test-builder += "${PN}-module-scalar-util"
|
||||
RDEPENDS:${PN}-module-test-builder-formatter += "${PN}-module-test2-formatter-tap"
|
||||
RDEPENDS:${PN}-module-test2-api += "${PN}-module-test2-event-fail"
|
||||
RDEPENDS:${PN}-module-test2-api += "${PN}-module-test2-event-pass"
|
||||
RDEPENDS:${PN}-module-test2-api += "${PN}-module-test2-event-v2"
|
||||
RDEPENDS:${PN}-module-test2-formatter-tap += "${PN}-module-test2-formatter"
|
||||
RDEPENDS:${PN}-module-thread-queue += "${PN}-module-attributes"
|
||||
RDEPENDS:${PN}-module-overload += "${PN}-module-overloading"
|
||||
|
||||
# Generated depends list beyond this line
|
||||
EOPREAMBLE
|
||||
test -e packages-split.new && rm -rf packages-split.new
|
||||
cp -r packages-split packages-split.new && cd packages-split.new
|
||||
find . -name \*.pm | xargs sed -i '/^=head/,/^=cut/d'
|
||||
egrep -r "^\s*(\<use .*|\<require .*);?" perl-module-* --include="*.pm" | \
|
||||
sed "s/\/.*\.pm: */ += /g;s/[\"\']//g;s/;.*/\"/g;s/+= .*\(require\|use\)\> */+= \"perl-module-/g;s/CPANPLUS::.*/cpanplus/g;s/CPAN::.*/cpan/g;s/::/-/g;s/ [^+\"].*//g;s/_/-/g;s/\.pl\"$/\"/;s/\"\?\$/\"/;s/(//;s/)//;" | tr [:upper:] [:lower:] | \
|
||||
awk '{if ($3 != "\x22"$1"\x22"){ print $0}}'| \
|
||||
grep -v -e "\-vms\-" -e module-5 -e "^$" -e "\\$" -e your -e tk -e autoperl -e html -e http -e parse-cpan -e perl-ostype -e ndbm-file -e module-mac -e fcgi -e lwp -e dbd -e dbix | \
|
||||
sort -u | \
|
||||
sed 's/^/RDEPENDS:/;s/perl-module-/${PN}-module-/g;s/module-\(module-\)/\1/g;s/\(module-load\)-conditional/\1/g;s/encode-configlocal/&-pm/;' | \
|
||||
egrep -wv '=>|module-a|module-apache.?|module-apr|module-authen-sasl|module-b-asmdata|module-convert-ebcdic|module-devel-size|module-digest-perl-md5|module-dumpvalue|module-extutils-constant-aaargh56hash|module-extutils-xssymset|module-file-bsdglob|module-for|module-it|module-io-socket-inet6|module-io-socket-ssl|module-io-string|module-ipc-system-simple|module-lexical|module-local-lib|metadata|module-modperl-util|module-pluggable-object|module-test-builder-io-scalar|module-text-unidecode|module-unicore|module-win32|objects\sload|syscall.ph|systeminfo.ph|%s' | \
|
||||
egrep -wv '=>|module-algorithm-diff|module-carp|module-c<extutils-mm-unix>|module-l<extutils-mm-unix>|module-encode-hanextra|module-extutils-makemaker-version-regex|module-file-spec|module-io-compress-lzma|module-io-uncompress-unxz|module-locale-maketext-lexicon|module-log-agent|module-meta-notation|module-net-localcfg|module-net-ping-external|module-b-deparse|module-scalar-util|module-some-module|module-symbol|module-uri|module-win32api-file' > ${WORKDIR}/perl-rdepends.generated
|
||||
cat ${WORKDIR}/perl-rdepends.inc ${WORKDIR}/perl-rdepends.generated > ${THISDIR}/files/perl-rdepends.txt
|
||||
}
|
||||
|
||||
# bitbake perl -c create_rdepends_inc
|
||||
addtask do_create_rdepends_inc
|
||||
|
||||
SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper"
|
||||
|
||||
perl_sysroot_create_wrapper () {
|
||||
mkdir -p ${SYSROOT_DESTDIR}${bindir}
|
||||
# Create a wrapper that /usr/bin/env perl will use to get perl-native.
|
||||
# This MUST live in the normal bindir.
|
||||
cat > ${SYSROOT_DESTDIR}${bindir}/nativeperl << EOF
|
||||
#!/bin/sh
|
||||
realpath=\`readlink -fn \$0\`
|
||||
exec \`dirname \$realpath\`/perl-native/perl "\$@"
|
||||
EOF
|
||||
chmod 0755 ${SYSROOT_DESTDIR}${bindir}/nativeperl
|
||||
cat ${SYSROOT_DESTDIR}${bindir}/nativeperl
|
||||
}
|
||||
|
||||
SSTATE_HASHEQUIV_FILEMAP = " \
|
||||
populate_sysroot:*/lib*/perl5/*/*/Config_heavy.pl:${TMPDIR} \
|
||||
populate_sysroot:*/lib*/perl5/*/*/Config_heavy.pl:${COREBASE} \
|
||||
populate_sysroot:*/lib*/perl5/config.sh:${TMPDIR} \
|
||||
populate_sysroot:*/lib*/perl5/config.sh:${COREBASE} \
|
||||
"
|
||||
Reference in New Issue
Block a user