Gentoo Archives: gentoo-amd64

From: Simon Stelling <blubb@g.o>
To: gentoo-amd64@l.g.o
Subject: Re: [gentoo-amd64] file type not allowed in /usr/lib
Date: Sun, 07 Aug 2005 10:19:35
Message-Id: 42F5E011.8020907@gentoo.org
In Reply to: [gentoo-amd64] file type not allowed in /usr/lib by Will Briggs
1 Hi,
2
3 Will Briggs wrote:
4 > !!! ERROR: media-gfx/skencil-0.6.16 failed.
5 > !!! Function dyn_install, Line 1114, Exitcode 0
6 > !!! File
7 > /var/tmp/portage/skencil-0.6.16/image///usr/lib/skencil-0.6.16/Lib/paxtkinter.so
8 > matches a file type that is not allowed in /usr/lib
9 > !!! If you need support, post the topmost build error, NOT this status
10 > message.
11
12 This means that there are 64bit shared objects going to /usr/lib instead
13 of /usr/lib64, which is wrong, but currently not really a bug, since
14 /usr/lib is a link to /usr/lib64.
15
16 > So if anyone can help with a fix, please let me know.
17
18 Just remove 'multilib-strict' from your FEATURES.
19
20 > The _question_ relates to the fact that I've seen this sort of error a
21 > number of times, but by the time I come across it it's been bugged and
22 > fixed and the next emerge sync fixes it. Can someone let me know what
23 > the issue is here - (mainly so I can get a handle on hacking my own
24 > fixes when bug reports go unanswered) Why can't a .so file be placed in
25 > /usr/lib?
26
27 It can, but it shouldn't. We want 64bit .sos to go to (/usr)/lib64 and
28 32bit to (/usr)/lib32, because *taking a deep breath*:
29
30 Generally, we want to provide a fully multilib-capable system. That
31 means that you will be able to compile every application for 32bit or
32 64bit, depending on your mood ;). 32bit applications require 32bit
33 libraries, otherwise they can't be linked against each other, same
34 (obviously) for 64bit apps/libs. Now imagine you want appfoo (32bit) and
35 appbar (64bit), both depending on libfoobar. So you need libfoobar twice
36 -- once 64bit and once 32bit.
37
38 Now, if libfoobar would get installed to /usr/lib instead /usr/lib32 and
39 /usr/lib64, it'd obviously overwrite itself. Depending on what you
40 install first, appfoo or appbar will break, as they both require
41 installing libfoobar. Also, if you would emerge -C appfoo && emerge
42 depclean, appbar wouldn't work anymore, because they both provide
43 exactly the same files.
44
45 The simple solution to this is making two directories and making sure
46 that no 64bit shared object goes anywhere else than to (/usr)/lib64, and
47 vice versa.
48
49 Regards,
50
51 --
52 Simon Stelling
53 Gentoo/AMD64 Operational Co-Lead
54 blubb@g.o
55 --
56 gentoo-amd64@g.o mailing list

Replies

Subject Author
Re: [gentoo-amd64] file type not allowed in /usr/lib Will Briggs <will@××××××××××××××××××.au>