From patchwork Wed Jan 10 22:28:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?J=C3=B6rg_Krause?= X-Patchwork-Id: 858589 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zH3ZN0sH6z9s72 for ; Thu, 11 Jan 2018 09:28:43 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id B808488665; Wed, 10 Jan 2018 22:28:40 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AmbfLkGjgWfS; Wed, 10 Jan 2018 22:28:38 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id A372D883F2; Wed, 10 Jan 2018 22:28:38 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id B1E051C11AD for ; Wed, 10 Jan 2018 22:28:37 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id ACCAF88FAF for ; Wed, 10 Jan 2018 22:28:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZHSUfJrL2ka7 for ; Wed, 10 Jan 2018 22:28:36 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mout01.posteo.de (mout01.posteo.de [185.67.36.141]) by whitealder.osuosl.org (Postfix) with ESMTPS id 3332288F9C for ; Wed, 10 Jan 2018 22:28:36 +0000 (UTC) Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 632E820FD0 for ; Wed, 10 Jan 2018 23:28:33 +0100 (CET) Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 3zH3Yx3VQPz9rxR for ; Wed, 10 Jan 2018 23:28:21 +0100 (CET) Received: from mail.embedded.rocks ([127.0.0.1]) by localhost (mail.embedded.rocks [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id RSKqrGSk3Hop; Wed, 10 Jan 2018 23:28:20 +0100 (CET) Received: from nzxt.fritz.box (port-92-195-28-81.dynamic.qsc.de [92.195.28.81]) (Authenticated sender: joerg.krause@embedded.rocks) by mail.embedded.rocks (Postfix) with ESMTPSA; Wed, 10 Jan 2018 23:28:20 +0100 (CET) From: =?utf-8?q?J=C3=B6rg_Krause?= To: buildroot@buildroot.org Date: Wed, 10 Jan 2018 23:28:16 +0100 Message-Id: <20180110222816.20579-1-joerg.krause@embedded.rocks> X-Mailer: git-send-email 2.15.1 MIME-Version: 1.0 Subject: [Buildroot] [PATCH] swupdate: bump to version 2017.11 X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Remove upstream patch 0001-Fix-SHA256-hash-verification.patch. Re-enable support for Lua 5.1 and LuaJIT, which was removed in version 2017.09 because of compatibility issues [1]. Meanwhile, the issues have been resolved upstream [2]. Note, that `CONFIG_HANDLER_IN_LUA` is now supported by Lua 5.1/LuaJIT, too. Add a fixup command `SWUPDATE_SET_LUA_VERSION` to set the correct base name for the Lua/LuaJIT pkg-config file used by the swupdates config option `LUAPKG`. Fix a small type in the help text: 'in my mind' -> 'in mind'. Regenerated the .config script by doing: ``` make swupdate-menuconfig make swupdate-update-config ``` .. and removing the paths for the build options manually. [1] http://patchwork.ozlabs.org/patch/795958/ [2] https://github.com/sbabic/swupdate/commit/7b49b8dc59acc0591fe9823f1739ba7422eb30c7 Signed-off-by: Jörg Krause --- .../0001-Fix-SHA256-hash-verification.patch | 119 --------------------- package/swupdate/Config.in | 8 +- package/swupdate/swupdate.config | 63 +++++++++-- package/swupdate/swupdate.hash | 2 +- package/swupdate/swupdate.mk | 12 ++- 5 files changed, 71 insertions(+), 133 deletions(-) delete mode 100644 package/swupdate/0001-Fix-SHA256-hash-verification.patch diff --git a/package/swupdate/0001-Fix-SHA256-hash-verification.patch b/package/swupdate/0001-Fix-SHA256-hash-verification.patch deleted file mode 100644 index b7bd9d3d0c..0000000000 --- a/package/swupdate/0001-Fix-SHA256-hash-verification.patch +++ /dev/null @@ -1,119 +0,0 @@ -From dba95dcd3739c604a81ffa2df2545e7a4cd430cf Mon Sep 17 00:00:00 2001 -From: Maksim Salau -Date: Wed, 25 Oct 2017 16:17:14 +0300 -Subject: [PATCH] Fix SHA256 hash verification - -If a CPIO archive is not valid or copying fails due to any reason, -an error message is printed, but update process continues. -The change makes the utility fail in case of read errors or -hash verification errors. - -Signed-off-by: Maksim Salau -Acked-by: Stefano Babic ---- - core/cpio_utils.c | 28 +++++++++++++++++++++------- - corelib/installer.c | 11 +++++++++-- - 2 files changed, 30 insertions(+), 9 deletions(-) - -diff --git a/core/cpio_utils.c b/core/cpio_utils.c -index e962fae..de674ec 100644 ---- a/core/cpio_utils.c -+++ b/core/cpio_utils.c -@@ -414,24 +414,34 @@ int extract_img_from_cpio(int fd, unsigned long offset, struct filehdr *fdh) - off_t extract_next_file(int fd, int fdout, off_t start, int compressed, - int encrypted, unsigned char *hash) - { -+ int ret; - struct filehdr fdh; - uint32_t checksum = 0; - unsigned long offset = start; - -- if (lseek(fd, offset, SEEK_SET) < 0) { -+ ret = lseek(fd, offset, SEEK_SET); -+ if (ret < 0) { - ERROR("CPIO file corrupted : %s\n", - strerror(errno)); -- return -1; -+ return ret; - } - -- if (extract_cpio_header(fd, &fdh, &offset)) { -+ ret = extract_cpio_header(fd, &fdh, &offset); -+ if (ret) { - ERROR("CPIO Header wrong\n"); -+ return ret; - } - -- if (lseek(fd, offset, SEEK_SET) < 0) -+ ret = lseek(fd, offset, SEEK_SET); -+ if (ret < 0) { - ERROR("CPIO file corrupted : %s\n", strerror(errno)); -- if (copyfile(fd, &fdout, fdh.size, &offset, 0, 0, compressed, &checksum, hash, encrypted, NULL) < 0) { -+ return ret; -+ } -+ -+ ret = copyfile(fd, &fdout, fdh.size, &offset, 0, 0, compressed, &checksum, hash, encrypted, NULL); -+ if (ret < 0) { - ERROR("Error copying extracted file\n"); -+ return ret; - } - - TRACE("Copied file:\n\tfilename %s\n\tsize %u\n\tchecksum 0x%lx %s\n", -@@ -440,9 +450,11 @@ off_t extract_next_file(int fd, int fdout, off_t start, int compressed, - (unsigned long)checksum, - (checksum == fdh.chksum) ? "VERIFIED" : "WRONG"); - -- if (checksum != fdh.chksum) -+ if (checksum != fdh.chksum) { - ERROR("Checksum WRONG ! Computed 0x%lx, it should be 0x%lx\n", - (unsigned long)checksum, fdh.chksum); -+ return -EINVAL; -+ } - - return offset; - } -@@ -492,8 +504,10 @@ int cpio_scan(int fd, struct swupdate_cfg *cfg, off_t start) - - /* Next header must be 4-bytes aligned */ - offset += NPAD_BYTES(offset); -- if (lseek(fd, offset, SEEK_SET) < 0) -+ if (lseek(fd, offset, SEEK_SET) < 0) { - ERROR("CPIO file corrupted : %s\n", strerror(errno)); -+ return -1; -+ } - } - - return 0; -diff --git a/corelib/installer.c b/corelib/installer.c -index 592ada8..d2dee28 100644 ---- a/corelib/installer.c -+++ b/corelib/installer.c -@@ -154,6 +154,7 @@ static int extract_script(int fd, struct imglist *head, const char *dest) - { - struct img_type *script; - int fdout; -+ int ret = 0; - - LIST_FOREACH(script, head, next) { - if (script->provided == 0) { -@@ -166,9 +167,15 @@ static int extract_script(int fd, struct imglist *head, const char *dest) - dest, script->fname); - - fdout = openfileoutput(script->extract_file); -- extract_next_file(fd, fdout, script->offset, 0, -- script->is_encrypted, script->sha256); -+ if (fdout < 0) -+ return fdout; -+ -+ ret = extract_next_file(fd, fdout, script->offset, 0, -+ script->is_encrypted, script->sha256); - close(fdout); -+ -+ if (ret < 0) -+ return ret; - } - return 0; - } --- -2.7.4 - diff --git a/package/swupdate/Config.in b/package/swupdate/Config.in index 61f08c5826..ca2eaf2940 100644 --- a/package/swupdate/Config.in +++ b/package/swupdate/Config.in @@ -4,7 +4,7 @@ config BR2_PACKAGE_SWUPDATE 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 + !BR2_PACKAGE_HAS_LUAINTERPRETER help swupdate provides a reliable way to update the software on an embedded system. @@ -16,11 +16,11 @@ config BR2_PACKAGE_SWUPDATE 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, + update system with minimal external dependencies in 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 + * Select BR2_PACKAGE_LUA or BR2_PACKAGE_LUAJIT if you want want to have Lua support. * Select BR2_LIBCURL if you want to use the download feature. diff --git a/package/swupdate/swupdate.config b/package/swupdate/swupdate.config index 328e49fdf0..0f6e9615e5 100644 --- a/package/swupdate/swupdate.config +++ b/package/swupdate/swupdate.config @@ -11,9 +11,26 @@ CONFIG_HAVE_DOT_CONFIG=y # # General Configuration # +# CONFIG_CURL is not set +# CONFIG_SYSTEMD is not set CONFIG_SCRIPTS=y # CONFIG_HW_COMPATIBILITY is not set CONFIG_SW_VERSIONS_FILE="/etc/sw-versions" + +# +# Socket Paths +# +CONFIG_SOCKET_CTRL_PATH="/tmp/sockinstctrl" +CONFIG_SOCKET_PROGRESS_PATH="/tmp/swupdateprog" +CONFIG_SOCKET_REMOTE_HANDLER_DIRECTORY="/tmp/" + +# +# MTD support needs libmtd +# + +# +# Lua support needs a Lua interpreter +# # CONFIG_FEATURE_SYSLOG is not set # @@ -33,21 +50,27 @@ CONFIG_EXTRA_LDLIBS="" # CONFIG_NOCLEANUP is not set # -# Bootloader +# U-Boot support needs libubootenv, libz # -# CONFIG_BOOTLOADER is not set CONFIG_BOOTLOADER_NONE=y # CONFIG_BOOTLOADER_GRUB is not set # -# Suricatta +# Image downloading support needs libcurl # -# CONFIG_SURICATTA is not set -CONFIG_SURICATTA_SERVER_NONE=y # -# Server +# Hash verification needs libssl # + +# +# Image verification (signed images) needs libssl +# + +# +# Image encryption needs libssl +# +# CONFIG_SURICATTA is not set CONFIG_WEBSERVER=y # @@ -60,20 +83,48 @@ CONFIG_MONGOOSE=y # CONFIG_MONGOOSEIPV6=y +# +# SSL support needs libcrypto, libssl +# + # # Archival Features # +# +# gunzip support needs libz +# + # # Parser Features # CONFIG_LIBCONFIG=y CONFIG_PARSERROOT="" + +# +# JSON config parser support needs json-c +# # CONFIG_SETSWDESCRIPTION is not set # # Image Handlers # + +# +# ubivol support needs libubi +# CONFIG_RAW=y # CONFIG_SHELLSCRIPTHANDLER is not set + +# +# archive support needs libarchive +# + +# +# remote handler needs zeromq +# + +# +# SWU forwarder requires libcurl +# # CONFIG_BOOTLOADERHANDLER is not set diff --git a/package/swupdate/swupdate.hash b/package/swupdate/swupdate.hash index 7acc249b80..d1b69c9a03 100644 --- a/package/swupdate/swupdate.hash +++ b/package/swupdate/swupdate.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 898a98b0c5a6bd09a4138fa98bb9883357db1ec6fe4dd5e8f4bcb11d092b9bf3 swupdate-2017.07.tar.gz +sha256 1e15d9675cf7e23886dca7ea058498282c35679a555845dbc85ffe688f2cc681 swupdate-2017.11.tar.gz diff --git a/package/swupdate/swupdate.mk b/package/swupdate/swupdate.mk index fbb092da05..d1afbc4882 100644 --- a/package/swupdate/swupdate.mk +++ b/package/swupdate/swupdate.mk @@ -4,7 +4,7 @@ # ################################################################################ -SWUPDATE_VERSION = 2017.07 +SWUPDATE_VERSION = 2017.11 SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION)) SWUPDATE_LICENSE = GPL-2.0+, MIT, Public Domain SWUPDATE_LICENSE_FILES = COPYING @@ -39,8 +39,13 @@ else SWUPDATE_MAKE_ENV += HAVE_LIBCURL=n endif -ifeq ($(BR2_PACKAGE_LUA_5_2)$(BR2_PACKAGE_LUA_5_3),y) -SWUPDATE_DEPENDENCIES += lua host-pkgconf + +ifeq ($(BR2_PACKAGE_HAS_LUAINTERPRETER),y) +SWUPDATE_DEPENDENCIES += luainterpreter host-pkgconf +# defines the base name for the pkg-config file ("lua" or "luajit") +define SWUPDATE_SET_LUA_VERSION + $(call KCONFIG_SET_OPT,CONFIG_LUAPKG,$(BR2_PACKAGE_PROVIDES_LUAINTERPRETER),$(SWUPDATE_BUILD_CONFIG)) +endef SWUPDATE_MAKE_ENV += HAVE_LUA=y else SWUPDATE_MAKE_ENV += HAVE_LUA=n @@ -110,6 +115,7 @@ endef define SWUPDATE_KCONFIG_FIXUP_CMDS $(SWUPDATE_PREFER_STATIC) $(SWUPDATE_SET_BUILD_OPTIONS) + $(SWUPDATE_SET_LUA_VERSION) endef define SWUPDATE_BUILD_CMDS