Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 123532 - statically linked /bin/bb from sys-apps/busybox-1.1.0 always says "applet not found", must be renamed "busybox" first
Summary: statically linked /bin/bb from sys-apps/busybox-1.1.0 always says "applet not...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Embedded Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-20 13:24 UTC by Joe Wells
Modified: 2006-02-21 06:40 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joe Wells 2006-02-20 13:24:33 UTC
The file /bin/bb installed by the sys-apps/busybox-1.1.0 ebuild always
says "applet not found" whenever it is run, no matter what arguments I
give it.

It works just fine if it is renamed "busybox" first, and also like
busybox it works as particular utilities if given their names.  For
example, I can make ~/busybox a symbolic link to /bin/bb and then
~/busybox works great.

The problem is, how are you going to rename it if crucial system files
get borked?  Suppose, just for the sake of example, that
/lib/ld-linux.so.2 gets borked?  Then you won't be able to run
/bin/busybox, which is the dynamically linked version.  But /bin/bb,
the statically linked version, won't be any use to you because it has
to be renamed "busybox" before it can be used.  And if crucial files
have been borked then dynamically linked programs like "cat", "cp",
"mv", etc., won't work either.

So /bin/bb won't be useful as an emergency recovery tool in this case.

Two possible solutions occur to me:

1. Change busybox so that it also recognizes the name "bb" as
   equivalent to "busybox".  This way the statically linked version
   works where it is now.

2. Install the statically linked version under the name "busybox" in
   some other directory.

I got worried about this because I'm looking at having to do something
dangerous that might bork my C library and I was trying to see how I
would revert.  I thought, aha, I'll just tar up all the files and use
busybox to untar them if needed, but this depends on the statically
linked busybox itself working.  Someone else who didn't check in
advance could get wedged in such a situation.

Gentoo Base System version 1.12.0_pre16
Portage 2.1_pre4-r1 (default-linux/x86/2005.0, gcc-3.4.5, glibc-2.3.6-r2, 2.6.8.1-co-0.6.2-pre1 i686)
=================================================================
System uname: 2.6.8.1-co-0.6.2-pre1 i686 Intel(R) Pentium(R) M processor 1100MHz
dev-lang/python:     2.2.3-r6, 2.3.5-r2, 2.4.2-r1
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1-r1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r3
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE=""
ARCH="x86"
AUTOCLEAN="yes"
BASH_ENV="/etc/spork/is/not/valid/profile.env"
BIBINPUTS=":~/bibliography:/extra/home/jbw/church/lib/bibtex:/extra/home/jbw/people-files/sebc-cvs/sebc-cvs/lib/bibtex"
BSTINPUTS=":~/tex/btxbst:/extra/home/jbw/church/lib/bibtex:/extra/home/jbw/church/lib/tex/jfp"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CLASSPATH="."
CLEAN_DELAY="5"
CM_PATH="/extra/home/jbw/church/lib/sml"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d"
CVSROOT="jbw@types.bu.edu:/cvsroot"
CVSUMASK="07"
CVS_RSH="ssh"
CXXFLAGS="-march=pentium4 -O2 -pipe"
DISPLAY="192.168.251.1:0.0"
DISTDIR="/usr/portage/distfiles"
DOOMWADDIR="/usr/lib/games/doom"
DVIPSHEADERS=":/extra/home/jbw/church/lib/tex/pstricks"
EDITOR="emacs"
ELIBC="glibc"
EMERGE_DEFAULT_OPTS="--verbose"
EMERGE_WARNING_DELAY="10"
FEATURES="autoconfig candy distlocks moo sandbox sfperms strict"
FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp -P ${DISTDIR} ${URI}"
GCC_SPECS=""
GDK_USE_XFT="1"
GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ http://gentoo.mirror.solnet.ch http://mir.zyrianes.net/gentoo/ http://gd.tuwien.ac.at/opsys/linux/gentoo/ http://ds.thn.htu.se/linux/gentoo"
GROUP="users"
GTK_IM_MODULE="xim"
GUILE_LOAD_PATH="/usr/share/guile/1.6"
G_BROKEN_FILENAMES="1"
HOME="/home/jbw"
HOST="colinux"
HOSTNAME="colinux"
HOSTTYPE="i386-linux"
HUSHLOGIN="FALSE"
INFOPATH="/usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.16.1/info:/usr/share/gcc-data/i686-pc-linux-gnu/3.4.5/info:/usr/share/info/emacs-22.0.50"
INITIAL_PATH="/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/3.4.5:/opt/ghc/bin:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/games/bin:/extra/home/jbw/church/bin"
INPUTRC="/etc/inputrc"
JAVAC="/opt/blackdown-jdk-1.4.2.03/bin/javac"
JAVA_HOME="/opt/blackdown-jdk-1.4.2.03"
JDK_HOME="/opt/blackdown-jdk-1.4.2.03"
KERNEL="linux"
LC_CTYPE="en_US.utf8"
LESS="cdfiMnQs"
LESSOPEN="|lesspipe.sh %s"
LOGNAME="jbw"
LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.qt=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.flac=01;35:*.mp3=01;35:*.mpc=00;36:*.ogg=00;36:*.wav=00;36:*.mid=00;36:*.midi=00;36:*.au=00;36:*.flac=00;36:*.aac=00;36:"
MACHTYPE="i386"
MAIL="/var/mail/jbw"
MAKEOPTS=""
MANPATH="/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.16.1/man:/usr/share/gcc-data/i686-pc-linux-gnu/3.4.5/man::/opt/blackdown-jdk-1.4.2.03/man"
MFINPUTS=":/extra/home/jbw/church/lib/tex/fonts//"
OPENGL_PROFILE="xorg-x11"
OSTYPE="linux"
PAGER="less"
PATH="/home/jbw/bin:/home/jbw/church/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/3.4.5:/opt/ghc/bin:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/games/bin:/extra/home/jbw/church/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/games"
PERL5LIB="/home/jbw/perllib:/extra/home/jbw/church/lib/perl"
PGPPATH="/home/jbw/.pgp"
PKGDIR="/usr/portage/packages"
PORTAGE_ARCHLIST="ppc s390 amd64 ppc64 m68k arm sparc sh mips ia64 alpha ppc-macos hppa x86"
PORTAGE_BINHOST_CHUNKSIZE="3000"
PORTAGE_CALLER="emerge"
PORTAGE_ELOG_CLASSES="warn error log"
PORTAGE_ELOG_SYSTEM="save"
PORTAGE_GID="250"
PORTAGE_MASTER_PID="10481"
PORTAGE_NICENESS="19"
PORTAGE_TMPDIR="/extra/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
PORT_LOGDIR="/var/log/portage"
PRELINK_PATH=""
PRELINK_PATH_MASK=""
PWD="/home/jbw"
PYTHONDOCS="/usr/share/doc/python-docs-2.2.3/html"
PYTHONPATH="/usr/lib/portage/pym"
REAL_TMPDIR="/home/jbw/tmp"
RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp -P ${DISTDIR} ${URI}"
ROOTPATH="/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/3.4.5:/opt/ghc/bin:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin"
RPMDIR="/usr/portage/rpm"
RSYNC_RETRIES="3"
RSYNC_TIMEOUT="180"
SHELL="/bin/tcsh"
SHLVL="2"
SMLNJ_HOME="/usr/lib/smlnj"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
TERM="xterm"
TEXEDIT="emacsclient --no-wait +%d %s"
TEXINPUTS="~/foiltex//::~/tex//:~/foiltex//:/extra/home/jbw/church/lib/tex//"
TEXPSHEADERS=":/extra/home/jbw/church/lib/tex/pstricks"
TMPDIR="/home/jbw/tmp"
UPDATE_IGNORE_HOSTS="csb.bu.edu csa.bu.edu cs.bc.edu"
USE="x86 X Xaw3d acl apache2 bdf bitmap-fonts bonobo bzip2 cairo canvas crypt djvu doc dvi dynagraph eds emacs emacs-w3 emboss escreen esd etwin examples exif finger firefox font-server fortran fpx ftp gcj gd-external gif glep glitz gmp gopher graphviz gs gstreamer gtk gtk2 guile idn imlib ipv6 jasper java javascript jbig jpeg jpeg2k latex lcms leim libedit libg++ libwww lua lzw-tiff mad mailwrapper md5sum mmx motif mozdevelop mozilla mozsvg mozxmlterm mp3 mpeg ncurses nntp nodrm nptl nsplugin numeric objc ogg oggvorbis opengl pam pam_chroot pam_console pam_timestamp perl png python readline rle samba script sdk slang socks5 spell sse ssl svg syslog t1lib tcltk tcpd tetex tiff toolbar truetype truetype-fonts type1-fonts unicode vorbis wmf xinerama xml2 xmldoclet xmms xprint xv zlib elibc_glibc kernel_linux userland_GNU"
USER="jbw"
USERLAND="GNU"
USE_EXPAND="DVB_CARDS ELIBC FCDSL_CARDS FRITZCAPI_CARDS INPUT_DEVICES KERNEL LINGUAS USERLAND VIDEO_CARDS"
USE_EXPAND_HIDDEN=""
USE_ORDER="env:pkg:conf:defaults"
VENDOR="intel"
VISUAL="emacs"
WINDOWID="18874434"
XARGS="xargs -r"
XCOMPOSEFILE="/home/jbw/config/X-locale/TeX-Unicode-XCompose"
XINITRC="/etc/X11/xinit/xinitrc"
XPSERVERLIST=""
XTERM_SHELL="/bin/tcsh"
XTERM_VERSION="XTerm(208)"
b="/home/jbw/www/teaching/hw/F22AW1/2003,-04"
c="/home/jbw/www/teaching/hw/F22AW1/2004,-05"
d="/home/jbw/www/teaching/hw/F22AW1/2005,-06"
e="/c/Documents and Settings/jbw/Desktop"
extra_mem_bot="100000"
extra_mem_top="100000"
f="/home/jbw/admin/funding/EPSRC-mobility-types/recruitment-1"
hash_extra="20000"
nest_size="500"
stack_size="680"
Comment 1 SpanKY gentoo-dev 2006-02-20 14:00:40 UTC
bb is a standalone shell, not an applet pass through like `busybox`
Comment 2 solar (RETIRED) gentoo-dev 2006-02-20 15:25:07 UTC
He is probably missing the bb alias in busybox.

