Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
#######
#
# E-scripts on busybox
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/init.e>
#           or at <http://angg.twu.net/e/init.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######






# «.busybox-1.2.0»	(to "busybox-1.2.0")
# «.ash-redirection»	(to "ash-redirection")




# (find-status   "busybox")
# (find-vldifile "busybox.list")
# (find-udfile   "busybox/")
# (find-man  "1 busybox")
# (find-udfile "busybox/BusyBox.txt.gz" "\n    init\n")
# (find-udfile "busybox/BusyBox.txt.gz" "\n    init\n" "controlling tty")

# http://ftp.debian.org/debian/pool/main/b/busybox/busybox_0.60.5-2.2.dsc
#*
rm -Rv ~/usrc/busybox/
mkdir  ~/usrc/busybox/
cd     ~/usrc/busybox/
dpkg-source -x \
  $S/http/ftp.debian.org/debian/pool/main/b/busybox/busybox_0.60.5-2.2.dsc

#*
# (code-c-d "busybox" "~/usrc/busybox/busybox-0.60.5/")
# (find-busyboxfile "")
# (find-busyboxfile "telnet.c")
# (find-busyboxfile "init.c" "static void set_term(int fd)")
# (find-busyboxfile "init.c" "setsid();")




#####
#
# busybox 1.00
# 2005feb17
#
#####

# http://www.busybox.net/downloads/busybox-1.00.tar.gz
# (find-busyboxfile "loginutils/")
# (find-busyboxfile "loginutils/vlock.c")
#*
rm -Rv ~/usrc/busybox-1.00/
tar -C ~/usrc/ -xvzf $S/http/www.busybox.net/downloads/busybox-1.00.tar.gz

#*
cd ~/usrc/busybox-1.00/
make menuconfig

#*
cd ~/usrc/busybox-1.00/
cp -iv ~/BUSYBOX/config-1.00 .config

#*
cd ~/usrc/busybox-1.00/
make dep	|& tee omd
make 		|& tee om

#*

# (code-c-d "busybox" "~/usrc/busybox-1.00/")
# (find-busyboxfile "")
# (find-busyboxfile "INSTALL")
# (find-busyboxfile "busybox.links")



#*
umount /tmp/bb/dev/pts
umount /tmp/bb/dev
umount /tmp/bb/proc

#*
rm -Rv /tmp/bb/
mkdir  /tmp/bb/
cd     /tmp/bb/
mkdir  /tmp/bb/bin
mkdir  /tmp/bb/sbin
mkdir  /tmp/bb/usr
mkdir  /tmp/bb/usr/bin
mkdir  /tmp/bb/usr/sbin
cp -v ~/usrc/busybox-1.00/busybox /tmp/bb/bin/busybox
for i in $(cut -b2- ~/usrc/busybox-1.00/busybox.links); do
  ln /tmp/bb/bin/busybox /tmp/bb/$i
done

#*
igetlibs () {
  { for i in $*; do ldd $i; done; } | awk '{print $3}' | sort | uniq;
}
iaddfiles () { cp --parents -v $* /tmp/bb/; }
iaddlibsfor () { iaddfiles $(igetlibs $*); }

iaddlibsfor /tmp/bb/bin/busybox

#*
mkdir /tmp/bb/etc/
cat > /tmp/bb/etc/passwd <<'%%%'
root:$1$iNoPuw.c$hcdKc.rOAaXJ/6TGaGOGo0:0:0:root:/:/bin/sh
edrx:$1$uTh4JVZJ$MK5FyVCC3unb.EzMuTIBq0:1000:1000:edrx,,,:/:/bin/sh
aleph:$1$ulSHqf1v$YX/K9IPHs6EH3yV.4sD0i/:1001:1001:aleph,,,:/:/bin/sh
beth:$1$RSXXvlfG$Vc31nH63tOsdpAwp4k.ne1:1002:1002:beth,,,:/:/bin/sh
r::0:0:root:/:/bin/sh
e::1000:1000:edrx,,,:/:/bin/sh
%%%

mkdir /tmp/bb/dev/
mkdir /tmp/bb/proc/
mount -t devfs  bbdev     /tmp/bb/dev
mount -t proc   bbproc    /tmp/bb/proc
mount -t devpts bbddevpts /tmp/bb/dev/pts

#*
chroot /tmp/bb bin/login

#*
# Needs to be run as root
# (ee-once (eeb-gdb-start "/tmp/bb/usr/sbin/" "chroot"))
set args /tmp/bb /bin/login
br main
br applets.c:164
br chroot_main
run

#*







#####
#
# busybox 1.2.0
# 2006jul14
#
#####

# «busybox-1.2.0»  (to ".busybox-1.2.0")
# http://www.busybox.net/
# http://www.busybox.net/downloads/busybox-1.2.0.tar.bz2
#*
rm -Rv ~/usrc/busybox-1.2.0/
tar -C ~/usrc/ -xvjf $S/http/www.busybox.net/downloads/busybox-1.2.0.tar.bz2


#*
cd ~/usrc/busybox-1.2.0/
make menuconfig

# (find-fline "~/usrc/busybox-1.2.0/.config")
# (find-fline "~/BUSYBOX/config-1.2.0")
# (find-sh0 "cp -v ~/usrc/busybox-1.2.0/.config ~/BUSYBOX/config-1.2.0")
#*
cd ~/usrc/busybox-1.2.0/
cp -iv ~/BUSYBOX/config-1.2.0 .config

#*
cd ~/usrc/busybox-1.2.0/
make dep	|& tee omd
make 		|& tee om

#*



#####
#
# redirections in ash
# 2006aug03
#
#####

# «ash-redirection»  (to ".ash-redirection")
# (find-es "bash" "pipe_stdout_stderr")
# (find-es "bash" "redirection")
# (find-busyboxfile "shell/ash.c")
# (find-busyboxfile "shell/ash.c" "check for redirection")
# (find-busyboxfile "shell/ash.c" "If the token is TREDIR")
# (find-busyboxfile "shell/ash.c" "Parse a redirection operator")
# (find-busyboxfile "shell/ash.c" "Code for dealing with input/output redirection")
# (find-busyboxfile "shell/ash.c" "openredirect(union node *redir)")
# (find-busyboxfile "shell/ash.c" "dupredirect(union node *redir, int f)")
# (find-busyboxfile "shell/ash.c" "redirect(union node *redir, int flags)")
# (find-busyboxfile "shell/ash.c" "shcmd(union node *cmd, FILE *fp)")

# (find-busyboxgrep "grep -nH -e edirect shell/*")
# (find-busyboxgrep "grep -niH -e edir   shell/*")
# (find-busyboxfile "shell/ash.c" "case NCLOBBER:")
# (find-busyboxfile "shell/ash.c" "\nredir:")

# (find-busyboxfile "shell/ash.c" "A job is" "single process or" "a pipeline")






#####
#
# busybox-1.10.1
# 2008may05
#
#####

# http://busybox.net/
# http://busybox.net/downloads/busybox-1.10.1.tar.bz2
#*
rm -Rv ~/usrc/busybox-1.10.1/
tar -C ~/usrc/ -xvjf \
  $S/http/busybox.net/downloads/busybox-1.10.1.tar.bz2
cd     ~/usrc/busybox-1.10.1/

find * -type f -name '*.[ch]' | sort > .files.ch
etags $(cat .files.ch)

#*
# (code-c-d "busybox" "~/usrc/busybox-1.10.1/")
# (find-busyboxfile "")
# (find-busyboxfile ".files.ch")
# (find-busyboxfile "networking/telnet.c")
# (find-busyboxfile "networking/telnetd.c")

# (find-busyboxfile "Makefile.help")




#####
#
# busybox-1.19.1
# 2011sep02
#
#####

# http://busybox.net/downloads/busybox-1.19.1.tar.bz2
#*
rm -Rv ~/usrc/busybox-1.19.1/
tar -C ~/usrc/ -xvjf \
  $S/http/busybox.net/downloads/busybox-1.19.1.tar.bz2
cd     ~/usrc/busybox-1.19.1/

#*
# (code-c-d "busybox" "~/usrc/busybox-1.19.1/")
# (find-busyboxfile "")
# (find-busyboxfile "coreutils/")
# (find-busyboxfile "coreutils/md5_sha1_sum.c")
# (find-busyboxfile "libbb/")
# (find-busyboxfile "libbb/hash_md5_sha.c")
# (find-busyboxfile "libbb/hash_md5_sha.c" "md5_begin")
# (find-busyboxfile "libbb/hash_md5prime.c" "md5_begin")
# (find-busyboxsh "find | sort")





cat > /tmp/bb/etc/issue.net <<'%%%'
Debian GNU/Linux 3.1 initrd %t
%%%

#*

/tmp/bb/usr/sbin/chroot


~/usrc/busybox-1.00/




"Lua as replacement for Bash scripting"
http://lua-users.org/lists/lua-l/2010-07/msg00086.html
Idea: add Lua to busybox

http://en.wikipedia.org/wiki/Alpine_Linux





#  Local Variables:
#  coding:               raw-text-unix
#  modes:                (fundamental-mode sh-mode)
#  ee-delimiter-hash:    "\n#*\n"
#  ee-delimiter-percent: "\n%*\n"
#  ee-anchor-format:     "«%s»"
#  End: