Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature request] move shlibs logic to xbps #554

Open
dkwo opened this issue Apr 28, 2023 · 2 comments
Open

[feature request] move shlibs logic to xbps #554

dkwo opened this issue Apr 28, 2023 · 2 comments

Comments

@dkwo
Copy link

dkwo commented Apr 28, 2023

Currently, xbps-src looks at depends and common/shlibs to generate run_depends.

This way, for example, libinput run_depends on eudev-libudev and shlib-requires libudev.so.1.
This makes it impossible for an alternative provider of libudev.so.1 like libudev-zero to replace eudev-libudev (at least with conflicts set, which should be).

Would it be possible to move the logic to xbps, namely a package has depends and shlib_requires, and xbps takes care to satisfy these (not xbps-src), such that one could choose which provider of a soname to use (with some priority/default choice)?

@Duncaen
Copy link
Member

Duncaen commented Apr 28, 2023

Not until the dependency solver is rewritten.

Generally if this is going to change then it will probably become more strict, not less.
We would probably require at least the version of the shared library providing package the target package was build with, instead of recording the first time the given shared library version appeared.
This is because adding symbols to the shared library doesn't break the abi and a package build against a newer version might be using symbols that are not present in previous package version with the same shared library version.

At the moment, you'll have to use provides+replaces like dbus-libs and dbus-elogind-libs do.

@dkwo
Copy link
Author

dkwo commented Jul 27, 2023

When that day comes, would it make sense to switch to a model like Alpine's apk, where you have a file /etc/apk/world with a list of constraints, and the dependency solver recomputes the whole package graph every time you add or delete a package to that file (rather than installing, marking as auto, removing orphans etc with different commands)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants