util-linux 2.26: Jan 14 2014
* see Documentation/releases/v2.26-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/v2.26-ChangeLog

util-linux 2.25: Jul 22 2014
* see Documentation/releases/v2.25-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25-ChangeLog

util-linux 2.25-rc2: Jul 2 2014
* see Documentation/releases/v2.25-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25-rc2-ChangeLog

util-linux 2.25-rc1: Jun 18 2014
* see Documentation/releases/v2.25-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25-rc1-ChangeLog

util-linux 2.24: Oct 21 2013
* see Documentation/releases/v2.24-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24-ChangeLog

util-linux 2.24-rc2: Oct 11 2013
* see Documentation/releases/v2.24-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24-rc2-ChangeLog

util-linux 2.24-rc1: Sep 27 2013
* see Documentation/releases/v2.24-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24-rc1-ChangeLog

util-linux 2.23: Apr 25 2013
* see Documentation/releases/v2.23-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.23/v2.23-ChangeLog

util-linux 2.23-rc2: Apr 10 2013
* see Documentation/releases/v2.23-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.23/v2.23-rc2-ChangeLog

util-linux 2.23-rc1: Mar 22 2013
* see Documentation/releases/v2.23-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.23/v2.23-rc1-ChangeLog

util-linux 2.22: Sep 04 2012
* see Documentation/releases/v2.22-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.22/v2.22-ChangeLog

util-linux 2.22-rc2: Aug 15 2012
* see Documentation/releases/v2.22-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.22/v2.22-rc2-ChangeLog

util-linux 2.22-rc1: Jul 27 2012
* see Documentation/releases/v2.22-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.22/v2.22-rc1-ChangeLog

util-linux 2.21: Feb 24 2012
* see Documentation/releases/v2.21-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.21/v2.21-ChangeLog

util-linux 2.21-rc2: Feb 06 2012
* see Documentation/releases/v2.21-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.21/v2.21-rc2-ChangeLog

util-linux 2.21-rc1: Jan 18 2012
* see Documentation/releases/v2.21-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.21/v2.21-rc1-ChangeLog

util-linux 2.20: Aug 29 2011
* see docs/v2.20-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.20/v2.20-ChangeLog

util-linux 2.20-rc2: Aug 17 2011
* see docs/v2.20-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.20/v2.20-rc2-ChangeLog

util-linux 2.20-rc1: Jul 29 2011
* see Documentation/releases/v2.20-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.20/v2.20-rc1-ChangeLog

util-linux 2.19: Feb 10 2011
* see Documentation/releases/v2.19-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-ChangeLog

util-linux 2.19-rc3: Jan 25 2011
* see Documentation/releases/v2.19-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-rc3-ChangeLog

util-linux 2.19-rc2: Jan 25 2011
* see Documentation/releases/v2.19-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-rc2-ChangeLog

util-linux 2.19-rc1: Jan 05 2011
* see Documentation/releases/v2.19-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-rc1-ChangeLog

util-linux-ng 2.18: Jun 30 2010
* see Documentation/releases/v2.18-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.18/v2.18-ChangeLog

util-linux-ng 2.18-rc2: Jun 18 2010
* see Documentation/releases/v2.18-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.18/v2.18-rc2-ChangeLog

util-linux-ng 2.18-rc1: Jun 7 2010
* see Documentation/releases/v2.18-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.18/v2.18-rc1-ChangeLog

util-linux-ng 2.17: Jan 8 2010
* see Documentation/releases/v2.17-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.17/v2.17-ChangeLog

util-linux-ng 2.17-rc3: Dec 10 2009
* see Documentation/releases/v2.17-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.17/v2.17-rc3-ChangeLog

util-linux-ng 2.17-rc2: Dec 9 2009
* see Documentation/releases/v2.17-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.17/v2.17-rc2-ChangeLog

util-linux-ng 2.17-rc1: Nov 20 2009
* see Documentation/releases/v2.17-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.17/v2.17-rc1-ChangeLog

util-linux-ng 2.16: Jul  2009
* see Documentation/releases/v2.16-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.16/v2.16-ChangeLog

util-linux-ng 2.16-rc2: Jul 2 2009
* see Documentation/releases/v2.16-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.16/v2.16-rc2-ChangeLog

util-linux-ng 2.16-rc1: Jun 28 2009
* see Documentation/releases/v2.16-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.16/v2.16-rc1-ChangeLog

util-linux-ng 2.15: May 5 2009
* see Documentation/releases/v2.15-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.15/v2.15-ChangeLog

util-linux-ng 2.15-rc2: Apr 17 2009
* see Documentation/releases/v2.15-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.15/v2.15-rc2-ChangeLog

util-linux-ng 2.15-rc1: Mar 18 2009
* see Documentation/releases/v2.15-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.15/v2.15-rc1-ChangeLog

util-linux-ng 2.14: Jun 9 2008
* see Documentation/releases/v2.14-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.14/v2.14-ChangeLog

util-linux-ng 2.14-rc3
* see Documentation/releases/v2.14-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.14/v2.14-rc3-ChangeLog

util-linux-ng 2.14-rc2
* see Documentation/releases/v2.14-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.14/v2.14-rc2-ChangeLog

util-linux-ng 2.14-rc1
* see Documentation/releases/v2.14-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.14/v2.14-rc1-ChangeLog

util-linux-ng 2.13

* see Documentation/releases/v2.13-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.13/v2.13-ChangeLog

util-linux-ng 2.13-rc3

* see Documentation/releases/v2.13-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.13/v2.13-rc3-ChangeLog

util-linux-ng 2.13-rc2

* see Documentation/releases/v2.13-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.13/v2.13-rc2-ChangeLog

util-linux-ng 2.13-rc1

* see Documentation/releases/v2.13-ReleaseNotes or complete changelog at
  ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.13/v2.13-rc1-ChangeLog

util-linux 2.13-pre7

* mount: default to cifs instead of smbfs for sources
         starting with // (Lars Mueller)
* flock: documentation updates (H. Peter Anvin)
* new translation: id
* updated translations: de, it, sl, uk

util-linux 2.13-pre6

* getopt: updated to 1.1.4
* replaced all *llseek variants with lseek
* misc build system, code and docs cleanups and fixes
* updated translations: fr, it

util-linux 2.13-pre5

* {fsck,mkfs}.cramfs: updated to cramfs-1.1
* {fsck,mkfs}.cramfs: removed PAGE_CACHE_SIZE usage
* umount: fix "umount -n -r" (Derick Swanepoel)
* misc build system and code cleanups and fixes
* updated translation: ca

util-linux 2.13-pre4

* don't build fdisk on m68k (Mike Frysinger)
* misc build system and documentation fixes
* removed program: clear

util-linux 2.13-pre3

* misc buld system fixes
* cfdisk: fix a segfault with ReiserFS partitions
* umount: disallow -r option for non-root users
* updated translations: da, fr, it, nl, ru, sl, tr

util-linux 2.13-pre2

* flock: replaced with flock-2.0.2 by H. Peter Anvin
* misc build system fixes, libtool is no longer used
* misc code fixes
* updated translations: ca, fi, fr, nl, ru, tr

util-linux 2.13-pre1

* use GNU autoconf/automake/libtool for building
* added schedutils
* removed support for curses implementations other than ncurses
* removed programs: arch, passwd, rescuept, setfdprm, sln
* removed mkminix-0.1/
* misc fixes and documentation updates
* new translation: vi
* updated translations: ca, de, fi, fr, it, nl, ru, tr

util-linux 2.12q

* updated translation: nl

util-linux 2.12q-pre2

* sfdisk: document -G option in --help output
* updated translations: ca, et, fr

util-linux 2.12q-pre1

* new maintainer
* sfdisk: add -G option (Andries Brouwer)
* updated translations: de, es, ru, sv, tr

util-linux 2.12p

* cfdisk: fix number of new partition when partitions not in disk order
* fdisk: fix Sun label handling in sector mode
* mkfs: never truncate filename (not that that ever happened)
* more: fix redraw flaw

util-linux 2.12n,o

* lomount: revert patch from 2.12j
* lptune.8: -T option is obsolete
* mkswap, mkswap.8, swapon: support labels
  (use HAVE_BLKID=no as long as the blkid library doesn't support this)
* umount: allow user unmounting repeatedly mounted nfs mounts

util-linux 2.12m

* cfdisk: recognize JFS, support reiserfs labels (flavio.stanchina@tin.it)
* mount: fix option parsing bug
* mount.8: several updates
* swapon.8: document -v option

util-linux 2.12l

* Makefile: remove cat-id-tbl.c upon make clean
* fdisk: fixed a bug that would cause a non-update of a sun disklabel
* fdisk: use sectorsize instead of 512 for SGI (Eric Y. Theriault)
* fdisk: use __attribute__((packed)) for alpha, ARM: avoid unaligned accesses
* hwclock: actually use HAVE_tm_gmtoff
* swapon: fix priority handling
* umount: refuse to unmount an empty string

util-linux 2.12k

* cfdisk: fixed a signed character bug causing problems for Spanish users
* configure, MCONFIG: detect gcc 3.4.0 and use -mtune option (Matthew Burgess)
* configure: do not run ./conftest (for cross compilation) (NIIBE Yutaka)
* fsck.cramfs: try to get correct PAGE_CACHE_SIZE
* losetup: try to give better error messages
* readprofile: default map file is /boot/System.map
* rdev.8: added historical info on ramdisk
* New French, Spanish, Swedish and Turkish messages

util-linux 2.12j

* cal: highlight today (Pádraig Brady)
* lomount: stop reading passwd at NUL, fix lo_encrypt key_size (Wolfram Kleff)
* losetup: add -f option to find an unused loop device
  (Alexander Wigen, Remco van Mook)
* more: code cleanup (Joachim Henke)
* mount: add "group" mount option (Martin Dickopp)
* sfdisk: fix 2.6.8 BLKRRPART ioctl damage (Eric Lammerts)
* swapon: let swapon -a skip the swapfiles marked "noauto" (Dale R. Worley)
* umount: fix problem with empty mtab (Bryan Kadzban)
* umount: use special umount program if it exists (Ram Pai)
* New Danish and French messages

util-linux 2.12i

* MCONFIG: fix build conditions
* chfn, chsh: add error checking
* cytune: use local header cyclades.h
* fdisk: fix default SGI volume header size (Eric Sandeen)
* fstab.c: use strsignal() instead of sys_siglist[]
* hwclock: use <sys/io.h> when available on i386
* hwclock: dont try KDGHWCLK on archs other than __m68k__
* sfdisk: correct typo in __attribute__used nonsense
* sfdisk: use PACKED on __arm__ (Jeroen Dobbelaere)
* sfdisk: fix warning printout

util-linux 2.12e,f,g,h

* cfdisk: avoid crash if no partition table
* elvtune: tell user that this only works on 2.4 kernels
* lomount: clear passwords after use
* mount: accept comments (introduced by \;) in fstab - withdrawn again
* mount: accept comments (specified by comment=) in fstab
* mount: support ocfs, ocfs2
* [u]mount: be more careful with malloc, try to avoid OOM with many mounts
* sfdisk: __attribute__used nonsense to support gcc 3.4
* shutdown: do not unmount various virtual filesystems

util-linux 2.12c,d

* mount.8: added recent ext2 mount options
* mount: support jfs mount-by-label, improve reiserfs support
* sfdisk: remove strange "ends in a digit" heuristic
* *fdisk: use common disksize() routine

util-linux 2.12b

* chsh: improved error message
* dmesg: ask kernel proper buffer size
* losetup: handle 64-bit offsets
* blockdev: also report BLKGETSIZE64 result
* blockdev, elvtune, fdisk: handle new kernel _IOR,_IOW defines
* fdisk: remove strange "ends in a digit" heuristic
* fdisk: also list Solaris as possible type for 0x82
* mount: added --rbind option
* mount: use blkid, uuid libraries when available
* mount: support reiserfs mount by label
* mount: attempt to use the right definition of dev_t in struct loopinfo
* mount.8: jfs mount options added
* readprofile: new -s option
* rename.1: added ref to mmv.1
* replay: renamed to scriptreplay; correct typos
* script: do not use locale for time delay floating point number format
* sfdisk: error messages to stderr
* New Catalan, Dutch, Finnish, French, German, Spanish, Swedish, Turkish,
  Ukrainian messages

util-linux 2.12a

* chfn, chsh, login, vipw: SElinux support
* fdisk: fix for kernels 2.4.15-2.4.17
* fdisk: fix when all partitions are in use
* hwclock: add a timeout when waiting for a clock update (Göran Weinholt)
* ipcs: compilation fix
* ipcs: shminfo.shmall gives pages
* login: use getutline() instead of getutid()
* login: fix for 64-bit time_t
* mount: efs support
* partx: bigendian fix
* readprofile: support for 64-bit addresses
* setterm: fix klogctl error message (Joern Heissler)
* setterm.1: clarification
* sfdisk: fix check for is_ide_cdrom_or_tape
* umount: skip proc, devfs, devpts on umount -a

util-linux 2.12

* losetup: cryptoloop support
* losetup: -p option specifies fd for passphrase
* fdisk: sgi layout fix
* mount: -p option specifies fd for passphrase
* mount: recognize some PCDOS floppies
* umount: in "umount name", first try to interpret "name" as a mount point

util-linux 2.12pre

* Catalan messages (Antoni Bella Pérez)
* Danish messages (Claus Hindsgaul)
* Dutch messages (Taco Witte)
* Finnish messages (Lauri Nurmi)
* French messages (Michel Robitaille)
* German messages (Michael Piefel)
* Slovenian messages (Primož Peterlin)
* Spanish messages (Santiago Vila Doncel)
* Swedish messages (Christian Rose)
* Turkish messages (Nilgün Belma Bugüner)
* cfdisk: localize the Y/N answer, improve printing localized messages
* cfdisk: make various variables long long - some disks are close to 2 TB
* cfdisk: use BLKGETSIZE64
* fdisk: make various variables unsigned to lengthen the life of 32-bit vars
* fdisk: some sgi fixes (Phillip Kesling)
* fdisk: k=1000, K=1024
* fdisk: removed last occurrences of HDIO_REQ
* fdisk: use BLKGETSIZE64
* hwclock: fix rtc test (Heiko Zuerker)
* login: set a timeout on printing the timeout message (Robert Ambrose)
* md5: x86_64 fix (mmj)
* more: POSIX fixes
* mount: do not supply MS_MGC_VAL when there are conflicting flags
* mount: ncp and smb are called smbfs and ncpfs - global change
* mount: add support for xvm mount by label (Eric Sandeen)
* mount: correct hfs magic recognition
* mount: keep original umask - it influences the mount call (mmj)
* raw.8: documented unbinding of raw devices
* readprofile: fixed off-by eight error (Werner Almesberger)
* script: add -c option (Wayne Davison)
* sfdisk.8: added an example of partitioning with logical partitions
* sfdisk: only add a AA55 signature for DOS-type partition tables
* tailf: new (Rik Faith)

util-linux 2.11z

* Catalan messages (Antoni Bella Pérez)
* Danish messages (Claus Hindsgaul)
* Dutch messages (Taco Witte)
* Finnish messages (Lauri Nurmi)
* French messages (Michel Robitaille) - HURRAY!
* German messages (Michael Piefel)
* Slovenian messages (Primož Peterlin)
* Spanish messages (Santiago Vila Doncel)
* Swedish messages (Christian Rose)
* Turkish messages (Nilgün Belma Bugüner)
* getopt: replaced getopt-1.1.2 by getopt-1.1.3 (Frodo Looijaard)
* mkcramfs: change default blocksize for ia64 and alpha
* more.help: removed (it is built-in now, and translated)
* mount: add -i option (inhibit calling external mount programs)
* mount: change default: do resolve symlinks
* readprofile: look for System.map also in /boot/System.map-`uname -r` (mmj)
* sfdisk: also translate "start" and "end"; s/MB/MiB/

util-linux 2.11y

* Danish messages (Claus Hindsgaul)
* Finnish messages (Lauri Nurmi)
* German messages (Michael Piefel)
* Spanish messages (Santiago Vila Doncel)
* Swedish messages (Christian Rose)
* cfdisk: improve escape seq recognition when compiled with slang
* fdisk: decimal units
* hwclock/rtc.c: minor cleanup (Joachim Henke)
* ipcs: compilation fix
* more: kill external help file (Joachim Henke)
* mount: fix LABEL= handling for user umount
* mount: don't abort on read error on photocds (György Kövesdi)
* mount.8: add dmask and fmask vfat mount options
* pg: compilation fix (Joachim Henke)
* script: localized time strings (Göran Uddeborg)
* setterm: accept devfs name (Joachim Henke)
* simpleinit: security: refuse initctl_fd if setting FD_CLOEXEC fails
* umount: allow user umount after mount by label or uuid

util-linux 2.11x

* Danish messages (Claus Hindsgaul)
* Dutch messages (Taco Witte)
* Finnish messages (Lauri Nurmi)
* German messages (Michael Piefel)
* Swedish messages (Christian Rose)
* Turkish messages (Nilgün Belma Bugüner)
* cfdisk: correct error printout
* fdisk: allow addition of a new partition when logicals all used
  but primary free
* hwclock: detect systime jumps backward during setting hwclock
* mkfs.cramfs: do not mmap all files simultaneously
* mkfs.cramfs: make blocksize settable
* mkfs.minix: correct error printout
* mkswap.8: now max 32 swapspaces
* mount: new --rbind flag, for recursive loopback mounts
* mount, umount: new -O option (Michael K. Johnson)
* mount.8: -O and win95 options documented
* setpwnam.c: open temp pw file with O_EXCL
* simpleinit: fix for "spawn too fast" (Denis Vlasenko)
* swapon: new -e option (Erik Troan)

util-linux 2.11w

* cfdisk, fdisk: allow slightly larger disk sizes
* fdisk: Makefile: also for m68 (sun3) (Kaj-Michael Lang)
* fdisk: allow to use the last partial cylinder, change display format
* fdisk: do not ask partition number in case there is only one choice
* fdisk: new sunlabel fix
* login: fix possible local root exploit (Wojciech Purczyński)
* more: bigendian fix

util-linux 2.11v

* Catalan messages (Antoni Bella Pérez)
* Finnish messages (Lauri Nurmi)
* Very few Russian messages (panivan@yandex.ru)
* Slovenian messages (Primož Peterlin)
* Spanish messages (Santiago Vila Doncel)
* Swedish messages (Christian Rose)
* Turkish messages (Nilgün Belma Bugüner)
* fdisk: add -C, -H, -S command line options
* fdisk: allow changing type 0
* mkswap: enable use of > 2GB swapspace
* more: translation fix
* mount: set umask (Sebastian Krahmer)
* mount: test both le and be version of cramfs magic (Olaf Hering)
* mount: recognize Oracle magic
* pg: use fseeko64 and ftello64 when available

util-linux 2.11u

* Danish messages (Claus Hindsgaul)
* German messages (Michael Piefel)
* Spanish messages (Santiago Vila Doncel)
* Swedish messages (Christian Rose)
* Turkish messages (Nilgün Belma Bugüner)
* configure: for fsck.cramfs, mkfs.cramfs: add test for libz
* text-utils/Makefile: pg fix (Toomas Rosin)
* po/Makefile: typo fix (Silvan Minghetti)
* agetty: use same test as login does to find utmp entry
* fdisk: fix for fdisk on empty disk (Michael D. Black)
* hwclock: compilation fix on alpha
* mount: add mount by label for jfs (Christoph Hellwig)
* mount: add mount by label for evms (Luciano Chavez)
* mount: allow regular files when guessing (Michal Svec)
* partx/gpt.c: fix size computation (Matt Domsch)
* readprofile: new option -b (David Mosberger)
* umount: don't umount devfs upon umount -a (David Gilbert)

util-linux 2.11t

* fdformat: remove test on major
* fsck.cramfs: added NLS
* fdisk: fix device names with sundisklabels under devfs (Kaj-Michael Lang)
* fdisk: minor polishing
* hwclock: also handle ENOTTY ioctl return (Maciej W. Rozycki)
* hwclock: minor polishing
* ipcrm.8: minor polishing
* mkfs.cramfs: added NLS
* mkfs.cramfs: added -v (verbose) option, and made default silent
* mount: patch for make -j (RedHat)
* swapoff: minor polishing

util-linux 2.11s

* Estonian messages (Meelis Roos)
* French messages: some minor corrections
* German messages (Michael Piefel)
* Spanish messages (Santiago Vila Doncel)
* Swedish messages (Christian Rose)
* Turkish messages (Nilgün Belma Bugüner)
* MCONFIG: allow "make DISABLE_NLS=yes <target>" (Peter Breitenlohner)
* configure: don't run ./conftest - better for cross-compilation (Magnus Damm)
* fdisk: fixes for disks with OSF/1 label
* fsck.cramfs: new (from kernel source)
* hwclock: improved adjtime handling (James P. Rutledge)
* hwclock: remove shhopts stuff
* ipcs: remove unused heading (Michael Kerrisk)
* line: replace by C version - the sh version was broken (Gunnar Ritter)
* login: default root path: added /usr/local/[s]bin (RedHat)
* mkfs.cramfs: new (from kernel source)
* mount: when no type is known, assume that prefix // implies samba (RedHat)
* mount -a: avoid stat on devices that have noauto option (Jeroen Mostert)
* mount by label: ignore RAID partitions (RedHat)
* [u]mount: fstab.c fix (ejb@ql.org)
* pg: new (Gunnar Ritter)
* sfdisk: small BSD partition fix
* swapoff -a: also do swapoff on all files found in /proc/swaps
* swapon -a: skip files already found in /proc/swaps

util-linux 2.11r

* Estonian messages (Meelis Roos)
* German messages (Michael Piefel)
* Spanish messages (Santiago Vila Doncel)
* Swedish messages (Christian Rose)
* Turkish messages (Nilgün Belma Bugüner)
* MCONFIG: move $(CFLAGS) to the end to allow overrides (Kevin P. Fleming)
* cal: tiny fix (Mitsuru Chinen)
* fdisk: avoid <linux/hdreg.h>
* fdisk: x86_64 patch (Mads Martin Jørgensen)
* hwclock.8: zoneinfo is now in /usr/share
* mkswap: report in KiB instead of bytes.

util-linux 2.11q

* fdisk: geometry improvement
* login: open tty fix (Denis Vlasenko)
* more: wide character patches (Mitsuru Chinen)
* mount: complain on mount-by-label when label is not unique (Matt Copping)
* partx: add GUID Partition Tables (Matt Domsch)

util-linux 2.11p

* Danish messages (Claus Hindsgaul)
* German messages (Karl Eichwalder)
* Spanish messages (Santiago Vila Doncel)
* Swedish messages (Christian Rose)
* Turkish messages (Nilgün Belma Bugüner)
* ipcrm: make POSIX compatible (Andre Corwin Mazzone)
* ipcrm.8: idem
* kill: fixed Makefile
* login: setsid fixes
* mkswap: max size of swap space is very large (Peter Chubb)
* mount: JFS support for mount-by-label (hch)
* nfsmount: check for <rpcsvc/nfs_prot.h> (hch)
* readprofile: keep track of line numbers (John Levon)
* umount: fix for MNT_DETACH

util-linux 2.11o

* Estonian messages (Meelis Roos)
* Japanese messages (Daisuke Yamashita)
* Spanish messages (Santiago Vila Doncel)
* cal: option -s: Sunday is first day of the week
* cal.1: updated
* cfdisk: give not only bytes but also MB or GB for clarity.
* colrm: wide character fix (Elliot Lee)
* *fdisk: added Darwin types (Vincent Bourgonjen)
* fstab.5: updated
* hexdump: -C option
* hwclock: cmos.c: do not include <asm/io.h> on alpha
* mount: improved detection of ufs (and slowdown of detection of iso9660)
* mount.8: added info on * in /etc/filesystems, shortname option of vfat,
  mount --move, udf, return codes
* raw: try /dev/raw/rawctl when /dev/rawctl fails (Thierry Vignaud)
* rc.serial: removed - setserial is no longer in util-linux (kromJx)
* README.admutil: removed - only of historical interest
* README.bootutils-0.1: removed - only of historical interest
* script: security fix
* sfdisk: improved geometry detection; wider columns; default disks from
  /proc/partitions
* umount: permission test owner umount
* wall.1: added suid restriction

util-linux 2.11n

* Danish messages (Claus Hindsgaul)
* German messages (Karl Eichwalder)
* Swedish messages (Christian Rose)
* Turkish messages now in UTF-8 (Nilgün Belma Bugüner)
* blockdev: add --report option
* cal: fix for wide multibyte-char (Motonobu Ichimura)
* cfdisk: recognize ext3 and reiserfs (Flavio Stanchina)
* fsck.minix: i18n changes
* ipc.{info,texi}: minor correction
* login: compilation fix (Jaroslaw J. Pyszny)
* mount.8: tmpfs mount options (Karl Eichwalder)
* mount: recognize minix v2
* mount: support mount-by-label also for lvm (Kirby Bohling)
* mount: order guessing of fstypes according to seek offset
* pivot_root: compilation fix for ia64
* readprofile: byte order auto-detection (Werner Almesberger)

util-linux 2.11m

* Danish messages (Claus Hindsgaul)
* German messages (Karl Eichwalder)
* Swedish messages (Christian Rose)
* Turkish messages (Nilgün Belma Bugüner)
* fdisk: added netbsd type (Steven J. Hill)
* more: fix for unsigned char (Rusty Russell)
* mount: added sysv magic (Tim Launchbury)
* setterm: fixed "setterm -foreground default"

util-linux 2.11l

* Danish messages (Claus Hindsgaul)
* banner: removed - it is in bsdgames
* fdisk: show partitions with empty type but some other nonzero field
* login: copy the static struct that getpwnam() returns before calling
  PAM routines that might themselves use getpwnam(). Abort on problems.
  (Olaf Kirch)
* mount: added jfs magic (Christoph Hellwig)
* renice: report the correct new priority after a setpriority()
* umount: add lazy unmount (Christoph Hellwig)

util-linux 2.11k

  Various potential buffer overflows were pointed out by awayzzz@digibel.org.
  Fixes in agetty, hwclock, namei, readprofile, simpleinit, vipw.
  (Also added a few [f]close() calls - entirely superfluously.)

* agetty: avoid possible buffer overflow
* cfdisk: recognize xfs (Nathan Scott)
* cytune: added close()
* fdformat: added close()
* fdisk: added fclose()
* hwclock: avoid possible buffer overflow
* mkfs.minix: added fclose()
* mount: remove the assumption that 635 is the default mount port
* namei: avoid possible buffer overflow
* rdev: added closedir()
* readprofile: avoid possible buffer overflow
* sfdisk: added fclose()
* simpleinit: avoid possible buffer overflow
* swapon: added fclose()
* umount: use tcp when mount was done using tcp (James D Strandboge)
* vipw: avoid possible buffer overflow

util-linux 2.11j

* fdisk: fix for AIX label (Olaf Hering)
* fdisk: fix for creating DOS label when BSD label is present
* mount.8: added remark about blocksize to ext2 sb= mount option description.
* partitiontype: new, not installed

util-linux 2.11i

* testincl: do not run conftest (Brian Murphy)
* blockdev: corrected ioctl numbers now that BLKBSZGET is in 2.4.10pre3
* cal: fixed for Hungarian locale
* cal: fixed for multibyte locales (Pablo Saratxaga)
* fdisk: avoid superfluous warning about DOS partitions
* line: new, to support SCO shell scripts (Christoph Hellwig)
* mount: added vxfs magic
* passwd: tiny fix for ARM (Ken Cox)
* replay: replay typescript with timings (Joey Hess)
* script: add -t flag for timing (Joey Hess)

util-linux 2.11h

* Turkish messages (Nilgün Belma Bugüner)
* Danish messages (Claus Hindsgaul)
* banner: minor fix (awayzzz@digibel.org)
* mkfs.minix: minix v2 fix
* more.1: improved (Edward Betts)
* mount.8: corrected description of the nwfs uni_xlate mount option
* vipw: make temp files of mode 0600 (Bill Nottingham)
* wall: avoid writing to /dev/:0

util-linux 2.11g

* MCONFIG & configure: fix for gcc 3.0
  Note that nfsmount_xdr.c may give warnings with gcc 3.0, essentially
  because of defines in <rpc/xdr.h> that use things like ntohl(*buf++)
  where ntohl(x) is a macro with several occurrences of x.
* blockdev: support for the get/set blocksize ioctls
  [not yet in the 2.4.5 kernel]
* fdisk: added Linux/PA-RISC type (Matt Taggart)
* mount: minor fix (Andrey J. Melnikoff)
* mount: added some ext3 stuff (Andrew Morton)
* mount: added heuristics for reiserfs (Andrew Morton)
* mount.8: added ext3 and reiserfs docs (Andrew Morton)

util-linux 2.11f

* Czech messages (Jiří Pavlovský)
* fdisk: fix for "reorder" expert command
  (use of sfdisk afterwards is still recommended)
* mount: minor fixes

util-linux 2.11e

* Danish messages (Claus Hindsgaul)
* Brazilian Portuguese messages (Rodrigo Stulzer Lopes)
* agetty: give tty mode 0600 instead of 0622
* cal: improved manpage
* cfdisk: add user-friendliness in case of empty disk (Matthew Wilcox)
* dmesg: improved manpage
* fdisk: SuperH fix (ISHIKAWA Mutsumi)
* hwclock: accept alpha options in both upper and lower case
  (so as to make the man page correct)
* hwclock: add option --noadjtime (Henrique M. Holschuh)
* login: child must have controlling tty (Michał Moskal)
* more: don't seek unseekable input (David Whedon)
* mount: upon request by Richard Gooch: if the mount point is specified
  as symlink, put symlink, not actual mount point in mtab.
  (This avoids the long and ugly devfs names, but may break things.
  Please complain in case of problems.)
* mount: with mount -a -t nfs:
  if we used fallback to nfs v3, don't do so for subsequent mounts
* mount: add heuristics for ext3 (Andrew Morton)
* mount: added quota info to mount.8
* mount: allow comma-separated type lists, also in fstab
* raw: small fix for ppc

util-linux 2.11d

* fdisk: fix for OSF (Will Woods)
* chsh: compilation fix (Ronald Wahl)

util-linux 2.11c

* Czech messages (Jiří Pavlovský)
* German messages (Elrond)
* Makefile/MCONFIG improvements (Peter Breitenlohner)
* fdisk: added a few partition types
* fdisk: correct partition numbering for sgi partitions (Nathan Scott)
* fdisk: make it compile on hppa by arbitrarily treating hppa like powerpc
  (Matt Taggart)
* fsck.minix: improved localisation (Elrond)
* getopt: updated to version 1.1.2 (Frodo Looijaard)
* hwclock: fixes for IA64 (Thorsten Kukuk)
* hwclock: use /dev/vc/1 when devfs is used (Thomas Koeller)
* hwclock: more devfs support (e.g. /dev/misc/rtc)
* ipcs: add spaces in output (DeWitt Clinton),
  correct some error messages (Bobby de Vos)
* login: fix TIOCNOTTY (Andreas Haumer, Adam J. Richter)
* login: add btmp logging of unsuccessful login attempts (Erik Troan)
* login: avoid a SIGHUP race with PAM enabled (Peter 'Luna' Runestig)
* login: copy the static result returned by gethostbyname to avoid
  corruption by pam_authenticate via pam_ldap (Andreas Damm)
* login: removed the REDHAT_IGNORED_MAILSIZE hack
* login: unconditionally do vhangup
* login: zero PAM_USER when no username was given (Arkadiusz Miśkiewicz)
* look: dictionary now under /usr/share (Erik Troan)
* mount: add sanitize_env() (Solar Designer)
* mount: another heuristic for vfat (Michal Svec)
* mount: xfs magic has only one endianness (Nathan Scott)
* mount: return failure when tcp used and portmap returns 0 (H. J. Lu)
* rdev: allow unlimited recursion to find the long devfs names
  Also, allow major,minor pair the specify device (request by Russell Coker)
* readprofile: array bound check (Andrew Morton)
* script: transmit window changes to child (Joey Hess)
* sfdisk: endian fix for ppc (Gregory Geiselhart)
* sfdisk: new feature: sign is offset from default (Byron Stanoszek)
* sfdisk: add some default devices to list (Luca Montecchiani)
* sfdisk: no partition table on ide tape
* shutdown: close files, unblock signals (Richard Gooch)
* simpleinit: block signals in handlers; add no_reboot option (Richard Gooch)
* swapdev: deleted, it was last used with Linux 0.12.
* umount: mips does support umount2 (Maciej W. Rozycki)
* umount: add sanitize_env() (Solar Designer)
* umount: fix exit status
* wall: do not forget 80th character (Thorsten Kukuk)

util-linux 2.11b:

* Danish messages (Claus Hindsgaul)
* umount: mips does not support umount2 (Christoph Martin)
* fdisk: tiny fix
* mount.8: adfs options documented, xfs corrected

util-linux 2.11a:

* tsort: deleted - it is part of GNU textutils 2.0
* mount: fix rootdev() (Richard Kettlewell)
* mount: fix gid of mtab file
* mount: try /proc/filesystems after /etc/filesystems if the latter ends in "*"
* fdisk: added a few system types

util-linux 2.11:

* Jump to 2.11 to note that libc-4.5.26 is no longer supported,
  and we require libc-4.6.27 (since now snprintf is used).
  Also, kbdrate has now been removed. Find it in kbd-1.05.
  Added -D_FILE_OFFSET_BITS=64 to CFLAGS.
* Danish messages (Claus Hindsgaul)
* fdisk: avoid loop in case of extended without logical
* ipcs: corrected interchanged report on msg_rtime/msg_stime (Arun Kumar U)
* kill: updated manpage
* last: very much faster with mmap (Marek Zelem)
* login: Applied PAM patch by David MacKenzie <djm@web.us.uu.net>
* login: do a setsid in the child (Erik Troan)
* mount: make "mount 192.168.1.8:/ /a -o bg" work again (Bjoern Voigt)
* mount: added constant MS_MOVE
* readprofile: added -M option, updated manpage (Andrew Morton)
* setsid: fork when it would fail otherwise (John Fremlin)
* simpleinit: updated (Richard Gooch et al.)
* vipw: also offer to edit shadow file (Erik Troan)
* xfs docs (Nathan Scott)

util-linux 2.10s:

* Danish messages (Claus Hindsgaul)
* fixes to make gcc happy (Joseph S. Myers)
* fix for more on parisc (Richard Hirst)
* change rdev to search subdirectories of /dev (Paul Clements)
* ul fix (Masao Kawamura) - set columns correctly
* cal fix (Brendan Kehoe) - don't overflow weekday array in Gaelic
* fdisk fix (niles@scyld.com) - flush stdout
* fdisk fix - don't forget to write out empty label
* login: make default tty mode 0600
* script: refuse to write typescript if that is a symlink
* script: accept -V to output version
* whereis: also search /usr/share/man.
* hwclock: improve locale handling
* hwclock: fix for Nautilus (Neoklis Kyriazis)
* isosize: new

util-linux 2.10r:

* mount: support mount by uuid or label for xfs (Nathan Scott)
* mount: added probe for minix on bigendian systems (Nathan Scott)
* mount: added probes for cramfs, hfs, hpfs and adfs (Sepp Wijnands)
* mount: change setup; let umount remove at most one line from /etc/mtab
* mount: improve man page
* more, col, colcrt, colrm, column, ul: nls improvements (Masao Kawamura)

util-linux 2.10q:

* mount: accept nonnumeric uid= and gid= options
* write and wall: security improvement
* fixed fdformat flaw (Werner Almesberger)
* use right mountport upon umount (Glenn Lingle)
* simpleinit / need / initctl stuff (Richard Gooch)
* Portuguese messages (Rodrigo Stulzer Lopes et al.)

util-linux 2.10p:

* mount: don't set up a loop file with -o loop,remount (Marc Mutz)
* fdisk: changes for sectorsize different from 512
* more: standout fix (Paul Vojta)
* more: improve usage message (Lincoln Myers)
* logger: Added -d option to use datagrams (Gerwin Pfab)
* cal: Added -3 option to also print prev/next month (Michael Charles Pruznick)
* French messages (Christophe Merlet)
* Japanese messages (Daisuke Yamashita)

util-linux 2.10o:

* fdformat: fixed to work with kernel 2.4.0test6 (Marek Wojtowicz)
* losetup: also return status when only showing loop device status (ewt)
* mount: do not retry ro if mount was ro; improve error message
* login: not installed suid
* getopt: by default install aux files in /usr/share/misc

util-linux 2.10n:

* added blockdev.8
* change to elvtune (andrea)
* fixed overrun in agetty (vii@penguinpowered.com)
* shutdown: prefer umounting by mount point (rgooch)
* fdisk: added plan9
* fdisk: remove empty links in chain of extended partitions
* mount: define ALWAYS_STAT
* mount: add replace, after, before, over, bind
* umount: also free loop device when not writing mtab
* lomount: try both /dev/loopN and /dev/loop/N
* hwclock: handle both /dev/rtc and /dev/efirtc (Bill Nottingham)
* script: added -f (flush) option (Ivan Schreter)
* script: added -q (quiet) option (Per Andreas Buer)
* getopt: updated to version 1.1.0 (Frodo Looijaard)
* Czech messages (Jiří Pavlovský)

util-linux 2.10m:

* chfn fix when PAM is used (Martin-D. Lacasse)
* do not use LC_NUMERIC part of locale in hwclock when writing /etc/adjtime
* mount status return from smb or ncp fix (Mark Peloquin)
* mount new option -l: also print label when listing mounts
* mount add heuristic for xfs (Martin K. Petersen)
* mount UUID and label cache (Erik Troan)
* mount improve check for `already mounted' in case of label or uuid
* fdisk partition names more devfs-friendly
* fdisk bsdlabel large disk support
* setterm.1: options documented (Colin Watson)
* rename correction
* German, Spanish, French, Italian, Portuguese messages
  (Roger Luethi, Beth Powell, Alvaro Antunes)

util-linux 2.10l:

* Merged losetup.c and lomount.c
* ANSIfied everything

util-linux 2.10k:

* NFS version 4 mount support (Trond Myklebust)
* hwclock fix (Stefan Ring)
* Added -p option to col, as required by SUS (Joseph S. Myers)

util-linux 2.10j:

* fdisk fixes (Michal Jaegermann)

util-linux 2.10i:

* new directory partx (with code to play with, not to use)
* minor fdisk changes

util-linux 2.10h:

* Added pivot_root (Werner Almesberger)
* Added elvtune (Andrea Arcangeli)
* Added need and extended simpleinit and shutdown (Richard Gooch)
* Removed all #include <linux/fs.h>
* errno fixes (Joseph S. Myers)
* IA-64 fixes (Michael K. Johnson)
* fdisk fixes for OSF/1 on Alpha (David Huggins-Daines)
* fdisk sectorsize fix (Greg Hosler)
* mount speed= option to enable mounting bad CDROMs (Marco d'Itri)
* ipcrm deletes several things at once (Frank Zago)

util-linux 2.10g:

* fdisk can now sort partitions into order [untested, beware!]
* Update of mkswap for sparc64 (jj)
* Update of raw (Stephen Tweedie):
  Control file was /dev/raw, now /dev/rawctl
  Access files were /dev/raw*, now /dev/raw/raw*
* Czech messages (Jiří Pavlovský)
* German messages (Daniel Egger)
* losetup locks memory (Frank v Waveren)

util-linux 2.10f:

* Security fix for mount (okir)
* Avoid infinite loop in namei (Brett Wuth)
* added clock-ppc.c (from Matsuura Takanori), not merged yet
* deleted clockB subdirectory
* recognize mkdosfs string (Michal Svec)

util-linux 2.10e:

* New: rename
* Added option to mkswap so that user can override pagesize
* fdisk -l now reads /proc/partitions when no device was given
* Fixed fdisk.8 (James Manning)
* Added devpts info to mount.8 (Elrond)
* Newline fix for logger output to stdout (Henri Spencer)

util-linux 2.10d:

* Do not try to mount something as udf without good reason
* Do not loop in umount if there is a stale lock file
* Allow fdisk twice as many cylinders
* Fixed non-casefolding search in look (Markus Demleitner)

util-linux 2.10c:

* Various compilation fixes

util-linux 2.10b:

* Fixed smbmount problem (Andrew Tridgell)
* Fixed ddate problem with the day after St. Tib's Day (Brad)
* German messages (Elrond)
* Made kill a bit more standard compliant
* Made some more programs output a version

util-linux 2.10a:

* Japanese messages (Daisuke Yamashita)
* French messages and several Debian fixes (Vincent Renardias)
* Fixed infinite loop in mkfs.minix

util-linux 2.10:

* Added BSD disklabel code to rescuept
* Added blockdev utility
* Fix losetup return code
* Fix unit display in cfdisk
* Do not redefine _PATH_MAILDIR (so that recent systems can have /var/mail)
* Added --localtime option to hwclock;
  added third line (LOCAL/UTC) to /etc/adjtime.
* Add -H option to agetty (David Holland)

util-linux 2.9z:

* Japanese messages (Daisuke Yamashita)
* Czech messages (Jiří Pavlovský)
* Added some udf stuff to mount.8
* Added ioctl for fdisk on bsdlabels

util-linux 2.9y:

* Wide character support (Bruno Haible)
* German messages and some small fixes (Elrond)
* Small fix to owner mount option (Erik Troan)
* Don't sleep so long in clock/kd.c (Christian T. Steigies)

util-linux 2.9x:

* German messages and a i18n fix (Elrond)
* mount option: allow the owner to mount a device (RedHat)
* ugly: let login open console with O_NONBLOCK (Maciej W. Rozycki)
* UGLY: let login ignore mail that is precisely 523 bytes long (RedHat)
* added mkfs.bfs, mkfs.bfs.8
* mount now recognizes qnx4 and bfs partitions
* rescuept now recognizes Unixware partitions
* hwclock fix on m68k (Roman Hodek)
* several minor things

util-linux 2.9w:

* Updated mount.8 (Yann Droneaud)
* Improved makefiles
* Fixed flaw in fdisk

util-linux 2.9v:

* cfdisk no longer believes the kernel's HDGETGEO
  (and may be able to partition a 2 TB disk)

util-linux 2.9u:

* Czech more.help and messages (Jiří Pavlovský)
* Japanese messages (Daisuke Yamashita)
* fdisk fix (Klaus G. Wagner)
* mount fix (Hirokazu Takahashi)
* agetty: enable hardware flow control (Thorsten Kranzkowski)
* minor cfdisk improvements
* fdisk no longer accepts a default device
* Makefile fix

util-linux 2.9t:

* national language support for hwclock
* Japanese messages (both by Daisuke Yamashita)
* German messages and some misc i18n fixes (Elrond)
* Czech messages (Jiří Pavlovský)
* wall fixed for /dev/pts/xx ttys
* make last and wall use getutent() (Sascha Schumann)
  [Maybe this is bad: last reading all of wtmp may be too slow.
   Revert in case people complain.]
* documented UUID= and LABEL= in fstab.5
* added some partition types
* swapon: warn only if verbose

util-linux 2.9s:

* tunelp patch (Andrea Arcangeli)
* fixed mount race (HJLu)
* German messages (Elrond)

util-linux 2.9[pqr]:

* errno->errsv patch (Arnaldo Carvalho de Melo)
* hwclock patch for the Award 4.50g BIOS "2094" bug. (Dave Coffin)
* fdisk patch to correct deletion of last logical partition

util-linux 2.9o:

* fix to login by Ambrose C. Li
* improvement to mcookie inspired by a patch from Rik Faith
* more i18n by Arnaldo Carvalho de Melo; pt_BR locale

util-linux 2.9n:

* Added -u option to logger (write to user-specified socket; Martin Schultze)
* Added mount.smb script contributed by Greg Galperin
* Some more national language support
* mkfs.minix argument parsing fixed
* write fixed for /dev/pts/xx ttys
* configure adapted for the case of <scsi/scsi.h> that needs u_char.

util-linux 2.9m:

* Added national language support (misiek@pld.ORG.PL)
* minor improvements in mount, fdisk, cfdisk, agetty, more

util-linux 2.9l:

* Added /dev/port use to hwclock again - it may be necessary for Jensen.

util-linux 2.9k:

* major reshuffle of hwclock stuff; added sparc and alpha code
* fdisk fix
* tiny shutdown fix

util-linux 2.9j:

* added configure
* merged three lists of partition types in *fdisk
* multi page display in cfdisk
* test for getlogin() == "";
* start fixup hwclock

util-linux 2.9i:

* fixed 2.9h typo in more
* added -m: `Monday is 1st day' option to cal (Jean-Francois Bignolles)
* changed PAM stuff in login.c (+- mjohnson)
* added warning to cfdisk in case of multiple bootable partitions
* added 2048-byte sector support in fdisk (Oliver Schaertel)

util-linux 2.9h:

* mount recognizes "uid=useruid" and "gid=usergid" in /etc/fstab.
* documented the fact that "mount -t smb" will call /sbin/mount.smb.
* mount gives clear error message when fstab does not end in newline.
* swapon checks mode of file
* cfdisk got a more specific exit status (Enrique Zanardi)

util-linux 2.9g:

* mount updates (locking, "users" keyword, "/etc/filesystems",
  "proto" and "vers" options in nfsmount, ...)

util-linux 2.9f:

* made ul handle lines of arbitrary length (Scott Maxwell)
* killed some C/H/S nonsense in fdisk
* fixes for archs with unsigned char type (Ambrose Li)
* fdisk fixes for power pc (Tom Rini)
* added a define for NCURSES_CONST
* fixes for list of signals in kill.c
* fixes for user name length in last.c

util-linux 2.9e:

* added a forgotten declaration to login.c (Christian Oyarzun)

util-linux 2.9d:

* fixed segfault in umount caused by Wilcox' patch (Steffen Zahn)
* added lnz stuff to fdisk

util-linux 2.9c:

* refixed PAM stuff in login.c that was broken in 2.8.

util-linux 2.9b:

* split README into INSTALL and HISTORY
* added a sentence to swapon.8
* behavior of write on non-ASCII fixed
* hwclock adapted to survive a failing mktime()

util-linux 2.9a:

* added an include to lib/my_reboot.c so that __GLIBC__ is defined
* added setlocale() to login-utils/chfn.c
* do not recompute MAIL in login-utils/login.c

util-linux 2.9:

HIGHLIGHTS for version 2.9:

1) Removed programs:
   - strings. There is a version in binutils.
   - frag. (Moved to historic in 2.4, crept back in 2.5. Gone again.)
1a) Not yet removed program:
   - setfdprm. It also is in fdutils-5.2 (with an exceptionally
     ugly man page).
1b) Removed directory:
   - bsd. (The routine getopt() is in libc. err() moved to lib.)
2) Improvements:
   - ddate has been fixed to count down to the new, right X-day
   - look is now willing to search non-English dictionaries
     (i.e., uses locale)
   - cal now knows that Dutch day abbreviations have length 2 only
   - mcookie does not block when no random stuff is available
   - shutdown got a configuration file /etc/shutdown.conf
   - fdisk now reads SGI disk labels (thanks to Andreas Neuper)
   - mkswap now knows about new swap areas; mkswap.8 has been rewritten
   - umount knows about umount2() and forced unmounting of nfs mounts
     (however, I don't think it really works)
   - mount is now willing to handle file names with embedded spaces
   - mount can now mount things by UUID or volume name
3) Uglifications:
   - swap.h has been replaced by a private swap_constants.h since
     <linux/swap.h> does not compile
   - reboot has become a private routine, since libc5 and glibc2 conflict
   - a mkminix-0.1 directory contains some patches to let mkfs.minix
     work under DOS. (Untested.)
4) Numerous other small changes.

0xF) Send questions and/or patches to util-linux@math.uio.no

util-linux 2.9 was released by Andries Brouwer - aeb@cwi.nl
The address util-linux@math.uio.no reaches Rik, Andries, Peter,
Michael, Erik, Nicolai and possibly others.  Hwclock stuff is
forwarded to Bryan.

util-linux 2.8:

HIGHLIGHTS for version 2.8:

1) New programs:
   - getopt(1) by Frodo Looijaard replaces the older bsd based version.
     Keywords: Backward compatible, supports --long options.
1) Removed programs: 
   - chroot: is no longer in util-linux.  Get it free with GNU sh-utils
   - hostid: No-one could figure out the right way for this program to
		work.  Another hostid program is included in poeigl
		(see the LSM, Primary-site: ftp.daimi.aau.dk /pub/linux/poe)
2) Various portability enhancements.  Among other things hwclock now works
   a lot better on non Intel architectures.  Should compile with libc 4, 5
   and 6 as well as old and recent kernels.  People using non-intel hardware
   are encouraged to send patches.
3) rev now only limits linelength to memory capacity
4) dmesg now uses a buffer that matches the kernel buffer in size (8KB)


util-linux 2.7:

HIGLIGHTS for version 2.7:

1) util-linux now _requires_ ncurses.  Several programs are completely
   converted to use terminfo (instead of termcap).

2) Removed progams:
   - clock: Dropped entirely.  Use hwclock (included).
   - sync: is in gnu fileutils.
   - setserial: Is being maintained by Ted Ts'o, he recommends
	setserial-2.12 (2.13 is bad luck)
   - clear: Included in ncurses
   - hostname, domainname, dnsdomainname: It's in net-utils.
   - lpcntl.

3) Bugfixes, additions:
   - cfdisk: A much improved version. All known bugs have been fixed.
   - sfdisk: A command line fdisk type utility, formerly called fdisk-3.04.
   - SECURITY: All known holes in login, chfn, chsh and others have been
     plugged.  UPGRADE NOW if you haven't already fixed them yourself.
   - Should work with libc 4, 5 and 6 (gnulibc), on m68k, intel, alpha
     and sparc.

4) Problems:
   - The rpcgen that comes in NetKit-B-0.09 is broken.  At least as
     packaged with RedHat 4.2 (NetKit-B-0.09-6).  There are several
     ways to deal with this:
     - Don't run rpcgen, the needed pre-generated sources are included
       (nfsmount_xdr.c).  You must hack mount/Makefile to do this.
     - Edit the source emitted by rpcgen so it can compile.  This is very
       simple if you know C.
     - Disable the NFS parts of mount.  You have to edit mount/Makefile
       to do this.
     - Use some other rpcgen.

util-linux 2.6.1

This release was never made public

See notes for 2.6 for installation instructions.

This is a incremental release containing some fixes.  A new release
will be made later fixing the outstanding bugs.
- Things compiles and works better with recent releases of kernel, 
  ncurses, and so forth: fdisk, more
- Some fixes to make things compile out of the box on alphas.
- There has been reported a problem with login and /etc/usertty.  It
  should be fixed.  If you still have problems get a recent MAKEDEV and 
  use it to make new tty devices.  They were renumbered sometime during
  the 1.3 phase of the kernel.
