config BR2_PACKAGE_ECRYPTFS_UTILS
	bool "ecryptfs-utils"
	depends on BR2_USE_WCHAR # gettext
	depends on BR2_USE_MMU # keyutils
	depends on BR2_TOOLCHAIN_HAS_THREADS # libnss -> libnspr
	depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT # libnss -> libnspr
	depends on !BR2_MIPS_NABI32 # libnss
	depends on !BR2_STATIC_LIBS # libnss, keyutils
	select BR2_PACKAGE_KEYUTILS
	select BR2_PACKAGE_LIBNSS
	# runtime dependency only, some scripts are using the
	# 'gettext' program to get translations
	select BR2_PACKAGE_GETTEXT
	# runtime dependency only
	select BR2_PACKAGE_GETENT
	help
	  eCryptfs is a POSIX-compliant enterprise cryptographic
	  filesystem for Linux. It is stacked on top of any other
	  Linux filesystem, it stores cryptographic metadata in the
	  header of each file written.

	  The eCryptfs kernel module is available in all Linux kernels
	  since version 2.6.19. This package provides userspace
	  utilities needed to mount eCryptfs.

	  Files are encrypted using a passphrase. Consider building
	  openssl for another method.

	  http://ecryptfs.org

comment "ecryptfs-utils needs a toolchain w/ threads, wchar, dynamic library"
	depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT
	depends on BR2_USE_MMU
	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
		BR2_STATIC_LIBS
