menu "Gentoo Linux"

config GENTOO_LINUX
	bool "Gentoo Linux support"

	default y

	help
		In order to boot Gentoo Linux a minimal set of config settings needs to
		be enabled in the kernel; to avoid the users from having to enable them
		manually as part of a Gentoo Linux installation or a new clean config,
		we enable these config settings by default for convenience.

		See the settings that become available for more details and fine-tuning.

config GENTOO_LINUX_UDEV
	bool "Linux dynamic and persistent device naming (userspace devfs) support"

	depends on GENTOO_LINUX
	default y if GENTOO_LINUX

	select DEVTMPFS
	select TMPFS
	select UNIX

	select MMU
	select SHMEM

	help
		In order to boot Gentoo Linux a minimal set of config settings needs to
		be enabled in the kernel; to avoid the users from having to enable them
		manually as part of a Gentoo Linux installation or a new clean config,
		we enable these config settings by default for convenience.

		Currently this only selects TMPFS, DEVTMPFS and their dependencies.
		TMPFS is enabled to maintain a tmpfs file system at /dev/shm, /run and
		/sys/fs/cgroup; DEVTMPFS to maintain a devtmpfs file system at /dev.

		Some of these are critical files that need to be available early in the
		boot process; if not available, it causes sysfs and udev to malfunction.

		To ensure Gentoo Linux boots, it is best to leave this setting enabled;
		if you run a custom setup, you could consider whether to disable this.

config GENTOO_LINUX_PORTAGE
	bool "Select options required by Portage features"

	depends on GENTOO_LINUX
	default y if GENTOO_LINUX

	select CGROUPS
	select NAMESPACES
	select IPC_NS
	select NET_NS
	select PID_NS
	select SYSVIPC
	select UTS_NS

	help
		This enables options required by various Portage FEATURES.
		Currently this selects:

		CGROUPS     (required for FEATURES=cgroup)
		IPC_NS      (required for FEATURES=ipc-sandbox)
		NET_NS      (required for FEATURES=network-sandbox)
		PID_NS		(required for FEATURES=pid-sandbox)
		SYSVIPC     (required by IPC_NS)
   

		It is highly recommended that you leave this enabled as these FEATURES
		are, or will soon be, enabled by default.

menu "Support for init systems, system and service managers"
	visible if GENTOO_LINUX

config GENTOO_LINUX_INIT_SCRIPT
	bool "OpenRC, runit and other script based systems and managers"

	default y if GENTOO_LINUX

	depends on GENTOO_LINUX

	select BINFMT_SCRIPT
	select CGROUPS
	select EPOLL
	select FILE_LOCKING
	select INOTIFY_USER
	select SIGNALFD
	select TIMERFD

	help
		The init system is the first thing that loads after the kernel booted.

		These config settings allow you to select which init systems to support;
		instead of having to select all the individual settings all over the
		place, these settings allows you to select all the settings at once.

		This particular setting enables all the known requirements for OpenRC,
		runit and similar script based systems and managers.

		If you are unsure about this, it is best to leave this setting enabled.

config GENTOO_LINUX_INIT_SYSTEMD
	bool "systemd"

	default n

	depends on GENTOO_LINUX && GENTOO_LINUX_UDEV

	select AUTOFS4_FS
	select BLK_DEV_BSG
	select BPF_SYSCALL
	select CGROUP_BPF
	select CGROUPS
	select CHECKPOINT_RESTORE
	select CRYPTO_HMAC 
	select CRYPTO_SHA256
	select CRYPTO_USER_API_HASH
	select DEVPTS_MULTIPLE_INSTANCES
	select DMIID if X86_32 || X86_64 || X86
	select EPOLL
	select FANOTIFY
	select FHANDLE
	select FILE_LOCKING
	select INOTIFY_USER
	select IPV6
	select NET
	select NET_NS
	select PROC_FS
	select SECCOMP
	select SECCOMP_FILTER
	select SIGNALFD
	select SYSFS
	select TIMERFD
	select TMPFS_POSIX_ACL
	select TMPFS_XATTR
	select USER_NS

	select ANON_INODES
	select BLOCK
	select EVENTFD
	select FSNOTIFY
	select INET
	select NLATTR

	help
		The init system is the first thing that loads after the kernel booted.

		These config settings allow you to select which init systems to support;
		instead of having to select all the individual settings all over the
		place, these settings allows you to select all the settings at once.

		This particular setting enables all the known requirements for systemd;
		it also enables suggested optional settings, as the package suggests to.

endmenu

endmenu
