On Wed, Jan 8, 2014 at 5:05 PM, Luc Bourhis <luc_j_bourhis@mac.com> wrote:
The dispatcher's main job is to set PYTHONPATH, DYLD_LIBRARY_PATH on MacOS X, LD_LIBRARY_PATH on Linux and PATH on Windows, as well as LIBTBX_BUILD. Thus it can be argued that it is a by-product of the way the cctbx installs itself on a system.

Actually, a major justification for the dispatchers was to avoid the "pollution" of the environment in ways that might interfere with other packages.  (This is why the default behavior is also to completely wipe any existing values of LD_LIBRARY_PATH, etc.)  Again, this mainly makes deployment of Phenix easier.

By that I mean that if we installed it with distutils like your typical Python package, then /usr/bin/python would be able to run any cctbx-based script because the cctbx shared libraries and Python modules would be where /usr/bin/python could find them, and we would just need to decide on where to put libtbx_env inside site_packages.

The reason why we don't do this is simply to speed development - there's no distinction between the working code (i.e. SVN checkout) and runtime code.  Otherwise we might have to run "python setup.py install" every time we want to test even the most minor change.  There are almost certainly other ways to avoid this requirement, but that was the logic at the time.

For historical reasons, this is not the path that was taken. It can certainly be rectified but as Nat said, Phenix takes precedence here, since the cctbx effort ultimately relies on the funding of Phenix. As long as the Phenix people aren't comfortable with removing -Qnew or with making the installation rely on distutils, then so be it.

It's not a matter of comfort: the limitation is what we have time for (or money, which is basically the same thing).  Removing -Qnew is probably easy enough to be justified if it makes CCTBX as a whole more usable.  I don't think anyone would argue against converting to use distutils on technical grounds; we're simply too busy.  I can't speak for the other developers, but if someone else outside our group were willing to do this we would probably not complain and might even encourage it, as long as it didn't interrupt our day jobs.

-Nat