Mercurial > hg > aboriginal
changeset 1477:431d5b4ee537
Switch from busybox defconfig to baseconfig-busybox selecting just what we need, with a config variable to use defconfig instead if you really want that.
Busybox defconfig doesn't build on Ubuntu 11.10 because of an app that didn't
exist until recently breaking. Busybox keeps ininitely adding more and more
stuff (with the Katamari Damacy theme playing), and it becomes more of a
portability issue keeping it all working. Plus, most if it should not be
in busybox anyway.
I've revived my toybox project, and would eventually like to be able to use
that here anyway, and a specific set of functionality is easier to replace
than a moving target.
This is an experimentally determined defconfig good enough to build aboriginal
and linux from scratch, plus things like vi and shell history that I obviously
missed. I'll probably add more stuff later.
If I still want to do static defconfig busybox binaries for each target,
I can do them as native builds via hdc.
author | Rob Landley <rob@landley.net> |
---|---|
date | Tue, 27 Dec 2011 08:58:16 -0600 |
parents | a4714d7d6769 |
children | c1d26568dbb8 |
files | config sources/baseconfig-busybox sources/patches/busybox-usehush.patch sources/sections/busybox.build |
diffstat | 4 files changed, 202 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/config Thu Dec 22 16:49:03 2011 -0600 +++ b/config Tue Dec 27 08:58:16 2011 -0600 @@ -130,6 +130,16 @@ # export HOST_EXTRA="lex yacc" +# Get your commands, for both host-tools and simple-root-filesystem, from: +# +# busybox - busybox configured with with sources/baseconfig-busybox +# busybox_defconfig - busybox configured with defconfig +# toybox - toybox defconfig (plus busybox with baseconfig-toybox-todo) +# +# Default is "busybox". + +# export TOYBOX=busybox + # Set this to continue despite failed patches. # export ALLOW_PATCH_FAILURE=1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/baseconfig-busybox Tue Dec 27 08:58:16 2011 -0600 @@ -0,0 +1,177 @@ +#needed for od -t option in busybox build +CONFIG_DESKTOP=y +CONFIG_LFS=y +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_GUNZIP=y +# gzip is used in linux kernel initramfs code +CONFIG_GZIP=y +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +# needed for old format tar archive (genext2fs) +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +CONFIG_BASENAME=y +CONFIG_CAT=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_DIRNAME=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_ENV=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_LN=y +CONFIG_LS=y +# host-tools.sh uses ls -tc to check for tarballs +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_MKDIR=y +CONFIG_MV=y +CONFIG_OD=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_RM=y +CONFIG_RMDIR=y +CONFIG_SHA1SUM=y +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y +CONFIG_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +# stat -c is used by sources/toys/gen_initramfs_list.sh +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_TAIL=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_TRUE=y +CONFIG_UNAME=y +CONFIG_UNIQ=y +CONFIG_WC=y +CONFIG_WHOAMI=y +CONFIG_YES=y +CONFIG_FEATURE_AUTOWIDTH=y +CONFIG_MKTEMP=y +CONFIG_WHICH=y +CONFIG_AWK=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_GREP=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y +CONFIG_HOSTNAME=y +CONFIG_FEATURE_TEST_64=y + +# for root file system use +CONFIG_INIT=y +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_MDEV=y +CONFIG_MOUNT=y +CONFIG_MOUNTPOINT=y +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_ROUTE=y + +# Interactive command shell (bash hasn't got history without ncurses) + +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_TAB_COMPLETION=y +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_ASK_TERMINAL=y + +CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_FEATURE_SH_IS_ASH=y +CONFIG_FEATURE_TEST_64=y +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_EXPAND_PRMT=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_BASH_COMPAT=y +CONFIG_SH_MATH_SUPPORT=y +CONFIG_SH_MATH_SUPPORT_64=y +CONFIG_FEATURE_SH_EXTRA_QUIET=y + +# LFS build + +CONFIG_SYNC=y +CONFIG_HEAD=y +CONFIG_WGET=y +CONFIG_CHGRP=y +CONFIG_COMM=y +CONFIG_LESS=y +CONFIG_LOGNAME=y +CONFIG_SPLIT=y +CONFIG_TEE=y +CONFIG_MAN=y + +# native-build.sh +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y + +CONFIG_FTPD=y +CONFIG_FEATURE_FTP_WRITE=y +CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_TIME=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_TAC=y +CONFIG_CHROOT=y +CONFIG_SWITCH_ROOT=y +CONFIG_FEATURE_UMOUNT_ALL=y +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MOUNT_LOOP_CREATE=y +CONFIG_LOSETUP=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +CONFIG_FEATURE_CPIO_P=y +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=4096 +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_ASK_TERMINAL=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +
--- a/sources/patches/busybox-usehush.patch Thu Dec 22 16:49:03 2011 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -diff -ru busybox/shell/Config.src busybox.bak/shell/Config.src ---- busybox/shell/Config.src 2010-08-22 19:44:36.000000000 -0500 -+++ busybox.bak/shell/Config.src 2010-11-06 20:55:02.000000000 -0500 -@@ -219,7 +219,7 @@ - - choice - prompt "Choose which shell is aliased to 'sh' name" -- default FEATURE_SH_IS_ASH -+ default FEATURE_SH_IS_HUSH - help - Choose which shell you want to be executed by 'sh' alias. - The ash shell is the most bash compatible and full featured one.
--- a/sources/sections/busybox.build Thu Dec 22 16:49:03 2011 -0600 +++ b/sources/sections/busybox.build Tue Dec 27 08:58:16 2011 -0600 @@ -4,9 +4,17 @@ # Build busybox -#make allyesconfig KCONFIG_ALLCONFIG="${SOURCES}/trimconfig-busybox" && -make defconfig && -cp .config "$WORK"/config-busybox && +if [ "$TOYBOX" == busybox_defcofnig ] +then + make defconfig && + # breaks on ubuntu 11.10 + sed -i -e 's/^\(CONFIG_UBI.*\)=y/# \1 is not set/' .config && + cp .config "$WORK"/config-busybox || dienow +else + getconfig busybox > "$WORK/config-busybox" && + make allnoconfig KCONFIG_ALLCONFIG="$WORK/config-busybox" || dienow +fi + LDFLAGS="$LDFLAGS $STATIC_FLAGS" make -j $CPUS $VERBOSITY $DO_CROSS && make busybox.links || dienow @@ -23,3 +31,7 @@ fi [ ! -f "$INSTDIR/$i" ] && (ln -sf busybox "$INSTDIR/$i" || dienow) done + +# Reset error condition, the last file already existing is not an error + +true