[v4] u-boot: add libubootenv

Message ID 5e8156b9-e90a-b035-a538-b387865e9b44@siemens.com
State Accepted, archived
Headers show
Series [v4] u-boot: add libubootenv | expand

Commit Message

Jan Kiszka Nov. 21, 2020, 3:33 a.m. UTC
From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

Add the new library libubootenv and remove fw_printenv and fw_setenv
form u-boot-tools as the are now part of the new library.

libubootenv is a library that provides a hardware independent
way to access to U-Boot environment. U-Boot has its default environment
compiled board-dependently and this means that tools to access the environment
are also board specific, too.

libubootenv conflicts with u-boot-tools from Debian 10
as both try to install fw_printenv and fw_sentenv. This conflict is not
part of the control file as it breaks the installation of custom u-boot-tools
from the u-boot-sources.

This patch uses dpkg-gdb to build the package from salsa.debian.org and adds
a fix for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=967487.

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
[Jan: add PROVIDES, fix indention, fix de0-nano-soc example]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---

Changes in v4:
 - add PROVIDES, fixing de0-nano-soc build

 meta-isar/conf/machine/de0-nano-soc.conf      |  2 +-
 .../0002-Add-support-GNUInstallDirs.patch     | 48 +++++++++++++++++++
 .../libubootenv/libubootenv_0.2.bb            | 32 +++++++++++++
 .../files/debian/u-boot-tools.conffiles       |  1 -
 .../u-boot/files/debian/u-boot-tools.install  |  2 -
 .../u-boot/files/debian/u-boot-tools.links    |  1 -
 6 files changed, 81 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-bsp/libubootenv/files/0002-Add-support-GNUInstallDirs.patch
 create mode 100644 meta/recipes-bsp/libubootenv/libubootenv_0.2.bb
 delete mode 100644 meta/recipes-bsp/u-boot/files/debian/u-boot-tools.conffiles
 delete mode 100644 meta/recipes-bsp/u-boot/files/debian/u-boot-tools.links

Comments

Anton Mikanovich Nov. 26, 2020, 7:20 a.m. UTC | #1
21.11.2020 16:33, Jan Kiszka wrote:
> From: Quirin Gylstorff <quirin.gylstorff@siemens.com>
>
> Add the new library libubootenv and remove fw_printenv and fw_setenv
> form u-boot-tools as the are now part of the new library.
>
> libubootenv is a library that provides a hardware independent
> way to access to U-Boot environment. U-Boot has its default environment
> compiled board-dependently and this means that tools to access the environment
> are also board specific, too.
>
> libubootenv conflicts with u-boot-tools from Debian 10
> as both try to install fw_printenv and fw_sentenv. This conflict is not
> part of the control file as it breaks the installation of custom u-boot-tools
> from the u-boot-sources.
>
> This patch uses dpkg-gdb to build the package from salsa.debian.org and adds
> a fix for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=967487.
>
> Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> [Jan: add PROVIDES, fix indention, fix de0-nano-soc example]
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>

Applied to next, thanks.

Patch

diff --git a/meta-isar/conf/machine/de0-nano-soc.conf b/meta-isar/conf/machine/de0-nano-soc.conf
index 5a734d4d..5e35602c 100644
--- a/meta-isar/conf/machine/de0-nano-soc.conf
+++ b/meta-isar/conf/machine/de0-nano-soc.conf
@@ -16,4 +16,4 @@  WKS_FILE ?= "de0-nano-soc.wks.in"
 IMAGER_INSTALL += "u-boot-de0-nano-soc"
 IMAGER_BUILD_DEPS += "u-boot-de0-nano-soc"
 
