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:	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

