26. jan. 2012 09.38 skrev Hui Zhang <[email protected]>: > why Mer chose GNU coreutils but not busybox at first? > > if busybox can boot Mer,what will you test both scenarios for? It's quite simple, really:
1) Busybox can't be used to compile typical source packages, as an example, anything that uses ./configure (autotools) will break, so we need to have the GNU utilities around for building at least 2) Some softwares that vendors may want to use may not function well with Busybox due to requiring specific features that GNU utils have, but for specific use cases, busybox is good - such as very small systems. 3) Packages should work/install both on busybox and on GNU utilities, as we need to have them both while building software (we actually make an image of a small Mer instance when we build to build software) and working on device 4) Busybox can help in scenarios, such as STBs, where GPLv3 license is not friendly for vendors due to digital rights management. Busybox is GPLv2, GNU utilities are mostly GPLv3 these days, but we maintain an old GPLv2 version still. 5) Not everyone would want busybox in their images and would prefer a full unix system, think for example netbook. BR Carsten Munk > > cheers, > zhanghui > > 在 2012-1-26 下午2:02,"Carsten Munk" <[email protected]>写道: > >> 26. jan. 2012 03.12 skrev Hui Zhang <[email protected]>: >> > Hi Carsten, >> > Maybe I can do the experiment on ARM if I build the ARM busybox >> > binaries? >> > Or will you provide the armv7l busybox binaries later? >> I plan on providing binaries for all Mer platforms when I've confirmed >> it can actually boot :) >> >> The idea is to be able to run Mer either with busybox or our current >> GNU tools and testing both scenarios. >> >> BR >> Carsten Munk >> > >> > Thank you! >> > >> > Best regards, >> > zhanghui >> > >> > On 1/25/12, Carsten Munk <[email protected]> wrote: >> >> 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 >> >> >> >> >> >> >> > >> > >> >> >
