-
Notifications
You must be signed in to change notification settings - Fork 122
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] Optional runtime dependencies #1
Comments
You can use
|
.... What if a package can't be split into subpackages? I personally think that it'd be a good idea to have this option. |
There are usecases for it, that is not the question, more like how it should behave, I think pacmans implementation is not very good. Here is what I was thinking about:
@the-maldridge disliked the idea, but I don't think it was discussed why. |
It took me longer than I wanted to get back to this. The gist of what I dislike here is that it adds bloat where there wasn't previously bloat. In my experience the number of places where you could absolutely confine a dependency as optional is fairly small. In that case, it seems reasonable to expect a well informed user to install the packages they so desire. On a more general and philosophical note, I'm against adding any more features to xbps until the ones we already have work better (see repo signing, staging detection, general speed, etc). |
This is technically the case with pacman too. In the case of pacman, there is also a culture that "more packages are bad, because users shouldn't need to install a dozen packages just to get one thing". On the other hand, often it is simply utterly impossible to split things out.
These optional dependencies are implemented via dlopen(), no matter what you do there's still exactly one binary, and if that binary cannot successfully dlopen the script interpreter shared library in question it will simply emit error messages that the relevant vim functions are unavailable because the support library could not be loaded.
"Well-informed user" seems doubtful, most well-informed users won't very well know what options are here, they will simply know that diffoscope spits out some output, which turns out to not be as detailed as it could have been because most of the comparators are autodisabled.
I would tend to agree on that. Some old notes on making pacman better are here: https://wiki.archlinux.org/index.php/User:Allan/Pacman_OptDepends (It is of course a valid point that there may be other far greater priorities.) |
I don't think this is bloat and wouldn't add a lot of code and wouldn't affect anything unless you "enable" this feature. My proposal for now would be to split optional dependencies into two stages. This way we could start adding the metadata through xbps-src and then evaluate if there are enough packages requiring this feature to add a few more lines to handle them automatically.
The proposed improvements are all a lot more work compared to adding optional dependencies, I'm going to open another RFC issue for repo signing and staging because they both are related and imho require a new tool for publishing repos, adding this to General speed improvements also require a lot more work, first step would be to download, checksum and verify packages at the same time instead of how it currently writes to the disk and then later reads the package file again to create a checksum. I already have a PR for this #149. |
Ok this is basically https://github.com/voidlinux/xbps/issues/119
A package should define optional dependencies, maybe a xbps-install option could also be added for this --as-dependency or something like this. If you install a package that optionally depends on $foo you could then simply install it through
and when removing the package $bar that is the only package that has a (optional) dependency on it it can be handled as normal dependency and remove it with the package.
The text was updated successfully, but these errors were encountered: