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

Re: Bug#747261: apt: Please add support for cross-architecture conflicts



Hi * !

(hopefully quoting enough for dpkg list to get the context)

On Fri, May 16, 2014 at 12:57:27AM +0200, Aurelien Jarno wrote:
> On Mon, May 12, 2014 at 09:03:50PM +0200, David Kalnischkies wrote:
> > On Tue, May 06, 2014 at 11:22:00PM +0200, Aurelien Jarno wrote:
> | # apt-cache show libc6:mips
[…]
> | Conflicts: libc6:hppa, libc6:m68k, libc6:mipsel, libc6:powerpc, libc6:s390, prelink (<= 0.0.20090311-1), tzdata (<< 2007k-1), tzdata-etch
[…]
> | # apt-cache show libc6:powerpc
[…]
> | Conflicts: libc6:hppa, libc6:m68k, libc6:mips, libc6:mipsel, libc6:s390, prelink (<= 0.0.20090311-1), tzdata (<< 2007k-1), tzdata-etch
[…]
> | # apt-get install libc6:mips libc6:powerpc
> | Reading package lists... Done
> | Building dependency tree       
> | Reading state information... Done
> | The following extra packages will be installed:
> |   libgcc1:mips libgcc1:powerpc
> | Suggested packages:
> |   glibc-doc:powerpc glibc-doc:mips
> | The following NEW packages will be installed:
> |   libc6:powerpc libc6:mips libgcc1:mips libgcc1:powerpc
> | 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
> | Need to get 0 B/9012 kB of archives.
> | After this operation, 19.8 MB of additional disk space will be used.
> | Do you want to continue? [Y/n] 
> | Preconfiguring packages ...
> | Selecting previously unselected package libc6:mips.
> | (Reading database ... 162272 files and directories currently installed.)
> | Preparing to unpack .../archives/libc6_2.18-6_mips.deb ...
> | Unpacking libc6:mips (2.18-6) ...
> | Selecting previously unselected package libgcc1:mips.
> | Preparing to unpack .../libgcc1_1%3a4.9.0-3_mips.deb ...
> | Unpacking libgcc1:mips (1:4.9.0-3) ...
> | Selecting previously unselected package libc6:powerpc.
> | Preparing to unpack .../libc6_2.18-6_powerpc.deb ...
> | Unpacking libc6:powerpc (2.18-6) ...
> | dpkg: error processing archive /var/cache/apt/archives/libc6_2.18-6_powerpc.deb (--unpack):
> |  trying to overwrite shared '/lib/ld.so.1', which is different from other instances of package libc6:powerpc
> | Selecting previously unselected package libgcc1:powerpc.
> | Preparing to unpack .../libgcc1_1%3a4.9.0-3_powerpc.deb ...
> | Unpacking libgcc1:powerpc (1:4.9.0-3) ...
> | Errors were encountered while processing:
> |  /var/cache/apt/archives/libc6_2.18-6_powerpc.deb
> | E: Sub-process /usr/bin/dpkg returned an error code (1)
>
> Of course it also shows that dpkg also do not support it, but having apt
> catching that case would already catches most of the problems.


Ahhhh, you are refering to "self"-conflicts…
Your previous example suggested you where referring to A conflicts B,
with A != B (A=libc6:sparc & B=libc6-i386 in the mentioned bugreport).

The A == B case is indeed currently unsupported/ignored as they are
treated as 'normal' self-conflicts and are hence ignored as specified
by policy as §7.4 explicitly says:
| A special exception is made for packages which declare a conflict with
| their own package name, or with a virtual package which they provide
| (see below): this does not prevent their installation, and allows a
| package to conflict with others providing a replacement for it.

Policy isn't all that talkative about M-A however, so that might just be
me reading way too much into an 'old' sentence of the policy, but I tend
to be nervous when it comes to breaking the policy…

I guess best way forward is to get an opinion from dpkg maintainers
(cc'ed) and reword this sentence one way or the other in policy.

The change to make this (not) work in apt is trivial (future me:
 DepIterator::IsIgnorable), but it is usually a bad idea to disagree
with dpkg (and policy) on such things.


Best regards

David Kalnischkies

Attachment: signature.asc
Description: Digital signature


Reply to: