Release Notes

busybox-w32 version FRP-3025-gc01300361 was released on 2019-03-17.

vi applet

Two minor bug fixes in vi.

busybox-w32 version FRP-3023-g7f8036d3f was released on 2019-03-16.

su applet

The Unix su command makes it possible to run commands as a different user. A common use is to run commands as root (Administrator).

A limited version of su has been added to busybox-w32. Without any arguments it starts a shell with elevated privileges ('as Administrator'). If User Account Control (UAC) is active you'll either need to acknowledge a UAC prompt or, if your account isn't an Administrator, you'll be asked to enter the password of another account which is. The shell is started in a new console window.

su takes a single optional flag, -c, to specify a shell command to run. Quite complex shell scripts can be given as the command. It's recommended that the command is enclosed in double quotes and that single quotes are used within the command. If the quoting gets too complicated it probably won't work!

If the command completes without exiting the shell window remains open. To prompt the user to close the shell after the command has finished use something like:

   su -c "ls -l; read -p 'Hit return to exit: '; exit"

Symbolic links

A WIN32 implementation of readlink(2) has been added. As a result:

There is still no support for creating symbolic links.

dpkg applet

The dpkg applet has been enabled in the default configuration. This is slightly more useful than rpm as it maintains a database of installed packages. Still, you'll have trouble finding any relevant packages!

To initialise the package database run these commands:

   mkdir -p /var/lib/dpkg/info
   touch /var/lib/dpkg/status

File metadata and ownership

The WIN32 implementation of stat(2) supports additional items of metadata: the inode number, device id and number of hard links. This permits some enhancements: It's also possible to provide more fine-grained identification of file ownership. Files are classified as belonging to: There are some limitations:

Tab completion and wildcards

When tab-completing the names of files at the shell command line the system adjusts the name to the case of the first matching file. Thus:
   $ cd doc<tab>
expands to:
   $ cd Documents/
If a partial file name has been obtained by tab completion the user may wish to complete it by entering a wildcard. However, Unix globbing is normally case sensitive so the expected files may not be matched.

For example, in C:/Windows/System32 there are a number of files starting with various case combinations of 'wwa':

   C:/Windows/System32 $ ls Wwa<tab><tab>
   WwaApi.dll            WWanHC.dll            WwanRadioManager.dll
   WWAHost.exe           wwaninst.dll          wwansvc.dll
   WWanAPI.dll           wwanmm.dll            wwapi.dll
   wwancfg.dll           Wwanpref.dll
   wwanconn.dll          wwanprotdim.dll
   C:/Windows/System32 $ ls Wwa*
   WwaApi.dll            WwanRadioManager.dll  Wwanpref.dll
The shell option nocaseglob changes globbing to be case insensitive. You may wish to enable this by adding -o nocaseglob to the command that starts the shell.

Console title

Emulation of ANSI escape sequences has been extended to support updating the title of the console window. To set the title from the command line issue a command like:
   echo -en '\e]0;Hello World\007'
A similar sequence can be used in the shell prompt to put the current directory in the title:
   PS1='\[\e]0;\w\a\]\w \$ '

Line editing

A new line editing command, Ctrl-Z, has been added. It changes all occurrences of backslashes in the command line to forward slashes.

This may be useful, for example, when drag-and-drop is used to drop a path name from Explorer into a console window.

Separators in PATH

The shell variables PATH, CDPATH and MANPATH contain lists of directory names. In Unix the names are separated by a ':' character. In Windows ':' can appear within directory names so busybox-w32 requires the use of ';' as the separator.

The shell enforces this requirement when any of the listed variables is changed.

Changes imported from upstream

busybox-w32 has been synchronised with upstream BusyBox. The following features have been imported: