config BR2_PACKAGE_CONTAINERD
	bool "containerd"
	depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
	depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on !BR2_TOOLCHAIN_USES_UCLIBC # runc
	depends on BR2_USE_MMU # util-linux
	select BR2_PACKAGE_HOST_GO
	select BR2_PACKAGE_RUNC if !BR2_PACKAGE_CRUN # runtime dependency
	select BR2_PACKAGE_UTIL_LINUX # runtime dependency
	select BR2_PACKAGE_UTIL_LINUX_BINARIES
	select BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT
	select BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT
	select BR2_PACKAGE_UTIL_LINUX_MOUNT
	help
	  containerd is a daemon to control runC.

	  https://containerd.io/

if BR2_PACKAGE_CONTAINERD

config BR2_PACKAGE_CONTAINERD_DRIVER_BTRFS
	bool "btrfs snapshot driver"
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
	help
	  Build the btrfs snapshot driver for containerd.

comment "brtfs snapshot driver needs headers >= 4.12"
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12

config BR2_PACKAGE_CONTAINERD_DRIVER_DEVMAPPER
	bool "devmapper snapshot driver"
	depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2
	depends on BR2_USE_MMU # lvm2
	depends on !BR2_STATIC_LIBS # lvm2
	select BR2_PACKAGE_LVM2
	help
	  Build the devmapper snapshot driver for containerd.

comment "devmapper snapshot driver needs a toolchain w/ threads, dynamic library"
	depends on BR2_USE_MMU
	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_CONTAINERD_DRIVER_ZFS
	bool "zfs snapshot driver"
	depends on BR2_LINUX_KERNEL # zfs
	depends on BR2_PACKAGE_HAS_UDEV # zfs
	depends on BR2_USE_MMU  # zfs
	depends on BR2_TOOLCHAIN_HAS_THREADS  # zfs
	select BR2_PACKAGE_ZFS
	help
	  Build the zfs snapshot driver for containerd.

comment "zfs snapshot driver needs a Linux kernel, udev, toolchain w/ threads"
	depends on BR2_USE_MMU
	depends on !BR2_LINUX_KERNEL || !BR2_PACKAGE_HAS_UDEV || \
		!BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_CONTAINERD_CRI
	bool "Kubernetes CRI support"
	help
	  Build containerd with Kubernetes CRI support.

endif

comment "containerd needs a glibc or musl toolchain w/ threads"
	depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
	depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
	depends on BR2_USE_MMU
	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC
