#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#

menu "Selinux Utilities"
	depends on SELINUX

config CHCON
	bool "chcon"
	default n
	depends on SELINUX
	help
	  Enable support to change the security context of file.

config FEATURE_CHCON_LONG_OPTIONS
	bool "Enable long options"
	default y
	depends on CHCON && GETOPT_LONG
	help
	  Support long options for the chcon applet.

config GETENFORCE
	bool "getenforce"
	default n
	depends on SELINUX
	help
	  Enable support to get the current mode of SELinux.

config GETSEBOOL
	bool "getsebool"
	default n
	depends on SELINUX
	help
	  Enable support to get SELinux boolean values.

config LOAD_POLICY
	bool "load_policy"
	default n
	depends on SELINUX
	help
	  Enable support to load SELinux policy.

config MATCHPATHCON
	bool "matchpathcon"
	default n
	depends on SELINUX
	help
	  Enable support to get default security context of the
	  specified path from the file contexts configuration.

config RESTORECON
	bool "restorecon"
	default n
	depends on SELINUX
	help
	  Enable support to relabel files. The feature is almost
	  the same as setfiles, but usage is a little different.

config RUNCON
	bool "runcon"
	default n
	depends on SELINUX
	help
	  Enable support to run command in speficied security context.

config FEATURE_RUNCON_LONG_OPTIONS
	bool "Enable long options"
	default y
	depends on RUNCON && GETOPT_LONG
	help
	  Support long options for the runcon applet.

config SELINUXENABLED
	bool "selinuxenabled"
	default n
	depends on SELINUX
	help
	  Enable support for this command to be used within shell scripts
	  to determine if selinux is enabled.

config SETENFORCE
	bool "setenforce"
	default n
	depends on SELINUX
	help
	  Enable support to modify the mode SELinux is running in.

config SETFILES
	bool "setfiles"
	default n
	depends on SELINUX
	help
	  Enable support to modify to relabel files.
	  Notice: If you built libselinux with -D_FILE_OFFSET_BITS=64,
	  (It is default in libselinux's Makefile), you _must_ enable
	  CONFIG_LFS.

config FEATURE_SETFILES_CHECK_OPTION
	bool "Enable check option"
	default n
	depends on SETFILES
	help
	  Support "-c" option (check the validity of the contexts against
	  the specified binary policy) for setfiles. Requires libsepol.

config SETSEBOOL
	bool "setsebool"
	default n
	depends on SELINUX
	help
	  Enable support for change boolean.
	  semanage and -P option is not supported yet.

endmenu

