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>
The patch was introduced in commit 4c57844f0f04 ("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>
The patch was first introduced in commit 4a94479f9652 ("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>
With no SONAME set, when linking against the full library path, that
path will be used. But if SONAME is set, it will be used instead.
Set --soname=legacy to add a SONAME to the library to allow projects
that use full path to link correctly.
Link: https://sqlite.org/src/forumpost/5a3b44f510df8ded
Fixes: https://github.com/openwrt/packages/issues/26449
Signed-off-by: George Sapkin <george@sapk.in>
Description: fix in full compile a firmware
pkg_hash_check_unresolved: cannot find dependency aria2-openssl for aria2
pkg_hash_fetch_best_installation_candidate: Packages for aria2 found, but incompatible with the architectures configured
satisfy_dependencies_for: Cannot satisfy the following dependencies for luci-app-aria2:
aria2-openssl
opkg_install_cmd: Cannot install package luci-app-aria2.
Signed-off-by: Lunatic Kochiya <125438787@qq.com>
Changed source URL to github (faster/geo-redundancy).
build: x86_64
run tested: x86_64
```
# radiusd -v
radiusd: FreeRADIUS Version 3.2.7, for host x86_64-openwrt-linux-gnu, built on Apr 18 2025 at 00:10:48
FreeRADIUS Version 3.2.7
```
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Trying to compile with GCC14 will fail on compiler sanity check with:
configure:1056:1: error: return type defaults to 'int' [-Wimplicit-int]
1056 | main(){return(0);}
| ^~~~
This is due to GCC14 not allowing implicit integer types anymore[1].
So, patch configure to avoid this and make it compile with GCC14.
Proper fix would be to use autoreconf to rebuild configure but configure.in
is completely outdated and would likely be more broken when regenerated.
[1] https://gcc.gnu.org/gcc-14/porting_to.html#implicit-int
Signed-off-by: Robert Marko <robimarko@gmail.com>
gnutls and nettle are already required for NTS. Enable their use for
authentication with non-MD5 symmetric keys as the SECHASH feature
printed by the configure script.
Also drop the --enable,nts (typo) configure option. It's enabled by
default.
Signed-off-by: Miroslav Lichvar <mlichvar0@gmail.com>
The 'snmp' extension module uses net-snmp as library, but fails
to detect whether the library uses openssl when cross-compiling.
Pass the according autoconf variables as hint - net-snmp is not
using openssl at the moment as defined in the Makefile.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
ack would always set a return code of 1 if -c was used. Now it properly
returns 1 if no files match, and 0 if any files match.
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
The existing config sections were anonymous, implying multiple can
coexist. Those are now named so that only one shall exist.
Added:
- smoothtime (in case of large frequency offsets)
- systemclock parameters
- logchange (increase awareness of clock drift in syslog)
- maxsources (for peers; internal default: 4)
- prefer (one server over others)
- interleave (xleave - more accurate transmit timestamps - good to have)
Refactored handle_allow() to handle 'list interface' instead of option.
Then only a single section is required.
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Small issues with sample configureation caused services not to start
or flood log with errors.
Signed-off-by: Antonio Pastor <antonio.pastor@gmail.com>
In a previous commit (0b12bee) hostname was added to
snmpd.init. To track changes in system, the init file
needs to add 'system' to the trigger.
Therefore it is added in this commit.
Fixes: 0b12bee66a89 ("net-snmp: set hostname as sysname")
Signed-off-by: Christian Korber <ck@dev.tdt.de>
Fix compilation with gcc 14 by applying the -std=c17 flag, as suggested
by lededev in 2d3f68cc8c (commitcomment-153860241)
(also -c23 seems to work ok with gcc14, but that seems to break gcc13)
Remove the previous autoreconf fix attempt.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* add an uci-defaults script for housekeeping and option migration from former versions
* small fixes and improvements
Signed-off-by: Dirk Brenken <dev@brenken.org>
Commit 07b6eec21f57c3cb391b0daf89240b7632b2a49f doesn't work at least
now, because package.mk initializes the variables to the default
values. You have to modify the variable after including package.mk.
Signed-off-by: Kazuhiro Ito <kzhr@d1.dion.ne.jp>
pupnp_project:pupnp is a better CPE ID than libupnp_project:libupnp as
this CPE ID has the latest CVEs from 2021 (whereas
libupnp_project:libupnp only has CVEs up to 2020):
https://nvd.nist.gov/products/cpe/search/results?keyword=cpe:2.3🅰️pupnp_project:pupnp
Fixes: 299e5b0a9bce19d6e96cb9ff217028b36ee2dd36 (treewide: add PKG_CPE_ID for better cvescanner coverage)
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
This is a new major release. It breaks protocol compatibility with the
0.23.x versions.
Please be aware that Git master is thus henceforth (and has been for a
while) INCOMPATIBLE with the 0.23.x GNUnet network, and interactions
between old and new peers will result in issues.
In terms of usability, users should be aware that there are still a
number of known open issues in particular with respect to ease of use,
but also some critical privacy issues especially for mobile users.
Also, the nascent network is tiny and thus unlikely to provide good
anonymity or extensive amounts of interesting information.
As a result, the 0.24.1 release is still only suitable for early
adopters with some reasonable pain tolerance.
v0.24.1:
- Fix crash in libgnunetpq when Postgresql database was restarted
- Add configure and make functionality for new meson build
(https://www.gnu.org/prep/standards/html_node/Configuration.html)
v0.24.0:
- Meson is new default build system
- JSON: split off libgnunetmhd from libgnunetjson, renaming various
GNUNET_JSON_-symbols to GNUNET_MHD_-. Removes dependency of
libgnunetjson on libmicrohttpd
OpenWrt package maintainer note:
Meson build is not yet fit for use in OpenWrt's cross build system.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>