Allan McRae schrieb:
Thomas Bächler wrote:
I want to explicitly ask you about the cons for this feature. What do you think is a hard reason NOT to do it?
1) The depends array in the PKGBUILD no longer represents the information in the package.
I want that solved as well. We should only add dependencies for soname if the corresponding packages are already in the depends array. For all others, print a warning or ignore them. Otherwise, (in addition to your concern about the PKGBUILD information being incomplete) optdepends will break.
2) Lots more dependencies for packages. This will slow pacman down. Also, I believe that provides are slower than depends to resolve. I could be completely wrong there... but that would make this even worse. So it does "hurt" everyone.
This is a valid point, and we need to investigate how much this will hurt. Still, I would prefer correctness over speed.
3) I believe this should be implemented manually for a very small number of package sets (shells & readline being the main case), but I do not see a general need for this in a large number of packages. Note that this is not much harder that your option of adding a "sodepends" variable - it just requires adding a versioning on the library.
This is not an argument, but just an opinion.
4) How would you negate this to allow a library to be an optdep other than just not using this feature? I am generally against adding extra syntax to PKGBUILDs unless there is a very strong reason to do so.
See my answer to #1. If something is not in depends, its libraries should be ignored for implicit so dependencies.
#1 is my primary critisism. Every other option in makepkg that does something magically (removes files, compresses files, etc), has the files they act on defined specifically in makepkg.conf and thus are not really magical at all. We should be able to look at a PKGBUILD and see the information about a package. I know that all the libraries that are magically depends should have their package included in at least the makedepends, but then how do we tell what really are makedeps?
My answer to #1 solves that issue completely, but it will slow down makepkg a lot.