Em março 29, 2017 4:32 Baptiste Jonglez escreveu:
So, I didn't think such a technical question would spark so much passion! Maybe this discussion should indeed go to arch-dev-public.
In the meantime, I see 4 positions emerge from the discussion:
1) packages in "base" *should* be explicitely listed as dependencies (either for mere "technical correctness", or because of bloat, i.e. not everyone wants/needs all packages from "base")
This is the only valid option.
2) packages in "base" *should not* be listed as dependencies (because it is assumed that all Arch Linux systems have all packages from "base" already installed)
Wrong.
3) it depends on the maintainer (i.e. there are no guidelines on this question)
If you build using devtools, this become quite obvious.
4) it depends on the base package in question (e.g. it would be acceptable to depend on glibc, but not on systemd)
Dependencies are dependencies. You can pull in a chain, by bringing the last link of it, so you don't have to list all of them. But you need to explicitly put everything you need for the program to build, test and run. Either this be on base, base-devel or on repos, core, extra, community.
I get the impression that 3) is the current status quo. I find 4) to be quite strange and subjective, but it could be done (e.g. only allow library dependency such as glibc, or allow all dependencies except a few like systemd).
I have seem packages on the repos that failed to build using a clean chroot[0]. I reported and they were fixed.
I have two more arguments in favour of 1) or 4), related to technical correctness:
- when a new version of glibc is released, which packages should be rebuilt? Without complete dependency information, I don't see how it's possible to know.
There are tools for finding this. But this should really be on the package dependency list. Keep in mind that only packages that link directly to it need to be rebuilt (mostly).
- Assume that all "base" packages are supposed to already be installed, and thus no other package depends on "base" packages. When a new package X is added to "base", how is an already-running system supposed to pick it up if no dependency pulls it in?
base is an arbitrary set of packages, as this whole discussion showed us, in abundance. And it's not like pulling base will hurt you, but not everyone needs/wants to pull it in. Explicit dependency (chain considered) is the only way. [0] https://bugs.archlinux.org/task/51613