A remerge of busybox should fix the problem you notice joe
Comment 3 Joe Wells 2006-02-21 05:49:34 UTC
(In reply to comment #2)
> He is probably missing the bb alias in busybox.
> 
> A remerge of busybox should fix the problem you notice joe

This comment was helpful!  Thanks very much!

It turns out that on 2006-02-04, three days after
sys-apps/busybox-1.1.0 ebuild was created, the bug I encountered was
fixed in the ebuild without bumping the version or making an entry in
ChangeLog.

As a result, anyone who has emerged busybox in the three day period
from 2006-02-01 to 2006-02-04 has an unworking /bin/bb and has no easy
way of knowing it.

Because having a non-working statically linked /bin/bb can prevent
busybox from being used to recover from certain kinds of failures,
like borking crucial shared libraries, I think this deserves a version
bump so that people who unknowingly emerged busybox during the bad
three days will get their copy fixed.
Comment 4 Joe Wells 2006-02-21 05:53:22 UTC
(In reply to comment #1)
> bb is a standalone shell, not an applet pass through like `busybox`

I'm not sure whether you realize this, but the only differences
between /bin/bb and /bin/busybox are:

1. /bin/bb is statically linked while /bin/busybox is dynamically
   linked.

2. They have different names.

I just noticed that you marked this bug as INVALID.  Do you really
mean this?  This seems quite a genuine bug to me.  Anyone who emerged
busybox in the bad 3-day period has an unworking /bin/bb.
Comment 5 SpanKY gentoo-dev 2006-02-21 06:40:09 UTC
> I'm not sure whether you realize this, but the only differences
> between /bin/bb and /bin/busybox are:

i know whats going on, i wrote the code and the ebuild ... your assumptions here are wrong

`bb` is not meant to be used like `busybox` and in fact it wont work like that ... running `bb` just executes a shell like `ash`

running say `bb ls` and `busybox ls` are not the samething ... `bb ls` means execute a script named 'ls' while `busybox ls` means execute the 'ls' applet

the bug is closed INVALID because your report made it sound like you expected the behavior of `bb` to be same thing as `busybox` ... if that's the case, the bug stays closed

no revbump happened because i didnt really expect anyone to notice, but if it became a problem, i would simply push out the fix