<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 07/12/2011 01:02 PM, Terry Lang wrote:<br>
    <blockquote cite="mid:4E1CA85D.5060307@lego.berkeley.edu"
      type="cite">
      <pre wrap="">         I use Chimera as a back end library for a bunch of my code.  I 
occasionally run into a function that an external library, scipy for 
example, has already implemented.  I have found the chimera flag that 
allows me to import python libraries for use.  However, because numpy is 
already distributed with Chimera, importing libraries that depend on 
numpy is almost _impossible_.  We run into a variety of version and 
compiler issues that are very difficult to work around.  Would it be 
possible to get more transparent documentation on how the numpy library 
is compiled and when it will be upgraded in a particular release?  
(NOTE:  We actually have this problem right now, so even an email with a 
description of the current nightly build set up would be SUPER helpful!)</pre>
    </blockquote>
    <br>
    So as you can tell, it's has not been a priority for chimera to be
    binary compatible with other software packages.  And if you are
    installing your own Python packages to work with chimera, it is much
    easier to install them with chimera's Python into chimera's Python
    library (using chimera --noguil --script "setup.py ...") and use
    "chimera --nogui" to run scripts that use both chimera and other
    packages.  Python packages, that have C code in them, should work,
    but ones that have C++ and Fortran code might not work.<br>
    <br>
    numpy is updated on an ad hoc basis.  We are generally conservative
    about updating it, but it can be updated for any reason (bug fixes,
    new version of Python needs new version, some other foreign package
    needs a newer version, etc.).  And that can be said for any of the
    30+ foreign software packages that are included with chimera.  In
    the near term, I don't anticipate any updates unless we get requests
    for them (hint), except possibly for updating Python to the latest
    2.7 version.  The version numbers of the foreign packages are found
    in <a
href="http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/mk/foreign.make">http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/mk/foreign.make</a>,
    except for Python, Tcl/Tk, Tix, and Togl, which are in <a
href="http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/mk/config.make">http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/mk/config.make</a>. 
    And configuration options for the foreign packages are in the
    per-package GNUmakefile in <a
      href="http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/foreign">http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/foreign/</a>.<br>
    <br>
    The compiler flags for various platforms are found in <a
      href="http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/mk/os.make">http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/mk/os.make</a>. 
    The compiler versions used are not documented and may change.  That
    said, on Windows, we use Microsoft Visual Studio 2008 because that
    is what the python.org version uses.  On Mac OS X we use the
    standard compiler for the OS version, so the 32-bit version is built
    on Mac OS X 10.5.8 with Xcode 3.1.2 and the 64-bit version on Mac OS
    X 10.6 with Xcode 3.2.6.  And then there's Linux.  There are so many
    different versions of Linux that we build on a lowest common
    denominator system to get the forward-compatibility advantage of
    linking with an older C runtime.  Currently, we are building 32-bit
    Linux binaries on a Debian 4 system with gcc 4.1.2 and plan to move
    the 64-bit builds to a Debian 4 64-bit system, but currently build
    on Red Hat Enterprise Linux 5.6 system with gcc 4.2.3.  I don't see
    us changing from Debian 4 for a long time, but we might update our
    version of gcc to get C++0x features and other improvements -- no
    timetable for that though.<br>
    <br>
    Our nightly build setup checks out a fresh copy of chimera on each
    platform every evening and then compiles everything and builds a
    chimera installer.  The "mother" process waits for each build to
    complete and decides if the build was a success if the installer was
    built or not.  Then the successful builds are added to the web
    site.  The identical mechanism is used to build releases by adding
    an argument saying what kind of release it is.  For the gory
    details, start with <a
href="http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/tools/build_chimera">http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/tools/build_chimera</a>.<br>
    <br>
        HTH,<br>
    <br>
        Greg<br>
  </body>
</html>