On Thu, 2005-02-10 at 11:50 -0800, bart at solozone.com wrote: > The option > ./configure --with-static-binary > ./configure --with-dynamic-binary > > would do it.
It doesn't appear to be that easy. I was just looking into it briefly yesterday. For one thing, you need to build a static Qt to link against, and any other libraries you need to link in statically must also be built as static libraries. If these libraries have associated data files, you need to ensure they can find them and package them with the static binary. Rather than a fully static binary, it's probably wiser to distribute a binary with the main dependencies linked in statically. There's no need to duplicate the functions from libc, libICE, xlib, and all the other basics, and in fact it's probably safer not. Then you need to get the darn thing to run. My build segfaulted on launch, and nowhere in the Scribus code either. I think it'd be good to have a static build for those who want a windows-style easy-to-install-but-bloated app. However, it doesn't look like it's just a rebuild, and I have other things to work on, so I'm going to bail on that. Any enthusiastic packager types might find this interesting ;-) I imagine that Scribus's use of dlopen might also complicate things. > These days of 200 GB hard disks, there is NO static binary that is TOO BIG > (or is there?) Absolutely. Remember that a static binary also uses a lot more memory, since it contains its own private copies of all the functions it uses from the libraries it statically links to. When that library is Qt or glibc, that's a lot of functions. It won't matter on a "big" machine other than making the app start up slower, but on systems with less memory that's going to hurt. -- Craig Ringer
