All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/swupdate: new package
@ 2015-01-05 13:48 Jörg Krause
  2015-03-04 18:29 ` Mike Williams
  0 siblings, 1 reply; 5+ messages in thread
From: Jörg Krause @ 2015-01-05 13:48 UTC (permalink / raw)
  To: buildroot

This patch is based on an WIP version submitted by Romain Naour, commented by
Arnout Vandecappelle:
https://patchwork.ozlabs.org/patch/401270/

The package provides a default configuration which let the user initiate an
update by using an update URL by using libcurl. The embedded webserver (a
customized version of mongoose) and Lua support are both disabled by default.

Signed-off-by: J?rg Krause <jkrause@posteo.de>
CC: romain.naour at openwide.fr
---
 package/Config.in                                  |   1 +
 package/swupdate/Config.in                         |  93 +++++++++++++++
 ...wupdate-0001-Add-missing-header-for-off_t.patch |  25 ++++
 package/swupdate/swupdate.config                   |  82 +++++++++++++
 package/swupdate/swupdate.mk                       | 127 +++++++++++++++++++++
 5 files changed, 328 insertions(+)
 create mode 100644 package/swupdate/Config.in
 create mode 100644 package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch
 create mode 100644 package/swupdate/swupdate.config
 create mode 100644 package/swupdate/swupdate.mk

diff --git a/package/Config.in b/package/Config.in
index 8d91b04..3baf95f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1269,6 +1269,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 endif
 	source "package/smack/Config.in"
 	source "package/supervisor/Config.in"
+	source "package/swupdate/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 	source "package/sysklogd/Config.in"
 endif
diff --git a/package/swupdate/Config.in b/package/swupdate/Config.in
new file mode 100644
index 0000000..f8489dc
--- /dev/null
+++ b/package/swupdate/Config.in
@@ -0,0 +1,93 @@
+config BR2_PACKAGE_SWUPDATE
+	bool "swupdate"
+	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_MTD
+	help
+	  swupdate provides a reliable way to update the software on an embedded
+	  system.
+
+	  https://github.com/sbabic/swupdate.git
+
+if BR2_PACKAGE_SWUPDATE
+
+config BR2_PACKAGE_SWUPDATE_CONFIG
+	string "swupdate configuration file to use?"
+	default "package/swupdate/swupdate.config"
+	help
+	  Some people may wish to use their own modified swupdate configuration
+	  file, and will specify their config file location with this option.
+
+	  Most people will just use the default swupdate configuration file.
+	  This will enable swupdate with an image downloader, as well as image
+	  handlers for UBI volumes, raw NAND or NOR flash, SD cards, shell
+	  scripts, and the U-Boot bootloader environment.
+
+config BR2_PACKAGE_SWUPDATE_LIBCURL
+	bool "Enable image downloading"
+	select BR2_PACKAGE_LIBCURL
+	default y
+	help
+	  Enable update from image URL using libcurl. Files are downloaded                                                                    ?
+	  completely before installation begins.
+
+config BR2_PACKAGE_SWUPDATE_WEBSERVER
+	bool "Enable embedded webserver"
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_OPENSSL
+	help
+	  Enable firmware update from a remote device using an embedded
+	  webserver on the target.
+
+comment "Webserver support needs toolchain w/ threads"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+if BR2_PACKAGE_SWUPDATE_WEBSERVER
+
+config BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_IPV6
+	depends on BR2_INET_IPV6
+	bool "Webserver with IPv6 support"
+	help
+	  Enable IPv6 support for the webserver.
+
+comment "IPv6 support for the webserver needs toolchain w/ IPv6"
+	depends on !BR2_INET_IPV6
+
+config BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SQL
+	bool "Webserver with SQL support"
+	depends on BR2_LARGEFILE
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
+	depends on !BR2_PACKAGE_LUA_5_1
+	help
+	  Enable SQL support for the webserver.
+
+comment "Webservers Lua support needs a toolchain w/ largefile and a Lua 5.2 interpreter"
+	depends on !BR2_LARGEFILE || BR2_PACKAGE_LUA_5_1 || !BR2_PACKAGE_HAS_LUAINTERPRETER
+
+config BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SSL
+	bool "Webserver with SSL support"
+	help
+	  Enable SSL support for the webserver.
+
+endif
+
+config BR2_PACKAGE_SWUPDATE_LIBCONFIG
+	bool "Enable libconfig parser"
+	select BR2_PACKAGE_LIBCONFIG
+	default y
+	help
+	  Use libconfig to parse the configuration file.
+	  This is the default parser. Unless you don't use your own
+	  external parser written in Lua you'll need to say Y here.
+
+config BR2_PACKAGE_SWUPDATE_LUA_SUPPORT
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
+	depends on !BR2_PACKAGE_LUA_5_1
+	bool "Enable Lua support"
+	help
+	  Enable Lua support.
+	  Select this for using custom scripts written in Lua.
+
+comment "Lua support needs a Lua 5.2 interpreter"
+	depends on BR2_PACKAGE_LUA_5_1 || !BR2_PACKAGE_HAS_LUAINTERPRETER
+
+endif
diff --git a/package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch b/package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch
new file mode 100644
index 0000000..4be0f7b
--- /dev/null
+++ b/package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch
@@ -0,0 +1,25 @@
+From 4e382373cad64ca7e183336e33b72c53cfeed340 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Sun, 7 Sep 2014 17:31:09 +0200
+Subject: [PATCH 1/1] Add missing header for off_t
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ include/swupdate.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/swupdate.h b/include/swupdate.h
+index 78b7f85..c193397 100644
+--- a/include/swupdate.h
++++ b/include/swupdate.h
+@@ -23,6 +23,7 @@
+ #ifndef _SWUPDATE_H
+ #define _SWUPDATE_H
+ 
++#include <sys/types.h>
+ #include <sys/queue.h>
+ #include "flash.h"
+ #include "globals.h"
+-- 
+1.9.3
+
diff --git a/package/swupdate/swupdate.config b/package/swupdate/swupdate.config
new file mode 100644
index 0000000..788f949
--- /dev/null
+++ b/package/swupdate/swupdate.config
@@ -0,0 +1,82 @@
+#
+# Automatically generated make config: don't edit
+# swupdate version: 2014.07.0
+# Thu Dec 18 10:00:56 2014
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Swupdate Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_SCRIPTS=y
+# CONFIG_HW_COMPATIBILITY is not set
+CONFIG_HW_COMPATIBILITY_FILE=""
+# CONFIG_LUA is not set
+# CONFIG_FEATURE_SYSLOG is not set
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_SYSROOT=""
+CONFIG_EXTRA_CFLAGS=""
+CONFIG_EXTRA_LDFLAGS=""
+CONFIG_EXTRA_LDLIBS=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+# CONFIG_NOCLEANUP is not set
+CONFIG_DOWNLOAD=y
+# CONFIG_WEBSERVER is not set
+
+#
+# Webserver Features
+#
+# CONFIG_MONGOOSE is not set
+
+#
+# Mongoose Feature
+#
+# CONFIG_MONGOOSELUA is not set
+# CONFIG_MONGOOSESQL is not set
+# CONFIG_MONGOOSEIPV6 is not set
+# CONFIG_MONGOOSESSL is not set
+
+#
+# Archival Features
+#
+CONFIG_CPIO=y
+CONFIG_GUNZIP=y
+
+#
+# Parser Features
+#
+CONFIG_LIBCONFIG=y
+# CONFIG_LUAEXTERNAL is not set
+# CONFIG_SETEXTPARSERNAME is not set
+CONFIG_EXTPARSERNAME=""
+# CONFIG_SETSWDESCRIPTION is not set
+CONFIG_SWDESCRIPTION=""
+
+#
+# Image Handlers
+#
+CONFIG_UBIVOL=y
+CONFIG_UBIBLACKLIST=""
+CONFIG_UBIVIDOFFSET=0
+CONFIG_CFI=y
+CONFIG_RAW=y
+# CONFIG_LUASCRIPTHANDLER is not set
+CONFIG_SHELLSCRIPTHANDLER=y
+# CONFIG_HANDLER_IN_LUA is not set
+CONFIG_UBOOT=y
+CONFIG_UBOOT_FWENV="/etc/fw_env.config"
diff --git a/package/swupdate/swupdate.mk b/package/swupdate/swupdate.mk
new file mode 100644
index 0000000..c0025b5
--- /dev/null
+++ b/package/swupdate/swupdate.mk
@@ -0,0 +1,127 @@
+################################################################################
+#
+# swupdate
+#
+################################################################################
+
+# Choose latest commit instead of release 2014.07 for getting bug fixes and
+# image downloading feature
+SWUPDATE_VERSION = 1b0905a7f969cbb59e3fcc9ffc22b3fabfaee4a7
+SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
+SWUPDATE_LICENSE = GPLv2+
+SWUPDATE_LICENSE_FILES = COPYING
+SWUPDATE_DEPENDENCIES = zlib mtd
+
+SWUPDATE_BUILD_CONFIG = $(SWUPDATE_DIR)/.config
+
+SWUPDATE_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG))
+SWUPDATE_KCONFIG_EDITORS = menuconfig xconfig gconfig
+
+SWUPDATE_CFLAGS = \
+	$(TARGET_CFLAGS)
+
+SWUPDATE_LDFLAGS = \
+	$(TARGET_LDFLAGS)
+
+SWUPDATE_LDLIBS =
+
+# If we're using static libs do the same for swupdate
+ifeq ($(BR2_PREFER_STATIC_LIB),y)
+define SWUPDATE_PREFER_STATIC
+	$(call KCONFIG_ENABLE_OPT,CONFIG_STATIC,$(SWUPDATE_BUILD_CONFIG))
+endef
+endif
+
+define SWUPDATE_BUILD_OPTIONS
+	$(call KCONFIG_SET_OPT,CONFIG_CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)",$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_SET_OPT,CONFIG_SYSROOT,"$(SYSROOT_DIR)",$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_SET_OPT,CONFIG_EXTRA_CFLAGS,"$(SWUPDATE_CFLAGS)",$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDFLAGS,"$(SWUPDATE_LDFLAGS)",$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDLIBS,"$(SWUPDATE_LDLIBS)",$(SWUPDATE_BUILD_CONFIG))
+endef
+
+ifeq ($(BR2_PACKAGE_SWUPDATE_LIBCURL),y)
+SWUPDATE_DEPENDENCIES += libcurl
+else
+define SWUPDATE_DOWNLOAD
+	$(call KCONFIG_DISABLE_OPT,CONFIG_DOWNLOAD,$(SWUPDATE_BUILD_CONFIG))
+endef
+endif
+
+# swupate bundles its own customized version of Mongoose with a Lua licence.
+ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER),y)
+SWUPDATE_DEPENDENCIES += openssl
+SWUPDATE_LDLIBS += pthread crypto
+define SWUPDATE_WEBSERVER_MONGOOSE
+	$(call KCONFIG_ENABLE_OPT,CONFIG_WEBSERVER,$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSE,$(SWUPDATE_BUILD_CONFIG))
+	$(SWUPDATE_WEBSERVER_MONGOOSE_IPV6)
+	$(SWUPDATE_WEBSERVER_MONGOOSE_LUA)
+	$(SWUPDATE_WEBSERVER_MONGOOSE_SQL)
+	$(SWUPDATE_WEBSERVER_MONGOOSE_SSL)
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_IPV6),y)
+SWUPDATE_CFLAGS += -DUSE_IPV6
+define SWUPDATE_WEBSERVER_MONGOOSE_IPV6
+	$(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSEIPV6,$(SWUPDATE_BUILD_CONFIG))
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SQL),y)
+SWUPDATE_CFLAGS += -DUSE_LUA_SQLITE3
+define SWUPDATE_WEBSERVER_MONGOOSE_SQL
+	$(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSESQL,$(SWUPDATE_BUILD_CONFIG))
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SSL),y)
+SWUPDATE_CFLAGS += -DNO_SSL_DL
+SWUPDATE_LDLIBS += ssl
+define SWUPDATE_WEBSERVER_MONGOOSE_SSL
+	$(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSESSL,$(SWUPDATE_BUILD_CONFIG))
+endef
+else
+SWUPDATE_CFLAGS += -DNO_SSL
+endif
+
+ifeq ($(BR2_PACKAGE_SWUPDATE_LIBCONFIG),y)
+SWUPDATE_DEPENDENCIES += libconfig
+else
+define SWUPDATE_LIBCONFIG_PARSER
+	$(call KCONFIG_DISABLE_OPT,CONFIG_LIBCONFIG,$(SWUPDATE_BUILD_CONFIG))
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_SWUPDATE_LUA_SUPPORT),y)
+SWUPDATE_DEPENDENCIES += lua
+SWUPDATE_CFLAGS += -DUSE_LUA
+SWUPDATE_LDLIBS += dl
+define SWUPDATE_LUA
+	$(call KCONFIG_ENABLE_OPT,CONFIG_LUA,$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_ENABLE_OPT,CONFIG_LUASCRIPTHANDLER,$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_ENABLE_OPT,CONFIG_HANDLER_IN_LUA,$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_ENABLE_OPT,CONFIG_LUAEXTERNAL,$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSELUA,$(SWUPDATE_BUILD_CONFIG))
+endef
+endif
+
+define SWUPDATE_KCONFIG_FIXUP_CMDS
+	$(SWUPDATE_PREFER_STATIC)
+	$(SWUPDATE_BUILD_OPTIONS)
+	$(SWUPDATE_DOWNLOAD)
+	$(SWUPDATE_WEBSERVER_MONGOOSE)
+	$(SWUPDATE_LIBCONFIG_PARSER)
+	$(SWUPDATE_LUA)
+endef
+
+define SWUPDATE_BUILD_CMDS
+	$(MAKE) -C $(@D)
+endef
+
+define SWUPDATE_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/swupdate $(TARGET_DIR)/usr/bin/swupdate
+endef
+
+$(eval $(kconfig-package))
-- 
2.2.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/1] package/swupdate: new package
  2015-01-05 13:48 [Buildroot] [PATCH 1/1] package/swupdate: new package Jörg Krause
@ 2015-03-04 18:29 ` Mike Williams
  2015-03-18 15:03   ` Mike Williams
  0 siblings, 1 reply; 5+ messages in thread
From: Mike Williams @ 2015-03-04 18:29 UTC (permalink / raw)
  To: buildroot

Works for me. I'd recommend bumping the revision to the latest git
commit before applying.

Tested-by: Mike Williams <mike@mikebwilliams.com>

On Mon, Jan 5, 2015 at 8:48 AM, J?rg Krause <jkrause@posteo.de> wrote:
> This patch is based on an WIP version submitted by Romain Naour, commented by
> Arnout Vandecappelle:
> https://patchwork.ozlabs.org/patch/401270/
>
> The package provides a default configuration which let the user initiate an
> update by using an update URL by using libcurl. The embedded webserver (a
> customized version of mongoose) and Lua support are both disabled by default.
>
> Signed-off-by: J?rg Krause <jkrause@posteo.de>
> CC: romain.naour at openwide.fr
> ---
>  package/Config.in                                  |   1 +
>  package/swupdate/Config.in                         |  93 +++++++++++++++
>  ...wupdate-0001-Add-missing-header-for-off_t.patch |  25 ++++
>  package/swupdate/swupdate.config                   |  82 +++++++++++++
>  package/swupdate/swupdate.mk                       | 127 +++++++++++++++++++++
>  5 files changed, 328 insertions(+)
>  create mode 100644 package/swupdate/Config.in
>  create mode 100644 package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch
>  create mode 100644 package/swupdate/swupdate.config
>  create mode 100644 package/swupdate/swupdate.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 8d91b04..3baf95f 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1269,6 +1269,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
>  endif
>         source "package/smack/Config.in"
>         source "package/supervisor/Config.in"
> +       source "package/swupdate/Config.in"
>  if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
>         source "package/sysklogd/Config.in"
>  endif
> diff --git a/package/swupdate/Config.in b/package/swupdate/Config.in
> new file mode 100644
> index 0000000..f8489dc
> --- /dev/null
> +++ b/package/swupdate/Config.in
> @@ -0,0 +1,93 @@
> +config BR2_PACKAGE_SWUPDATE
> +       bool "swupdate"
> +       select BR2_PACKAGE_ZLIB
> +       select BR2_PACKAGE_MTD
> +       help
> +         swupdate provides a reliable way to update the software on an embedded
> +         system.
> +
> +         https://github.com/sbabic/swupdate.git
> +
> +if BR2_PACKAGE_SWUPDATE
> +
> +config BR2_PACKAGE_SWUPDATE_CONFIG
> +       string "swupdate configuration file to use?"
> +       default "package/swupdate/swupdate.config"
> +       help
> +         Some people may wish to use their own modified swupdate configuration
> +         file, and will specify their config file location with this option.
> +
> +         Most people will just use the default swupdate configuration file.
> +         This will enable swupdate with an image downloader, as well as image
> +         handlers for UBI volumes, raw NAND or NOR flash, SD cards, shell
> +         scripts, and the U-Boot bootloader environment.
> +
> +config BR2_PACKAGE_SWUPDATE_LIBCURL
> +       bool "Enable image downloading"
> +       select BR2_PACKAGE_LIBCURL
> +       default y
> +       help
> +         Enable update from image URL using libcurl. Files are downloaded                                                                    ?
> +         completely before installation begins.
> +
> +config BR2_PACKAGE_SWUPDATE_WEBSERVER
> +       bool "Enable embedded webserver"
> +       depends on BR2_TOOLCHAIN_HAS_THREADS
> +       select BR2_PACKAGE_OPENSSL
> +       help
> +         Enable firmware update from a remote device using an embedded
> +         webserver on the target.
> +
> +comment "Webserver support needs toolchain w/ threads"
> +       depends on !BR2_TOOLCHAIN_HAS_THREADS
> +
> +if BR2_PACKAGE_SWUPDATE_WEBSERVER
> +
> +config BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_IPV6
> +       depends on BR2_INET_IPV6
> +       bool "Webserver with IPv6 support"
> +       help
> +         Enable IPv6 support for the webserver.
> +
> +comment "IPv6 support for the webserver needs toolchain w/ IPv6"
> +       depends on !BR2_INET_IPV6
> +
> +config BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SQL
> +       bool "Webserver with SQL support"
> +       depends on BR2_LARGEFILE
> +       depends on BR2_PACKAGE_HAS_LUAINTERPRETER
> +       depends on !BR2_PACKAGE_LUA_5_1
> +       help
> +         Enable SQL support for the webserver.
> +
> +comment "Webservers Lua support needs a toolchain w/ largefile and a Lua 5.2 interpreter"
> +       depends on !BR2_LARGEFILE || BR2_PACKAGE_LUA_5_1 || !BR2_PACKAGE_HAS_LUAINTERPRETER
> +
> +config BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SSL
> +       bool "Webserver with SSL support"
> +       help
> +         Enable SSL support for the webserver.
> +
> +endif
> +
> +config BR2_PACKAGE_SWUPDATE_LIBCONFIG
> +       bool "Enable libconfig parser"
> +       select BR2_PACKAGE_LIBCONFIG
> +       default y
> +       help
> +         Use libconfig to parse the configuration file.
> +         This is the default parser. Unless you don't use your own
> +         external parser written in Lua you'll need to say Y here.
> +
> +config BR2_PACKAGE_SWUPDATE_LUA_SUPPORT
> +       depends on BR2_PACKAGE_HAS_LUAINTERPRETER
> +       depends on !BR2_PACKAGE_LUA_5_1
> +       bool "Enable Lua support"
> +       help
> +         Enable Lua support.
> +         Select this for using custom scripts written in Lua.
> +
> +comment "Lua support needs a Lua 5.2 interpreter"
> +       depends on BR2_PACKAGE_LUA_5_1 || !BR2_PACKAGE_HAS_LUAINTERPRETER
> +
> +endif
> diff --git a/package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch b/package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch
> new file mode 100644
> index 0000000..4be0f7b
> --- /dev/null
> +++ b/package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch
> @@ -0,0 +1,25 @@
> +From 4e382373cad64ca7e183336e33b72c53cfeed340 Mon Sep 17 00:00:00 2001
> +From: Romain Naour <romain.naour@openwide.fr>
> +Date: Sun, 7 Sep 2014 17:31:09 +0200
> +Subject: [PATCH 1/1] Add missing header for off_t
> +
> +Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> +---
> + include/swupdate.h | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/include/swupdate.h b/include/swupdate.h
> +index 78b7f85..c193397 100644
> +--- a/include/swupdate.h
> ++++ b/include/swupdate.h
> +@@ -23,6 +23,7 @@
> + #ifndef _SWUPDATE_H
> + #define _SWUPDATE_H
> +
> ++#include <sys/types.h>
> + #include <sys/queue.h>
> + #include "flash.h"
> + #include "globals.h"
> +--
> +1.9.3
> +
> diff --git a/package/swupdate/swupdate.config b/package/swupdate/swupdate.config
> new file mode 100644
> index 0000000..788f949
> --- /dev/null
> +++ b/package/swupdate/swupdate.config
> @@ -0,0 +1,82 @@
> +#
> +# Automatically generated make config: don't edit
> +# swupdate version: 2014.07.0
> +# Thu Dec 18 10:00:56 2014
> +#
> +CONFIG_HAVE_DOT_CONFIG=y
> +
> +#
> +# Swupdate Settings
> +#
> +
> +#
> +# General Configuration
> +#
> +CONFIG_SCRIPTS=y
> +# CONFIG_HW_COMPATIBILITY is not set
> +CONFIG_HW_COMPATIBILITY_FILE=""
> +# CONFIG_LUA is not set
> +# CONFIG_FEATURE_SYSLOG is not set
> +
> +#
> +# Build Options
> +#
> +# CONFIG_STATIC is not set
> +CONFIG_CROSS_COMPILER_PREFIX=""
> +CONFIG_SYSROOT=""
> +CONFIG_EXTRA_CFLAGS=""
> +CONFIG_EXTRA_LDFLAGS=""
> +CONFIG_EXTRA_LDLIBS=""
> +
> +#
> +# Debugging Options
> +#
> +# CONFIG_DEBUG is not set
> +# CONFIG_DEBUG_PESSIMIZE is not set
> +# CONFIG_WERROR is not set
> +# CONFIG_NOCLEANUP is not set
> +CONFIG_DOWNLOAD=y
> +# CONFIG_WEBSERVER is not set
> +
> +#
> +# Webserver Features
> +#
> +# CONFIG_MONGOOSE is not set
> +
> +#
> +# Mongoose Feature
> +#
> +# CONFIG_MONGOOSELUA is not set
> +# CONFIG_MONGOOSESQL is not set
> +# CONFIG_MONGOOSEIPV6 is not set
> +# CONFIG_MONGOOSESSL is not set
> +
> +#
> +# Archival Features
> +#
> +CONFIG_CPIO=y
> +CONFIG_GUNZIP=y
> +
> +#
> +# Parser Features
> +#
> +CONFIG_LIBCONFIG=y
> +# CONFIG_LUAEXTERNAL is not set
> +# CONFIG_SETEXTPARSERNAME is not set
> +CONFIG_EXTPARSERNAME=""
> +# CONFIG_SETSWDESCRIPTION is not set
> +CONFIG_SWDESCRIPTION=""
> +
> +#
> +# Image Handlers
> +#
> +CONFIG_UBIVOL=y
> +CONFIG_UBIBLACKLIST=""
> +CONFIG_UBIVIDOFFSET=0
> +CONFIG_CFI=y
> +CONFIG_RAW=y
> +# CONFIG_LUASCRIPTHANDLER is not set
> +CONFIG_SHELLSCRIPTHANDLER=y
> +# CONFIG_HANDLER_IN_LUA is not set
> +CONFIG_UBOOT=y
> +CONFIG_UBOOT_FWENV="/etc/fw_env.config"
> diff --git a/package/swupdate/swupdate.mk b/package/swupdate/swupdate.mk
> new file mode 100644
> index 0000000..c0025b5
> --- /dev/null
> +++ b/package/swupdate/swupdate.mk
> @@ -0,0 +1,127 @@
> +################################################################################
> +#
> +# swupdate
> +#
> +################################################################################
> +
> +# Choose latest commit instead of release 2014.07 for getting bug fixes and
> +# image downloading feature
> +SWUPDATE_VERSION = 1b0905a7f969cbb59e3fcc9ffc22b3fabfaee4a7
> +SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
> +SWUPDATE_LICENSE = GPLv2+
> +SWUPDATE_LICENSE_FILES = COPYING
> +SWUPDATE_DEPENDENCIES = zlib mtd
> +
> +SWUPDATE_BUILD_CONFIG = $(SWUPDATE_DIR)/.config
> +
> +SWUPDATE_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG))
> +SWUPDATE_KCONFIG_EDITORS = menuconfig xconfig gconfig
> +
> +SWUPDATE_CFLAGS = \
> +       $(TARGET_CFLAGS)
> +
> +SWUPDATE_LDFLAGS = \
> +       $(TARGET_LDFLAGS)
> +
> +SWUPDATE_LDLIBS =
> +
> +# If we're using static libs do the same for swupdate
> +ifeq ($(BR2_PREFER_STATIC_LIB),y)
> +define SWUPDATE_PREFER_STATIC
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_STATIC,$(SWUPDATE_BUILD_CONFIG))
> +endef
> +endif
> +
> +define SWUPDATE_BUILD_OPTIONS
> +       $(call KCONFIG_SET_OPT,CONFIG_CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)",$(SWUPDATE_BUILD_CONFIG))
> +       $(call KCONFIG_SET_OPT,CONFIG_SYSROOT,"$(SYSROOT_DIR)",$(SWUPDATE_BUILD_CONFIG))
> +       $(call KCONFIG_SET_OPT,CONFIG_EXTRA_CFLAGS,"$(SWUPDATE_CFLAGS)",$(SWUPDATE_BUILD_CONFIG))
> +       $(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDFLAGS,"$(SWUPDATE_LDFLAGS)",$(SWUPDATE_BUILD_CONFIG))
> +       $(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDLIBS,"$(SWUPDATE_LDLIBS)",$(SWUPDATE_BUILD_CONFIG))
> +endef
> +
> +ifeq ($(BR2_PACKAGE_SWUPDATE_LIBCURL),y)
> +SWUPDATE_DEPENDENCIES += libcurl
> +else
> +define SWUPDATE_DOWNLOAD
> +       $(call KCONFIG_DISABLE_OPT,CONFIG_DOWNLOAD,$(SWUPDATE_BUILD_CONFIG))
> +endef
> +endif
> +
> +# swupate bundles its own customized version of Mongoose with a Lua licence.
> +ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER),y)
> +SWUPDATE_DEPENDENCIES += openssl
> +SWUPDATE_LDLIBS += pthread crypto
> +define SWUPDATE_WEBSERVER_MONGOOSE
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_WEBSERVER,$(SWUPDATE_BUILD_CONFIG))
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSE,$(SWUPDATE_BUILD_CONFIG))
> +       $(SWUPDATE_WEBSERVER_MONGOOSE_IPV6)
> +       $(SWUPDATE_WEBSERVER_MONGOOSE_LUA)
> +       $(SWUPDATE_WEBSERVER_MONGOOSE_SQL)
> +       $(SWUPDATE_WEBSERVER_MONGOOSE_SSL)
> +endef
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_IPV6),y)
> +SWUPDATE_CFLAGS += -DUSE_IPV6
> +define SWUPDATE_WEBSERVER_MONGOOSE_IPV6
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSEIPV6,$(SWUPDATE_BUILD_CONFIG))
> +endef
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SQL),y)
> +SWUPDATE_CFLAGS += -DUSE_LUA_SQLITE3
> +define SWUPDATE_WEBSERVER_MONGOOSE_SQL
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSESQL,$(SWUPDATE_BUILD_CONFIG))
> +endef
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SSL),y)
> +SWUPDATE_CFLAGS += -DNO_SSL_DL
> +SWUPDATE_LDLIBS += ssl
> +define SWUPDATE_WEBSERVER_MONGOOSE_SSL
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSESSL,$(SWUPDATE_BUILD_CONFIG))
> +endef
> +else
> +SWUPDATE_CFLAGS += -DNO_SSL
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SWUPDATE_LIBCONFIG),y)
> +SWUPDATE_DEPENDENCIES += libconfig
> +else
> +define SWUPDATE_LIBCONFIG_PARSER
> +       $(call KCONFIG_DISABLE_OPT,CONFIG_LIBCONFIG,$(SWUPDATE_BUILD_CONFIG))
> +endef
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SWUPDATE_LUA_SUPPORT),y)
> +SWUPDATE_DEPENDENCIES += lua
> +SWUPDATE_CFLAGS += -DUSE_LUA
> +SWUPDATE_LDLIBS += dl
> +define SWUPDATE_LUA
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_LUA,$(SWUPDATE_BUILD_CONFIG))
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_LUASCRIPTHANDLER,$(SWUPDATE_BUILD_CONFIG))
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_HANDLER_IN_LUA,$(SWUPDATE_BUILD_CONFIG))
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_LUAEXTERNAL,$(SWUPDATE_BUILD_CONFIG))
> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSELUA,$(SWUPDATE_BUILD_CONFIG))
> +endef
> +endif
> +
> +define SWUPDATE_KCONFIG_FIXUP_CMDS
> +       $(SWUPDATE_PREFER_STATIC)
> +       $(SWUPDATE_BUILD_OPTIONS)
> +       $(SWUPDATE_DOWNLOAD)
> +       $(SWUPDATE_WEBSERVER_MONGOOSE)
> +       $(SWUPDATE_LIBCONFIG_PARSER)
> +       $(SWUPDATE_LUA)
> +endef
> +
> +define SWUPDATE_BUILD_CMDS
> +       $(MAKE) -C $(@D)
> +endef
> +
> +define SWUPDATE_INSTALL_TARGET_CMDS
> +       $(INSTALL) -D -m 0755 $(@D)/swupdate $(TARGET_DIR)/usr/bin/swupdate
> +endef
> +
> +$(eval $(kconfig-package))
> --
> 2.2.1
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/1] package/swupdate: new package
  2015-03-04 18:29 ` Mike Williams
