Bug#680226: lib{nss,pam}-ldapd: apt wants to remove them on dist-upgrade in favour of lib{nss,pam}-ldap:i386
found 680226 0.8.5
tags 680226 + help thanks On Wed, 2012-07-04 at 15:42 +0200, Thorsten Glaser wrote: > this situation is a bit weird, on an M-A enabled system (debugging > hindered a bit due to #680225), after upgrading libnss-ldapd and > libpam-ldapd to the latest version (or even before doing that), a > further dist-upgrade wants to kill them and install libnss-ldap and > libpam-ldap (the nōn-“d” versions, which thus will not work due to > #423252) from i386 (WTF?). Thanks for pointing this out. My guess is that this is due to the Conflicts/Replaces that is included in libnss-ldapd on libnss-ldap and in libpam-ldapd on libpam-ldap. 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. 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): Conflicts: libnss-ldap:${Arch} Provides: libnss-ldap:${Arch} the package is built but Lintian complains loudly and dpkg refuses to install with: # 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 This page [https://wiki.ubuntu.com/MultiarchSpec] says: "consideration of a syntax extension for Conflicts(and Replaces) is deferred until after the initial implementation" Does anyone know how to deal with this situation? I could perhaps drop the provides (or make it Provides: libnss-ldap:${Arch}). There is only one package in the archive that has a suggests on libnss-ldap so the "damage" within the archive should be minimal. This would only leave the case where you would want to have libnss-ldap on i386 and libnss-ldapd on amd64 impossible (which is theoretically valid). Any ideas? -- -- arthur - adejong@debian.org - http://people.debian.org/~adejong -- |
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 currently). 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 -- To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org Archive: CAAZ6_fA2R+TBsXsCau6MNiMZFdm4TYgGs+ZmB__f0R9eZ8Epq Q@mail.gmail.com">http://lists.debian.org/CAAZ6_fA2R+TBsXsCau6MNiMZFdm4TYgGs+ZmB__f0R9eZ8Epq Q@mail.gmail.com |
Bug#680226: lib{nss,pam}-ldapd: apt wants to remove them on dist-upgrade in favour of lib{nss,pam}-ldap:i386
[… “interesting” M-A consequences …]
Oh, sorry for disturbing an anthill then. This sounds entirely nōn-trivial to solve… Could this work: libnss-ldap and libnss-ldapd both provide the same virtual package and conflict with it? Same for the pam ones but a different virtual package. Just a wild-guess, //mirabilos -- 21:27⎜[Natureshadow] BÄH! Wer hatn das Bier neben den Notebooklüfter ⎜ gestellt ... 21:27⎜>Natureshadow< lol 21:27⎜>Natureshadow< du? 21:27⎜[Natureshadow] vermutlich ... -- Kev^WNatureshadow allein zu Haus -- To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org Archive: Pine.BSM.4.64L.1207061100300.19695@herc.mirbsd.org ">http://lists.debian.org/Pine.BSM.4.64L.1207061100300.19695@herc.mirbsd.org |
Bug#680226: lib{nss,pam}-ldapd: apt wants to remove them on dist-upgrade in favour of lib{nss,pam}-ldap:i386
On Fri, 2012-07-06 at 10:00 +0200, David Kalnischkies wrote:
> > 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. Thanks for your reply. I guess I could drop the Provides for now then which seems to be the least disruptive change to support multiarch (but also see below). I can't drop the Conflicts because libnss-ldapd and libnss-ldap share the same file (at least the same library which may be in the same file depending on whether you are comparing multiarch or non-multiarch versions). > > # 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? This was 1.16.4.2 that was lying around in a play chroot. dpkg 1.16.7 installs the deb just fine. I've been playing a bit with only changing the conflicts to include :${Arch} which seems to work with dpkg (though lintian still complains), however apt doesn't seem to understand it and doesn't remove libnss-ldapd when installing libnss-ldap. Then again, I can't reproduce the problem that Thorsten reported. I've got both libnss-ldapd:i386 and libnss-ldapd:amd64 installed (both 0.8.10-1) in a chroot with dpkg:i386 1.16.7. The installation was done with apt-get (apt:i386 0.9.7.1) and went fine. Also apt-get dist-upgrade doesn't want to remove either of the packages (for some reason apt does want to switch back to the i386 coreutils that I managed to switch to amd64). On Fri, 2012-07-06 at 11:02 +0000, Thorsten Glaser wrote: > Could this work: libnss-ldap and libnss-ldapd both provide the same > virtual package and conflict with it? Same for the pam ones but a > different virtual package. My guess is that it wouldn't because the conflict would still match it on the other architecture. -- -- arthur - adejong@debian.org - http://people.debian.org/~adejong -- |
| All times are GMT. The time now is 01:55 PM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.