diff mbox series

[meta-perl,5/5] libconfig-autoconf-perl: fix ptests

Message ID 20251025142621.1566114-5-skandigraun@gmail.com
State Accepted
Headers show
Series [meta-perl,1/5] libnet-dns-perl: upgrade 1.52 -> 1.53 | expand

Commit Message

Gyorgy Sarvari Oct. 25, 2025, 2:26 p.m. UTC
Add missing dependencies.

Also, fixing the tests have surfaced an actual bug: the module
expects unversioned perl library to be present on the system
(or at least present in Perl's $Config{libperl}), however the
OE Perl build has a versioned library, which causes final linking
to fail.

A patch to correct this is part of this change, and it has been
submitted upstream also.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
---
 .../include/ptest-packagelists-meta-perl.inc  |  2 +-
 .../0001-correct-libperl-regex.patch          | 42 +++++++++++++++++++
 .../libconfig-autoconf-perl_0.320.bb          | 16 ++++++-
 3 files changed, 58 insertions(+), 2 deletions(-)
 create mode 100644 meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl/0001-correct-libperl-regex.patch
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 7488da3351..ef0c59dc2f 100644
--- a/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
+++ b/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
@@ -9,6 +9,7 @@ 
 PTESTS_FAST_META_PERL = "\
     libauthen-sasl-perl \
     libcapture-tiny-perl \
+    libconfig-autoconf-perl \
     libcrypt-openssl-guess-perl \
     libcrypt-openssl-random-perl \
     libcrypt-openssl-rsa-perl \
@@ -47,7 +48,6 @@  PTESTS_SLOW_META_PERL = "\
 "
 
 PTESTS_PROBLEMS_META_PERL = "\
-    libconfig-autoconf-perl \
     libhtml-parser-perl \
     libunix-statgrab \
     libxml-libxml-perl \
diff --git a/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl/0001-correct-libperl-regex.patch b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl/0001-correct-libperl-regex.patch
new file mode 100644
index 0000000000..373f773070
--- /dev/null
+++ b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl/0001-correct-libperl-regex.patch
@@ -0,0 +1,42 @@ 
+From 5ffd363a7acd4ef794eb265eaf6c42321097cd46 Mon Sep 17 00:00:00 2001
+From: Gyorgy Sarvari <skandigraun@gmail.com>
+Date: Sat, 25 Oct 2025 15:48:51 +0200
+Subject: [PATCH] correct libperl regex
+
+The module expects the libperl library's format (from $Config{libperl})
+to be versionless, just simply libperl.so. However this value in the
+OE builds is versioned, causing some issues.
+
+The module transforms this value into a linker flag, and tries to link
+with the library. The transformation is simple: cut off the "lib" from
+the start, and everything after the last dot.
+
+With versionless version, the transformation works: libperl.so -> perl
+
+However with versioned library it looks like this:
+libperl.so.5.99.9 -> perl.so.5.99
+which is just wrong.
+
+This patch changes this transformation in way that throws away everything
+after the first dot (instead of the last one).
+
+Upstream-Status: Submitted [https://github.com/ambs/Config-AutoConf/pull/19]
+
+Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
+---
+ lib/Config/AutoConf.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/Config/AutoConf.pm b/lib/Config/AutoConf.pm
+index 0bba5a4..a2e7099 100644
+--- a/lib/Config/AutoConf.pm
++++ b/lib/Config/AutoConf.pm
+@@ -3001,7 +3001,7 @@ sub _check_link_perlapi
+ 
+     my $libperl = $Config{libperl};
+     $libperl =~ s/^lib//;
+-    $libperl =~ s/\.[^\.]*$//;
++    $libperl =~ s/^([^\.]*)\..*$/$1/;
+ 
+     push @{$self->{extra_link_flags}}, "-L" . File::Spec->catdir($Config{installarchlib}, "CORE");
+     push @{$self->{extra_libs}},       "$libperl";
diff --git a/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.320.bb b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.320.bb
index d8ca2ae247..5c233ed22d 100644
--- a/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.320.bb
+++ b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.320.bb
@@ -14,7 +14,9 @@  LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
 file://${COMMON_LICENSE_DIR}/GPL-1.0-or-later;md5=30c0b8a5048cc2f4be5ff15ef0d8cf61"
 
-SRC_URI = "${CPAN_MIRROR}/authors/id/A/AM/AMBS/Config-AutoConf-${PV}.tar.gz"
+SRC_URI = "${CPAN_MIRROR}/authors/id/A/AM/AMBS/Config-AutoConf-${PV}.tar.gz \
+           file://0001-correct-libperl-regex.patch \
+           "
 
 SRC_URI[sha256sum] = "bb57a958ef49d3f7162276dae14a7bd5af43fd1d8513231af35d665459454023"
 RDEPENDS:${PN} += "libcapture-tiny-perl"
@@ -31,8 +33,20 @@  RDEPENDS:${PN} += "perl-module-scalar-util"
 RDEPENDS:${PN} += "perl-module-strict"
 RDEPENDS:${PN} += "perl-module-text-parsewords"
 RDEPENDS:${PN} += "perl-module-warnings"
+
+RDEPENDS:${PN}-ptest += " \
+    packagegroup-core-buildessential \
+    perl-dev \
+    perl-module-file-glob \
+    perl-module-perl-ostype \
+    perl-module-metadata"
+
 RRECOMMENDS:${PN} += "libfile-slurper-perl"
 
+# One test requires perl headers (perl-dev) to compile some
+# test application.
+INSANE_SKIP:${PN}-ptest += "dev-deps"
+
 S = "${UNPACKDIR}/Config-AutoConf-${PV}"
 
 inherit cpan ptest-perl