@ 2015-03-18 15:03   ` Mike Williams
  2015-03-19  0:41     ` Arnout Vandecappelle
  0 siblings, 1 reply; 5+ messages in thread
From: Mike Williams @ 2015-03-18 15:03 UTC (permalink / raw)
  To: buildroot

Any update on merging this? Just trying to reduce my patch set.

On Wed, Mar 4, 2015 at 1:29 PM, Mike Williams <mike@mikebwilliams.com> wrote:
> Works for me. I'd recommend bumping the revision to the latest git
> commit before applying.
>
> Tested-by: Mike Williams <mike@mikebwilliams.com>
>
> On Mon, Jan 5, 2015 at 8:48 AM, J?rg Krause <jkrause@posteo.de> wrote:
>> This patch is based on an WIP version submitted by Romain Naour, commented by
>> Arnout Vandecappelle:
>> https://patchwork.ozlabs.org/patch/401270/
>>
>> The package provides a default configuration which let the user initiate an
>> update by using an update URL by using libcurl. The embedded webserver (a
>> customized version of mongoose) and Lua support are both disabled by default.
>>
>> Signed-off-by: J?rg Krause <jkrause@posteo.de>
>> CC: romain.naour at openwide.fr
>> ---
>>  package/Config.in                                  |   1 +
>>  package/swupdate/Config.in                         |  93 +++++++++++++++
>>  ...wupdate-0001-Add-missing-header-for-off_t.patch |  25 ++++
>>  package/swupdate/swupdate.config                   |  82 +++++++++++++
>>  package/swupdate/swupdate.mk                       | 127 +++++++++++++++++++++
>>  5 files changed, 328 insertions(+)
>>  create mode 100644 package/swupdate/Config.in
>>  create mode 100644 package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch
>>  create mode 100644 package/swupdate/swupdate.config
>>  create mode 100644 package/swupdate/swupdate.mk
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index 8d91b04..3baf95f 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -1269,6 +1269,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
>>  endif
>>         source "package/smack/Config.in"
>>         source "package/supervisor/Config.in"
>> +       source "package/swupdate/Config.in"
>>  if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
>>         source "package/sysklogd/Config.in"
>>  endif
>> diff --git a/package/swupdate/Config.in b/package/swupdate/Config.in
>> new file mode 100644
>> index 0000000..f8489dc
>> --- /dev/null
>> +++ b/package/swupdate/Config.in
>> @@ -0,0 +1,93 @@
>> +config BR2_PACKAGE_SWUPDATE
>> +       bool "swupdate"
>> +       select BR2_PACKAGE_ZLIB
>> +       select BR2_PACKAGE_MTD
>> +       help
>> +         swupdate provides a reliable way to update the software on an embedded
>> +         system.
>> +
>> +         https://github.com/sbabic/swupdate.git
>> +
>> +if BR2_PACKAGE_SWUPDATE
>> +
>> +config BR2_PACKAGE_SWUPDATE_CONFIG
>> +       string "swupdate configuration file to use?"
>> +       default "package/swupdate/swupdate.config"
>> +       help
>> +         Some people may wish to use their own modified swupdate configuration
>> +         file, and will specify their config file location with this option.
>> +
>> +         Most people will just use the default swupdate configuration file.
>> +         This will enable swupdate with an image downloader, as well as image
>> +         handlers for UBI volumes, raw NAND or NOR flash, SD cards, shell
>> +         scripts, and the U-Boot bootloader environment.
>> +
>> +config BR2_PACKAGE_SWUPDATE_LIBCURL
>> +       bool "Enable image downloading"
>> +       select BR2_PACKAGE_LIBCURL
>> +       default y
>> +       help
>> +         Enable update from image URL using libcurl. Files are downloaded                                                                    ?
>> +         completely before installation begins.
>> +
>> +config BR2_PACKAGE_SWUPDATE_WEBSERVER
>> +       bool "Enable embedded webserver"
>> +       depends on BR2_TOOLCHAIN_HAS_THREADS
>> +       select BR2_PACKAGE_OPENSSL
>> +       help
>> +         Enable firmware update from a remote device using an embedded
>> +         webserver on the target.
>> +
>> +comment "Webserver support needs toolchain w/ threads"
>> +       depends on !BR2_TOOLCHAIN_HAS_THREADS
>> +
>> +if BR2_PACKAGE_SWUPDATE_WEBSERVER
>> +
>> +config BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_IPV6
>> +       depends on BR2_INET_IPV6
>> +       bool "Webserver with IPv6 support"
>> +       help
>> +         Enable IPv6 support for the webserver.
>> +
>> +comment "IPv6 support for the webserver needs toolchain w/ IPv6"
>> +       depends on !BR2_INET_IPV6
>> +
>> +config BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SQL
>> +       bool "Webserver with SQL support"
>> +       depends on BR2_LARGEFILE
>> +       depends on BR2_PACKAGE_HAS_LUAINTERPRETER
>> +       depends on !BR2_PACKAGE_LUA_5_1
>> +       help
>> +         Enable SQL support for the webserver.
>> +
>> +comment "Webservers Lua support needs a toolchain w/ largefile and a Lua 5.2 interpreter"
>> +       depends on !BR2_LARGEFILE || BR2_PACKAGE_LUA_5_1 || !BR2_PACKAGE_HAS_LUAINTERPRETER
>> +
>> +config BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SSL
>> +       bool "Webserver with SSL support"
>> +       help
>> +         Enable SSL support for the webserver.
>> +
>> +endif
>> +
>> +config BR2_PACKAGE_SWUPDATE_LIBCONFIG
>> +       bool "Enable libconfig parser"
>> +       select BR2_PACKAGE_LIBCONFIG
>> +       default y
>> +       help
>> +         Use libconfig to parse the configuration file.
>> +         This is the default parser. Unless you don't use your own
>> +         external parser written in Lua you'll need to say Y here.
>> +
>> +config BR2_PACKAGE_SWUPDATE_LUA_SUPPORT
>> +       depends on BR2_PACKAGE_HAS_LUAINTERPRETER
>> +       depends on !BR2_PACKAGE_LUA_5_1
>> +       bool "Enable Lua support"
>> +       help
>> +         Enable Lua support.
>> +         Select this for using custom scripts written in Lua.
>> +
>> +comment "Lua support needs a Lua 5.2 interpreter"
>> +       depends on BR2_PACKAGE_LUA_5_1 || !BR2_PACKAGE_HAS_LUAINTERPRETER
>> +
>> +endif
>> diff --git a/package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch b/package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch
>> new file mode 100644
>> index 0000000..4be0f7b
>> --- /dev/null
>> +++ b/package/swupdate/swupdate-0001-Add-missing-header-for-off_t.patch
>> @@ -0,0 +1,25 @@
>> +From 4e382373cad64ca7e183336e33b72c53cfeed340 Mon Sep 17 00:00:00 2001
>> +From: Romain Naour <romain.naour@openwide.fr>
>> +Date: Sun, 7 Sep 2014 17:31:09 +0200
>> +Subject: [PATCH 1/1] Add missing header for off_t
>> +
>> +Signed-off-by: Romain Naour <romain.naour@openwide.fr>
>> +---
>> + include/swupdate.h | 1 +
>> + 1 file changed, 1 insertion(+)
>> +
>> +diff --git a/include/swupdate.h b/include/swupdate.h
>> +index 78b7f85..c193397 100644
>> +--- a/include/swupdate.h
>> ++++ b/include/swupdate.h
>> +@@ -23,6 +23,7 @@
>> + #ifndef _SWUPDATE_H
>> + #define _SWUPDATE_H
>> +
>> ++#include <sys/types.h>
>> + #include <sys/queue.h>
>> + #include "flash.h"
>> + #include "globals.h"
>> +--
>> +1.9.3
>> +
>> diff --git a/package/swupdate/swupdate.config b/package/swupdate/swupdate.config
>> new file mode 100644
>> index 0000000..788f949
>> --- /dev/null
>> +++ b/package/swupdate/swupdate.config
>> @@ -0,0 +1,82 @@
>> +#
>> +# Automatically generated make config: don't edit
>> +# swupdate version: 2014.07.0
>> +# Thu Dec 18 10:00:56 2014
>> +#
>> +CONFIG_HAVE_DOT_CONFIG=y
>> +
>> +#
>> +# Swupdate Settings
>> +#
>> +
>> +#
>> +# General Configuration
>> +#
>> +CONFIG_SCRIPTS=y
>> +# CONFIG_HW_COMPATIBILITY is not set
>> +CONFIG_HW_COMPATIBILITY_FILE=""
>> +# CONFIG_LUA is not set
>> +# CONFIG_FEATURE_SYSLOG is not set
>> +
>> +#
>> +# Build Options
>> +#
>> +# CONFIG_STATIC is not set
>> +CONFIG_CROSS_COMPILER_PREFIX=""
>> +CONFIG_SYSROOT=""
>> +CONFIG_EXTRA_CFLAGS=""
>> +CONFIG_EXTRA_LDFLAGS=""
>> +CONFIG_EXTRA_LDLIBS=""
>> +
>> +#
>> +# Debugging Options
>> +#
>> +# CONFIG_DEBUG is not set
>> +# CONFIG_DEBUG_PESSIMIZE is not set
>> +# CONFIG_WERROR is not set
>> +# CONFIG_NOCLEANUP is not set
>> +CONFIG_DOWNLOAD=y
>> +# CONFIG_WEBSERVER is not set
>> +
>> +#
>> +# Webserver Features
>> +#
>> +# CONFIG_MONGOOSE is not set
>> +
>> +#
>> +# Mongoose Feature
>> +#
>> +# CONFIG_MONGOOSELUA is not set
>> +# CONFIG_MONGOOSESQL is not set
>> +# CONFIG_MONGOOSEIPV6 is not set
>> +# CONFIG_MONGOOSESSL is not set
>> +
>> +#
>> +# Archival Features
>> +#
>> +CONFIG_CPIO=y
>> +CONFIG_GUNZIP=y
>> +
>> +#
>> +# Parser Features
>> +#
>> +CONFIG_LIBCONFIG=y
>> +# CONFIG_LUAEXTERNAL is not set
>> +# CONFIG_SETEXTPARSERNAME is not set
>> +CONFIG_EXTPARSERNAME=""
>> +# CONFIG_SETSWDESCRIPTION is not set
>> +CONFIG_SWDESCRIPTION=""
>> +
>> +#
>> +# Image Handlers
>> +#
>> +CONFIG_UBIVOL=y
>> +CONFIG_UBIBLACKLIST=""
>> +CONFIG_UBIVIDOFFSET=0
>> +CONFIG_CFI=y
>> +CONFIG_RAW=y
>> +# CONFIG_LUASCRIPTHANDLER is not set
>> +CONFIG_SHELLSCRIPTHANDLER=y
>> +# CONFIG_HANDLER_IN_LUA is not set
>> +CONFIG_UBOOT=y
>> +CONFIG_UBOOT_FWENV="/etc/fw_env.config"
>> diff --git a/package/swupdate/swupdate.mk b/package/swupdate/swupdate.mk
>> new file mode 100644
>> index 0000000..c0025b5
>> --- /dev/null
>> +++ b/package/swupdate/swupdate.mk
>> @@ -0,0 +1,127 @@
>> +################################################################################
>> +#
>> +# swupdate
>> +#
>> +################################################################################
>> +
>> +# Choose latest commit instead of release 2014.07 for getting bug fixes and
>> +# image downloading feature
>> +SWUPDATE_VERSION = 1b0905a7f969cbb59e3fcc9ffc22b3fabfaee4a7
>> +SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
>> +SWUPDATE_LICENSE = GPLv2+
>> +SWUPDATE_LICENSE_FILES = COPYING
>> +SWUPDATE_DEPENDENCIES = zlib mtd
>> +
>> +SWUPDATE_BUILD_CONFIG = $(SWUPDATE_DIR)/.config
>> +
>> +SWUPDATE_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG))
>> +SWUPDATE_KCONFIG_EDITORS = menuconfig xconfig gconfig
>> +
>> +SWUPDATE_CFLAGS = \
>> +       $(TARGET_CFLAGS)
>> +
>> +SWUPDATE_LDFLAGS = \
>> +       $(TARGET_LDFLAGS)
>> +
>> +SWUPDATE_LDLIBS =
>> +
>> +# If we're using static libs do the same for swupdate
>> +ifeq ($(BR2_PREFER_STATIC_LIB),y)
>> +define SWUPDATE_PREFER_STATIC
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_STATIC,$(SWUPDATE_BUILD_CONFIG))
>> +endef
>> +endif
>> +
>> +define SWUPDATE_BUILD_OPTIONS
>> +       $(call KCONFIG_SET_OPT,CONFIG_CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)",$(SWUPDATE_BUILD_CONFIG))
>> +       $(call KCONFIG_SET_OPT,CONFIG_SYSROOT,"$(SYSROOT_DIR)",$(SWUPDATE_BUILD_CONFIG))
>> +       $(call KCONFIG_SET_OPT,CONFIG_EXTRA_CFLAGS,"$(SWUPDATE_CFLAGS)",$(SWUPDATE_BUILD_CONFIG))
>> +       $(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDFLAGS,"$(SWUPDATE_LDFLAGS)",$(SWUPDATE_BUILD_CONFIG))
>> +       $(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDLIBS,"$(SWUPDATE_LDLIBS)",$(SWUPDATE_BUILD_CONFIG))
>> +endef
>> +
>> +ifeq ($(BR2_PACKAGE_SWUPDATE_LIBCURL),y)
>> +SWUPDATE_DEPENDENCIES += libcurl
>> +else
>> +define SWUPDATE_DOWNLOAD
>> +       $(call KCONFIG_DISABLE_OPT,CONFIG_DOWNLOAD,$(SWUPDATE_BUILD_CONFIG))
>> +endef
>> +endif
>> +
>> +# swupate bundles its own customized version of Mongoose with a Lua licence.
>> +ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER),y)
>> +SWUPDATE_DEPENDENCIES += openssl
>> +SWUPDATE_LDLIBS += pthread crypto
>> +define SWUPDATE_WEBSERVER_MONGOOSE
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_WEBSERVER,$(SWUPDATE_BUILD_CONFIG))
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSE,$(SWUPDATE_BUILD_CONFIG))
>> +       $(SWUPDATE_WEBSERVER_MONGOOSE_IPV6)
>> +       $(SWUPDATE_WEBSERVER_MONGOOSE_LUA)
>> +       $(SWUPDATE_WEBSERVER_MONGOOSE_SQL)
>> +       $(SWUPDATE_WEBSERVER_MONGOOSE_SSL)
>> +endef
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_IPV6),y)
>> +SWUPDATE_CFLAGS += -DUSE_IPV6
>> +define SWUPDATE_WEBSERVER_MONGOOSE_IPV6
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSEIPV6,$(SWUPDATE_BUILD_CONFIG))
>> +endef
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SQL),y)
>> +SWUPDATE_CFLAGS += -DUSE_LUA_SQLITE3
>> +define SWUPDATE_WEBSERVER_MONGOOSE_SQL
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSESQL,$(SWUPDATE_BUILD_CONFIG))
>> +endef
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER_MONGOOSE_SSL),y)
>> +SWUPDATE_CFLAGS += -DNO_SSL_DL
>> +SWUPDATE_LDLIBS += ssl
>> +define SWUPDATE_WEBSERVER_MONGOOSE_SSL
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSESSL,$(SWUPDATE_BUILD_CONFIG))
>> +endef
>> +else
>> +SWUPDATE_CFLAGS += -DNO_SSL
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_SWUPDATE_LIBCONFIG),y)
>> +SWUPDATE_DEPENDENCIES += libconfig
>> +else
>> +define SWUPDATE_LIBCONFIG_PARSER
>> +       $(call KCONFIG_DISABLE_OPT,CONFIG_LIBCONFIG,$(SWUPDATE_BUILD_CONFIG))
>> +endef
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_SWUPDATE_LUA_SUPPORT),y)
>> +SWUPDATE_DEPENDENCIES += lua
>> +SWUPDATE_CFLAGS += -DUSE_LUA
>> +SWUPDATE_LDLIBS += dl
>> +define SWUPDATE_LUA
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_LUA,$(SWUPDATE_BUILD_CONFIG))
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_LUASCRIPTHANDLER,$(SWUPDATE_BUILD_CONFIG))
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_HANDLER_IN_LUA,$(SWUPDATE_BUILD_CONFIG))
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_LUAEXTERNAL,$(SWUPDATE_BUILD_CONFIG))
>> +       $(call KCONFIG_ENABLE_OPT,CONFIG_MONGOOSELUA,$(SWUPDATE_BUILD_CONFIG))
>> +endef
>> +endif
>> +
>> +define SWUPDATE_KCONFIG_FIXUP_CMDS
>> +       $(SWUPDATE_PREFER_STATIC)
>> +       $(SWUPDATE_BUILD_OPTIONS)
>> +       $(SWUPDATE_DOWNLOAD)
>> +       $(SWUPDATE_WEBSERVER_MONGOOSE)
>> +       $(SWUPDATE_LIBCONFIG_PARSER)
>> +       $(SWUPDATE_LUA)
>> +endef
>> +
>> +define SWUPDATE_BUILD_CMDS
>> +       $(MAKE) -C $(@D)
>> +endef
>> +
>> +define SWUPDATE_INSTALL_TARGET_CMDS
>> +       $(INSTALL) -D -m 0755 $(@D)/swupdate $(TARGET_DIR)/usr/bin/swupdate
>> +endef
>> +
>> +$(eval $(kconfig-package))
>> --
>> 2.2.1
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/1] package/swupdate: new package
  2015-03-18 15:03   ` Mike Williams
@ 2015-03-19  0:41     ` Arnout Vandecappelle
  0 siblings, 0 replies; 5+ messages in thread
From: Arnout Vandecappelle @ 2015-03-19  0:41 UTC (permalink / raw)
  To: buildroot

On 18/03/15 16:03, Mike Williams wrote:
> Any update on merging this? Just trying to reduce my patch set.

 Could you repost it with the bumped version, including your Tested-by and SoB?
But make sure to keep the original author of course.

 Regards,
 Arnout

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/1] package/swupdate: new package
@ 2015-05-04 20:10 Jörg Krause
  0 siblings, 0 replies; 5+ messages in thread
From: Jörg Krause @ 2015-05-04 20:10 UTC (permalink / raw)
  To: buildroot

This patch is based on an WIP version submitted by Romain Naour, commented by
Arnout Vandecappelle:
https://patchwork.ozlabs.org/patch/401270/

We use the latest commit of swupdate instead of the last release 2014.07 to
obtain several bug fixes and get support for the image downloading feature and
the JSON parser.

The package build file does not detect which dependencies are available. So we
provide a default configuration which selects the external dependencies by
default except for lua. Lua support can be added by the user by customizing
the configuration file (swupdate.config) add select the Lua 5.2 interpreter
manually.

Furthermore the U-Boot handler is not enabled by default, as it may cause
runtime issues if the U-Boot environment configuration file (fw_env.config) is
not present on the target system.

The package provides a default website which can be installed to the target to
enable firmware update within a browser.

Add a patch file with two squashed fixes for building swupdate with the musl C
library. Both fixes sent upstream.

Note, swupdate does not implement a savedefconfig and nconfig target.
Note, swupdate provides its own versions of mongoose and lsqlite3:
  - mongoose is version 3.8 from year 2013
  - lsqlite3 is version 0.8 from year 2011

Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
Cc: Romain Naour <romain.naour@openwide.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Tested-by: Mike Williams <mike@mikebwilliams.com>
---
Changes v4 -> v5:
  - bump to latest commit 524e3d729267fd430f539eb65e8a710abd89d0f4
  - enable new feature JSON parser in .config and add dependency for json-c
  - remove upstream applied patch "Add missing header for off_t"
  - add musl patch
  - point to the homepage in help text (Yann)
  - add MIT and Public Domain to LICENSE (Yann), maybe not necessary (Thomas)
  - clarify used versions of bundled mongoose and lsqlite3

Changes v3 -> v4:
  - bump to latest commit c68f02320858f89f2d441ff2057d49489fb6f586
  - remove lua dependency (Mike, Arnout)
  - remove U-Boot handler in swupdate.config (Arnout)
  - align help text
  - sent patch upstream

Changes v2 -> v3:
  - bump to latest commit d7753be4fd8bdf2ba4ba56ee869550663b2cca80
  - enable all dependencies (Arnout)
  - rewrite help text for configuration file
  - add option to install default website

