termux / termux-packages

A package build system for Termux.
https://termux.dev
Other
13.32k stars 3.06k forks source link

[feature request, CI auto-updater]: automatic revbumping reverse dependencies #21107

Open twaik opened 3 months ago

twaik commented 3 months ago

Hello. It is a known problem that sometimes automatic upgrade of library can cause CANNOT LINK EXECUTABLE ...: cannot locate symbol ... problems. Probably we can make auto-updater check for undefined symbols of reverse dependencies and invoke automatic revbumping of them. Or in the case if it is problematic we can make auto-updater invoke revbumping for all reverse dependencies in the case if package contains shared libraries and there is TERMUX_PKG_REVBUMP_REVDEPS variable is set to true. Probably it is a no-go for packages like gdbm or openssl which have lots of heavy dependencies, but it will be usable for small packages like botan3 which have three or less dependencies (botan3 has only keepassxc one).

Biswa96 commented 3 months ago

Probably it is a no-go for packages like gdbm or openssl which have lots of heavy dependencies

IMO, more problematic ones are abseil-cpp, grpc, poppler and protobuf. Those break everything after every update.

twaik commented 3 months ago

abseil-cpp, grpc, poppler and protobuf

And have a lot of reverse dependencies. I am not proposing this feature for these packages because in this case CI can hit the time limit.

TomJo2000 commented 3 months ago

I think a way to easily check the reverse dependencies for a given package might be a better approach.

twaik commented 3 months ago

But what way? Running symbol checks? Or just trying to execute with bionic-host or termux-docker? Or some other way I am not aware about?

TomJo2000 commented 3 months ago

Would probably be most useful either immediately before or after the symbol checks. Could also be made part of the linter, but that doesn't run for local builds usually.