/lib32 -> emul/ia32-linux/lib ?

View: New views
6 Messages — Rating Filter:   Alert me  

/lib32 -> emul/ia32-linux/lib ?

by Philipp Matthias Hahn-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

I'm running "Debian sid" on "x86_64" and tried to build a "google-earth"
package today, which failed with
        dpkg-shlibdeps: error: no dependency information found for /emul/ia32-linux/lib/libm.so.6 (used by ../usr/lib/googleearth/liblayer.so).

After some investigation into bi-arch and multi-arch I discovered that I
have the following directory structure:
        /emul/ia32-linux/lib
        /emul/ia32-linux/usr/lib
        /lib
        /lib32 -> emul/ia32-linux/lib
        /lib64 -> lib
        /usr/lib
        /usr/lib32
        /usr/lib64 -> lib

Looking at "/var/lib/dpkg/info/libc6-i386.preinst" I found the following
fishy line:
        if [ "$(readlink /lib32)" = "/emul/ia32-linux/lib" ]; then
                                     ^ notice that my symlink does not
                                     have the leading slash!
                rm /lib32

Since I don't remeber ever creating that symlink myself and also found
no definite answer to my question on how a "right" directory layout
should look like, I'd like to ask first before filing a possible bug on
"libc6-i386" because of that to restrictive test.

Sincerely
Philipp Hahn
--
Philipp Matthias Hahn <pmhahn@...>
 GPG/PGP: 9A540E39 @ keyrings.debian.org


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Re: /lib32 -> emul/ia32-linux/lib ?

by Goswin von Brederlow-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Philipp Matthias Hahn <pmhahn@...> writes:

> Hello,
>
> I'm running "Debian sid" on "x86_64" and tried to build a "google-earth"
> package today, which failed with
> dpkg-shlibdeps: error: no dependency information found for /emul/ia32-linux/lib/libm.so.6 (used by ../usr/lib/googleearth/liblayer.so).
>
> After some investigation into bi-arch and multi-arch I discovered that I
> have the following directory structure:
> /emul/ia32-linux/lib
> /emul/ia32-linux/usr/lib
> /lib
> /lib32 -> emul/ia32-linux/lib
> /lib64 -> lib
> /usr/lib
> /usr/lib32
> /usr/lib64 -> lib
>
> Looking at "/var/lib/dpkg/info/libc6-i386.preinst" I found the following
> fishy line:
> if [ "$(readlink /lib32)" = "/emul/ia32-linux/lib" ]; then
>     ^ notice that my symlink does not
>     have the leading slash!
> rm /lib32
>
> Since I don't remeber ever creating that symlink myself and also found
> no definite answer to my question on how a "right" directory layout
> should look like, I'd like to ask first before filing a possible bug on
> "libc6-i386" because of that to restrictive test.
>
> Sincerely
> Philipp Hahn

The expected layout in squeeze/sid is (at least it is here)

/lib
/lib32
/lib64 -> /lib
/usr/lib
/usr/lib32
/usr/lib64 -> lib

I don't understand why your links are different but libc6-i386 should
really cope with that. So go ahead and file a bug.

As for fixing it you need to remove the link and reinstall every
package that has files in /lib32. Then check if any package has files
left in /emul/ia32-linux/ and update/remove them before removing what
remains of /emul/ia32-linux/.

MfG
        Goswin


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Re: /lib32 -> emul/ia32-linux/lib ?

by Neil Williams-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, 02 Nov 2009 16:33:07 +0100
Goswin von Brederlow <goswin-v-b@...> wrote:

> The expected layout in squeeze/sid is (at least it is here)
>
> /lib
> /lib32
> /lib64 -> /lib

That should be:
/lib64 -> lib

(or to be clearer: ./lib64 -> ./lib )

Having a link to /lib causes problems with debootstrap, cdebootstrap
and others. See #553599

--


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



attachment0 (205 bytes) Download Attachment

Re: /lib32 -> emul/ia32-linux/lib ?

by Vincent Danjean-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Neil Williams wrote:

> On Mon, 02 Nov 2009 16:33:07 +0100
> Goswin von Brederlow <goswin-v-b@...> wrote:
>
>> The expected layout in squeeze/sid is (at least it is here)
>>
>> /lib
>> /lib32
>> /lib64 -> /lib
>
> That should be:
> /lib64 -> lib

On my system (amd64), this is currently /lib64 -> /lib
Which package manages this symlink ?

> Having a link to /lib causes problems with debootstrap, cdebootstrap
> and others. See #553599

--
Vincent Danjean       GPG key ID 0x9D025E87         vdanjean@...
GPG key fingerprint: FC95 08A6 854D DB48 4B9A  8A94 0BF7 7867 9D02 5E87
Unofficial packages: http://moais.imag.fr/membres/vincent.danjean/deb.html
APT repo:  deb http://perso.debian.org/~vdanjean/debian unstable main


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Re: /lib32 -> emul/ia32-linux/lib ?

by Neil Williams-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, 02 Nov 2009 18:11:42 +0100
Vincent Danjean <vdanjean.ml@...> wrote:

> Neil Williams wrote:
> >> /lib64 -> /lib
> >
> > That should be:
> > /lib64 -> lib
>
> On my system (amd64), this is currently /lib64 -> /lib
> Which package manages this symlink ?

libc6

> > Having a link to /lib causes problems with debootstrap, cdebootstrap
> > and others. See #553599

See also the other bugs from which 553599 was cloned.

#514015 and #514016 - both RC.

"Packages with absolute symlinks to dirs like libc6 on amd64, ppc64 and
s390x can lead to overwrites of files outside of the new root."

Any process that uses tar against /PATH/TO/CHROOT/lib64 will end up
putting files into /lib:

"If one package (lib6) contains the symlink /lib64 -> /lib, another
package (in this case libattr1) which includes files in /lib64, will
be extracted into the host system and overwrite files there, as tar
follows the symlinks."
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553599#12


--


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



attachment0 (205 bytes) Download Attachment

Re: /lib32 -> emul/ia32-linux/lib ?

by Goswin von Brederlow-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Neil Williams <codehelp@...> writes:

> On Mon, 02 Nov 2009 18:11:42 +0100
> Vincent Danjean <vdanjean.ml@...> wrote:
>
>> Neil Williams wrote:
>> >> /lib64 -> /lib
>> >
>> > That should be:
>> > /lib64 -> lib
>>
>> On my system (amd64), this is currently /lib64 -> /lib
>> Which package manages this symlink ?
>
> libc6
>
>> > Having a link to /lib causes problems with debootstrap, cdebootstrap
>> > and others. See #553599
>
> See also the other bugs from which 553599 was cloned.
>
> #514015 and #514016 - both RC.
>
> "Packages with absolute symlinks to dirs like libc6 on amd64, ppc64 and
> s390x can lead to overwrites of files outside of the new root."
>
> Any process that uses tar against /PATH/TO/CHROOT/lib64 will end up
> putting files into /lib:
>
> "If one package (lib6) contains the symlink /lib64 -> /lib, another
> package (in this case libattr1) which includes files in /lib64, will
> be extracted into the host system and overwrite files there, as tar
> follows the symlinks."
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553599#12

Maybe policy should be changed to allow only relative symlinks.

I've been bitten by this many many times. Not as bad as tar extracting
to / instead /chroot but try "file /chroot/lib64/libfoo.so" and
similar.

MfG
        Goswin


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...