[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#680226: lib{nss,pam}-ldapd: apt wants to remove them on dist-upgrade in favour of lib{nss,pam}-ldap:i386

On Fri, Jul 6, 2012 at 12:06 AM, Arthur de Jong <adejong@debian.org> wrote:
> I guess the conflicts is interpreted to apply to any installed version
> of the package while what should be interpreted as a conflict/replaces
> only of the package of the same architecture.

Correct guess. "Negative dependencies" (Breaks, Conflicts, …) apply
to all architectures. (Any) architecture-specific dependencies are not
allowed in wheezy as APT and dpkg gained support for them only very
very recently, thanks to Thibaut Girka. I am not sure if they are allowed
even then in negatives though (and I doubt APT supports them there

Long story short:

> I'm not sure what the proper way is to specify that Conflicts and
> Provides should only apply for a same-architecture version of the
> package. If I do this (just trying some things):

There is simple no way.

> Provides: libnss-ldap:${Arch}

Provides on the other hand are architecture specific by default.
They are only non-architecture specific if you mark the package
M-A:foreign - I hope it is obvious why.

> # dpkg -i libnss-ldapd_0.8.10-2_i386.deb
> dpkg: error processing libnss-ldapd_0.8.10-2_i386.deb (--install):
>  parsing file '/var/lib/dpkg/tmp.ci/control' near line 9 package 'libnss-ldapd':
>  'Conflicts' field, reference to 'libnss-ldap': invalid architecture name 'i386': a value different from 'any' is currently not allowed

Which dpkg version is that?
But as said, you can't use architecture specific dependencies in wheezy.
(The message is a bit confusing, :any doesn't make a lot of sense here
 provided that it is the same without :any … or worse: any could mean
 we are conflicting only with one arch at random, if you have a second
 installed you might be lucky - or not - depending on moon phase)

Best regards

David Kalnischkies

Reply to: