comment "mosh needs a toolchain w/ C++, threads, dynamic library, wchar, gcc >= 4.8"
	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \
		|| BR2_STATIC_LIBS || !BR2_USE_WCHAR \
		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS

config BR2_PACKAGE_MOSH
	bool "mosh"
	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
	depends on BR2_INSTALL_LIBSTDCPP # protobuf
	depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # protobuf
	depends on !BR2_STATIC_LIBS # protobuf
	depends on BR2_USE_WCHAR
	select BR2_PACKAGE_PROTOBUF
	select BR2_PACKAGE_NCURSES
	select BR2_PACKAGE_NETTLE if !BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_ZLIB
	# runtime dependency
	select BR2_PACKAGE_OPENSSH if !BR2_PACKAGE_DROPBEAR_CLIENT
	help
	  Remote terminal application that supports intermittent
	  connectivity, allows roaming, and provides speculative local
	  echo and line editing of user keystrokes.

	  Mosh requires that the remote machine has a locale setting
	  matching the one on the client.

	  When using mosh with dropbear on a remote machine, the
	  client needs mosh with a version above 1.3.0 and the
	  --no-ssh-pty option needs to be passed when starting the
	  connection.

	  https://mosh.org
