*** For details on how to be removed from this list visit the ***
*** CCP4 home page http://www.ccp4.ac.uk ***
I suppose I'm asking a silly question, "Why is it so difficult to
make a binary which will work anywhere?" (or at least on allegedly
similar systems)
How do commercial software houses manage? Do they package all the
dependencies with their applications (perhaps this is why Adobe CS2
is >5GB)?
The amount of work involved is one reason why CCP4 resisted for many
years the demand for distributing executables, and I do know that
Paul & Kevin have spent (wasted?) a lot of time on this.
Phil
On 16 Jan 2007, at 11:12, Kevin Cowtan wrote:
*** For details on how to be removed from this list visit the ***
*** CCP4 home page http://www.ccp4.ac.uk ***
You're new here aren't you. :)
To recap, you can't use static lib because coot links into major
system
dependent components, like X and openGL. If it were possible to build
coot statically (which it isn't because the libraries it links to
cannot
themselves be built statically for this very reason), then it would
work
on one hardware configuration only.
It is potentially possible to make more of the dependencies static
than are currently static. But this requires building all of the
dependencies, some of which will require major changes to the build
system to make it happen.
What you are asking for is probably more like years than months of
work, and would take some serious software engineering expertise.
Phil Evans wrote:
On a different topics, is there really a reason for not using
static libraries? Dynamic libraries are a constant pain, both to
users and maintainers, because there are always different
versions on different machines (and of course we don't have all
our machines on the same OS version, like I imagine most people).
Also the obscure error messages "can't find right version of
libthingy-99.9.dylib" or whatever is deeply confusing to nearly
all of us.
I love stand-alone binaries with no external dependencies
Phil
On 11 Jan 2007, at 00:39, Donnie Berkholz wrote:
William Scott wrote:
Or you could just build ccp4-onlylibs-dev, use the include/
ccp4.setup-x
file in THAT, and source it before building coot. If you build
ccp4-onlylibs-dev with only static libs, then you can even get
rid of the
ccp4-onlylibs-dev installation afterwards.
That is the way I have been doing it.
Thanks for the suggestion -- it does provide an escape route. Being
forced to use static libraries is really a hack, though. It also
violates our packaging policy because it makes security updates
very
difficult. People are still finding static and bundled copies of
vulnerable zlib from a year ago and more. It also means
everyone's going
to be building essentially the same libraries twice for no good
reason.