some observations about packages in repos

[ Thread Index | Date Index | More lists.tuxfamily.org/slitaz Archives ]


To all developers,

I was cooking some new applications and I made some observations which I would like to share with all of you. These have helped me to further reduce the sizes of few existing packages in the repos (in some cases by a huge margin).

First, the  packages that I played with and that can be further trimmed include:

1) Gimp :       repo size=9.7M  :  proposed=6.3MB
2) Abiword :   size=3.6M   :  proposed=2.6MB
3) Gnumeric: size=3.2M   :  proposed=2.2MB
4) Cups:        size=3.4M   :  proposed=2.6MB
5) Ghostscript: size=12.2M :  proposed=5.9MB
6) FFmpeg:      size=5.7M :  proposed=1.4MB
7) Mplayer:      size=3.4M :  proposed=1.7MB
8) Xine-lib:     size=3.8M :  proposed=2.0MB
9) Xine-ui:       size=1.1M :  proposed=560KB
10) Kino:         size=7.7M :  proposed=900KB

Here are my observations:
1) Tazwok (version I have) executes "strip-all" on all dirs except $fs/usr/lib where it only strips the *.so and *.*a files. There are few programs that package binaries in $fs/usr/lib too e.g. Gimp and Cups. By adding "strip-unneeded" in gimp and cups receipt, I got the proposed size.

2) Non-standard locales: Abiword has non-standard locale format in $fs/usr/share; so all the locales got packaged in. Following the style in all other receipts (to pkg few locales); abiword can be reduced.

3) "enable-shared" : This compilation option can be quite useful in reducing redundancy. I have seen that in some cases it reduces the size by a lot because all the binaries in the package are compiled against the same shared libs. Otherwise every binary uses the redundant code. FFmpeg is a good example.

4) Compiling against shared ffmpeg: Most of the multimedia applications package package their own exact copy of the latest ffmpeg e.g. xine, mplayer, kino, gstreamer etc. I compiled all of them against the shared ffmpeg (latest svn copy). As compiling against shared ffmpeg can get quite complicated if ffmpeg svn copy is missing few files, I guess we should have two different packages: one with ffmpeg inside and one with shared ffmpeg (fat-free version). I have receipts for all these packages with shared ffmpegs ( for gstreamer framework too).

5) Ghostscript: This was compiled with initialization on; so the size was so big. Just by disabling compilation inits we can reduce the size. This used to be default till 8.56 series. Most distributions still use the same.. Furthermore, CMAPs in current Ghostscript package are not GPLed, so all other distributions provide it as a separate package. They are usually useful for printing Asian (Japanese, Chinese and Korean) characters. So we may split it into an optional "SUGGESTED" dependency.

6) Some help docs or sample files run in several MBs e.g. kino. I have put them as optional "SUGGESTED" and as a seprate kino-doc pkg. Xine-ui has a sample ".avi" file.

7) Gnumeric: python module for python programming in Gnumeric can be disabled (also perl)

If maintainers of these packages are fine with my suggestions, I would commit these into wok after 2.0 release.

Thanks and looking forward to 2.0 release,

Rohit



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/