From: Rob Landley <rob@landley.net>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] toybox: new package
Date: Wed, 24 Sep 2014 09:57:17 -0500 [thread overview]
Message-ID: <5422DBCD.10505@landley.net> (raw)
From: Rob Landley <rob@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@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"
next reply other threads:[~2014-09-24 14:57 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-24 14:57 Rob Landley [this message]
2015-02-11 21:24 ` [Buildroot] [PATCH 1/1] toybox: new package Angelo Compagnucci
2015-02-11 21:37 ` Rob Landley
2017-01-24 9:33 ` Angelo Compagnucci
2017-01-24 10:10 ` Peter Korsgaard
2017-01-25 23:00 ` Rob Landley
2017-01-26 7:25 ` Peter Korsgaard
2017-01-26 7:31 ` Angelo Compagnucci
2017-01-26 7:48 ` Peter Korsgaard
2017-01-26 7:52 ` Angelo Compagnucci
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5422DBCD.10505@landley.net \
--to=rob@landley.net \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox