231 Commits

Author SHA1 Message Date
Alexandru Ardelean d4d4e3e419 perl: fix miniperl missing execute permission (CI fix)
On some build systems, the miniperl binary is created without execute
permission (errno 126 when running it as /bin/sh). This breaks building
the mro extension and cascades to all dependent packages.

Fix by ensuring chmod +x on miniperl after the main build step.
This matches how many other build systems handle this same issue.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-05-20 20:09:52 +03:00
Jens Wagner 8c62419cd8 perl: fix dependency issues in archive, pod and test
perlbase-archive, perlbase-pod and perlbase-test
had executable utilities with missing dependencies.

Fixes: https://github.com/openwrt/packages/issues/29425
Fixes: https://github.com/openwrt/packages/issues/29426
Fixes: https://github.com/openwrt/packages/issues/29427

As discussed in PR 29463
https://github.com/openwrt/packages/pull/29463

those are either non-working or useless on OpenWrt,
therefore they have been removed.

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2026-05-20 15:22:53 +02:00
Jens Wagner 95b7bf91a7 perl: fix missing line numbers in error messages
There were some type definitions missing in architecture.config,
that caused perl to return '%' instead of actual line numbers.

Fixes: https://github.com/openwrt/packages/issues/25912

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2026-05-20 15:22:53 +02:00
Jens Wagner 75d03ef982 perl-io-socket-ssl: update to 2.098
Changelog: https://metacpan.org/dist/IO-Socket-SSL/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2026-05-17 08:56:14 +02:00
Alexandru Ardelean 024b8ee60e perl: add test-version.sh to skip version check
perlbase-archive, perlbase-pod, and perlbase-test install Perl script
wrappers (ptar, pod2man, prove, etc.) that do not output the OpenWrt
package version string (5.40.0), causing generic version check failures
in CI.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-05-14 15:39:33 +03:00
Yanase Yuki b0d8a3d384 treewide: cleanup URLs
This commit converts plain HTTP URLs to HTTPS, and updates
old or outdated URLs.

Signed-off-by: Yanase Yuki <dev@zpc.st>
2026-05-08 22:28:27 +02:00
Jens Wagner fcaf398736 perlbase-encode: added dependency on perlbase-storable
The Encode module uses the Storable module.

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2026-01-22 13:02:25 -07:00
Jens Wagner 552298e218 perl-www: added dependency on perlbase-module
As mentioned by @tofurky in
https://github.com/openwrt/packages/pull/26781#issuecomment-3703144370
LWP::UserAgent uses Module::Load since 6.71

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2026-01-12 17:11:39 +01:00
George Sapkin de64f871b0 treewide: fix spelling and grammar in Makefiles
Fix spelling and grammar in package definitions, configs, comments and
other strings.

Signed-off-by: George Sapkin <george@sapk.in>
2025-12-31 09:12:36 +02:00
Christian Marangi d0f1c668c2 perl-www-curl: fix compilation error with new cURL version
Add patch removing internal macro CURL_HAS_DECLSPEC_ATTRIBUTE.

This fix a compilation error for the package.

Also improve the old 7.88 patch with wrong whitespace.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-11-26 02:46:32 +01:00
Tianling Shen 8722dc9f88 perl-ack: Update to 3.9.0
v3.9.0      Mon May 26 15:02:57 CDT 2025
========================================
The --not option can be used with either --and or --or.

The -g option can now use any of the boolean options, --and, --or or --not.

[FIXES]
When using --output='$f', the filename would be colorized in the output
line, but should not have been.  This has been fixed. Thanks, Dabrien
'Dabe' Murphy. (GH #350)

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2025-11-12 02:42:42 +08:00
Rosen Penev 7648e25568 perl-file-rsyncp: update to 0.76
Fix compilation with GCC15.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-08-14 11:59:36 +08:00
Rosen Penev d791c150fc perl-xml-parser: fix host expat paths
expat is installed in host, not hostpkg.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-08-06 21:58:25 +08:00
Josef Schlehofer 7e19f2b331 perl-html-parser: add perl/host to HOST_BUILD_DEPENDS
Added `perl/host` to the `HOST_BUILD_DEPENDS` variable to ensure Perl is available during the host build process.
This is required for scripts or tools that rely on Perl on the host system.

Fixes: ebfb47aa74 ("perl-html-parser: restructure and update to 3.83")

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2025-07-19 15:10:07 +02:00
Konstantin Demin 443ce3174d perl: adjust with glibc and libcrypt-compat
glibc 2.39 has removed libcrypt completely.
solution: link against libxcrypt built with glibc compatibility.

Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
2025-07-14 10:40:15 +02:00
Jens Wagner 0aacef1364 perl-lwp-protocol-https: new module LWP::Protocol::https, version 6.14
This module is a plug-in for LWP (perl-www),
provides https support for  LWP::UserAgent

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-13 12:15:53 +02:00
Jens Wagner 5d19259d30 perl-io-socket-ssl: bump to 2.094
2.091 to 2.094 provide fixes related to one-sided SSL shutdowns

Changelog: https://metacpan.org/dist/IO-Socket-SSL/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-07 08:53:35 +02:00
Jens Wagner 0ac2c7416a perl-clone: new module Clone, version 0.47
This module provides a clone() method to make recursive copies of various nested data types.

It is e.g. required by recent versions of HTTP::Message

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner 1d33c0ed9d perl-www: restructure and update to 6.78
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/libwww-perl/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner f48ef299a4 perl-uri: restructure and update to 5.32
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/URI/changes

Version 1.76 was followed by 5.05 to remove various version mismatches

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner 6d59aa05b3 perl-www-robotrules: restructure 6.02
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner d028183d5c perl-www-mechanize: restructure and update to 2.19
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/WWW-Mechanize/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner 694f5d6ecc perl-net-http: restructure and update to 6.23
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/Net-HTTP/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner 796634f1f8 perl-http-message: restructure and update to 7.00
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/HTTP-Message/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner 877494f0f4 perl-lwp-mediatypes: restructure 6.04
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner 6fce183e75 perl-http-date: restructure and update to 6.06
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/HTTP-Date/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner 52a06e8923 perl-http-daemon: restructure and update to 6.16
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/HTTP-Daemon/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner 4279d8dcb3 perl-html-tree: restructure and update to 5.07
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/HTML-Tree/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner a9fa6dfddb perl-http-cookies: restructure and update to 6.11
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/HTTP-Cookies/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner bb518503a2 perl-html-tagset: restructure and update to 3.24
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/HTML-Tagset/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner ebfb47aa74 perl-html-parser: restructure and update to 3.83
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/HTML-Parser/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Jens Wagner f5a22bae57 perl-html-form: restructure and update to 6.12
Changed maintainer to @jw2013
Updated Makefile to use metacpan.mk download helper

Changelog: https://metacpan.org/dist/HTML-Form/changes

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Josef Schlehofer e9f4aa38ef treewide: move all perl packages into its own folder
This makes it in sync with Python packages.
Python packages has its own place in /lang/python
Perl does not, so this fixes it.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2025-07-06 16:21:08 +02:00
Jens Wagner 04b7b67e75 perl: add metacpan.mk download helper
Resemble the package handling of python modules
MetaCPAN is to Perl, what PyPI is to Pyhton

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2025-07-06 16:21:08 +02:00
Timothy M. Ace 5f76e1c0ad perlbase-extutils: Adding required perlbase-version dependency
Attempting to use ExtUtils::MakeMaker from perlbase-extutils results in an
error of "Can't locate ExtUtils/MakeMaker/version/vpp.pm in @INC".
Installing perlbase-version fixes the error. Therefore we add
perlbase-version as a dependency of perlbase-extutils.

Signed-off-by: Timothy M. Ace <openwrt@timothyace.com>
2025-05-25 11:42:05 -06:00
Matthias Schiffer 6766939892 perl: do not set LD_LIBRARY_PATH for cross compile
We don't want to set LD_LIBRARY_PATH to a directory filled with target
libraries when running a host perl. When the host and target
architecture are the same, some libraries will be loaded from this
path, resulting in the build to break because of glibc/musl mismatch.

Reported-by: John Audia <therealgraysky@proton.me>
Fixes: e7b5a35e5c ("perl: drop 110-always_use_miniperl.patch")
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2025-05-16 10:01:27 +02:00
Matthias Schiffer b98fb60635 perl: fix parallel build race condition in target build
We have received reports of builds of perl occasionally failing when
building with many parallel jobs, with a log like the following:

    LD_LIBRARY_PATH=[...]/perl/perl-5.40.0 ./miniperl -Ilib make_ext.pl \
        dist/constant/pm_to_blib  MAKE="make" LIBPERL_A=libperl.so
    File/Path.pm did not return a true value at [...]/hostpkg/usr/lib/perl5/5.40.0/ExtUtils/MakeMaker.pm line 13.
    BEGIN failed--compilation aborted at [...]/hostpkg/usr/lib/perl5/5.40.0/ExtUtils/MakeMaker.pm line 13.
    Compilation failed in require at Makefile.PL line 3.
    BEGIN failed--compilation aborted at Makefile.PL line 3.
    Unsuccessful Makefile.PL(dist/constant): code=65280 at make_ext.pl line 532.

The failing extension (dist/constant in the above log) would differ
between runs.

The cause of the issue is the `-Ilib` in the command line of miniperl.
In the host build, `./miniperl -I lib` will use the following include
path:

    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/AutoLoader/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/dist/Carp/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/dist/PathTools
    [..]/build_dir/hostpkg/perl/perl-5.40.0/dist/PathTools/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/ExtUtils-Install/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/ExtUtils-MakeMaker/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/ExtUtils-Manifest/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/File-Path/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/ext/re
    [..]/build_dir/hostpkg/perl/perl-5.40.0/dist/Term-ReadLine/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/dist/Exporter/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/ext/File-Find/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/Text-Tabs/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/dist/constant/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/version/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/Getopt-Long/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/Text-ParseWords/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/cpan/ExtUtils-PL2Bat/lib
    [..]/build_dir/hostpkg/perl/perl-5.40.0/lib
    .

Various dependencies of the extension build scripts (Makefile.PL) -
including File-Path, which failed to be loaded in the error log - are
included in the path by buildcustomize.pl, as these extensions are only
installed to `lib` as the build proceeds.

However, in a target build, miniperl is just a symlink to the previously
built host perl. As the host perl does not implicitly load
`buildcustomize.pl`, we get the following include path for
`./miniperl -Ilib`:

    lib
    [..]/staging_dir/hostpkg/usr/lib/perl5/site_perl/5.40.0/x86_64-linux
    [..]/staging_dir/hostpkg/usr/lib/perl5/site_perl/5.40.0
    [..]/staging_dir/hostpkg/usr/lib/perl5/5.40.0/x86_64-linux
    [..]/staging_dir/hostpkg/usr/lib/perl5/5.40.0

The host perl's install location is used as the default include path
which provides File-Path etc. for the target build; however, as more
and more libraries get installed into `lib` during the extension build,
they may get loaded from there instead, as `lib` is at the beginning of
the include path. When multiple extensions are built in parallel, a
Makefile.PL may attempt to load File/Path from `lib` after the file has
been created, but before its contents have been written fully, resulting
in the build to fail.

In fact, we should not load anything from `lib` during the target build,
as it is the staging directory for the target, including native
extensions built for the target architecture - with one exception: The
build scripts expect to find target information in the `Config` module,
so simply removing `lib` from the include path completely would break
the build.

Solve the issue by creating an alternative lib directory `lib_build`,
symlinking `Config.pm` and its dependencies in it, and replacing the
`-Ilib` argument with `-Ilib_build` using a wrapper script around the
host perl executable. This is similar to the approach seen in perl's own
obsolete/broken cross compile scripts (`Cross/Makefile`).

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2025-05-05 11:20:38 +02:00
Matthias Schiffer e7b5a35e5c perl: drop 110-always_use_miniperl.patch
The patch was introduced in commit 4c57844f0f ("lang/perl: Add hack to
make perl always use miniperl during build"), but it is not actually
necessary. By setting $perl to a non-empty value (using 'perl' as is
common on desktop distros), the logic works as intended and selects the
correct perl binary for host and target builds.

As miniperl just symlinks to host perl for target builds, the main
effect of this change is not unconditionally passing `-Ilib -I.`
anymore. This seems like a good thing; host libraries should be used
with host perl by default.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2025-05-05 11:20:38 +02:00
Matthias Schiffer 2a7dc15402 perl: replace 910-miniperl-needs-inc-dot.patch with smaller scope fix
The patch was first introduced in commit 4a94479f96 ("perl: update to
5.26.1") to fix the target build when the host perl has
default_inc_excludes_dot enabled. It just added back the `-I`. to every
call of miniperl; this solution is questionable however, as it adds `.` to
the beginning of the search path, not as a final fallback like perl did
before default_inc_excludes_dot (and like miniperl does).

It is also not necessary - only two scripts, write_buildcustomize.pl and
configpm, expect to be able to include a file from `.` (in both cases a
file the script just generated). Just fix the two scripts instead.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2025-05-05 11:20:38 +02:00
Tianling Shen 9dc0ee812d perl: perlmod: make version apk compatible
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-11-16 11:42:47 +02:00
Andreas Gnau 68c0a57f57 perl: Run make depend to fix build race condition
Run make depend before building perl. This fixes parallel build failures
on machines with a high number of cores.

Example error 1:

    /bin/ln -s /build/staging_dir/hostpkg/usr/bin/generate_uudmap generate_uidmap
    make[5]: ./generate_uudmap: Command not found
    make[5]: *** [Makefile:321: bitcount.h] Error 127

Example error 2:

    /bin/ln -s /build/staging_dir/hostpkg/usr/bin/generate_uudmap generate_udmap
    ./generate_uudmap uudmap.h bitcount.h mg_data.h
    /bin/ln: failed to create symbolic link 'generate_uudmap': File exists
    make[5]: *** [Makefile:325: generate_uudmap] Error 1

Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=996953
Link: https://salsa.debian.org/perl-team/interpreter/perl/-/commit/366bc98c916a3455f15c532aa33a5636d2fe2803
Closes: https://github.com/openwrt/packages/issues/8238
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2024-07-28 15:53:19 -06:00
Esaaprilia Salsabila 5a923168c8 perl: fix Segmentation fault
Signed-off-by: Esaaprilia Salsabila <esaapriliasalsabila@gmail.com>
2024-07-22 18:48:26 -07:00
Esaaprilia Salsabila c5b97d4d96 perl: update version 5.40.0
https://metacpan.org/release/HAARG/perl-5.40.0

remove bytes_heavy.pl
Perl/perl5#22047

perl update version 5.40.0

Signed-off-by: Esaaprilia Salsabila <esaapriliasalsabila@gmail.com>
2024-06-20 14:18:35 -07:00
Rosen Penev ea8e6fbf33 perl: fix compilation with GCC14
Need the header for fegetround.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-06-08 17:47:24 -07:00
Christian Marangi e28bd51cab treewide: update packages to use new toolchain define
Update packages to use new toolchain define and drop usage of
TOOLCHAIN_DIR.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-05-28 15:42:30 +08:00
Georgi Valkov 847a535a3b perl: fix not a Mach-O file on macOS
Reverts [1] to resolve the following build error on macOS:

/Volumes/wrt3200/openwrt/staging_dir/hostpkg/usr/bin/perl installperl --destdir=/Volumes/wrt3200/openwrt/build_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/perl/perl-5.38.2/ipkg-install
WARNING: You've never run 'make test' or some tests failed! (Installing anyway.)
  /usr/bin/perl5.38.2
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: input file: /Volumes/wrt3200/openwrt/build_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/perl/perl-5.38.2/ipkg-install/usr/bin/perl5.38.2 is not a Mach-O file

[1] https://github.com/Perl/perl5/commit/88efce38149481334db7ddb932f9b74eaaa9765b

Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
2024-04-23 19:00:11 -07:00
Andy Syam 2484715985 perl: update to version 5.38.2
removed one that no longer exists in perl-5.38.2

updated one patch

fixed missing builtin.pm

Signed-off-by: Andy Syam <privasisource@gmail.com>
2023-12-01 11:18:10 -08:00
Andy Syam 0142d06598 perl: update to version 5.38.0
removed some sources to download perl. I believe I only need one source to download perl at https://www.cpan.org/src/5.0. I see some Linux distributions use that source to download.
change the position of PKG_MAINTAINER to make it neater and prettier

perform a patch refresh
removes some patches that have been applied in perl-5.38.0 as well as patches that are no longer used in perl-5.38.0

added one patch Perl/perl5@ba6e2c3 this fixes the issue regcomp*.c, regexec.c - fixup regex engine build under -Uusedl

provided updates and synchronized libc.config base.config version.config to perl-5.38.0
removed deprecated arybase in perl-5.29.4

Signed-off-by: Andy Syam <privasisource@gmail.com>
2023-11-22 18:32:50 -08:00
Zoltan HERPAI cf59047d3c perl: add support for riscv64
Required by sifiveu and upcoming riscv targets.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2023-10-22 23:29:03 -06:00
Oskari Rauta 96de355818 perl: fix tests
Enabling Perl tests causes failure during build.
Files that should be installed into packages, are
missing or in different location.

This PR removes missing files/paths and replaces
paths that have changed with working ones.

Most likely, test files have been relocated during
time and this portion hasn't been updated when
perl package has updated.

Fixes #21127

Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
2023-05-24 06:06:17 +03:00