[Buildroot] [PATCH 1/1] toybox: new package

Rob Landley rob at landley.net
Wed Feb 11 21:37:41 UTC 2015


Sorry, shortly after I sent that patch toybox got merged into Android
(and became an optional package in Tizen), and I've been paying
attention to those:

https://lwn.net/Articles/629362/
https://wiki.tizen.org/wiki/Toybox

I'm doing a new release this weekend, I can send a buildroot patch
updated for that version.

Thanks,

Rob

On 02/11/2015 03:24 PM, Angelo Compagnucci wrote:
> Hello list, Rob,
> 
> Any news on this patch? It would be really great to have toybox in buildroot!
> 
> Sincerely, Angelo
> 
> 2014-09-24 16:57 GMT+02:00 Rob Landley <rob at landley.net>:
>> From: Rob Landley <rob at landley.net>
>>
>> Add toybox.
>>
>> For toybox to show up you have to switch on largefile and wchar in uClibc
>> (or just use musl or glibc). To switch off busybox you have to disable
>> busybox init in the system settings.
>>
>> Signed-off-by: Rob Landley <rob at landley.net>
>> ---
>>
>>  package/Config.in                            |    1
>>  package/toybox/Config.in                     |   24 ++
>>  package/toybox/toybox-0001-portability.patch |   14 +
>>  package/toybox/toybox.config                 |  169 +++++++++++++++++
>>  package/toybox/toybox.mk                     |   26 ++
>>  5 files changed, 234 insertions(+)
>>
>> This is the same patch as
>> http://lists.busybox.net/pipermail/buildroot/2014-September/106763.html
>> with more standard header info.
>>
>> --- /dev/null   2014-08-15 22:36:13.247368743 -0500
>> +++ buildroot/package/toybox/Config.in  2014-09-20 18:07:19.821569067 -0500
>> @@ -0,0 +1,24 @@
>> +config BR2_PACKAGE_TOYBOX
>> +       bool "Toybox"
>> +       depends on BR2_LARGEFILE && BR2_USE_WCHAR
>> +       help
>> +         Toybox combines common Linux command line utilities together into
>> +         a single executable that's simple, small, fast, and reasonably
>> +         standards compliant.
>> +
>> +         It was started by an ex-maintainer of BusyBox, and uses the same
>> +         "multicall binary configured at build time via menuconfig" approach,
>> +         but is a fresh implementation that uses no busybox code.
>> +
>> +         Toybox is licensed under a "zero clause" BSD variant which grants
>> +         the same blanket permissions but removes the requirement to copy
>> +         specific license text into derivative works, essentially placing
>> +         its code into the public domain.
>> +
>> +config BR2_PACKAGE_TOYBOX_CONFIG
>> +       string "Toybox configuration file:"
>> +       default "package/toybox/toybox.config"
>> +       depends on BR2_PACKAGE_TOYBOX
>> +       help
>> +         Specify an alternative config file location enabling a different
>> +         set of commands in toybox. The default file equals "make defconfig".
>> --- /dev/null   2014-08-15 22:36:13.247368743 -0500
>> +++ buildroot/package/toybox/toybox-0001-portability.patch      2014-09-20 18:44:23.813511200 -0500
>> @@ -0,0 +1,14 @@
>> +Workaround for uClibc's lack of posix-2008 compliance.
>> +
>> +diff -r 74b29c369420 lib/portability.h
>> +--- a/lib/portability.h
>> ++++ b/lib/portability.h
>> +@@ -74,6 +74,8 @@
>> + #include <unistd.h>
>> + #include <stdio.h>
>> + ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream);
>> ++char *stpcpy(char *dest, const char *src);
>> ++pid_t getsid(pid_t pid);
>> +
>> + // uClibc's last-ever release was in 2012, so of course it doesn't define
>> + // any flag newer than MS_MOVE, which was added in 2001 (linux 2.5.0.5),
>> --- /dev/null   2014-08-15 22:36:13.247368743 -0500
>> +++ buildroot/package/toybox/toybox.config      2014-09-20 18:38:24.897520539 -0500
>> @@ -0,0 +1,169 @@
>> +CONFIG_TOYBOX_CONTAINER=y
>> +CONFIG_TOYBOX_FIFREEZE=y
>> +CONFIG_TOYBOX_ICONV=y
>> +CONFIG_TOYBOX_FALLOCATE=y
>> +
>> +#
>> +# Posix commands
>> +#
>> +CONFIG_BASENAME=y
>> +CONFIG_CAL=y
>> +CONFIG_CAT=y
>> +CONFIG_CHGRP=y
>> +CONFIG_CHMOD=y
>> +CONFIG_CKSUM=y
>> +CONFIG_CMP=y
>> +CONFIG_COMM=y
>> +CONFIG_CP=y
>> +CONFIG_CP_MORE=y
>> +CONFIG_CP_MV=y
>> +CONFIG_CP_MV_MORE=y
>> +CONFIG_CPIO=y
>> +CONFIG_CUT=y
>> +CONFIG_DATE=y
>> +CONFIG_DF=y
>> +CONFIG_DF_PEDANTIC=y
>> +CONFIG_DIRNAME=y
>> +CONFIG_DU=y
>> +CONFIG_ECHO=y
>> +CONFIG_ENV=y
>> +CONFIG_EXPAND=y
>> +CONFIG_FALSE=y
>> +CONFIG_GREP=y
>> +CONFIG_HEAD=y
>> +CONFIG_ID=y
>> +CONFIG_ID_GROUPS=y
>> +CONFIG_ID_LOGNAME=y
>> +CONFIG_KILL=y
>> +CONFIG_KILLALL5=y
>> +CONFIG_LINK=y
>> +CONFIG_LN=y
>> +CONFIG_LS=y
>> +CONFIG_LS_COLOR=y
>> +CONFIG_MKDIR=y
>> +CONFIG_MKFIFO=y
>> +CONFIG_NICE=y
>> +CONFIG_NL=y
>> +CONFIG_NOHUP=y
>> +CONFIG_OD=y
>> +CONFIG_PASTE=y
>> +CONFIG_PATCH=y
>> +CONFIG_PWD=y
>> +CONFIG_RENICE=y
>> +CONFIG_RM=y
>> +CONFIG_RMDIR=y
>> +CONFIG_SLEEP=y
>> +CONFIG_SLEEP_FLOAT=y
>> +CONFIG_SORT=y
>> +CONFIG_SORT_BIG=y
>> +CONFIG_SORT_FLOAT=y
>> +CONFIG_SPLIT=y
>> +CONFIG_STRINGS=y
>> +CONFIG_TAIL=y
>> +CONFIG_TAIL_SEEK=y
>> +CONFIG_TEE=y
>> +CONFIG_TIME=y
>> +CONFIG_TOUCH=y
>> +CONFIG_TRUE=y
>> +CONFIG_TTY=y
>> +CONFIG_UNAME=y
>> +CONFIG_UNIQ=y
>> +CONFIG_UNLINK=y
>> +CONFIG_UUDECODE=y
>> +CONFIG_UUENCODE=y
>> +CONFIG_WC=y
>> +CONFIG_WHO=y
>> +CONFIG_XARGS=y
>> +
>> +#
>> +# Other commands
>> +#
>> +CONFIG_ACPI=y
>> +CONFIG_BLKID=y
>> +CONFIG_BZCAT=y
>> +CONFIG_CATV=y
>> +CONFIG_CHROOT=y
>> +CONFIG_CHVT=y
>> +CONFIG_CLEAR=y
>> +CONFIG_COUNT=y
>> +CONFIG_DOS2UNIX=y
>> +CONFIG_EJECT=y
>> +CONFIG_FALLOCATE=y
>> +CONFIG_FREE=y
>> +CONFIG_FREERAMDISK=y
>> +CONFIG_FSFREEZE=y
>> +CONFIG_HELP=y
>> +CONFIG_HELP_EXTRAS=y
>> +CONFIG_IFCONFIG=y
>> +CONFIG_INSMOD=y
>> +CONFIG_LOGIN=y
>> +CONFIG_LOSETUP=y
>> +CONFIG_LSATTR=y
>> +CONFIG_CHATTR=y
>> +CONFIG_LSMOD=y
>> +CONFIG_LSUSB=y
>> +CONFIG_MAKEDEVS=y
>> +CONFIG_MKPASSWD=y
>> +CONFIG_MKSWAP=y
>> +CONFIG_MODINFO=y
>> +CONFIG_MOUNTPOINT=y
>> +CONFIG_NETCAT=y
>> +CONFIG_NETCAT_LISTEN=y
>> +CONFIG_ONEIT=y
>> +CONFIG_PARTPROBE=y
>> +CONFIG_PIVOT_ROOT=y
>> +CONFIG_PMAP=y
>> +CONFIG_PRINTENV=y
>> +CONFIG_PWDX=y
>> +CONFIG_READAHEAD=y
>> +CONFIG_READLINK=y
>> +CONFIG_REALPATH=y
>> +CONFIG_REBOOT=y
>> +CONFIG_REV=y
>> +CONFIG_RFKILL=y
>> +CONFIG_RMMOD=y
>> +CONFIG_SETSID=y
>> +CONFIG_STAT=y
>> +CONFIG_SWAPOFF=y
>> +CONFIG_SWAPON=y
>> +CONFIG_SWITCH_ROOT=y
>> +CONFIG_SYSCTL=y
>> +CONFIG_TAC=y
>> +CONFIG_TASKSET=y
>> +CONFIG_TIMEOUT=y
>> +CONFIG_TRUNCATE=y
>> +CONFIG_UNSHARE=y
>> +CONFIG_UPTIME=y
>> +CONFIG_USLEEP=y
>> +CONFIG_VCONFIG=y
>> +CONFIG_VMSTAT=y
>> +CONFIG_W=y
>> +CONFIG_WHICH=y
>> +CONFIG_YES=y
>> +
>> +#
>> +# Linux Standard Base commands
>> +#
>> +CONFIG_DMESG=y
>> +CONFIG_HOSTNAME=y
>> +CONFIG_KILLALL=y
>> +CONFIG_MD5SUM=y
>> +CONFIG_MD5SUM_SHA1SUM=y
>> +CONFIG_MKNOD=y
>> +CONFIG_MKTEMP=y
>> +CONFIG_PASSWD=y
>> +CONFIG_PIDOF=y
>> +CONFIG_SEQ=y
>> +CONFIG_SU=y
>> +CONFIG_SYNC=y
>> +CONFIG_UMOUNT=y
>> +
>> +#
>> +# Toybox global settings
>> +#
>> +CONFIG_TOYBOX=y
>> +CONFIG_TOYBOX_SUID=y
>> +CONFIG_TOYBOX_FLOAT=y
>> +CONFIG_TOYBOX_HELP=y
>> +CONFIG_TOYBOX_HELP_DASHDASH=y
>> +CONFIG_TOYBOX_I18N=y
>> --- /dev/null   2014-08-15 22:36:13.247368743 -0500
>> +++ buildroot/package/toybox/toybox.mk  2014-09-20 18:38:17.509520730 -0500
>> @@ -0,0 +1,26 @@
>> +################################################################################
>> +#
>> +# toybox
>> +#
>> +################################################################################
>> +
>> +TOYBOX_VERSION = 0.4.9
>> +TOYBOX_SITE = http://landley.net/toybox/downloads
>> +TOYBOX_SOURCE = toybox-$(TOYBOX_VERSION).tar.bz2
>> +TOYBOX_LICENSE = Public domain, BSD-0c
>> +TOYBOX_LICENSE_FILES = LICENSE
>> +
>> +TOYBOX_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_TOYBOX_CONFIG))
>> +
>> +define TOYBOX_BUILD_CMDS
>> +       $(TARGET_MAKE_ENV) CROSS_COMPILE="$(TARGET_CROSS)" \
>> +               $(MAKE) -C $(@D)
>> +endef
>> +
>> +define TOYBOX_INSTALL_TARGET_CMDS
>> +       $(TARGET_MAKE_ENV) PREFIX="$(TARGET_DIR)" \
>> +               $(MAKE) -C $(@D) install
>> +endef
>> +
>> +
>> +$(eval $(kconfig-package))
>> diff --git a/package/Config.in b/package/Config.in
>> index 73ba86a..742a8c0 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -1,6 +1,7 @@
>>  menu "Target packages"
>>
>>         source "package/busybox/Config.in"
>> +       source "package/toybox/Config.in"
>>
>>  menu "Audio and video applications"
>>         source "package/alsa-utils/Config.in"
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
> 
> 
> 



More information about the buildroot mailing list