-IMAGE_INSTALL += "u-boot-tools u-boot-script"
+IMAGE_INSTALL += "u-boot-tools libubootenv-tool u-boot-script"
diff --git a/meta/recipes-bsp/libubootenv/files/0002-Add-support-GNUInstallDirs.patch b/meta/recipes-bsp/libubootenv/files/0002-Add-support-GNUInstallDirs.patch
new file mode 100644
index 00000000..f8c3038e
--- /dev/null
+++ b/meta/recipes-bsp/libubootenv/files/0002-Add-support-GNUInstallDirs.patch
@@ -0,0 +1,48 @@ 
+From b17d194bd8285a19382a902a0bec9e5e042df064 Mon Sep 17 00:00:00 2001
+From: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
+Date: Tue, 16 Apr 2019 08:52:01 +0900
+Subject: [PATCH 2/4] Add support GNUInstallDirs
+
+This adds the functionality of the module "GNUInstallDirs" to make the
+installation compatible with GNU.
+
+https://cmake.org/cmake/help/v3.14/module/GNUInstallDirs.html
+
+Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
+---
+ CMakeLists.txt     | 2 ++
+ src/CMakeLists.txt | 8 ++++----
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 104969e..57477fc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,6 +10,8 @@ add_definitions(-DVERSION="${VERSION}")
+ 
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
+ 
++include("GNUInstallDirs")
++
+ #set(CMAKE_C_FLAGS_DEBUG "-g")
+ include_directories ("${PROJECT_SOURCE_DIR}/src")
+ add_subdirectory (src)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ea5979c..d97f221 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -19,7 +19,7 @@ add_executable(fw_setenv fw_setenv.c)
+ target_link_libraries(fw_printenv ubootenv z)
+ target_link_libraries(fw_setenv ubootenv z)
+ 
+-install (TARGETS ubootenv DESTINATION lib)
+-install (FILES libuboot.h DESTINATION include)
+-install (TARGETS fw_printenv DESTINATION bin)
+-install (TARGETS fw_setenv DESTINATION bin)
++install (TARGETS ubootenv DESTINATION "${CMAKE_INSTALL_LIBDIR}")
++install (FILES libuboot.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
++install (TARGETS fw_printenv DESTINATION "${CMAKE_INSTALL_BINDIR}")
++install (TARGETS fw_setenv DESTINATION "${CMAKE_INSTALL_BINDIR}")
+-- 
+2.20.1
+
diff --git a/meta/recipes-bsp/libubootenv/libubootenv_0.2.bb b/meta/recipes-bsp/libubootenv/libubootenv_0.2.bb
new file mode 100644
index 00000000..8eea584c
--- /dev/null
+++ b/meta/recipes-bsp/libubootenv/libubootenv_0.2.bb
@@ -0,0 +1,32 @@ 
+# libubootenv
+#
+# This software is a part of ISAR.
+# Copyright (c) Siemens AG, 2020
+#
+# SPDX-License-Identifier: MIT
+
+DESCRIPTION = "swupdate utility for software updates"
+HOMEPAGE= "https://github.com/sbabic/swupdate"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://${LAYERDIR_isar}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe"
+
+PROVIDES = "libubootenv-tool libubootenv-dev libubootenv-doc libubootenv0.1"
+
+inherit dpkg-gbp
+
+SRC_URI = "git://salsa.debian.org/debian/libubootenv.git;protocol=https \
+           file://0002-Add-support-GNUInstallDirs.patch;apply=no "
+SRCREV = "2c7cb6d941d906dcc1d2e447cc17e418485dff12"
+
+S = "${WORKDIR}/git"
+
+do_prepare_build() {
+	cd ${S}
+	export QUILT_PATCHES=debian/patches
+	quilt import -f ${WORKDIR}/*.patch
+	quilt push -a
+}
+
+dpkg_runbuild_prepend() {
+	export DEB_BUILD_OPTIONS="nocheck"
+}
diff --git a/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.conffiles b/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.conffiles
deleted file mode 100644
index d49a8fbb..00000000
--- a/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.conffiles
+++ /dev/null
@@ -1 +0,0 @@ 
-/etc/fw_env.config
diff --git a/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.install b/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.install
index d1ae3e0b..2893b9a5 100644
--- a/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.install
+++ b/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.install
@@ -1,5 +1,3 @@ 
 tools/dumpimage		/usr/bin/
-tools/env/fw_printenv	/usr/bin/
 tools/mkenvimage	/usr/bin/
 tools/mkimage		/usr/bin/
-tools/env/fw_env.config	/etc
diff --git a/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.links b/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.links
deleted file mode 100644
index 92f5a6cb..00000000
--- a/meta/recipes-bsp/u-boot/files/debian/u-boot-tools.links
+++ /dev/null
@@ -1 +0,0 @@ 
-/usr/bin/fw_printenv /usr/bin/fw_setenv