config BR2_PACKAGE_SWUPDATE
	bool "swupdate"
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_USE_MMU # fork()
	# swupdate requires a parser and uses libconfig as default
	select BR2_PACKAGE_LIBCONFIG if !BR2_PACKAGE_JSON_C && \
		!BR2_PACKAGE_LUA_5_2 && !BR2_PACKAGE_LUA_5_3
	help
	  swupdate provides a reliable way to update the software on an
	  embedded system.

	  swupdate is highly configurable to fit the targets requirements and
	  to minimize the footprint. The provided default configuration file
	  BR2_PACKAGE_SWUPDATE_CONFIG will enable swupdate with an embedded
	  webserver, a parser and a handler for raw NAND or NOR flash.

	  The default configuration file builds a reasonable firmware update
	  system with minimal external dependencies in my mind. If you like to
	  use your own modified configuration, you have to select the
	  necessary packages manually:

	  * Select BR2_PACKAGE_LUA_5_2 or BR2_PACKAGE_LUA_5_3 if you want
	    to have Lua support.
	  * Select BR2_LIBCURL if you want to use the download feature.
	  * Select BR2_PACKAGE_OPENSSL is you want to add encryption support.
	  * Select BR2_PACKAGE_MTD if you want to use swupdate with UBI
	    partitions.
	  * Select BR2_PACKAGE_ZLIB if you want to deal with gzip compressed
	    archives.
	  * Select BR2_PACKAGE_UBOOT_TOOLS and BR2_PACKAGE_ZLIB to add support
	    for setting the U-Boot environment.
	  * Select BR2_PACKAGE_ZEROMQ to add support for using a remote
	    handler.

	  https://sbabic.github.io/swupdate

if BR2_PACKAGE_SWUPDATE

config BR2_PACKAGE_SWUPDATE_CONFIG
	string "swupdate configuration file"
	default "package/swupdate/swupdate.config"
	help
	  Path to the swupdate configuration file.

	  I you wish to use your own modified swupdate configuration file
	  specify the config file location with this option.

config BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE
	bool "install default website"
	default y
	help
	  Install the provided website to /var/www/swupdate.

	  This is necessary if you want to run swupdate with the embedded
	  webserver and do not provide an own website to be installed to
	  /var/www/swupdate.
endif

comment "swupdate needs a toolchain w/ threads"
	depends on BR2_USE_MMU
	depends on !BR2_TOOLCHAIN_HAS_THREADS
