Switch runtime and host build deps from chardet to charset-normalizer,
the mandatory charset-detection backend since requests 2.26. Extend
test.sh to cover the new backend and bump PKG_RELEASE.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Add a HostBuild variant so it can be used as a /host build dependency,
mirroring python-certifi/idna/urllib3.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
No idea if this is used.
It's a pure python package.
No other packages depend on this.
Can be installed via pip on device.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
No idea if this is used.
It's a pure python package.
No other packages depend on this.
Can be installed via pip on device.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
No idea if this is used.
It's a pure python package.
No other packages depend on this.
Can be installed via pip on device.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
The incremental CLI requires an "update" subcommand and prints a usage
error instead of a version for the flags the generic check probes, so it
fails generic tests (e.g. when python3 is bumped). Override it; test.sh
still covers functionality.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
The package excludes automat/_visualize.py (it needs the optional graphviz
dependency), but the automat-visualize console script was still installed and
imports that module, so it failed at runtime and broke the CI generic test.
Skip the /usr/bin install so the package ships as a pure library.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
rust/host fails to compile on macOS running on Intel x64
because the host target triple is autogenerated to be
'arm64-unknown-linux-'. Rust doesn't have such a target triple, thus the
build fails because there are no pre-built artefacts for bootstrapping.
Fix this by setting RUSTC_HOST_ARCH to 'x86_64-apple-darwin' in case
our host is HOST_ARCH=x86_64 and HOST_OS=Darwin.
This fix is based on the existing fix for Apple silicon [1].
Fixes:
File "/Volumes/pepe/py/openwrt/build_dir/target-x86_64_musl/host/rustc-1.96.0-src/x.py", line 53, in <module>
bootstrap.main()
~~~~~~~~~~~~~~^^
File "/Volumes/pepe/py/openwrt/build_dir/target-x86_64_musl/host/rustc-1.96.0-src/src/bootstrap/bootstrap.py", line 1418, in main
bootstrap(args)
~~~~~~~~~^^^^^^
File "/Volumes/pepe/py/openwrt/build_dir/target-x86_64_musl/host/rustc-1.96.0-src/src/bootstrap/bootstrap.py", line 1366, in bootstrap
build.download_toolchain()
~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/Volumes/pepe/py/openwrt/build_dir/target-x86_64_musl/host/rustc-1.96.0-src/src/bootstrap/bootstrap.py", line 697, in download_toolchain
download_component(download_info)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "/Volumes/pepe/py/openwrt/build_dir/target-x86_64_musl/host/rustc-1.96.0-src/src/bootstrap/bootstrap.py", line 529, in download_component
get(
~~~^
download_info.base_download_url,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
verbose=download_info.verbose,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/Volumes/pepe/py/openwrt/build_dir/target-x86_64_musl/host/rustc-1.96.0-src/src/bootstrap/bootstrap.py", line 58, in get
raise RuntimeError(
...<6 lines>...
)
RuntimeError: src/stage0 doesn't contain a checksum for dist/2026-04-16/rust-std-1.95.0-x86_64-unknown-linux-darwin24.6.0.tar.xz. Pre-built artifacts might not be available for this target at this time, see https://doc.rust-lang.org/nightly/rustc/platform-support.html for more information.
[1] https://github.com/openwrt/packages/commit/105fa3920e12f557bdf1fcbc566fc286fb53e319
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
old just disabled version test, but as LuaJIt 2.1. part is stable.
So we can use that for test if luajit2 itself able to run.
Fixes: c7ca6d46f7 luajit2: ("add test-version.sh")
Suggested-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Signed-off-by: Seo Suchan <tjtncks@gmail.com>
awscli 1.45.19 no longer exposes awscli.topics.TOPIC_TAGS, so the test
raised an AssertionError (silently, as the heredoc exit code was ignored).
Drop the brittle check and make the smoke test fail hard if the CLI driver
cannot be created.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
The pyrsa-* command line tools use argparse and do not print the package
version with any of the flags probed by the CI generic version check, so it
reports "No executables in the package provided version" and fails. Add a
test-version.sh override; functionality remains covered by test.sh.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Upstream ships its jp command-line tool as a plain "jp.py" script. Under
that name OpenWrt byte-compiles it into a non-executable /usr/bin/jp.pyc
(and the -src package keeps a "#!/usr/bin/env python" jp.py, which has no
interpreter on OpenWrt), so it fails the CI generic executable check.
Install it as /usr/bin/jp instead: the missing .py extension stops it from
being byte-compiled and Python3/FixShebang rewrites the shebang to
/usr/bin/python3. Add a test-version.sh override since jp takes a required
expression argument and has no version flag for the generic check to probe.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Install libperl.so with executable permissions (0755) instead of copying
it as-is.
This allows the OpenWrt build system to recognize the library as a binary and
automatically run the "strip" utility on it. Stripping removes unnecessary
debugging metadata and helper symbols that are only needed for development but
not for running Perl on the router.
This change reduces the installed size of libperl.so on the device:
- Before (not stripped): 3.7 MB (3,929,652 bytes)
```
root@turris:~# file /usr/lib/perl5/5.40/CORE/libperl.so
/usr/lib/perl5/5.40/CORE/libperl.so: ELF 32-bit MSB shared object, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked, with debug_info, not stripped
```
- After (stripped): 3.5 MB (3,674,081 bytes)
```
root@turris:~# file /usr/lib/perl5/5.40/CORE/libperl.so
/usr/lib/perl5/5.40/CORE/libperl.so: ELF 32-bit MSB shared object, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked, no section header
```
Saving ~255 KB of flash storage space on target devices.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
On macOS (Darwin) hosts, building host Python C extensions (such as Cython) using the '-shared' flag and linking against '-lpython3.x' causes the host Python interpreter to load a duplicate copy of the Python runtime. This leads to type checking mismatches and segmentation faults (SIGSEGV) when importing the compiled extension.
For example, running:
./staging_dir/hostpkg/bin/python3 -c "import Cython.Utils"
crashes with:
Segmentation fault: 11
To build shared modules correctly on macOS, they must be compiled as bundles using the '-bundle -undefined dynamic_lookup' flags instead of '-shared', and they should not link against the Python library (no '-lpython3.x' in LDFLAGS).
Fix this by dynamically adjusting LDSHARED and LDFLAGS in python3-host.mk when the host OS is Darwin.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Enable version checking for the main perl package.
Previously, the version check for perl was skipped. Add a check
that runs perl -v and verifies that the output matches PKG_VERSION.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
3.11.8 failed to build against the SDK's stable rust 1.96.0: build.rs enabled
orjson's "cold_path" cargo feature for rustc >= 1.95.0, activating an unstable
feature gate that errors with E0554. 3.11.9 drops it; plain version bump.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
Refresh sha256 from PyPI sdist. pyOpenSSL 26.2.0 dropped EC support
from the legacy crypto.PKey API (the call surfaces as "OpenSSL.crypto.Error:
No such key type"); drop the EC-key arm of test.sh accordingly. Upstream
points at the cryptography package for EC key generation.
Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>