On Fri, 2016-06-24 at 23:01 -0700, Josh Triplett wrote: > Some packages, if installed on any architecture, must be installed for > every enabled architecture. Most notably, an NSS or PAM module package, > if enabled in /etc/nsswitch.conf or /etc/pam.d respectively, must exist > for every enabled architecture to avoid breaking programs for that > architecture.
What if I enable an architecture only for cross-building and don't intend to run programs from that architecture? > As one possible solution for this problem (but not an ideal one, just a > thought experiment), dpkg could support a new value for "Multi-Arch", > "Multi-Arch: every". This value would imply "Multi-Arch: same", but if > installed, would additionally cause dpkg to act the same way it does for > Essential packages: install the package when enabling the architecture. > (And when installing the package, dpkg would need to require installing > it for every supported architecture; dpkg could refuse to configure the > package if any enabled architecture doesn't have it unpacked.) > > That would solve the problem for the couple of cases it has come up in, > but it seems far from ideal; I'd welcome an cleaner alternative > solution. Notably, this doesn't work well for plugin packages for > libraries less critical than glibc; it's not even ideal for PAM, as not > every enabled architecture will have packages depending on libpam0g. > The real dependency is "if any package on the architecture depends on > package X, and package Y is installed, package Y:arch must be > installed", but that's excessively complicated. I don't think we can ever say there is a hard dependency here. Instead of adding another Multi-Arch value, how about adding 'Recommends: Y:every' to Y? (This also moves the problem up from dpkg to APT.) Ben. > Any ideas on how to solve this problem? -- Ben Hutchings Reality is just a crutch for people who can't handle science fiction.
signature.asc
Description: This is a digitally signed message part