comment "policycoreutils needs a toolchain w/ threads, dynamic library"
	depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS

config BR2_PACKAGE_POLICYCOREUTILS
	bool "policycoreutils"
	depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS # libsemanage
	depends on BR2_TOOLCHAIN_HAS_THREADS # libsemanage
	depends on !BR2_STATIC_LIBS #libsemanage
	select BR2_PACKAGE_LIBSEMANAGE
	select BR2_PACKAGE_LIBCAP_NG
	help
	  Policycoreutils is a collection of policy utilities
	  (originally the "core" set of utilities needed to use
	  SELinux, although it has grown a bit over time), which have
	  different dependencies.  sestatus, secon, run_init, and
	  newrole only use libselinux.  load_policy and setfiles only
	  use libselinux and libsepol.  semodule and semanage use
	  libsemanage (and thus bring in dependencies on libsepol and
	  libselinux as well). setsebool uses libselinux to make
	  non-persistent boolean changes (via the kernel interface)
	  and uses libsemanage to make persistent boolean changes.

	  The base package will install the following utilities:
	      load_policy
	      newrole
	      run_init
	      secon
	      semodule
	      sestatus
	      setfiles
	      setsebool

	  http://selinuxproject.org/page/Main_Page
