[MacPorts] #11267: REVISION: Python25 readline variant and now builds as a framework
MacPorts
trac at macosforge.org
Wed Mar 5 13:46:49 PST 2008
#11267: REVISION: Python25 readline variant and now builds as a framework
----------------------------------------+-----------------------------------
Reporter: dinosaur at aztecfreenet.org | Owner: reiffert at macports.org
Type: enhancement | Status: assigned
Priority: Normal | Milestone: Port Enhancements
Component: ports | Version:
Resolution: | Keywords: Python readline Framework
----------------------------------------+-----------------------------------
Comment (by mdickens at nd.edu):
I applaud your efforts towards finally creating the framework Python
install. Here are my Initial Note and Comments from a quick review and
testing.
* I'm concerned with sym-linking $prefix/lib/python2.5 and
$prefix/include/python2.5 into the framework -- doing so is very non-
standard. For the former, both paths
($prefix/Frameworks/.../lib/python2.5 and $prefix/lib/python2.5) can
easily be made part of the default PYTHONPATH (before user additions via
the environment variable) - this was done by my changes to setup.py - and
Python is quite good about loading scripts and libraries from anywhere in
its path - so there really is no reason -for- doing this. Reasons for
avoiding it include:
* The "upgrade" command will not work properly for already-installed
py25-xxx ports that occupy $prefix/lib/python2.5 . Any of these currently
installed ports must be first deactivated, then the new python upgraded,
then those ports either activated or uninstalled/re-installed. At least
in my testing, trying to activate those ports (individually, doing in a
group didn't work) results in "Error: port activate failed: Not a
directory", even though the port was successfully activated. While this
might be a bug on 'port', it is off-putting to the end user.
* It adds complexity to the install and could be confusing to end-
users.
* If it ain't broke, don't fix it: it's simple to allow for both of
these paths to be part of the default PYTHONPATH, so why not leave things
alone?
* in "post-patch", there are two "Mac/IDLE/Makefile.in" ... only one is
needed.
* the manpages are not installed correctly, and do not work. I think the
correct Portfile line is:
{{{
system "cd ${destroot}${prefix}/share/man/man1 && \
ln -sf
${prefix}/Library/Frameworks/Python.framework/Versions/2.5/share/man/man1/python.1.gz
python2.5.2.1.gz"
}}}
* variant +universal does not work for me on Mac OS X 10.5.2, when doing
"make libpython2.5.dylib". It looks like someone added $(LDFLAGS) to the
dylib Makefile rule. When doing universal, the "-arch" command will be
added to LDFLAGS, which isn't compatible with Apple's libtool libtool can
handle this without any further flags. Please remove $(LDFLAGS) to fix
this problem. You can check the resulting .dylib file for universality by
executing "otool -vf XXX.dylib".
* Even removing the LDFLAGS, there is still an install error for me,
during destroot. I don't have time to debug this further right now.
* "destroot.target"
* should not contain compiling or linking commands, such as
"libpython2.5.dylib". This should be part of "build.target". Putting it
here saves a line of Portfile code, but that 1 line really doesn't matter.
* In the top-level Makefile, the target "frameworkinstall" is an alias
for the target "install", which in turn does the "maninstall". Thus
setting the "destroot.target" to "install" should be sufficient.
* python_select:
* Since "python_select" isn't part of Python, the port-activate note
should probably read something like "To fully complete your installation
and make python 2.5 the default, please run 'sudo python_select python25'
using the separate port 'python_select'." .
* Running "python_select --" results in errors.
* after removing python25, the symlinks created by python_select are
still around. This is not a good idea.
* While I like the intent of python_select, does MacPorts really want
to be distributing this level of new, untested, code that leaves issues to
be resolved?
* I think moving this "feature" into the Python25 (or other) Portfile
would be the wisest way ... that way the end results are owned by a Port,
and can be manipulated by said Port.
--
Ticket URL: <http://trac.macosforge.org/projects/macports/ticket/11267#comment:27>
MacPorts </projects/macports>
Ports system for Mac OS
More information about the macports-tickets
mailing list