diff mbox series

liburi-perl: add to meta-perl from oe-core

Message ID 20241125120045.2145788-1-alex@linutronix.de
State New
Headers show
Series liburi-perl: add to meta-perl from oe-core | expand

Commit Message

Alexander Kanavin Nov. 25, 2024, noon UTC
The recipe has no usage in core.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 .../include/ptest-packagelists-meta-perl.inc  |   1 +
 .../0001-Skip-TODO-test-cases-that-fail.patch | 109 ++++++++++++++++++
 .../recipes-perl/liburi/liburi-perl_5.31.bb   |  56 +++++++++
 3 files changed, 166 insertions(+)
 create mode 100644 meta-perl/recipes-perl/liburi/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch
 create mode 100644 meta-perl/recipes-perl/liburi/liburi-perl_5.31.bb
diff mbox series

Patch

diff --git a/meta-perl/conf/include/ptest-packagelists-meta-perl.inc b/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
index 842f817f1f..9fc5e9675a 100644
--- a/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
+++ b/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
@@ -21,6 +21,7 @@  PTESTS_FAST_META_PERL = "\
     libterm-readkey-perl \
     libtest-nowarnings-perl \
     libtext-diff-perl \
+    liburi-perl \
 "
 
 PTESTS_SLOW_META_PERL = "\
diff --git a/meta-perl/recipes-perl/liburi/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch b/meta-perl/recipes-perl/liburi/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch
new file mode 100644
index 0000000000..c15c3be93a
--- /dev/null
+++ b/meta-perl/recipes-perl/liburi/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch
@@ -0,0 +1,109 @@ 
+From c424e6118d3bd836939ce39c70ee9e6bbd984028 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 cf983d6..884b36e 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=>30;
++    plan tests=>28;
+ } else {
+     plan skip_all=>"this perl doesn't support PerlIO layers";
+ }
+@@ -67,17 +67,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
+ 
diff --git a/meta-perl/recipes-perl/liburi/liburi-perl_5.31.bb b/meta-perl/recipes-perl/liburi/liburi-perl_5.31.bb
new file mode 100644
index 0000000000..e23942b81e
--- /dev/null
+++ b/meta-perl/recipes-perl/liburi/liburi-perl_5.31.bb
@@ -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=9944b87af51186f848ae558344aded9f"
+
+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] = "b9c4d58b2614b8611ae03a95a6d60ed996f4b311ef3cd5a937b92f1825ecc564"
+
+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"