1 |
On Mon, Sep 14, 2009 at 16:52, Fabian Groffen <grobian@g.o> wrote: |
2 |
|
3 |
> This message is mainly for Mac OS X users, if you're not one of them, |
4 |
> you can probably just skim or even ignore this message. |
5 |
> |
6 |
> Over the last few weeks I've been messing/fighting with Python for the |
7 |
> "aqua" USE-flag that I added to it. Enabling this flag causes a |
8 |
> framework build of Python to be made. This actually results in a |
9 |
> Mach/Next-style installation hierarchy, referred to as a Framework. On |
10 |
> OSX these are used and typically found in /Library/Frameworks. |
11 |
> |
12 |
> The changes I've made are as follows. First, because we need the |
13 |
> framework and since we don't want many more frameworks, I decided to |
14 |
> install the framework in a non-standard location, which better suits our |
15 |
> UNIX-layout: $EPREFIX/usr/lib/Python.framework. This in contrast to |
16 |
> $EPREFIX/Library/Frameworks/Python.framework. Using the former part, we |
17 |
> hide the framework thing a bit, by partially swiping it under the carpet. |
18 |
> |
19 |
|
20 |
First of all, thanks for you hard work on that! |
21 |
|
22 |
next on the issue i hit |
23 |
|
24 |
i tried to emerge subversion with python bindings and it now builds(*) |
25 |
|
26 |
but if you tries to actually use it you will get python fatal error: |
27 |
$ hg convert 'svn://overlays.gentoo.org/proj/alt/trunk/prefix-overlay' |
28 |
/opt/gentoo-portage-mirror/ |
29 |
Fatal Python error: Interpreter not initialized (version mismatch?) |
30 |
Abort trap |
31 |
|
32 |
it seems that something built against different pythons |
33 |
|
34 |
otool -L /opt/gentoo/usr/lib/python2.6/site-packages/libsvn/_ra.bundle: |
35 |
<skip> |
36 |
/System/Library/Frameworks/Python.framework/Versions/2.6/Python |
37 |
(compatibility version 2.6.0, current version 2.6.1) |
38 |
|
39 |
^^^ what's wrong |
40 |
|
41 |
so i tried to find out why it linked to system's python instead of our one |
42 |
|
43 |
during subversion's python bindings build right args passed to linker |
44 |
"-F/opt/gentoo/usr/lib -framework Python" but ld skips that and uses system |
45 |
one |
46 |
|
47 |
from man ld: |
48 |
-framework name[,suffix] |
49 |
This option tells the linker to search for |
50 |
‘name.framework/name’ the framework search path. |
51 |
|
52 |
so it looks for "/opt/gentoo/usr/lib/Python.framework/Python" but there is |
53 |
no such file |
54 |
|
55 |
$ file /System/Library/Frameworks/Python.framework/Python |
56 |
/System/Library/Frameworks/Python.framework/Python: symbolic link to |
57 |
`Versions/Current/Python' |
58 |
|
59 |
i added /opt/gentoo/usr/lib/Python.framework/Python: symbolic link to |
60 |
`Versions/2.6/Python' |
61 |
|
62 |
and rebuild subversion and mercurial |
63 |
|
64 |
now it builds against our python, what's good |
65 |
|
66 |
but still doesn't work |
67 |
|
68 |
i'm trying to find out other issues |
69 |
|
70 |
(*) subversion ebuild missed "\" in |
71 |
emake -j1 DESTDIR="${D}" \ |
72 |
swig_pydir="${EPREFIX}$(python_get_sitedir)/libsvn" |
73 |
swig_pydir_extra="${EPREFIX}$(python_get_sitedir)/svn" |
74 |
install-swig-py \ |
75 |
|| die "Installation of Subversion SWIG Python |
76 |
bindings failed" |
77 |
|
78 |
(or maybe that's on "swig-py" can't check right now) |
79 |
|
80 |
-- |
81 |
Pavel |