config BR2_PACKAGE_UDISKS
	bool "udisks"
	depends on BR2_ENABLE_LOCALE # parted
	depends on BR2_HOST_GCC_AT_LEAST_4_9 # spidermonkey
	depends on BR2_INSTALL_LIBSTDCPP # spidermonkey
	depends on BR2_PACKAGE_HAS_UDEV
	depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS # spidermonkey
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # spidermonkey
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # polkit
	depends on BR2_USE_MMU # lvm2
	depends on BR2_USE_WCHAR # dbus-glib -> glib2
	depends on !BR2_TOOLCHAIN_USES_UCLIBC # polkit, lvm2
	depends on !BR2_STATIC_LIBS # lvm2, spidermonkey
	select BR2_PACKAGE_DBUS
	select BR2_PACKAGE_DBUS_GLIB
	select BR2_PACKAGE_LIBATASMART
	select BR2_PACKAGE_LIBGUDEV
	select BR2_PACKAGE_LVM2
	select BR2_PACKAGE_PARTED
	select BR2_PACKAGE_POLKIT
	select BR2_PACKAGE_SG3_UTILS
	help
	  The udisks project provides

	   o A storage daemon that implements well-defined D-Bus
	     interfaces that can be used to query and manipulate
	     storage devices.

	   o a command-line tool, udisks(1), that can be used to query
	     and use the daemon

	  http://www.freedesktop.org/wiki/Software/udisks

if BR2_PACKAGE_UDISKS

config BR2_PACKAGE_UDISKS_LVM2
	bool "lvm2 support"
	# The lvm app library can't compile against musl
	depends on BR2_TOOLCHAIN_USES_GLIBC
	select BR2_PACKAGE_LVM2_APP_LIBRARY
	help
	  Enable LVM2 support

comment "lvm2 support needs a glibc toolchain"
	depends on !BR2_TOOLCHAIN_USES_GLIBC

endif

comment "udisks needs udev /dev management"
	depends on BR2_USE_MMU
	depends on !BR2_PACKAGE_HAS_UDEV

comment "udisks needs a glibc or musl toolchain with locale, C++, wchar, dynamic library, NPTL, gcc >= 4.9"
	depends on BR2_USE_MMU
	depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS
	depends on !BR2_ENABLE_LOCALE || BR2_TOOLCHAIN_USES_UCLIBC || \
		!BR2_INSTALL_LIBSTDCPP || \
		BR2_STATIC_LIBS || \
		!BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
		!BR2_HOST_GCC_AT_LEAST_4_9 || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
		!BR2_USE_WCHAR