- ipcs now displays the key of the structures.
- A (harmless?) overflow bug was fixed in login.

Outstanding bugs:
- login/getty has a denial of service problem.
- Several places needs a bit more polish.
- There are a _lot_ of nonfatal warnings when compiling mount.  This will
  not necessarily be fixed.


util-linux 2.6

HIGHLIGHTS for version 2.6:

0) The first release with me at the helm.  PLEASE SEND PATCHES AND
   UPDATES TO: util-linux@math.uio.no.

1) Removed programs:
   - md5sum, dsplit: available in GNU textutils.
   - syslogd: Sysklogd is now preferred.  It is available at
	tsx-11.mit.edu:/pub/sources/sbin
	sunsite.unc.edu:/pub/Linux/system/Daemons

2) Bugfixes, additions: 
   - SECURITY: All known holes in mount have been fixed.  UPGRADE NOW
     if you haven't already!
   - Portability enhancments to the minix filesystem utils (m68k and
     Arm patches).
   - passwd/chsh/chfn will not mess up the passwd file on a NIS machine
   - others too numerous to enumerate.

3) New programs: 
   - vigr (it's like vipw)
   - Introducing hwclock.  A complete rewrite of the latest available
     clock source.  It supports intel/CMOS, /dev/rtc and linux/m68k
     system clock interfaces.  Clock supports the same things but is now
     obsolete and will not be present in the next release.  Start using
     hwclock now.  Please.


util-linux 2.5

HIGHLIGHTS for version 2.5:
0) Nicolai Langfeldt is taking over maintenance of util-linux, with the
   help of a few others (Michael K. Johnson, Andries Brouwer, and Rik
   Faith).

   PLEASE SEND PATCHES AND UPDATES TO: util-linux@math.uio.no

1) The following packages have been removed.  Please use the up-to-date,
   canonical versions of these packages from the listed places:

    timezone support (/usr/lib/zoneinfo, libz.a, zic, zdump):
        elsie.nci.nih.gov:/pub/tzcode95d.tar.gz
        elsie.nci.nih.gov:/pub/tzdata95h.tar.gz
    MAKEDEV-C:
        sunsite.unc.edu:/pub/Linux/system/Admin/MAKEDEV-C-1.5.tar.gz
    MAKEDEV:
        sunsite.unc.edu:/pub/Linux/system/Admin/MAKEDEV-2.2.tar.gz
    md5sum:
        prep.ai.mit.edu:/pub/gnu/textutils-1.3.tar.gz
        [The GNU version is now compatible with the Plumb/Lankester
        version.]
    ksymoops:
        Now bundled with the kernel in linux/scripts.

2) update_state has been removed
3) fdisk now supports NetBSD disklabels courtesy of Bernhard Fastenrath
   <fasten@athene.informatik.uni-bonn.de> (and > 8GB disks, courtesy of
   Andries Brouwer)
4) mount improved -- many patches from Andries Brouwer for greatly improved
   error reporting
5) ddate, chkdupexe, and other programs have been improved and bug fixed
6) util-linux is now a source-only distribution
7) mcookie generates better random numbers and will use /dev/random or
   /dev/audio if available
8) chfn, chsh, passwd, and vipw have been updated with security patches
   from Zefram <A.Main@dcs.warwick.ac.uk>.  Now, they all use the same
   locking, and several security holes have been patched.  Further, chsh
   and chfn can be configured at compile time to require a password before
   updates and chsh can be configured to only use shells from /etc/shells.
        

HIGHLIGHTS for version 2.4 (2.3 was never released):
0) Michael K. Johnson <johnsonm@nigel.vnet.net> is the interim maintainer
   while Rik Faith is working on PhD work.
1) login now makes the login tty mode 600 and places it in group "tty"
2) wall, and write will not write dangerous escape sequences
3) wall and write can be run setgid "tty".  If util-linux is compiled for
   this option, "mesg y" will only set group write instead of group/other
   write.
