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

Re: I think apt-cross has broken something



On Sat, 30 Jun 2007 15:34:54 +0100
"Phil Endecott" <phil_jiegb_endecott@chezphil.org> wrote:

> # apt-get -s install a2ps/stable
> Reading package lists... Done
> Building dependency tree... Done
> Selected version 1:4.13b.dfsg.1-1 (Debian:4.0r0/stable, Debian:testing) 
> for a2ps
> You might want to run ‘apt-get -f install’ to correct these:
> The following packages have unmet dependencies.
>    libc6-dev-arm-cross: Depends: libc6-arm-cross (= 2.3.6.ds1-7) but 
> 2.3.6.ds1-13 is to be installed

Your libc6-arm-cross seems to be out of sync with your
libc-dev-arm-cross.

Use:
apt-cross -v -i libc6-dev libc6

> Firstly, how have my -arm-cross packages become broken, what can be 
> done to fix it, and what can be done to stop it from happening again?

I'd need the output of:
apt-cache policy
to determine this.

It is likely that your toolchain-derived libc6-arm-cross is behind the
latest libc for your installation.

The long-term solution is much more involved. apt-cross needs tighter
integration with apt (via the perl bindings) to ensure that the
dependency information is always in step with apt and dpkg. There is
code to do this but it needs to be modified extensively to work within
apt-cross.

> Secondly, why is the brokenness in the -arm-cross world preventing me 
> from making unrelated changes to my native x86 system?

Because apt checks the entire dependency tree, which includes all
packages installed by apt/dpkg/aptitude whether cross or not.
 
> Considering the second point: I expect my native apt and dpkg tools to 
> be solid and reliable; that's an essential feature of a good 
> distribution and most of the time the Debian system does well in this 
> respect.  On the other hand, I can accept that the dpkg-cross / 
> apt-cross system has fewer users and is newer, and I can accept that it 
> might have "rough edges" and the odd bug.  But if it does have "rough 
> edges", then it's important that those problems don't impact on the 
> main native dpkg / apt system.  What do you think? 

That is why the chroot method is being developed - to isolate the two
environments.

If you really want to isolate the two, use debootstrap to create a
chroot on your system (uncompressed), sudo chroot into that and install
apt-cross (and emdebian-tools if you want) there. You could then remove
apt-cross (and all -cross packages) from your main system. Your
debootstrap chroot should be upgraded to Lenny or Sid and you should
use the Emdebian repository to get the latest version of apt-cross
(0.1.2).

> Do you believe that 
> the -cross tools should be sufficiently solid that they can be 
> integrated with the native tools?  Or would it be better for them to 
> occupy an independent "parallel universe" in /usr/$ARCH/ where they can 
> damage themselves but not make the native system unusable?

The cross packages themselves do exist in a parallel filesystem
under /usr/arm-linux-gnu/, but not as a parallel dpkg status list / apt
cache.

> # apt-cross -a arm -S stable --install librecode-dev

$ apt-cache show librecode-dev | grep Depends
Depends: libc6 (>= 2.5-5), librecode0 (>= 3.6)
This would have led apt-cross to upgrade libc-arm-cross and for
whatever reason, dpkg didn't prevent the installation.
(my Depends line above is from Sid, hence the different version.)

> Could that have installed a newer version of libc6-arm-cross without 
> complaining about the conflict with libc6-dev-arm-cross? It doesn't 
> look as if it depends on a particularly new version of libc.

Yes.
 
> Anyway, how to fix it?  One problem is that apt-cross doesn't have a 
> "-s" option ('simulate')

That is possible - via the dpkg options.

>, so I can't try out commands in the hope that 
> they will fix the problem

Instead, apt-cross has the -g and -b options so that you can do the
install steps one-by-one. -b is probably best here. Choose an empty or
new directory, use apt-cross -b to create the foo-arm-cross .deb then
use the dpkg --dry-run.

I'll look at adding a simulate option to apt-cross along those lines.

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

Attachment: pgpnZZ6WAD5bt.pgp
Description: PGP signature


Reply to: