Roger Binns wrote:
Chris Barker wrote:
/lib/ld-linux.so.2 is one thing you should expect to find on any
moderately recent linux distro (Redhat had it as of 7.0 at least)
You should probably be aware of what Ed is trying to do.
I understood what he is trying to do. My point was that it may not be necessary to statically link absolutely everything, just most things ;-). I don't know all that much about this, but It think ld-linux.so.2 is one thing that's pretty consistent across distributions. I partly say that because I have a comercial app (matlab) that was distributed for RedHat 5, and I've run it on Redhat 7.2 and now Gentoo 2004.2. It requires /lib/ld-linux.so.1 ! (yes it was a bit of a pain to get working on Gentoo. Gentoo has a bug in their compat package, which is suppose hasn't been fixed because not a lot of Gentoo users are running old pre-compiled binary apps)
> Obviously just doing a freeze on say Redhat 8 won't work since
> newer distros will require various compat libraries to be installed
yes, that was already mentioned before in this thread. I think he was willing to accept that limitation. Most distros do provide the compat libs, and they will probably be installed by a "install everything" installer. Other wise the user can install it if required. After all, that's how windows does it, Newer systems include older libs by default.
The difference is that with Linux, there is often an expectation that everything will get re-compiled for the new system. This of course only works with open source, but even then, only works if the developer has provided an idiot-proof build system, and the users don't mind typing:
./configure && make && make install
This is a LOT messier with a wxPython app, as you could potentially need to build: python, GTK, wxGTK, and wxPython, and there are various versions of each of these.
There has been some discussion of developing a wxPython runtime, that would include python and wxPython. If we did that, that might be a place to focus on making it as independent of other libraries as possible.
old ones such as Mandrake 7 and new ones such as FC2.
If he only has to go that old, he's probably OK, at least with ld-linux!
Consequently he is trying to build up everything needed including
*all* libraries (including ld-linux) into a single directory with
absolutely no external dependencies and have $LD_LIBRARY_PATH
and other linker type stuff done to ensure only files out of
that directory are used.
That appears to be the approach commercial software takes. Here's a sample of what matlab has with it:
/usr/local/matlab5/sys/os/lnx86/libm.so.5
/usr/local/matlab5/sys/os/lnx86/libstdc++.so.27
/usr/local/matlab5/sys/os/lnx86/libstdc++.so.27.2.8
/usr/local/matlab5/sys/os/lnx86/libc.so.5.4.38
/usr/local/matlab5/sys/os/lnx86/libg++.so.27
/usr/local/matlab5/sys/os/lnx86/libm.so.5.0.9
/usr/local/matlab5/sys/os/lnx86/libXpm.so.4
/usr/local/matlab5/sys/os/lnx86/libg++.so.27.2.8
/usr/local/matlab5/sys/os/lnx86/libc.so.5
/usr/local/matlab5/sys/os/lnx86/libXpm.so.4.9
Personally I think it is an admirable goal, and exactly what
I want for the Linux/wxPython stuff I distribute as well.
However I don't think it is possible.
ALL linux distros, probably not, but MOST FAIRLY recent probably is possible.
> The first attempt at a fix was the Linux Standards Base
(LSB).
I'm very disappointed in that, but I suppose it's to be expected. On the one hand, the distros are competing on what they provide, and on the other, a _binary_ interface is kind of anathema to hard core open-sourcers.
Making them boot from a CD every time they want
to work on their development project is not feasible.
I think the suggestion was that you could provide a demo that worked that way, and once they saw how nice your product is, they'd be willing to go through a little pain to get it installed, which I think is a good idea.
However, it sounds like you want to create a tool for developers to write apps in, and the issue is probably not so much to make it easy for those developers, but to make it easy for the users of the apps created with your tools, and thus you need to provide a pretty complete runtime that they can then re-distribute. I think the wxPython Run time idea would be good here!
-Chris
···
--
Christopher Barker, Ph.D.
Oceanographer
NOAA/OR&R/HAZMAT (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker@noaa.gov