Version 11 (11-JAN-2007)
------------------------

New features:

- pressing Ctrl-C before the kboot prompt is shown now starts an emergency
  shell (based on suggestions by Brent Baude)
- README: added a troubleshooting section explaining how to get a shell if
  things turn sour

Changes:

- upgraded to the 2.6.19.2 kernel
- upgraded to Busybox 1.3.1
- patches/busybox-noshadow.patch: fix Busybox build without shadow passwords
  (from PLD Linux)
- scripts/kboot: start udhcpc with -n instead of --now, since the latter is no
  longer recognized
- upgraded to udev 104
- Makefile: recent versions of udev aren't stripped, so we do this


Version 10 (4-APR-2006)
-----------------------

New features:

- scripts/find-features: can use /proc/config.gz if no kernel configuration is
  present

Changes:

- upgraded to the 2.6.16.1 kernel
- upgraded to gcc 3.4.6
- upgraded to Busybox 1.1.1
- upgraded to udev 088
- upgraded to dropbear 0.48.1
- patches/asm-param-h-vs-linux-config-h.patch: removed, since the problem is
  solved in the mainline kernel now
- changed dropbear download from .tar.bz2 to .tar.gz, because 0.48.1 is only
  available as .tar.gz
- scripts/edit-config: new script to edit .config files (kernel: just appending
  new options no longer overrides previous settings)
- Busybox configuration is now based on "allnoconfig", not "defconfig"

Bug fixes:

- README: kernel configuration is in config/kernel-config, not
  ./local-kernel-config
- scripts/find-shlibs: corrected the title
- Makefile: many writes to .config files added a trailing double quote
- Makefile: UDEV_DIR now uses UDEV_VERSION instead of a hard-coded number
- Makefile: "make spotless" also deleted config/README
- scripts/kboot: completion of "/dev/foo:" expanded to /dev/...


Version 9 (29-OCT-2005)
-----------------------

Changes:

- upgraded to the 2.6.14 kernel
- upgraded to udev 070
- readline now has a user-configurable cursor marker instead of the ambiguous
  double space, set with the new option -m

Bug fixes:

- patches/asm-param-h-vs-linux-config-h.patch: make asm-i386/param.h not
  #include linux/config.h, avoiding countless name clashes with CONFIG_* in
  BusyBox


Version 8 (7-OCT-2005)
----------------------

New features:

- support for non-default keyboard layouts (see README)
- support for file access through TFTP

Changes:

- added patches/README listing where things come from
- Busybox: enabled "chmod"
- Busybox: enabled "tftp"
- README: documented host:... and protocol:... formats

Bug fixes:

- __wget was defined after being called by __xlat_path


Version 7 (7-OCT-2005)
----------------------

New features:

- inbound SSH now works
- find-features copies and converts SSH keys
- new configuration variable "authorized_keys" to specify a file with SSH keys
- new configuration variable "delay" to specify the delay for the first
  keystroke

Changes:

- a slash is now appended to paths ending in a colon (e.g., "/dev/sda1:")
- variable assignments are now processed before any other command or path
  interpretation
- TCP/IP networking and NFS now default to "yes"
- if the configuration variable "root" contains a device name beginning with
  "/dev/", it takes priority over fstab
- use of configuration files on root file system now defaults to "yes"
- renamed config/authorized_keys2 to config/authorized_keys
- kboot-root.cpio.gz is now created with umask 077, to prevent leaking SSH host
  keys
- "make try" now also unmounts root/dev/pts and kills dropbear
- send ifconfig output to /dev/urandom also if not using DHCP, to give dropbear
  some entropy, too
- removed "kboot" from prompt (PS1) of sub-shells
- scripts/kboot: removed comment explaining why chroot doesn't work. It does,
  after all.
- utils/readline.c: changed option -d to -i
- utils/readline.c: new option -d to set the delay
- an empty input line now also invokes "default"

Bug fixes:

- any command line beginning with a lower-case letter was considered for label
  expansion, yielding unexpected behaviour in commands with special characters
- kboot didn't export PATH and PS1 to sub-shells


Version 6 (5-OCT-2005)
----------------------

New features:

- NFS client support and SSH client/server support can now be disabled, leading
  to a smaller user space
- executables from the booted environment now run under chroot
- file and directory arguments to "local" executables are now converted
- added scripts/find-shlibs for future support of builds using the host-local
  libc
- README: added a "Known bugs" section
- added support for manual resolver configuration

Changes:

- upgraded to the 2.6.13.3 kernel
- scripts/find-features: renamed "enable_ssh" to "ssh_server"
- update-fstab now creates an empty config/fstab if there is no other choice

Bug fixes:

- "cd //" made kboot think it was at "///"
- __wget didn't remove wget's standard output, confusing later processing


Version 5 (4-OCT-2005)
----------------------

New features:

- new configuration variable "mount_rw" to enable read-write mounting of file
  systems. Also made mounting read-only by default.
- temporary mounts are translated back to the source name in the prompt
- new configuration variable "message" to set the message file name

Changes:

- utils/readline.c: if in unified whitespace mode, insert two spaces at the
  cursor position when [Tab] is hit
- utils/readline.c: if in unified whitespace mode and setting a default input
  that contains two adjacent spaces, these spaces are removed, and the cursor
  is placed at that position
- "cd" now uses __xlat_path instead of trying to decode the path on its own
- __mount_path now passes the "nolock" option if mounting an NFS file system
- "make try" tries to "rmdir" all subdirectories under root/mnt/tmp
- kboot shell: generalized checking of boolean configuration variables
- "cd" now appends a slash before internal processing, to make it clear that it
  is looking for a directory
- scripts/common-all: prefixed all function names with a double underscore
- moved command completion to new functions __complete_label and
  __complete_path
- use simple /tmp/tmp (instead of politically more correct $TMPDIR and $$) also
  in label completion

Bug fixes:

- __xlat_path returned wrong path and return code 1 on successful NFS mount


Version 4 (28-SEP-2005)
-----------------------

New features:

- labels and UUIDs (untested) are now looked up at boot time (using the new
  utils/fsbyname)
- /etc/kboot.conf, /etc/fstab, and /etc/hosts can now be updated from the
  booted file system
- kboot does not do above update if kernel boot parameter kboot=local is set
- when invoking kexec, kboot now looks for a command-line parameter initrd=F,
  and passes it as --initrd=F option
- new configuration variable "initrd" to set a global default initrd

Changes:

- upgraded to gcc 3.4.4
- kboot distribution now extracts into directory kboot-<version>/, not kboot/
- if __dry_run is set, __boot_kexec now only prints what it would do
- "make try" now uses settings previously obtained with "stty -g" instead of
  "stty sane", to keep "erase" from being changed from ^H to ^?
- "make try" now also tries to unmount root/mnt/tmp/*
- utils/readline.c and utils/getctty.c didn't have title comments
- utils/Makefile now supports native and cross-compilation
- moved all package versions, including kboot's own, into new file VERSIONS
- removed file VERSION
- removed file conversion with label lookup from scripts/update-fstab
- variable names not beginning with a lower case letter are no longer
  considered for label expansion
- scripts/find-features: use stat -t instead of the more recent stat -c

Bug fixes:

- set up the cross-compilation context also when installing kexec-tools, to
  eliminate a stray error message
- use gcc version number and a wildcard to patch the spec file, so that it is
  more likely to be found (reported by Rafael Zurita)
- __mount_path: progress messages were printed to standard output, not
  standard error
- utils/readline.c: use tcsetattr(0,TCSADRAIN,...) instead of TCSANOW


Version 3 (20-SEP-2005)
-----------------------

New features:

- installation now uses ../dl for downloads (instead of ./dl/), if it exists
- kboot environment now uses the shared uClibc

Changes:

- [Tab] on an empty line at / now only lists variables, not files
- "make reset" now also does a "make clean" on utils/
- "make root" now removes old root/dev, root/tmp, and some files from root/etc
- "make root" now strips readline and getctty
- kexec installation now strips kexec, removes root/sbin/kdump,
  root/lib/kexec-tools, and the man pages
- udev installation now removes root/bin/udevtest, root/bin/udevinfo,
  root/sbin/udevmonitor, root/sbin/udevcontrol, and the man pages
- dropbear installation now strips dropbearmulti
- uclibc installation now removes libdl, libm, libnsl, libpthread, and librt
- kboot shell now runs on /dev/tty1 instead of /dev/tty0

Bug fixes:

- re-installation of binutils (to build/) would generate additional levels of
  qualified tool names, e.g., host-host-as
- "make root" created useless directory root/build
- kboot shell also tried to run from /dev/tty0 in dry-run mode
- rearranged "make root" dependencies, such that a build from scratch doesn't
  build everything twice


Version 2 (19-SEP-2005)
-----------------------

New features:

- added command-line editing with history
- added basic command completion
- added helper "getctty" to get a controlling tty
- DHCP and outbound SSH now work (didn't realize that udhcpc needs a helper
  script ...)
- new configuration variable "timeout" to set the time after which default
  command is executed
- new configuration variable "default" to set the default command (executed on
  timeout, and when pressing [Enter])
- a banner message can be displayed through the optional file config/message
- the kboot now displays a short progress message when mounting, even when not
  in verbose mode

Changes:

- upgraded to the 2.6.13.2 kernel
- changed many variable names from "foo" to "__foo", to free name space for
  user-provided configuration
- renamed "verbose" to "__verbose", to hide it from the user
- removed unused variable "tail"
- check that "restricted" is either "true", or "false"
- Makefile: added target "try" to test-run the kboot shell
- added option --dry-run to boot shell, to suppress initializations changing
  administrative settings of the host system
- now all temporary mounts are kept, so that future versions can also access
  items on multiple file systems
- renamed configuration variable "default_root" to "root"
- "make root" now honors dependencies for items in config/

Bug fixes:

- forgot to include TODO in the distribution
- update-fstab: some awks don't like the unescaped slash in /[:/]/ (reported by
  Rafael Zurita)
- NFS check for invalid "host:" path name was broken (and used an undefined
  variable)
- "something:path" checks now require "something" to be at least one character
  long
- removed stray debugging "echo" from "something:path" processing
- "make root" looked for root/dev/console, then created root/dev/null


Version 1 (13-SEP-2005)
-----------------------

New features:

- added networking setup (only NFS with static IP works so far)
- new make targets "config" (complement configuration) and "reconfig" (start
  over)
- a default setting for the root device is now automatically provided

Changes:

- fstab is now converted when building the root file system, not at boot time
- scripts/kboot now uses an associative array to store fstab data
- scripts/kboot now uses an associative array to store known directories

Cleanup:

- moved kexec-tools-1.101-fix-real-mode-entry-vivek.patch into new directory
  patches/
- changed location of local-kernel-config to config/kernel-config
- disentangled fstab lookup logic to use config/fstab, and renamed target file
  from /fstab.booted to /etc/fstab
- added /etc/hosts to kboot environment
- moved description of kboot.conf from README to config/README
- replaced description of fstab in README with updated description in
  config/README
- moved kboot.conf in kboot environment from / to /etc
- moved "kboot" to new directory scripts/
- README: mention the names of the output files in section "Build results"
- moved <package>-<version>/.installed to installed/<package> under build/ or
  root-meta/, respectively
- <package>-<version>/.{extracted,configured,built} are now called
  .kboot-extracted, etc., to make name clashes less likely
- each build stage now delete its own state file and the state files of later
  build stages, to allow for graceful recovery from interrupted builds

Bug fixes:

- udev was lacking dependencies on gcc-uclibc
- gcc builds ran in source directory, not in build directories

Miscellaneous:

- TODO: added need for password protection and securing "restricted"


Version 0 (12-SEP-2005)
-----------------------

- initial release
