config BR2_PACKAGE_UTIL_LINUX
	bool "util-linux"
	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_LIBSMARTCOLS
	bool "libsmartcols"
	help
	  Install libsmartcols.

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_LIBSMARTCOLS
	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_BFS
	bool "bfs"
	help
	  SCO bfs filesystem support

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

comment "chfn/chsh needs a uClibc or (e)glibc toolchain w/ wchar, locale, dynamic library"
	depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \
		|| BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL

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_EJECT
	bool "eject"
	help
	  Eject removable media

config BR2_PACKAGE_UTIL_LINUX_FALLOCATE
	bool "fallocate"
	help
	  Preallocate space to a file

config BR2_PACKAGE_UTIL_LINUX_FDFORMAT
	bool "fdformat"
	help
	  Low-level format a floppy disk

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

config BR2_PACKAGE_UTIL_LINUX_HWCLOCK
	bool "hwclock"
	help
	  Query or set the hardware clock (RTC)

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

config BR2_PACKAGE_UTIL_LINUX_LAST
	bool "last"
	help
	  Show a listing of last logged in users

config BR2_PACKAGE_UTIL_LINUX_LINE
	bool "line"
	help
	  Read one line

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

comment "login utilities needs a uClibc or (e)glibc toolchain w/ wchar, locale, dynamic library"
	depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \
		|| BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL

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_MINIX
	bool "minix"
	help
	  Minix filesystem support

config BR2_PACKAGE_UTIL_LINUX_MORE
	bool "more"
	select BR2_PACKAGE_NCURSES
	help
	  File perusal filter for crt viewing

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

config BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT
	bool "mountpoint"
	help
	  See if a directory is a mountpoint

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

config BR2_PACKAGE_UTIL_LINUX_NOLOGIN
	bool "nologin"
	help
	  Politely refuse a login

config BR2_PACKAGE_UTIL_LINUX_NSENTER
	bool "nsenter"
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
	help
	  Enter the namespaces of another process.

comment "nsenter needs a toolchain w/ headers >= 3.0"
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0

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

config BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT
	bool "pivot_root"
	help
	  Change the root filesystem

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_SETPRIV
	bool "setpriv"
	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # libcap-ng
	select BR2_PACKAGE_LIBCAP_NG
	help
	  Run a program with different Linux privilege settings

config BR2_PACKAGE_UTIL_LINUX_SETTERM
	bool "setterm"
	select BR2_PACKAGE_NCURSES
	help
	  Set terminal attributes

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_TUNELP
	bool "tunelp"
	select BR2_PACKAGE_NCURSES
	help
	  Set various parameters for the lp device

config BR2_PACKAGE_UTIL_LINUX_UL
	bool "ul"
	select BR2_PACKAGE_NCURSES
	help
	  Do underlining

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_UTIL_LINUX_WDCTL
	bool "wdctl"
	help
	  Shows hardware watchdog status

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

config BR2_PACKAGE_UTIL_LINUX_ZRAMCTL
	bool "zramctl"
	help
	  Set up and control zram devices

endif

endif

comment "util-linux needs a toolchain w/ wchar"
	depends on !BR2_USE_WCHAR
