(As for MSYS, I somehow ended up with 4 separate installs of it due to each programming language bundling its own version!)
The toybox build produces a multicall binary, a "swiss-army-knife" program
that acts differently depending on the name it was called by (cp, mv, cat...).
Installing toybox adds symlinks for each command name to the $PATH.> I left busybox due to an argument over GPLv3.
Perhaps, something like:
«Toybox provides a set of utilities like cp, mv, cat, ..., which are each just links to a single binary (a "multicall binary").
In this way `toybox` is like a Swiss Army knife -- several tools combined into one.
Installing toybox adds a symlink for each [of the x] command name[s] to the $PATH.»
The last sentence might be better if it said how many symlinks are added?
Aside, Busybox uses the term "Swiss Army Knife" in their description. Using the same term like that, which isn't an inherent term, might open you up to a 'passing off' claim. Multi-tool, or EDC, may work?
I am now very curious how you arrived at this conclusion. Did you make use of any LLM? If so, which model and what prompt did you use?
Toybox is used on Android to implement a number of POSIX.2 utilities.
https://en.wikipedia.org/wiki/BusyBox#Controversy_over_Toybo...
The benefit of starting over is that Landley was able to relicense Toybox as BSD, after he first released it as GPLv2. That would not have been possible with a fork.
If this were commercial software, he would have been forced to "cleanroom" the new code.
There's a good intro on yt [1] and a "demo" in [2]
edit: Well Sorry, [2] was about mkroot. I just skipped through the video. I thought it was related to toybox/busybox. Maybe somewhere in the talk. Has been a while since I last watched it.
[1] https://www.youtube.com/watch?v=MkJkyMuBm3g [2] https://www.youtube.com/watch?v=Sk9TatW9ino
This generally makes things easier on devices with strict storage space constraints by reducing the overhead of having separate executables and/or libraries for the code for all these. It may reduce load times in very constrained systems compared to dynamic linking too, as everything is bundled in the one image, and in some cases it can exhibit performance gains.
It's generally (but not exclusively) of interest to embedded device manufacturers. Toybox is licensed very permissively, compared to busybox's use of GPL, so manufacturers like it. IIRC it is now used in android.
[ acpi arch ascii base32 base64 basename blkdiscard blkid blockdev bunzip2 bzcat cal cat chattr chgrp chmod chown chroot chrt chvt cksum clear cmp comm count cp cpio crc32 cut date dd deallocvt devmem df dirname dmesg dnsdomainname dos2unix du echo egrep eject env expand factor fallocate false fgrep file find flock fmt fold free freeramdisk fsfreeze fstype fsync ftpget ftpput getconf getopt gpiodetect gpiofind gpioget gpioinfo gpioset grep groups gunzip halt head help hexedit host hostname httpd hwclock i2cdetect i2cdump i2cget i2cset i2ctransfer iconv id ifconfig inotifyd insmod install ionice iorenice iotop kill killall killall5 link linux32 ln logger login logname losetup ls lsattr lsmod lspci lsusb makedevs mcookie md5sum memeater microcom mix mkdir mkfifo mknod mkpasswd mkswap mktemp modinfo mount mountpoint mv nbd-client nbd-server nc netcat netstat nice nl nohup nproc nsenter od oneit openvt partprobe paste patch pgrep pidof ping ping6 pivot_root pkill pmap poweroff printenv printf prlimit ps pwd pwdx pwgen readahead readelf readlink realpath reboot renice reset rev rfkill rm rmdir rmmod rtcwake sed seq setfattr setsid sha1sum sha224sum sha256sum sha384sum sha3sum sha512sum shred shuf sleep sntp sort split stat strings su swapoff swapon switch_root sync sysctl tac tail tar taskset tee test time timeout top touch toybox true truncate ts tsort tty tunctl uclampset ulimit umount uname unicode uniq unix2dos unlink unshare uptime usleep uudecode uuencode uuidgen vconfig vmstat w watch watchdog wc wget which who whoami xargs xxd yes zcat
That's... an impressive set of Unix functionality in a single binary... AFAIK, if this works like Busybox does, these are all actually just wrappers that call into Toybox with this command as a parameter. EDIT: Nope, it's literally just symlinks with names detected by toybox that dictate how it will behave, and this is apparently called a "multicall binary"And yes, the [ (open bracket) is a command in POSIX shell.
https://landley.net/toybox/status.html
And here is the list of the Linux standard core commands (toybox covers more than this):
https://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-gene...
Anyways, I might use this in my own distro for fun.
[1]https://lists.busybox.net/pipermail/busybox-cvs/2024-January...
But it seems that no BusyBox bug-fixer has spotted an easy-to-fix error that is stopping the BusyBox Bugzilla from working, and causing the hyperlink in that e-mail to lead to an error message that dumps out a glob of SQL and stack trace in black on red. It has a table named groups, and Bugzilla is attempting to use the table without quoting the MySQL keyword.
* https://github.com/bugzilla/bugzilla/commit/08679016bd83d2b1...
This bug was fixed in Bugzilla over a year ago. BusyBox's instance of Bugzilla is still exhibiting it today. It makes Buzilla unusable. Thus I do wonder at all of the automated messages to that mailing list with hyperlinks to stuff that does not work. Perhaps no-one is reading the mailing list as well as no-one using the bug tracker.
busybox.net is down, along with their git and bugzilla, and the github mirror has last commit a year ago. The bugged tc.c was last updated 2 years ago.
https://github.com/mirror/busybox/blob/master/networking/tc....
So, yes, it looks abandoned.
src/uucore/src/lib/features, findutils, diffutils; MIT, Rust: https://github.com/uutils/coreutils/tree/main/src/uucore/src...
opan•4mo ago
I recall busybox being often used for gpl enforcement, so I wonder now how widespread toybox is by various companies hoping to avoid that. Do modern Smart TVs and such use it?
GalaxyNova•4mo ago
ChocolateGod•4mo ago
6SixTy•4mo ago
Imustaskforhelp•4mo ago
Any guide on helping me prevent some e-waste at my home. I would prefer to have complete linux access of my lgtv and use something like tiny core linux on my webos tv or something, is something like this possible or?
planb•4mo ago
numpad0•4mo ago
KlutzySofa•4mo ago
root@lgwebostv:~# busybox
BusyBox v1.29.2 (2024-06-12 00:33:13 UTC) multi-call binary.
BoredPositron•4mo ago
Imustaskforhelp•4mo ago
It was kinda expensive at the time, its wild of sorts how cheap of sorts TV's have become right now but still we bought it and its just e-waste right now.
I am thinking of setting up a raspberry pi but I am more interested in learning the inner details or how to do things preferably without raspberry pi as well
BoredPositron•4mo ago
dgl•4mo ago
I like the 0BSD license (see my https://xn--gba.st), AWS also uses the semantically equivalent MIT-0 license for code samples, etc.