mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-29 06:06:32 +00:00
swupdate: bump to version 2017.11
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] 7b49b8dc59
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
5e23eb5da7
commit
6c35c0196b
@ -1,119 +0,0 @@
|
|||||||
From dba95dcd3739c604a81ffa2df2545e7a4cd430cf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maksim Salau <msalau@iotecha.com>
|
|
||||||
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 <msalau@iotecha.com>
|
|
||||||
Acked-by: Stefano Babic <sbabic@denx.de>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -4,7 +4,7 @@ config BR2_PACKAGE_SWUPDATE
|
|||||||
depends on BR2_USE_MMU # fork()
|
depends on BR2_USE_MMU # fork()
|
||||||
# swupdate requires a parser and uses libconfig as default
|
# swupdate requires a parser and uses libconfig as default
|
||||||
select BR2_PACKAGE_LIBCONFIG if !BR2_PACKAGE_JSON_C && \
|
select BR2_PACKAGE_LIBCONFIG if !BR2_PACKAGE_JSON_C && \
|
||||||
!BR2_PACKAGE_LUA_5_2 && !BR2_PACKAGE_LUA_5_3
|
!BR2_PACKAGE_HAS_LUAINTERPRETER
|
||||||
help
|
help
|
||||||
swupdate provides a reliable way to update the software on
|
swupdate provides a reliable way to update the software on
|
||||||
an embedded system.
|
an embedded system.
|
||||||
@ -16,11 +16,11 @@ config BR2_PACKAGE_SWUPDATE
|
|||||||
handler for raw NAND or NOR flash.
|
handler for raw NAND or NOR flash.
|
||||||
|
|
||||||
The default configuration file builds a reasonable firmware
|
The default configuration file builds a reasonable firmware
|
||||||
update system with minimal external dependencies in my
|
update system with minimal external dependencies in mind.
|
||||||
mind. If you like to use your own modified configuration,
|
If you like to use your own modified configuration,
|
||||||
you have to select the necessary packages manually:
|
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.
|
want to have Lua support.
|
||||||
* Select BR2_LIBCURL if you want to use the download
|
* Select BR2_LIBCURL if you want to use the download
|
||||||
feature.
|
feature.
|
||||||
|
@ -11,9 +11,26 @@ CONFIG_HAVE_DOT_CONFIG=y
|
|||||||
#
|
#
|
||||||
# General Configuration
|
# General Configuration
|
||||||
#
|
#
|
||||||
|
# CONFIG_CURL is not set
|
||||||
|
# CONFIG_SYSTEMD is not set
|
||||||
CONFIG_SCRIPTS=y
|
CONFIG_SCRIPTS=y
|
||||||
# CONFIG_HW_COMPATIBILITY is not set
|
# CONFIG_HW_COMPATIBILITY is not set
|
||||||
CONFIG_SW_VERSIONS_FILE="/etc/sw-versions"
|
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
|
# CONFIG_FEATURE_SYSLOG is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -33,21 +50,27 @@ CONFIG_EXTRA_LDLIBS=""
|
|||||||
# CONFIG_NOCLEANUP is not set
|
# CONFIG_NOCLEANUP is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bootloader
|
# U-Boot support needs libubootenv, libz
|
||||||
#
|
#
|
||||||
# CONFIG_BOOTLOADER is not set
|
|
||||||
CONFIG_BOOTLOADER_NONE=y
|
CONFIG_BOOTLOADER_NONE=y
|
||||||
# CONFIG_BOOTLOADER_GRUB is not set
|
# 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
|
CONFIG_WEBSERVER=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -60,20 +83,48 @@ CONFIG_MONGOOSE=y
|
|||||||
#
|
#
|
||||||
CONFIG_MONGOOSEIPV6=y
|
CONFIG_MONGOOSEIPV6=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# SSL support needs libcrypto, libssl
|
||||||
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Archival Features
|
# Archival Features
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# gunzip support needs libz
|
||||||
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Parser Features
|
# Parser Features
|
||||||
#
|
#
|
||||||
CONFIG_LIBCONFIG=y
|
CONFIG_LIBCONFIG=y
|
||||||
CONFIG_PARSERROOT=""
|
CONFIG_PARSERROOT=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# JSON config parser support needs json-c
|
||||||
|
#
|
||||||
# CONFIG_SETSWDESCRIPTION is not set
|
# CONFIG_SETSWDESCRIPTION is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Image Handlers
|
# Image Handlers
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# ubivol support needs libubi
|
||||||
|
#
|
||||||
CONFIG_RAW=y
|
CONFIG_RAW=y
|
||||||
# CONFIG_SHELLSCRIPTHANDLER is not set
|
# CONFIG_SHELLSCRIPTHANDLER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# archive support needs libarchive
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# remote handler needs zeromq
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# SWU forwarder requires libcurl
|
||||||
|
#
|
||||||
# CONFIG_BOOTLOADERHANDLER is not set
|
# CONFIG_BOOTLOADERHANDLER is not set
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
# Locally calculated
|
# Locally calculated
|
||||||
sha256 898a98b0c5a6bd09a4138fa98bb9883357db1ec6fe4dd5e8f4bcb11d092b9bf3 swupdate-2017.07.tar.gz
|
sha256 1e15d9675cf7e23886dca7ea058498282c35679a555845dbc85ffe688f2cc681 swupdate-2017.11.tar.gz
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
SWUPDATE_VERSION = 2017.07
|
SWUPDATE_VERSION = 2017.11
|
||||||
SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
|
SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
|
||||||
SWUPDATE_LICENSE = GPL-2.0+, MIT, Public Domain
|
SWUPDATE_LICENSE = GPL-2.0+, MIT, Public Domain
|
||||||
SWUPDATE_LICENSE_FILES = COPYING
|
SWUPDATE_LICENSE_FILES = COPYING
|
||||||
@ -39,8 +39,13 @@ else
|
|||||||
SWUPDATE_MAKE_ENV += HAVE_LIBCURL=n
|
SWUPDATE_MAKE_ENV += HAVE_LIBCURL=n
|
||||||
endif
|
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
|
SWUPDATE_MAKE_ENV += HAVE_LUA=y
|
||||||
else
|
else
|
||||||
SWUPDATE_MAKE_ENV += HAVE_LUA=n
|
SWUPDATE_MAKE_ENV += HAVE_LUA=n
|
||||||
@ -110,6 +115,7 @@ endef
|
|||||||
define SWUPDATE_KCONFIG_FIXUP_CMDS
|
define SWUPDATE_KCONFIG_FIXUP_CMDS
|
||||||
$(SWUPDATE_PREFER_STATIC)
|
$(SWUPDATE_PREFER_STATIC)
|
||||||
$(SWUPDATE_SET_BUILD_OPTIONS)
|
$(SWUPDATE_SET_BUILD_OPTIONS)
|
||||||
|
$(SWUPDATE_SET_LUA_VERSION)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define SWUPDATE_BUILD_CMDS
|
define SWUPDATE_BUILD_CMDS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user