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

Attachment: pgpNXaReRampG.pgp
Description: PGP signature

Reply via email to