[Pythonmac-SIG] Private frameworks - BINGO!

Jack Jansen Jack.Jansen@oratrix.com
Fri, 23 Aug 2002 22:22:21 +0200


Just after sending my previous mail I though I'd have a look at 
how OmniGraffle links to its frameworks (by using "otool -l"), 
and it uses the "@executable_path/../Frameworks/" construct 
we've discussed here before.

Feeling adventurous I decided to first move one of its 
frameworks off into the void. As expected it didn't start. Then 
I moved that framework into /Library/Frameworks and, lo and 
behold, everything works!! So, this may point us to a way to 
have our cake and eat it too.

Some problems remain, though. I think that building everything 
with the @executable_path would work equally well as what we 
currently have *if you install the framework in one of the 
standard locations*. It will also immediately solve the 
BuildApplication problem: in that case we will copy selected 
parts of the normal Python framework into a private framework in 
the output application.

Unfortunately it doesn't necessarily solve the problem we're 
looking at: installing the whole bunch in a random location. The 
reason is that we have a number of programs that refer to the 
framework: PythonIDE.app, PythonLauncher.app (although it 
currently has a hardcoded path it could link against the 
framework, even if only to obtain it's pathname) and the hidden 
Python.app. And then there's the python commandline tool, also 
hidden inside the framework at the moment.

We could solve this be sprinkling symlinks all over the place, 
but I'm not sure I like that....

Hmm, maybe it isn't such a good idea after all. But feel free to 
ponder about it and come up with nifty solutions....
--
- Jack Jansen        <Jack.Jansen@oratrix.com>        
http://www.cwi.nl/~jack -
- If I can't dance I don't want to be part of your revolution -- 
Emma Goldman -