Explorar o código

mtd-utils: fix build on dunfell

Commit ece400ed52c36 interacts with changes in poky, dunfell due to a
backport patch for mtd-utils. Instead of updating the version, just take
the commits from mtd-utils master branch that are needed by SWUpdate.

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Richard Allen <richard_allen@keysight.com>
CC: Bastian Germann <bage@linutronix.de>
CC: Guy Morand <guy@guy-morand.ch>
Stefano Babic %!s(int64=5) %!d(string=hai) anos
pai
achega
3f4d8d7bf4

+ 29 - 0
recipes-devtools/mtd/files/0001-libubigen-remove-unnecessary-include.patch

@@ -0,0 +1,29 @@
+From 87809c4804d3355ecd2fd0bd3362526fa27bf953 Mon Sep 17 00:00:00 2001
+From: Bastian Germann <bastiangermann@fishpost.de>
+Date: Wed, 29 Jan 2020 19:50:12 +0100
+Subject: [PATCH 1/2] libubigen: remove unnecessary include
+
+libubigen.h does not use any symbol from mtd/ubi-media.h,
+so remove it from includes.
+
+Signed-off-by: Bastian Germann <bastiangermann@fishpost.de>
+Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
+---
+ include/libubigen.h | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/include/libubigen.h b/include/libubigen.h
+index c25ac20..48d2fad 100644
+--- a/include/libubigen.h
++++ b/include/libubigen.h
+@@ -26,7 +26,6 @@
+ #define __LIBUBIGEN_H__
+ 
+ #include <stdint.h>
+-#include <mtd/ubi-media.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
+-- 
+2.25.1
+

+ 58 - 0
recipes-devtools/mtd/files/0002-libubi-remove-private-kernel-header-from-includes.patch

@@ -0,0 +1,58 @@
+From 42e051acd32c28c2f93c946d0c4bf6f9eada2aa4 Mon Sep 17 00:00:00 2001
+From: Bastian Germann <bastiangermann@fishpost.de>
+Date: Wed, 29 Jan 2020 19:50:13 +0100
+Subject: [PATCH 2/2] libubi: remove private kernel header from includes
+
+libubi.h includes ubi-media.h which was made private in the kernel a
+long time ago. There are users of libubi.h, e.g. swupdate, which have to
+have ubi-media.h available at build time with this inclusion.
+
+However, libubi.h uses only one symbol from ubi-media.h. Define that symbol
+in the header to enable using libubi.h without installing ubi-media.h.
+
+Make up for the transitive symbol use in ubiformat.c by including ubi-media.h.
+
+Signed-off-by: Bastian Germann <bastiangermann@fishpost.de>
+Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
+---
+ include/libubi.h      | 4 +++-
+ ubi-utils/ubiformat.c | 1 +
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/include/libubi.h b/include/libubi.h
+index 46596a3..46c732a 100644
+--- a/include/libubi.h
++++ b/include/libubi.h
+@@ -26,7 +26,6 @@
+ #include <ctype.h>
+ #include <stdint.h>
+ #include <mtd/ubi-user.h>
+-#include <mtd/ubi-media.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
+@@ -38,6 +37,9 @@ extern "C" {
+ /* Maximum physical eraseblock size in bytes */
+ #define UBI_MAX_PEB_SZ (2*1024*1024)
+ 
++/* The maximum volume name length (from Linux's ubi-media.h) */
++#define UBI_VOL_NAME_MAX 127
++
+ /* UBI library descriptor */
+ typedef void * libubi_t;
+ 
+diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c
+index be40e52..d1b12e4 100644
+--- a/ubi-utils/ubiformat.c
++++ b/ubi-utils/ubiformat.c
+@@ -38,6 +38,7 @@
+ #include <getopt.h>
+ #include <fcntl.h>
+ 
++#include <mtd/ubi-media.h>
+ #include <libubi.h>
+ #include <libmtd.h>
+ #include <libscan.h>
+-- 
+2.25.1
+

+ 6 - 1
recipes-devtools/mtd/mtd-utils_%.bbappend

@@ -1,6 +1,11 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
 FILES_${PN}-staticdev += "ubi-utils/libubi.a ${libdir}/*.a"
 
-SRCREV = "639b871fe3d2cb3e73d21363e8c13ede2bbd9f99"
+SRC_URI += " \
+	file://0001-libubigen-remove-unnecessary-include.patch \
+	file://0002-libubi-remove-private-kernel-header-from-includes.patch \
+"
 
 do_install_append () {
 	install -d ${D}${includedir}/mtd/