[Scribus] Success: compile Mac/Aqua from CVS without patches

Andreas Vox avox
Tue Mar 22 17:56:08 CET 2005


Craig Ringer wrote:
> There shouldn't be *too* much involved to do that now. You'd need to
> build with --enable-bundle to get the executable to do runtime lookups
> for resource locations (note: still not really tested). The rest of the
> bundle stuff is still on the TODO list so you'd need to make install,
> then copy the required resources into where Scribus expected to find
> them in the bundle. See scpaths.cpp for search paths (recently 
> reworked;
> needs some testing I haven't had time for.).

What if we included the .app skeleton in CVS, eg. parallel to 
scribus.desktop
and scribus.lsm?
Also we could just ./configure --prefix=$DIR/Scripus.app/Contents ...
and include a symbolic link from Scribus.app/Contents/MacOS/scribus to
Scribus.ap/Contents/bin/scribus

>
> You'd then need to collect up all library dependencies and drop them in
> the bundle's Frameworks (or lib, or whatever you prefer) directory, and
> use install_name_tool on the Scribus binary to make sure it looks for
> them relative to its own location. I have a script to do this bit; I'll
> tidy it up a little and post it later. Once the --enable-bundle stuff 
> is
> complete this should not be necessary.
>
> Once all that's done, fingers crossed, it should work. It'll be an
> ENORMOUS .app bundle (a Debug scribus build, a large bunch of libs, 
> etc)
> but it should work.

$ ls -l scribus/scribus
-rwxr-xr-x  1 vox  vox  70,292,740 22 Mar 02:02 scribus/scribus
$ du -sk /usr/local/lib/scribus/
30092   /usr/local/lib/scribus/
$ du -sk /usr/local/share/scribus/
4628    /usr/local/share/scribus/
$ otool -L scribus/scribus
scribus/scribus:
         /sw/lib/libjpeg.62.dylib (compatibility version 63.0.0, current 
version 63.0.0)
         /sw/lib/libart_lgpl_2.2.dylib (compatibility version 6.0.0, 
current version 6.16.0)
         /usr/local//lib/libfontconfig.1.dylib (compatibility version 
2.0.0, current version 2.4.0)
         /usr/local/lib/libfreetype6.dylib (compatibility version 6.2.0, 
current version 6.3.4)
         /sw/lib/libexpat.0.dylib (compatibility version 6.0.0, current 
version 6.0.0)
         /usr/lib/libcups.2.dylib (compatibility version 2.0.0, current 
version 2.5.0)
         /usr/lib/libssl.0.9.7.dylib (compatibility version 0.9.7, 
current version 0.9.7)
         /usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, 
current version 0.9.7)
         /sw/lib/liblcms.1.dylib (compatibility version 2.0.0, current 
version 2.14.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, 
current version 71.1.1)
         /sw/lib/libtiff.3.dylib (compatibility version 3.6.0, current 
version 3.6.1)
         libqt-mt.3.dylib (compatibility version 3.3.0, current version 
3.3.3)
         /sw/lib/libpng.3.dylib (compatibility version 3.0.0, current 
version 3.0.0)
         /usr/lib/libz.1.dylib (compatibility version 1.0.0, current 
version 1.0.0)
$ ls -l /sw/lib/libjpeg.62.0.0.dylib
-rwxr-xr-x  1 root  admin  134968 18 Sep  2004 
/sw/lib/libjpeg.62.0.0.dylib
$ ls -l /sw/lib/libart_lgpl_2.2.3.16.dylib
-rwxr-xr-x  1 root  admin  116712  7 Feb 19:22 
/sw/lib/libart_lgpl_2.2.3.16.dylib
$ ls -l /usr/local/lib/libfontconfig.1.0.4.dylib
-rwxr-xr-x  1 root  staff  532448 16 Mar 22:31 
/usr/local/lib/libfontconfig.1.0.4.dylib
$ ls -l /usr/local/lib/libfreetype6.3.4.dylib
-rwxr-xr-x  1 root  admin  1608544  4 Jan  2004 
/usr/local/lib/libfreetype6.3.4.dylib
$ ls -l /sw/lib/libexpat.0.5.0.dylib
-rwxr-xr-x  1 root  admin  328820 14 Mar 18:58 
/sw/lib/libexpat.0.5.0.dylib
$ ls -l /sw/lib/liblcms.1.0.14.dylib
-rwxr-xr-x  1 root  admin  526424 13 Mar 21:25 
/sw/lib/liblcms.1.0.14.dylib
$ ls -l /sw/lib/libtiff.3.6.1.dylib
-r-xr-xr-x  1 root  admin  882864 13 Mar 20:40 
/sw/lib/libtiff.3.6.1.dylib
$ ls -l /sw/lib/libpng.3.1.2.8.dylib
-rwxr-xr-x  1 root  admin  191244 13 Mar 20:37 
/sw/lib/libpng.3.1.2.8.dylib
$ ls -l /Developer/qt/lib/libqt-mt.3.3.3.dylib
-rwxr-xr-x  1 vox  vox  9935180 12 Feb 00:21 
/Developer/qt/lib/libqt-mt.3.3.3.dylib

$ echo 134968 + 116712 + 532448 + 1608544 + 328820 + 526424 + 882864 + 
191244 + 9935180| bc
14,257,204


So 70MB + 30MB + 4,5 MB + 14 MB makes 118,5 MB.

Stripping scribus reduces it to 4.4 MB (-65 MB) but then the plugins 
don't work any more.
Similar effects could be achieved with stripping the plugins in 
/usr/local/lib/scribus (- 20MB)
Probably linking Qt statically would also reduce the size since I don't 
think Scribus uses
all functions of Qt.

So we should try to achieve a bundle size near 20-30 MB.

Ciao
/Andreas





More information about the scribus mailing list