Open aparcar opened 8 months ago
Below packages that would cause trouble. Please bear in mind that PKG_RELEASE
is soonish prefixed with an r
and may only contain a number.
Naughty list:
3.7.0+perl5.38-r1
0~2.6.3-r1
v.2024.01.05-2712-r2
fixed in master branchv.2024.01.05-2712-r2
fixed in master branchv.2024.01.05-2712-r2
fixed in master branch20201025.f653217-r2
2.4.3_b34-r1
1.0.128+nmu2+deb12u1-r1
0~2.11.1-r1
2019-11-27-r4d3b6faee428e3bd9f44ab6a3d70585ec50484a1
540.1.linux3-r2
2023-11-19-r1
4.4.3-P1-r7
4.4.3-P1-r7
4.4.3-P1-r7
4.4.3-P1-r7
4.4.3-P1-r7
4.4.3-P1-r7
4.4.3-P1-r7
4.4.3-P1-r7
4.4.3-P1-r7
0~3.5.1-r1
fixed in master branch0~3.5.1-r1
fixed in master branch0~3.5.1-r1
fixed in master branch2022.07.06~V1.10.7
4.7.25.4.NC-r7
4.7.25.4.NC-r7
20230828-3.1-r1
0~2.11.1-r1
r58-r1
r58-r1
0~0.16.4-r1
fixed in master branch0~1.30.0-r1
fixed in master branch0.10.1alpha-r1
1.2-rc3-r4
1.2.0-beta.1-r5
3.2p4-r2
3.2p4-r2
0.91.201110C-r2
0~1.34.0-r1
fixed in master branch2020-06-22-r5
2020-03-10-r2
3.3.5-r5.1
3.3.5-r5.1
3.3.5-r5.1
3.3.5-r5.1
1.0.3-20180319-r2
2024-01-13-r1
0.3.13-snapshot-r2
0~0.8.5-1-r1
2.1.0-beta3-r7
2.1-20231117-r1
2014-08-21-raf1e100281cee4b972df10121e37e51d53367a98
1.40.0-0-r2
0~1.30.0-r1
fixed in master branch0~1.3.1-r1
IETF104-r5
IETF104-r5
IETF104-r5
540.1.linux3-r2
0~1.22.0-r12
fixed in master branch0.3-pre-beta7-r2
2023.08.10~v4.4.7-r1
0~0.1.1-r2
v20.11.1-r1
v20.11.1-r1
0.2-2022-05-13-d6570bdec8435dfc781b95f6b404dedf965294dd-r1
2022.5.17-r1-fuseint
2022.5.17-r1-fuseint
2022.5.17-r1-fuseint
4.2.8p15-r4
4.2.8p15-r4
4.2.8p15-r4
4.2.8p15-r4
1.0.0-pre20210326-r3
1.0.0-pre20210326-r3
0~v0.12.0-r2
9.7p1-r1
9.7p1-r1
9.7p1-r1
9.7p1-r1
9.7p1-r1
9.7p1-r1
9.7p1-r1
9.7p1-r1
9.7p1-r1
0~1.0.1-r2
0~0.1.1-r2
3.2p4-r2
3.2p4-r2
3.2p4-r2
3.2p4-r2
3.2p4-r2
0.91.201110C-r2
3.7.0+perl5.38-r1
2.16+perl5.38-r2
1.00+perl5.38-r2
4.57+perl5.38-r1
2.28+perl5.38-r1
1.643+perl5.38-r1
1.04+perl5.38-r4
0.38+perl5.38-r1
1.05+perl5.38-r2
6.04+perl5.38-r2
1.18+perl5.38-r1
0.74+perl5.38-r1
0.13+perl5.38-r1
6.07+perl5.38-r1
3.75+perl5.38-r1
3.20+perl5.38-r4
3.23+perl5.38-r5
6.08+perl5.38-r1
6.06+perl5.38-r1
6.05+perl5.38-r2
6.22+perl5.38-r1
6.01+perl5.38-r2
0.52+perl5.38-r1
0.86+perl5.38-r1
0.81+perl5.38-r1
1.001+perl5.38-r2
0.208+perl5.38-r4
6.04+perl5.38-r1
0.21+perl5.38-r1
1.41+perl5.38-r1
6.19+perl5.38-r1
3.04+perl5.38-r4
4.079+perl5.38-r1
1.967015+perl5.38-r2
1.21+perl5.38-r1
0.2800+perl5.38-r1
3.42+perl5.38-r1
0.36+perl5.38-r1
1.52+perl5.38-r1
0.44+perl5.38-r1
0.31+perl5.38-r1
1.76+perl5.38-r1
6.43+perl5.38-r2
4.17+perl5.38-r7
1.96+perl5.38-r1
6.02+perl5.38-r2
2.46+perl5.38-r1
2022-03-01-r1
2.4.3_b34-r1
2021-04-09-r3
2017-08-29-r3
2.9.0.post0-r1
2.9.0.post0-r1
2.0.0-beta.15-r1
2022-08-11-r1
0~1.34.0-r1
fixed in master branch2023-02-01-r3
2.4.3_b34-r1
2.4.3_b34-r1
4.38-9760-r2
4.38-9760-r2
4.38-9760-r2
4.38-9760-r2
4.0.0+perl5.38-r1
4.0.0+perl5.38-r1
4.0.0+perl5.38-r1
2016-06-08-r1
1.9.9-1432-r2
1.9.9-1432-r2
1.9.9-1432-r2
v1.22c-r1
2.4.3_b34-r1
1.9.15p5-r1
1.0+git20130326-r3
1.1pre18-r3
511fd2bd852464e76824279609a34ee93fe148a4-r2
0~v0.4.0-r1
0~v0.4.0-r1
2023-06-05-r2
1.0-25.1-r1
fixed in master branch202403210039-1
20240316051411-1
202403180026-1
2018-11-20-r2
fixed in master branch0~1.2.17-r1
isc-dhcp is EOL https://www.isc.org/dhcp/
Dear package maintainers,
There is no need to open individual pull requests for your packages, you are maintaining. That will be really time-consuming for you and for us. We will do it here exactly the same as it was done in the main repo via treewide commit.
I didn't know that the OpenWrt is going to switch to APK. Here is more details on this https://forum.openwrt.org/t/rfc-announcing-apkwrt/120096
Dear, I've update ksmbd https://github.com/openwrt/packages/pull/23750, I'm not maintainer but if I can why don't help? Thanks guys
@aparcar Just a heads up, most of my packages either:
I believe I have fixed most of those, but I may have to submit further PRs if needed.
Also, the https-dns-proxy should be fixed with the latest PR.
PS. If the PR needs to be made against packages/luci repo for reasons other than APK migration, should I refrain from moving to the new release syntax?
libmad was fixed.
ksmbd-* fixed
I noticed mtd-rw has a bad version too. https://github.com/openwrt/packages/pull/23977 fixes.
@aparcar
root@debian:~# docker run --rm -it ghcr.io/aparcar/apk-valid-version
Unable to find image 'ghcr.io/aparcar/apk-valid-version:latest' locally
docker: Error response from daemon: Head "https://ghcr.io/v2/aparcar/apk-valid-version/manifests/latest": unauthorized.
See 'docker run --help'.
The sslh migration (just as a version update) https://github.com/openwrt/packages/pull/24192 Its author confirmed that he will now always use a semantic versioning
Quick question, is 24x going to use apk?
Quick question, is 24x going to use apk?
No final decision on this.
Quick question, is 24x going to use apk?
No final decision on this.
If 24.xx is NOT going to use APK by default, would the 24.xx building tools (toolchain, SDK, CI) still prepend r
to the PKG_RELEASE
?
@openwrt/packages-write I kindly ask every maintainer to check the failing package builds here and see if the PKG_VERSION need some adoption: https://buildbot.aparcar.org/faillogs/x86_64/packages/
@aparcar In addition of versioning, there appears to be also dependency trouble. Some packages depend explicitly on opkg, and building an actual firmware will fail if apk is selected. Apk also finds more conflicts that opkg.
I built yesterday an APK enabled firmware, and had to remove one package (openssh sftp server) due to the versioning reasons, like expected.
But then at image finalization I ran into conflicts with e.g. @dibdot popular 'adblock' which explicitly depends on opkg.
Similarly, some packages depend on uclient-fetch,, which apk finds to be in conflict with GNU wget, unlike opkg does.
@aparcar
root@debian:~# docker run --rm -it ghcr.io/aparcar/apk-valid-version Unable to find image 'ghcr.io/aparcar/apk-valid-version:latest' locally docker: Error response from daemon: Head "https://ghcr.io/v2/aparcar/apk-valid-version/manifests/latest": unauthorized. See 'docker run --help'.
@aparcar i want to try your docker image and i have this error ^
But then at image finalization I ran into conflicts with e.g. @dibdot popular 'adblock' which explicitly depends on opkg.
@hnyman I'll remove the opkg dependency in adblock with the next minor update - thanks for heads up!
Edit: the opkg dependency has been removed in adblock-4.2.2 (see 34db79bcd584f2da9a64dd4c1e84f138e3e4f70b)
@aparcar What to do when apk compatible version format opkg compares as an older version than the original? See libedit.
node, node-npm: I have sent a pull request.
Update: merged
libopenssl-afalg_sync: fixed by #24897
Will APK be integrated into 24.10?
Unlikely unfortunately.
For the moment, it is not sure for 24.10.x?
State of APK package manger integration - switch on Monday! http://lists.openwrt.org/pipermail/openwrt-devel/2024-November/043378.html
List of still failing packages can be seen from the test/staging apk buildbot faillogs: https://downloads.staging.openwrt.org/snapshots/faillogs/
only a few architectures have been compiled so far, but seems that e.g. ddns-scripts, nginx, ntfs-3g, many perl packages etc. still fail due to versioning reasons.
Does anyone have a clue about perl-file-next or perl related packages?
ERROR: info field 'version' has invalid value: package version is invalid
ERROR: failed to create package: /home/user/works/openwrt/bin/packages/x86_64/packages/perl-file-next-1.18+perl5.40-r1.apk: package version is invalid
Looking at for example perl-file-next Makefile PKG_VERSION, i don't see anything wrong with it :
PKG_NAME:=perl-file-next
PKG_VERSION:=1.18
PKG_RELEASE:=1
What would be the fixes then?.
Seems like you attach perl5.40
to the version itself, which doesn't fly. How about something like perl-file-next-1.18.5.40-r1
? This is what we did for some kernel packages, first the package version attached by the Kernel. You may not any arbitrary strings to the version anymore.
guess we need change
https://github.com/openwrt/packages/blob/ca503cc4054d9a13558c7b552886a6dba359a0eb/lang/perl/perlmod.mk#L11
to PKG_VERSION:=$(PKG_VERSION).$(PERL_VERSION2)
@aparcar Thank you, will be helpful for fixing other packages version related things.
@1715173329 Compiled fine now, thanks, I think you should open a PR as using APK is becoming default now. These will be fixed all perl APK related problems as listed above.
I found that when compiling nginx-ssl I get an error with the following output
"depends:nginx-ssl-util>=1.5-1 libc libopenssl3 libpthread libpcre2 nginx-ssl-util zlib"
How to fix nginx makefile?
How to fix nginx makefile?
EXTRA_DEPENDS:=nginx-ssl-util (>=1.5-1)
By removing the extra version comparison there. @Ansuel probably thinks about better fix, but that should be enough for your own use.
(Not sure if actually just "1.5-r1" would be enough there, as old "1.5-1" is not accepted by apk)
I see a lot of package use this:
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
Then PKG_VERSION
must match upstream version, this breaks apk
support if upstream version use other naming syntax. Do we have a solution for this?
I found that when compiling nginx-ssl I get an error with the following output
"depends:nginx-ssl-util>=1.5-1 libc libopenssl3 libpthread libpcre2 nginx-ssl-util zlib"
How to fix nginx makefile?
PKG_VERSION must match upstream version, this breaks apk support if upstream version use other naming syntax. Do we have a solution for this?
Some examples of solutions, mainly involving extra variables in Makefile to differentiate PKG_VERSION and the name needed for upstream file (and possibly for compilation PKG_BUILD_DIR):
It works, but it would be better if there is a standard for this
If you check the currently failing packages in faillogs, you notice that there is substantial variation to the upstream names. There is no single cure. https://downloads.openwrt.org/snapshots/faillogs/aarch64_cortex-a53/packages/
The list of currently failing packages in the packages feed is already below 10 packages.
https://downloads.openwrt.org/snapshots/faillogs/x86_64/packages/
debootstrap/ hfsprogs/ kafs-client/ micropython-lib/ netifyd/ oci-runtime-tools/ python-dateutil/ qcsuper/ sox/
( and also lua-curl-v3 and netdiscover, but there is already a PR for them )
@hnyman always dreap to have 0 faillogs there... at least for some targets :(
This error looks interesting
https://downloads.openwrt.org/snapshots/faillogs/x86_64/telephony/pcapsipdump/compile.txt
/home/ansuel/openwrt-ansuel/staging_dir/host/bin/fakeroot /home/ansuel/openwrt-ansuel/staging_dir/host/bin/apk mkpkg --info "name:pcapsipdump" --info "version:2020.03.03~157-r1" --info "description:pcapsipdump is a tool for dumping SIP sessions (plus RTP traffic, if available) to disk in a fashion similar to "tcpdump -w" (format is exactly the same), but one file per SIP session (even if there are thousands of concurrent SIP sessions)." --info "arch:aarch64_cortex-a53" --info "license:GPL-2.0+" --info "origin:feeds/telephony/net/pcapsipdump" --info "url:http://sourceforge.net/projects/pcapsipdump/" --info "maintainer:" --info "provides:" --script "post-install:/home/ansuel/openwrt-ansuel/build_dir/target-aarch64_cortex-a53_musl/pcapsipdump-2020.03.03~157/apk-aarch64_cortex-a53/pcapsipdump/post-install" --script "pre-deinstall:/home/ansuel/openwrt-ansuel/build_dir/target-aarch64_cortex-a53_musl/pcapsipdump-2020.03.03~157/apk-aarch64_cortex-a53/pcapsipdump/pre-deinstall" --info "depends:libc libstdcpp6 libpcap1" --files "/home/ansuel/openwrt-ansuel/build_dir/target-aarch64_cortex-a53_musl/pcapsipdump-2020.03.03~157/ipkg-aarch64_cortex-a53/pcapsipdump" --output "/home/ansuel/openwrt-ansuel/bin/packages/aarch64_cortex-a53/telephony/pcapsipdump-2020.03.03~157-r1.apk" --sign "/home/ansuel/openwrt-ansuel/private-key.pem"
Ok we need to escape the description...
Yeah the description handling shout be fixed. Not sure if it should be escaping or sanitising... I am so old-school, that having possible string delimiters (double quotes) in the field sounds error-prone in the long run.
@hnyman I sanitized the package description and also pushed a commit that escape them just to handle anything that is not officially supported.
All packages in main/master should now be fixed for apk versioning. In the last two weeks I have patched the last remaining dozen failing packages or so.
Buildbot doesn't currently show any apk related failures for main OpenWrt, LuCI, packages & telephony. (once the packages I patched just few minutes ago are built there next time)
In routing feed there is still PR https://github.com/openwrt/routing/pull/1089 waiting for @aparcar @Ansuel or somebody else with rights to the routing feed repo.
I have backported my own commits to 24.10, but I suspect that some other packages are still failing there., as fixes have not been backported. (Note: Buildbot does not yet show failures there, as opkg is still currently the default in 24.10.)
Hi all, some fellow developers and me worked for some time now on making APK the new package manager for OpenWrt, replacing the unmaintained OPKG fork we've been using for the longest time.
APK is actively developed and used in multiple other distributions, e.g. Alpine Linux 🎉
While there is till some work ahead, I'd like to prepare everyone who maintains a package to verify that the
PKG_VERSION
followsSemantic Versioning<major>.<minor>.<fixup>[.<sub1>...]
. APK uses a deterministic algorithm to compare versions and does not like random strings, except a valid hash prefixed with a~
.If in doubt, please use the Docker container below to verify the used version is valid:
It will print whatever version is not valid, if you get a zero exit code, you're fine.
Please feel free to reach out for assistance and have a look at the core migration of versions.