<!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>