For some deployment settings, like STBs, it's useful to have a low
disk footprint - not saying that the entire system should
automatically resort to a low footprint as some of the ways can hinder
development.

I've spent a little time trying to make a package of busybox (BusyBox
combines tiny versions of many common UNIX utilities into a single
small executable. It provides minimalist replacements for most of the
utilities you usually find in GNU coreutils, util-linux, etc. The
utilities in BusyBox generally have fewer options than their
full-featured GNU cousins; however, the options that are included
provide the expected functionality and behave very much like their GNU
counterparts.) for Mer that is usable to pick and choose what tools
busybox should replace.

As an example comparison, I've taken
http://releases.merproject.org/releases/0.20120120.1/kickstarts/mer-core-i586-base.ks
and made a version that uses busybox and one that doesn't.

non-busybox base:

117723476 bytes uncompressed (125mb approx), 42325108 bytes compressed
(tar.gz)  (41mb approx)

busybox base:

100345715 bytes uncompresed (105mb approx), 35444762 bytes compressed
(tar.gz) (34mb approx)

There is however still low-hanging fruit to sort out to bring disk
footprint even lower (from busybox base)

/ # rpm -qa --queryformat '%{name}-%{version}-%{release} %{size}\n' |
sort -k 2 -n

basesystem-8.1-1.2 0
busybox-symlinks-bzip2-1.19.3-42.1 0
busybox-symlinks-coreutils-1.19.3-42.1 0
busybox-symlinks-findutils-1.19.3-42.1 0
busybox-symlinks-grep-1.19.3-42.1 0
busybox-symlinks-gzip-1.19.3-42.1 0
busybox-symlinks-module-init-tools-1.19.3-42.1 0
busybox-symlinks-procps-1.19.3-42.1 0
busybox-symlinks-sed-1.19.3-42.1 0
busybox-symlinks-shell-1.19.3-42.1 0
busybox-symlinks-time-1.19.3-42.1 0
busybox-symlinks-util-linux-1.19.3-42.1 0
filesystem-2.4.31-1.3 0
fontpackages-filesystem-1.44-1.2 0
mer-release-0.2011-1.1 114
rootfiles-8.1-1.2 620
mkdevnodes-0.2-1.6 7356
boardname-0.7-1.6 10336
lsb-release-4.0-1.4 15929
libattr-2.4.46-1.7 16680
systemd-sysv-37-1.6 17987
nss-sysinit-3.12.10-1.14 29365
libacl-2.2.51-1.6 30660
libffi-3.0.9-1.6 34403
popt-1.16-1.6 45349
file-5.04-1.7 53503
libcap-2.19-1.6 56092
bzip2-libs-1.0.6-1.6 70496
libusb-0.1.12-1.6 75556
libudev-172-1.7 81859
elfutils-libelf-0.152-1.9 87624
pth-2.0.7-1.6 102900
usbutils-0.86-1.6 117371
zlib-1.2.5-1.31 120856
satsolver-tools-0.17.2-1.6 121275
pacrunner-0.3-1.8 129969
libgcc-4.6.3-1.20 132564
xdg-user-dirs-0.12-1.6 133805
gamin-0.1.10-1.10 147555
ncurses-5.9-1.6 150044
curl-7.22.0-1.6 152317
pkgconfig-0.25-1.6 154584
liblua-5.1.4-1.6 180728
expat-2.0.1-1.6 185652
deltarpm-3.5-1.6 199574
MAKEDEV-3.24-1.6 214603
ncurses-base-5.9-1.6 228619
xz-libs-5.0.3-1.10 229410
nspr-4.8.8-1.6 264792
readline-5.2-1.6 269804
libgpg-error-1.10-1.4 275908
libksba-1.2.0-1.7 283125
nss-softokn-freebl-3.12.10-1.14 295542
db4-utils-4.8.30-1.6 301652
dbus-libs-1.4.14-1.6 302400
passwd-0.78-1.7 346483
libcurl-7.22.0-1.6 361072
pcre-8.11-1.10 365164
libidn-1.23-1.2 394724
libgcrypt-1.5.0-1.4 542964
libsatsolver-0.17.2-1.6 549696
pam-1.1.1-1.6 628905
setup-2.8.15-3.1 664484
gawk-3.1.5-1.18 698307
rpm-libs-4.9.1.2-1.4 713664
sqlite-3.7.9-1.6 716928
ncurses-libs-5.9-1.6 720244
udev-172-1.7 748179
shadow-utils-4.1.4.3-1.6 823654
dbus-1.4.14-1.6 832267
libstdc++-4.6.3-1.20 943413
augeas-libs-0.8.1-1.6 950942
busybox-1.19.3-42.1 996712
rpm-4.9.1.2-1.4 1394314
prelink-0.4.2-1.6 1445458
db4-4.8.30-1.6 1572023
shared-mime-info-0.91-1.7 1769922
libuser-0.57.3-1.7 1771789
tzdata-2011e-1.2 1905154
file-libs-5.04-1.7 2478574
glib2-2.30.2-1.8 2807200
systemd-37-1.6 2854923
nss-3.12.10-1.14 2934157
v8-2.4.8-1.6 3503540
openssl-1.0.0c-1.12 3604903
hwdata-0.234-1.1 4045184
zypper-1.6.15-1.6 4532254
libxml2-2.7.8-1.6 4670066
gnupg2-2.0.4-1.8 5532451
libzypp-9.10.2-1.6 6692626
glibc-2.13-1.31 11128118
glibc-common-2.13-1.31 15202355

- such as removing pkg-config, the upcoming gamin removal, replacing
gawk with busybox, trim glibc-common, replacements for shadow-utils,
etc.

If anyone is interested to see the kickstart, see
http://pastie.org/3248513 , the packages are at
http://webui-ci.tspre.org/ -> projects -> home:Admin:busybox (setup
and busybox was modified)

BR
Carsten Munk


Reply via email to