Changes v1 -> v2:
  - bump to latest commit d9f58b5a3263b1b00c6d011cd8cdd65e69890b46
  - update Sob email address

Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
---
 package/Config.in                          |  1 +
 package/swupdate/0001-Fix-musl-build.patch | 48 +++++++++++++++++
 package/swupdate/Config.in                 | 42 +++++++++++++++
 package/swupdate/swupdate.config           | 83 ++++++++++++++++++++++++++++++
 package/swupdate/swupdate.mk               | 54 +++++++++++++++++++
 5 files changed, 228 insertions(+)
 create mode 100644 package/swupdate/0001-Fix-musl-build.patch
 create mode 100644 package/swupdate/Config.in
 create mode 100644 package/swupdate/swupdate.config
 create mode 100644 package/swupdate/swupdate.mk

diff --git a/package/Config.in b/package/Config.in
index af4d2b7..f4462b2 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1412,6 +1412,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 	source "package/start-stop-daemon/Config.in"
 endif
 	source "package/supervisor/Config.in"
+	source "package/swupdate/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 	source "package/sysklogd/Config.in"
 endif
diff --git a/package/swupdate/0001-Fix-musl-build.patch b/package/swupdate/0001-Fix-musl-build.patch
new file mode 100644
index 0000000..e8c3a37
--- /dev/null
+++ b/package/swupdate/0001-Fix-musl-build.patch
@@ -0,0 +1,48 @@
+From 5e8a2c5c6aacff0889a58674720656d663eafc29 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
+Date: Mon, 4 May 2015 21:26:04 +0200
+Subject: [PATCH 1/1] Fix musl build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use bsdqueue.h in JSON parser
+
+Commit 6785d764e2e16d83952ac8e65e3290d2cd797b0d adds a locale file
+bsdqueue.h which provides a C library independent queue implementation.
+
+Use this header file instead of sys/queue.h for the JSON parser, too.
+
+Set correct path for <fcntl.h> in JSON parser
+
+The correct path defined in the POSIX.1-2008 Standard is <fcntl.h>.
+
+Removes "redirecting incorrect #include <sys/fcntl.h> to <fcntl.h>" warning
+when building swupdate with enabled JSON parser with the musl C library.
+
+Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
+---
+ parser/parse_json.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/parser/parse_json.c b/parser/parse_json.c
+index a450874..5bf2714 100644
+--- a/parser/parse_json.c
++++ b/parser/parse_json.c
+@@ -25,12 +25,12 @@
+ #include <string.h>
+ #include <sys/types.h>
+ #include <errno.h>
+-#include <sys/queue.h>
+ #include <json-c/json.h>
+ #include <unistd.h>
+-#include <sys/fcntl.h>
++#include <fcntl.h>
+ #include <sys/stat.h>
+ #include "autoconf.h"
++#include "bsdqueue.h"
+ #include "util.h"
+ #include "swupdate.h"
+ #include "parsers.h"
+--
+2.3.7
diff --git a/package/swupdate/Config.in b/package/swupdate/Config.in
new file mode 100644
index 0000000..520fc87
--- /dev/null
+++ b/package/swupdate/Config.in
@@ -0,0 +1,42 @@
+config BR2_PACKAGE_SWUPDATE
+	bool "swupdate"
+	depends on BR2_TOOLCHAIN_HAS_THREADS # OpenSSL
+	select BR2_PACKAGE_JSON_C
+	select BR2_PACKAGE_LIBCONFIG
+	select BR2_PACKAGE_LIBCURL
+	select BR2_PACKAGE_MTD
+	select BR2_PACKAGE_OPENSSL
+	select BR2_PACKAGE_ZLIB
+	help
+	  swupdate provides a reliable way to update the software on an
+	  embedded system.
+
+	  https://sbabic.github.io/swupdate
+
+if BR2_PACKAGE_SWUPDATE
+
+config BR2_PACKAGE_SWUPDATE_CONFIG
+	string "swupdate configuration file"
+	default "package/swupdate/swupdate.config"
+	help
+	  The default swupdate configuration file will enable swupdate with
+	  an image downloader and a webserver, a parser based on libconfig and
+	  a JSON parser, as well as handlers for UBI volumes, raw NAND or NOR
+	  flash, SD cards and shell scripts.
+
+	  Most people will just use the default swupdate configuration file.
+	  However, some people may wish to use their own modified swupdate
+	  configuration file, and will specify their config file location
+	  with this option.
+
+	  Note that if you add lua support in the configuration file you need
+	  the Lua 5.2 interpreter (BR_PACKAGE_LUA_5_2) manually.
+
+config BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE
+	bool "install default website"
+	help
+	  Install the provided website to /var/www/swupdate.
+endif
+
+comment "swupate support needs toolchain w/ threads"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/swupdate/swupdate.config b/package/swupdate/swupdate.config
new file mode 100644
index 0000000..dbd8a52
--- /dev/null
+++ b/package/swupdate/swupdate.config
@@ -0,0 +1,83 @@
+#
+# Automatically generated make config: don't edit
+# swupdate version: 2014.07.0
+# Mon May  4 21:05:28 2015
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Swupdate Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_SCRIPTS=y
+# CONFIG_HW_COMPATIBILITY is not set
+CONFIG_HW_COMPATIBILITY_FILE=""
+# CONFIG_LUA is not set
+# CONFIG_FEATURE_SYSLOG is not set
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_SYSROOT=""
+CONFIG_EXTRA_CFLAGS=""
+CONFIG_EXTRA_LDFLAGS=""
+CONFIG_EXTRA_LDLIBS=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+# CONFIG_NOCLEANUP is not set
+CONFIG_DOWNLOAD=y
+CONFIG_WEBSERVER=y
+
+#
+# Webserver Features
+#
+CONFIG_MONGOOSE=y
+
+#
+# Mongoose Feature
+#
+# CONFIG_MONGOOSELUA is not set
+# CONFIG_MONGOOSESQL is not set
+CONFIG_MONGOOSEIPV6=y
+CONFIG_MONGOOSESSL=y
+
+#
+# Archival Features
+#
+CONFIG_CPIO=y
+CONFIG_GUNZIP=y
+
+#
+# Parser Features
+#
+CONFIG_LIBCONFIG=y
+CONFIG_JSON=y
+# CONFIG_LUAEXTERNAL is not set
+# CONFIG_SETEXTPARSERNAME is not set
+CONFIG_EXTPARSERNAME=""
+# CONFIG_SETSWDESCRIPTION is not set
+CONFIG_SWDESCRIPTION=""
+
+#
+# Image Handlers
+#
+CONFIG_UBIVOL=y
+CONFIG_UBIBLACKLIST=""
+CONFIG_UBIVIDOFFSET=0
+CONFIG_CFI=y
+CONFIG_RAW=y
+# CONFIG_LUASCRIPTHANDLER is not set
+CONFIG_SHELLSCRIPTHANDLER=y
+# CONFIG_HANDLER_IN_LUA is not set
+# CONFIG_UBOOT is not set
+CONFIG_UBOOT_FWENV=""
diff --git a/package/swupdate/swupdate.mk b/package/swupdate/swupdate.mk
new file mode 100644
index 0000000..ebc7bf2
--- /dev/null
+++ b/package/swupdate/swupdate.mk
@@ -0,0 +1,54 @@
+################################################################################
+#
+# swupdate
+#
+################################################################################
+
+SWUPDATE_VERSION = 524e3d729267fd430f539eb65e8a710abd89d0f4
+SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
+SWUPDATE_LICENSE = GPLv2+, MIT, Public Domain
+SWUPDATE_LICENSE_FILES = COPYING
+
+# swupdate bundles its own version of mongoose (version 3.8) and
+# lsqlite3 (version 0.8)
+SWUPDATE_DEPENDENCIES = json-c libconfig libcurl mtd openssl zlib
+
+SWUPDATE_BUILD_CONFIG = $(@D)/.config
+
+SWUPDATE_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG))
+SWUPDATE_KCONFIG_EDITORS = menuconfig xconfig gconfig
+
+ifeq ($(BR2_PREFER_STATIC_LIB),y)
+define SWUPDATE_PREFER_STATIC
+	$(call KCONFIG_ENABLE_OPT,CONFIG_STATIC,$(SWUPDATE_BUILD_CONFIG))
+endef
+endif
+
+define SWUPDATE_SET_BUILD_OPTIONS
+	$(call KCONFIG_SET_OPT,CONFIG_CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)", \
+		$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_SET_OPT,CONFIG_SYSROOT,"$(STAGING_DIR)", \
+		$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_SET_OPT,CONFIG_EXTRA_CFLAGS,"$(TARGET_CFLAGS)", \
+		$(SWUPDATE_BUILD_CONFIG))
+	$(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDFLAGS,"$(TARGET_LDFLAGS)", \
+		$(SWUPDATE_BUILD_CONFIG))
+endef
+
+define SWUPDATE_KCONFIG_FIXUP_CMDS
+	$(SWUPDATE_PREFER_STATIC)
+	$(SWUPDATE_SET_BUILD_OPTIONS)
+endef
+
+define SWUPDATE_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define SWUPDATE_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/swupdate $(TARGET_DIR)/usr/bin/swupdate
+	$(if $(BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE), \
+		mkdir -p $(TARGET_DIR)/var/www/swupdate; \
+		cp -dpf $(@D)/www/* $(TARGET_DIR)/var/www/swupdate)
+endef
+
+$(eval $(kconfig-package))
-- 
2.3.7

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-05-04 20:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-05 13:48 [Buildroot] [PATCH 1/1] package/swupdate: new package Jörg Krause
2015-03-04 18:29 ` Mike Williams
2015-03-18 15:03   ` Mike Williams
2015-03-19  0:41     ` Arnout Vandecappelle
2015-05-04 20:10 Jörg Krause

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.