config BR2_PACKAGE_UTIL_LINUX
	bool "util-linux"
	depends on BR2_LARGEFILE
	depends on BR2_USE_WCHAR
	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
	help
	  Various useful/essential linux libraries and utilities.

	  Things like mkfs, mkswap, swapon, fdisk, mount, dmesg, etc...

	  http://www.kernel.org/pub/linux/utils/util-linux/

if BR2_PACKAGE_UTIL_LINUX

config BR2_PACKAGE_UTIL_LINUX_LIBBLKID
	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
	depends on BR2_USE_MMU # fork
	bool "libblkid"
	help
	  Install libblkid.

config BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
	depends on BR2_USE_MMU # util-linux/libblkid
	bool "libmount"
	help
	  Install libmount.

config BR2_PACKAGE_UTIL_LINUX_LIBUUID
	bool "libuuid"
	help
	  Install libuuid.

config BR2_PACKAGE_UTIL_LINUX_BINARIES
	bool "install utilities"
	depends on BR2_USE_MMU # fork()
	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
	help
	  Install the basic set of util-linux binaries.

if BR2_PACKAGE_UTIL_LINUX_BINARIES

config BR2_PACKAGE_UTIL_LINUX_AGETTY
	bool "agetty"
	help
	  Alternative linux getty

config BR2_PACKAGE_UTIL_LINUX_ARCH
	bool "arch"
	help
	  Print machine architecture

config BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH
	bool "chfn/chsh"
	depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR) # linux-pam
	depends on !BR2_PREFER_STATIC_LIB
	select BR2_PACKAGE_LINUX_PAM
	help
	  Change login shell, real user name and information

comment "chfn/chsh needs a toolchain w/ wchar, locale, dynamic library"
	depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \
		|| BR2_PREFER_STATIC_LIB

config BR2_PACKAGE_UTIL_LINUX_CRAMFS
	bool "cramfs utilities"
	select BR2_PACKAGE_ZLIB
	help
	  Build fsck.cramfs and mkfs.cramfs

config BR2_PACKAGE_UTIL_LINUX_DDATE
	bool "ddate"
	help
	  Convert Gregorian dates to Discordian dates

config BR2_PACKAGE_UTIL_LINUX_EJECT
	bool "eject"
	help
	  Eject removable media

config BR2_PACKAGE_UTIL_LINUX_FALLOCATE
	bool "fallocate"
	depends on !BR2_avr32 # fallocate not implemented
	help
	  Preallocate space to a file

config BR2_PACKAGE_UTIL_LINUX_FSCK
	bool "fsck"
	help
	  Check and repair a linux filesystem

config BR2_PACKAGE_UTIL_LINUX_KILL
	bool "kill"
	help
	  Send a signal to a process

config BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS
	bool "login utilities"
	depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR) # linux-pam
	depends on !BR2_PREFER_STATIC_LIB
	select BR2_PACKAGE_LINUX_PAM
	help
	  Build login utilities (last, login, su, sulogin)

comment "login utilities needs a toolchain w/ wchar, locale, dynamic library"
	depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \
		|| BR2_PREFER_STATIC_LIB

config BR2_PACKAGE_UTIL_LINUX_LOSETUP
	bool "losetup"
	help
	  Set up and control loop devices

config BR2_PACKAGE_UTIL_LINUX_MESG
	bool "mesg"
	help
	  Control write access to your terminal

config BR2_PACKAGE_UTIL_LINUX_MOUNT
	bool "mount/umount"
	help
	  Mount/unmount filesystems

config BR2_PACKAGE_UTIL_LINUX_NEWGRP
	bool "newgrp"
	help
	  Log in to a new group

config BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT
	bool "pivot_root"
	help
	  Change the root filesystem

config BR2_PACKAGE_UTIL_LINUX_PARTX
	bool "partition utilities"
	help
	  Partition tools (addpart, delpart, partx)

config BR2_PACKAGE_UTIL_LINUX_RAW
	bool "raw"
	help
	  Build a linux raw character device

config BR2_PACKAGE_UTIL_LINUX_RENAME
	bool "rename"
	help
	  Rename files

config BR2_PACKAGE_UTIL_LINUX_RESET
	bool "reset"
	help
	  Reset the terminal

config BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS
	bool "schedutils"
	help
	  Scheduling utilities (chrt, ionice, taskset)

config BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT
	bool "switch_root"
	help
	  Switch to another filesystem as the root of the mount tree

config BR2_PACKAGE_UTIL_LINUX_UNSHARE
	bool "unshare"
	help
	  Run program with some namespaces unshared from parent

config BR2_PACKAGE_UTIL_LINUX_UTMPDUMP
	bool "utmpdump"
	help
	  Dump UTMP and WTMP files in raw format

config BR2_PACKAGE_UTIL_LINUX_UUIDD
	bool "uuidd"
	help
	  UUID generation daemon

config BR2_PACKAGE_UTIL_LINUX_VIPW
	bool "vipw"
	help
	  Edit the password, group, shadow-password or shadow-group file

config BR2_PACKAGE_UTIL_LINUX_WALL
	bool "wall"
	help
	  Send a message to everybody's terminal

config BR2_PACKAGE_WDCTL
	bool "wdctl"
	help
	  Shows hardware watchdog status

config BR2_PACKAGE_UTIL_LINUX_WRITE
	bool "write"
	help
	  Send a message to another user

endif

endif

comment "util-linux needs a toolchain w/ largefile, wchar"
	depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
