config BR2_PACKAGE_DOCKER_ENGINE
	bool "docker-engine"
	depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
	depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
	depends on BR2_TOOLCHAIN_HAS_THREADS
	help
	  Docker is a platform to build, ship,
	  and run applications as lightweight containers.

	  https://github.com/docker/docker

if BR2_PACKAGE_DOCKER_ENGINE

config BR2_PACKAGE_DOCKER_ENGINE_DAEMON
	bool "docker daemon"
	depends on BR2_USE_MMU # docker-containerd
	select BR2_PACKAGE_DOCKER_CONTAINERD # runtime dependency
	select BR2_PACKAGE_IPTABLES # runtime dependency
	select BR2_PACKAGE_SQLITE # runtime dependency
	default y
	help
	  Build the Docker system daemon.
	  If not selected, will build client only.

config BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL
	bool "build experimental features"

if BR2_PACKAGE_DOCKER_ENGINE_DAEMON

config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS
	bool "btrfs filesystem driver"
	depends on BR2_USE_MMU # btrfs-progs
	depends on BR2_TOOLCHAIN_HAS_THREADS # btrfs-progs
	select BR2_PACKAGE_BTRFS_PROGS
	help
	  Build the btrfs filesystem driver for Docker.

config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_DEVICEMAPPER
	bool "devicemapper filesystem driver"
	depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2
	depends on BR2_USE_MMU # lvm2
	depends on !BR2_STATIC_LIBS # lvm2
	depends on !BR2_TOOLCHAIN_USES_MUSL # lvm2
	select BR2_PACKAGE_LVM2
	select BR2_PACKAGE_LVM2_APP_LIBRARY
	help
	  Build the devicemapper filesystem driver for Docker.

config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS
	bool "vfs filesystem driver"
	depends on BR2_USE_WCHAR # gvfs
	depends on BR2_USE_MMU # gvfs
	depends on BR2_TOOLCHAIN_HAS_THREADS # gvfs
	select BR2_PACKAGE_GVFS
	help
	  Build the vfs filesystem driver for Docker.

endif

endif

comment "docker-engine needs a toolchain w/ threads"
	depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
	depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
	depends on !BR2_TOOLCHAIN_HAS_THREADS
