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 |