Taj Morton wrote: >On 11/17/05, Craig Ringer <craig at postnewspapers.com.au> wrote: > > >>Both tools are used by the supplied Python scripts. The Python interface >>its self does not require them, nor does the core application. >> >> >Are these dependencies at compile-time or at runtime? E.g., if Python >isn't available at compile time, will the binary use Python on a >computer with Python, or will I need to recompile Scribus? What about >TKinter or python-imaging? > > The dependency on Python is at compile time but only applies to a plugin not the main app; the requirement for Tkinter and Python-imaging is at runtime only. If you've built Scribus on a system with Python, then run it on a system without, Scribus will gracefully ignore the Python support (it'll whine on the console when it fails to load the plugin, but that's it) and go on with life. The only user-visible difference will be a missing "Script" menu and Python preferences panel.
>>Are you planning on shipping your own copy of Python? >> >> >I wasn't planning on it...would that be a good idea, though? > If you can possibly avoid it, you probably should. If you bundle your own, the user won't be able to use third party Python modules installed on their system, such as PyQt, and you'd have to bundle Tkinter (and possibly Tcl and Tk). Yuck. Huge, and ugly. The problem with relying on the system Python is that Python's soname is incremented with each minor release. The language is very backwards compatible, as is the library API, but the library ABI is not. Given this, a user with Python 2.4 will be unable to use the Python embedding support if the Python plugin was compiled against Python 2.3 . The only way I can think of to work around this is to build _two_ copies of the Python plugin, one against 2.3 and one against 2.4 . This would require some serious autohell-fu or manual build hacking, require you to parallel-install two versions of Python, and still wouldn't help users with 2.2 or 2.5 when it comes out. My suggestion would be to build against 2.4 and document the fact that Python support in Scribus will be unavailable without a local install of Python . Similarly, I'd tell the user that they must install python-imaging and Tkinter to get full functionality out of the bundled scripts. -- Craig Ringer
