The following is a list of commands or features that are deprecated.  All
deprecated utils are in maintenance mode and we keep them in source tree for
backward compatibility only.

What:   line(1) command
Why:    useless, nobody uses this command, head(1) is better

--------------------------

What:	losetup -s
Why:	the option -s is in collision with the Loop-AES losetup dialect that is used
        in some distributions. Use the long version (--show) only.

--------------------------

What:	cryptoloop support in mount/losetup
Why:	depreciated in favor of dm-crypt.

---------------------------

What:	elvtune
Why:	useless for kernel >= 2.6.9

---------------------------

What:	arch(1) command
Why:	deprecated in favor of uname(1) or arch(1) from coreutils

	The arch(1) has been added (during 2.13 development cycle) to coreutuls
	where it will be maintained as an alias for uname(1) command.

----------------------------

What:	kill(1) command
Why:	deprecated in favor of kill from procps or bash build-in kill command

----------------------------

What:	newgrp(1)
Why:	deprecated in favor of newgrp from shadow-utils

----------------------------

What:	vipw/vigr(8)
Why:	deprecated in favor of vipw/vigr(8) from shadow-utils

----------------------------

What:	last(1)
Why:	nobody uses this implementation

----------------------------

What:	shutdown(1), simpleinit(1), initctl(1)
Why:	nobody uses this implementation

