Projects
New Ticket     Wiki     Browse Source     Timeline     Roadmap     Bug Reports     Search

Ticket #16111 (closed defect: fixed)

Opened 4 months ago

Last modified 44 hours ago

python25-2.5.2 builds differing dylib and framework libraries

Reported by: blb@… Owned by: mww@…
Priority: High Milestone: Port Bugs
Component: ports Version: 1.7.0
Keywords: python24 python30 framework Cc: raimue@…, ram@…, macsforever2000@…, myschizobuddy@…, andrea.bedini@…
Port: python25

Description

With the new framework build for python25, it installs both a ${prefix}/Library/Frameworks/Python.framework/Versions/2.5/Python and a ${prefix}/lib/libpython2.5.dylib. It turns out these two are incompatible with one another.

For example, if you install a module which includes a compiled component (eg, subversion-python25bindings has svn.fs, which is in _fs.so) and links against the Python.framework/.../Python, and something else compiled against /opt/local/lib/libpython2.5.dyllib (eg, ajp-wsgi), things will not go well. I see the error

Fatal Python error: Interpreter not initialized (version mismatch?)

when using ajp-wsgi to run Trac (which uses the afore-mentioned subversion-python25bindings).

I believe the proper solution is to build python25 like Apple builds python on the OS, namely, by simply symlinking what's in ${prefix}/lib to the Python.framework/.../Python file. Will attach a tarball which includes a Portfile diff and an updated files/patch-Makefile.pre.in.diff which accomplishes this. FYI, revision is 7 since I bumped it to 6 for the update in ticket #9831.

Attachments

python25-16111.tar.bz2 (1.1 KB) - added by blb@… 4 months ago.
tarball containing diff to Portfile and updated files/patch-Makefile.pre.in.diff
python25.diff (1.5 KB) - added by blb@… 2 months ago.
diff to Portfile

Change History

Changed 4 months ago by blb@…

tarball containing diff to Portfile and updated files/patch-Makefile.pre.in.diff

  Changed 4 months ago by ram@…

  • cc ram@… added

Cc Me!

follow-up: ↓ 3   Changed 4 months ago by raimue@…

  • keywords python24 python30 added

I adapted this behavior from the old python24 port, so I suppose this also applies to python24 and python30.

in reply to: ↑ 2   Changed 4 months ago by blb@…

Replying to raimue@macports.org:

I adapted this behavior from the old python24 port, so I suppose this also applies to python24 and python30.

Most likely, not sure what kinds of changes could affect this for 2.6 and 3.0, but 2.4 I'm sure will need it as well. Fortunately, it isn't too big of a deal, as this removes all libpython.dylib building then just symlinks it instead. I just did 2.5 since that's what I use and it's the latest stable version of Python.

  Changed 4 months ago by macsforever2000@…

  • cc macsforever2000@… added

Cc Me!

  Changed 3 months ago by ajb78@…

  • cc ajb78@… added

Cc Me!

  Changed 3 months ago by ajb78@…

  • cc ajb78@… removed

Cc Me!

  Changed 2 months ago by blb@…

  • keywords python25 removed
  • port set to python25

Looks like the first set was a bit overzealous on creating ${prefix}/lib symlinks; attaching a new patch (rooted in dports/lang/python25) to update Portfile and files/patch-Makefile.pre.in.diff again, only creating libpython${branch}.dylib.

  Changed 2 months ago by blb@…

Ack, that last one isn't right either; the files/patch-Makefile.pre.in.diff is for #9831, this update actually removes the need for that diff at all (but #9831 needs a new one).

Changed 2 months ago by blb@…

diff to Portfile

  Changed 2 months ago by myschizobuddy@…

  • cc myschizobuddy@… added

Cc Me!

  Changed 2 months ago by myschizobuddy@…

can you please post the complete portfile (not diff) and files folder thankyou

  Changed 6 weeks ago by andrea.bedini@…

  • cc andrea.bedini@… added

Cc Me!

  Changed 44 hours ago by blb@…

  • status changed from new to closed
  • resolution set to fixed

Fixed in r43000 (maintainer timeout).

Note: See TracTickets for help on using tickets.