4) fdisk and cfdisk have been patched with the latest llseek.c.  Although I
   had a lot of bug reports about fdisk from util-linux-2.2, I was unable
   to reproduce any of the problems.  Some of the problems appeared to be
   releated to a failure to reboot the machine after changing the partition
   table, and some may have been due to a specific kernel revision problem.
   However, this doesn't seem to account for all of the bug reports -- if
   this version gives you problem, please send as complete a bug report as
   possible.
5) chkdupexe from Nicolai Langfeldt (janl@ifi.uio.no)
6) ctrlaltdel now installs into /sbin instead of /usr/sbin
7) mkfs replacement from Ron Sommeling (sommel@sci.kun.nl)
8) lpcntl removed.  Use tunelp instead.
9) ksymoops from Greg McGary <gkm@magilla.cichlid.com>
10) mkfs.minix now clears the first 512 bytes of the file system so that
    Minix disks won't be confused with MSDOS disks (Daniel Quinlan
    (quinlan@yggdrasil.com))
11) mkswap should now work on an Alpha running Linux
12) frag removed.  See
    sunsite.unc.edu:/pub/Linux/system/Filesystems/defrag-0.6.tar.gz for the
    latest version.
13) mount patches from Andries.Brouwer@cwi.nl and Dan Quinlan
    (quinlan@yggdrasil.com).
14) MAKEDEV and MAKEDEV-C updated to the latest versions.
15) Paths updated for FSSTND 1.2.  This means that you may need to make
    some links.  The links you need to make we system dependent.  The
    ultimate goal is to rename /var/adm to /var/log and have a symbolic
    link from /var/adm to /var/log during the transition period.  If you
    are running an ELF system, you probably won't have to do anything.  The
    bottom line is that the following files must exist or be pointers to
    the old version (used internally by the a.out libraries):

             New                 Old

        /var/log/wtmp       /var/adm/wtmp
        /var/log/lastlog    /var/adm/lastlog
        /var/run/utmp       /var/adm/utmp

HIGHLIGHTS for version 2.2:
1) This is primarily a quick bug-fix release for version 2.1
2) mkfs wrapper added back in, since e2fsprogs only supplies an fsck wrapper
3) selection removed, since someone appears to be maintaining it now.  See
   sunsite.unc.edu:/pub/linux/kernel/patches/console for recent sources.
   For the time being, I'm keeping a copy in the historic subdirectory of
   util-linux.  A "make install" should work find from within that
   directory.
4) Note that other floppy utilities are available from:
    ftp.imag.fr:pub/Linux/ZLIBC/fdutils/fdutils-4.1.src.tar.gz
    sunsite.unc.edu:/pub/Linux/system/Misc/fdutils-4.1.src.tar.gz
    tsx-11.mit.edu:/pub/linux/sources/sbin/fdutils-4.1.src.tar.gz


HIGHLIGHTS for version 2.1:

1) Directory structure rearrange, with configuration support for those who
   use shadow passwords and System V init (no support is provided for these
   things, but your utilities won't get overwritten if you do a "make
   install" after you properly edit MCONFIG).
2) fdisk and cfdisk should work as expected with 2GB+ disk drives
3) As usual, lots of stuff was updated and added, including mount, vipw,
   readprofile
4) Some stuff was also deleted, and can now be found elsewhere:
    fsck wrapper: tsx-11.mit.edu:/pub/linux/ALPHA/ext2fs/e2fsprogs*
    pwd, su: prep.ai.mit.edu:/pub/gnu/sh-utils*
    ed: prep.ai.mit.edu:/pub/gnu/ed*
    od: prep.ai.mit.edu:/pub/gnu/textutils*
    uudecode/uuencode: prep.ai.mit.edu:/pub/gnu/sharutils*
    bdflush/update: ftp.funet.fi:/pub/OS/Linux/PEOPLE/Linus/v1.1/bdflush*



PARTIAL HISTORY OF UTIL-LINUX:

bsd:
    Nothing in this directory gets installed, but some BSD programs need
    this support:
        err.c: 8.1 (Berkeley) 6/4/93
        err.h: 8.1 (Berkeley) 6/2/93
        getopt.c: 4.13 (Berkeley) 2/23/91
        pathnames.h: 5.3 (Berkeley) 5/9/89 with extensive modifications for
                     Linux

disk-utils:
    cfdisk: 0.8 BETA (>2GB) from Kevin E. Martin (martin@cs.unc.edu) with
            modifications for disks > 2GB.
            ftp.cs.unc.edu:/pub/users/martin/linux/cfdisk-0.8.tar.gz
    fdformat: Werner Almesberger (almesber@nessie.cs.id.ethz.ch), with
              modifications by Marcel Mol (marcel@dutecad.et.tudelft.nl)).
              Later, updated with a September 1992 version by Werner.
    fdisk: A. V. Le Blanc (LeBlanc@mcc.ac.uk) fdisk 1.5 release, with
           patched from Kevin Martin for DOS and OS/2 compatibility (1.5a);
           Rik Faith (1.5b, 2.0).
    fsck.minix, mkfs.minix: Linus Torvalds, with modifications by: Rik
                            Faith (faith@cs.unc.edu), Scott Heavner
                            (sdh@po.cwru.edu), Dr. Wettstein
                            (greg%wind.uucp@plains.nodak.edu), Daniel
                            Quinlan (quinlan@yggdrasil.com).
    mkfs: David Engel (david@ods.com) and Fred N. van Kempen
          (waltje@uWalt.NL.Mugnet.ORG)
          Version 1.9 from Ron Sommeling (sommel@sci.kun.nl)
    mkswap: Linus Torvalds, with modifications by Mike Jagdis
            (jaggy@purplet.demon.co.uk. )
            Version for Alpha from
            cage.cs.arizona.edu:/pub/davidm/linux/mkswap-axp-950503.tar.gz
    setfdprm: Werner Almesberger (almesber@nessie.cs.id.ethz.ch)
              Note that more floppy utilities are available from:
                ftp.imag.fr:pub/Linux/ZLIBC/fdutils/fdutils-4.1.src.tar.gz
                sunsite.unc.edu:/pub/Linux/system/Misc/fdutils-4.1.src.tar.gz
                tsx-11.mit.edu:/pub/linux/sources/sbin/fdutils-4.1.src.tar.gz
    llseek.c: from Remy Card's e2fsprogs-0.5b.tar.gz (21Mar95 version) from:
                sunsite.unc.edu:/pub/Linux/system/Filesystems/ext2

games:
    banner: (8.3 (Berkeley) 4/2/94)
            ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin

login-utils:
    agetty: W. Z. Venema, ported by Peter Orbaek <poe@daimi.aau.dk>.
            ftp.daimi.aau.dk:/pub/linux/poe/poeigl-1.37.tar.gz
    chfn: Salvatore Valente <svalente@athena.mit.edu>
    chsh: Salvatore Valente <svalente@athena.mit.edu>
    last: 5.11 w/year (Berkeley) 6/29/88; Port by Michael Haardt with
          changes by Peter Orbaek.
          ftp://ftp.daimi.aau.dk/pub/linux/poe/admutil-1.16.tar.gz
    login: 5.40 (Berkeley) 5/9/89; with ports by Michael Glad and Peter Orbaek
           ftp.daimi.aau.dk:/pub/linux/poe/poeigl-1.37.tar.gz
    mesg: 8.2 (Berkeley) 1/21/94
          ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin
    newgrp: Michael Haardt, with modifications by Peter Orbaek.
            ftp://ftp.daimi.aau.dk/pub/linux/poe/admutil-1.16.tar.gz
    passwd: Peter Orbaek, with yp modifications by Alvaro Martinez
            Echevarria (alvaro@enano.etsit.upm.es)
            ftp://ftp.daimi.aau.dk/pub/linux/poe/admutil-1.16.tar.gz
    shutdown: Peter Orbaek, with new modifications by Stephen Tweedie, Rik
              Faith, and Dave (gentzel@nova.enet.dec.com).
              ftp://ftp.daimi.aau.dk/pub/linux/poe/admutil-1.16.tar.gz
    simpleinit: Peter Orbaek
                ftp.daimi.aau.dk:/pub/linux/poe/poeigl-1.37.tar.gz
    vipw: 5.16 (Berkeley) 3/3/91, with modifications by Mike Grupenhoff
          <kashmir@umiacs.UMD.EDU> 
    wall: 8.2 (Berkeley) 11/16/93 (With changes so that damaging escape
          sequences cannot be sent.)
          ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin


misc-utils:
    cal: 8.4 (Berkeley) 4/2/94, with modifications by Rik Faith and
         Hein@student.tu-clausthal.de (Jochen Hein).
         ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin
    chkdupexe: Version 1.2 from "Nicolai Langfeldt" <janl@ifi.uio.no>
    clear: Rik Faith
    ddate: Druel the Chaotic aka Jeremy Johnson aka mpython@gnu.ai.mit.edu,
           with modifications by Lee Harvey Oswald Smith, K.S.C. and
           substantial updates from Rev. Bro. Lee H:. O:. Smith, KYTP
    domainname: Peter Orbaek
            ftp.daimi.aau.dk:/pub/linux/poe/poeigl-1.37.tar.gz
    dsplit: David Arnstein (arnstein@netcom.com)
            gatekeeper.dec.com:/pub/usenet/comp.sources.misc/volume40/dsplit
    getopt (getoptprog): jhunix.hcf.jhu.edu:
           /pub/public_domain_software/NetBSD/usr/src/usr.bin/getopt
	   replaced by getopt-1.0.3.tar.gz from Frodo Looijaard,
	   found at http://huizen.dds.nl/~frodol
    hostid: Mitch DSouza (m.dsouza@mrc-apu.cam.ac.uk)
            ftp.daimi.aau.dk:/pub/linux/poe/poeigl-1.37.tar.gz
    hostname/dnsdomainname: Peter Tobias <tobias@server.et-inf.fho-emden.de>
              This version (1.6) should also be available soon in:
              nic.funet.fi:/pub/OS/Linux/PEOPLE/Linus/net-source/base/NetKit-A*
    kill: BSD version, modified by Salvatore Valente <svalente@mit.edu>
    logger: 8.1 (Berkeley) 6/6/93, with modifications by Rik Faith
            ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin
    look.c: 8.1 (Berkeley) 6/14/93, with modifications by Rik Faith
            ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin
    mcookie: Rik Faith (faith@cs.unc.edu)
    md5sum: Branki Lankester and Colin Plumb.  The MD5 message-digest
            algorithm is in the Public Domain.  This implementation
            calculates message-digest information only, and can NOT be used
            for encryption.  Therefore it is exportable from the USA.
            Original sources in the MIT version of PGP 2.6.2.
    namei: Roger S. Southwick, with modifications by Steve Tell.
    reset: Rik Faith
    script: 5.13 (Berkeley) 3/5/91, with modifications by Rick Sladkey
            (jrs@world.std.com), Harald Koenig
            (koenig@nova.tat.physik.uni-tuebingen.de).
    setterm: Gordon Irlam (gordoni@cs.ua.oz.au), with modifications by
             Peter MacDonald, Mika Liljeberg (liljeber@cs.Helsinki.FI),
             John Walder (j-walder@uiuc.edu) [for dosemu].
    tsort: 5.3 (Berkeley) 6/1/90
           wuarchive.wustl.edu:/mirrors/4.3-reno
    whereis: 5.5 (Berkeley) 4/18/91
             wuarchive.wustl.edu:/mirrors/4.3-reno
    write: 8.1 (Berkeley) 6/6/93, with modifications by Mike Grupenhoff
           (kashmir@umiacs.umd.edu).  With changes so that damaging escape
           sequences cannot be sent.
           ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin


mount:
    mount, umount, swapon

    Rick Sladkey put together the mount-0.99.6.tar.Z package, and Stephen
    Tweedie provided updates.  The utilities were originally from that
    package (all appear to be by Doug Quale (quale@saavik.cs.wisc.edu),
    with modifications by H. J. Lu (hlu@eecs.wsu.edu) on 11/25/92; Rick
    Sladkey (jrs@world.std.com) in January 1993; and Stephen Tweedie
    <sct@dcs.ed.ac.uk> on 8 October 1993.  This distribution mount now
    supports NFS stuff.  I have modified the man pages.  I have also added
    a small patch from Hamish Glen Coleman (t933093@minyos.xx.rmit.OZ.AU)
    which restores the -o semantics.
    
    Updated with Rick Sladkey's mount-0.99.14.tar.gz package, and with
    extra patches from Rick.  Adam J. Richter allowed -t option to be
    optional. Patrick J. Volkerding (volkerdi@mhd1.moorhead.msus.edu) and
    Mitchum DSouza both provided patches that fixed the (null) problem when
    not using -t. Mitchum DSouza
    (mitch@mrc-applied-psychology.cambridge.ac.uk) added support for loop
    device mounts. Sebastian Lederer
    (lederer@next-pc.informatik.uni-bonn.de) added support for sending an
    unmount RPC call to the server when an NFS-filesystem is unmounted.
    Sander van Malssen (svm@kozmix.hacktic.nl) added support for remounting
    readonly file systems readonly.  Mike Grupenhoff
    <kashmir@umiacs.UMD.EDU> added a probe of the superblock for the type
    before /proc/filesystems is checked.  Andries.Brouwer@cwi.nl fixed up
    error reporting.

    Updated with patches from Andries.Brouwer@cwi.nl and Dan Quinlan
    (quinlan@yggdrasil.com).  And more patches from Andries and others.

historic/selection: The complete selection-1.5 package, by Andrew Haylett
    <ajh@gec-mrc.co.uk>, 17th June 1993, is included in the historic tree.
    Kernel patches are no longer necessary for modern kernels, but these
    were tiny so I left them in for historical reasons.  The Makefile was
    modified for this distribution.  With changes from Rick Sladkey.

sys-utils:
    arch: Rik Faith <faith@cs.unc.edu>
    chroot: Rick Sladkey <jrs@world.std.com>
    clock: Originally from the timesrc-1.2.tar.Z package, Charles Hedrick,
           hedrick@cs.rutgers.edu (V1.0); Rob Hooft, hooft@chem.ruu.nl
           (V1.1); Harald Koenig (koenig@nova.tat.physik.uni-tuebingen.de)
           (V1.2).  With additional changes: Hamish Coleman
           (hamish@zot.apana.org.au) (V1.2a); Alan Modra
           (alan@spri.levels.unisa.edu.au (V1.3, V1.4).
    ctrlaltdel: Peter Orbaek <poe@daimi.aau.dk>
                ftp://ftp.daimi.aau.dk/pub/linux/poe/admutil-1.16.tar.gz
    cytune: Nick Simicish (njs@scifi.emi.net) and Rik Faith (faith@cs.unc.edu)
    dmesg: Theodore Ts'o (tytso@athena.mit.edu); Rick Sladkey
           (jrs@world.std.com)
    ipcrm: From the ipcdelta.tar.z distribution by krishna
           balasub@cis.ohio-state.edu on 3/15/93.  ipc.info and ipc.texi
           are also from that distribution.
    ipcs: Also from the ipcdelta.tar.z distribution by krishna
          balasub@cis.ohio-state.edu, with patches from Mike Jagdis
          (jaggy@purplet.demon.co.uk)
    kbdrate: Rik Faith (faith@cs.unc.edu), with patches from
             Andries.Brouwer@cwi.nl and John Bowman
             (bowman@hagar.ph.utexas.edu)
    ksymoops: 1.7 from Greg McGary <gkm@magilla.cichlid.com>
    rdev: almesber@nessie.cs.id.ethz.ch (Werner Almesberger), with
          modifications from Peter MacDonald, Stephen Tweedie
          (sct@dcs.ed.ac.uk), and Dave (gentzel@nova.enet.dec.com)
    readprofile: Alessandro Rubini from readprofile-2.0.tar.gz
    renice: 8.1 (Berkeley) 6/9/93
            ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin
    setserial: Michael K. Johnson (johnsonm@stolaf.edu) re-released Rick
               Sladkey's setserial in January 1993, with changes by
               Theodore Ts'o (tytso@mit.edu).  I think that Theodore also
               did extensive changes for version 2.01, I can't find any
               notes about this in the documentation. However, Theodore
               Ts'o (tytso@ATHENA.MIT.EDU) released version 2.10, and that
               is now included.
    setsid: Rick Sladkey <jrs@world.std.com>
    sln: Mike Parker and David MacKenzie (from Linux's libc)
    sync: Nick Holloway, with thanks to James Bonfield
    tunelp: Michael K. Johnson (johnsonm@nigel.vnet.net)


syslogd:
   5.45 (Berkeley) 3/2/91

   Most of the changes for syslogd come from Rick Sladkey
   (jrs@world.std.com), but I'd like to thank other people who sent in
   changes (which usually got forwarded to Rick): Carsten Paeth
   (calle@calle.in-berlin.de) and Kaz Sasayama (kaz@lilia.iijnet.or.jp).

text-utils:
    col: 5.3 (Berkeley) 2/2/91; with patches from Andries.Brouwer@cwi.nl
         and Carl Christofferson (cchris@connected.com)
         wuarchive.wustl.edu:/mirrors/4.3-reno/{bin,usr.bin}
    colcrt: 8.1 (Berkeley) 6/6/93 (Bill Joy)
            ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin
    colrm: 5.4 (Berkeley) 6/1/90 (Jeff Schriebman)
    column: 8.3 (Berkeley) 4/2/94
            ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin
    hexdump: 5.5 (Berkeley) 6/1/90
             wuarchive.wustl.edu:/mirrors/4.3-reno/{bin,usr.bin}
    more: 5.19 (Berkeley) 6/29/88 (Eric Shienbrood, Geoff Peck, John Foderaro)
    rev: 5.2 (Berkeley) 3/21/92; with modifications by Charles Hannum
         (mycroft@gnu.ai.mit.edu), Brian Koehmstedt (bpk@gnu.ai.mit.edu),
         bjdouma@xs4all.nl
         wuarchive.wustl.edu:/mirrors/4.3-reno/{bin,usr.bin}
    strings: 5.10 (Berkeley) 5/23/91; with patches from Vitor Duarte
             <vad@fct.unl.pt>
             wuarchive.wustl.edu:/mirrors/4.3-reno/{bin,usr.bin}
    ul: 8.1 (Berkeley) 6/6/93
        ftp.cdrom.com:/pub/bsd-sources/4.4BSD-Lite/usr/src/usr.bin

