[isar-cip-core][PATCH] efibootguard: Adapt installation to Debian upstream


Quirin Gylstorff
 

From: Quirin Gylstorff <quirin.gylstorff@...>

This allows using the Debian upstream version of efibootguard
in place.

Also add the new libebgenv to the installation.
This fixes the missing library from issue #47[1].

[1]: https://gitlab.com/cip-project/cip-core/isar-cip-core/-/issues/47

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@...>
---
recipes-bsp/efibootguard/efibootguard_0.12.bb | 2 +-
.../efibootguard/files/debian/efibootguard.install | 12 +++++-------
recipes-bsp/efibootguard/files/debian/rules | 10 ++--------
scripts/lib/wic/plugins/source/efibootguard-boot.py | 12 ++++++++++--
scripts/lib/wic/plugins/source/efibootguard-efi.py | 12 ++++++++++--
5 files changed, 28 insertions(+), 20 deletions(-)
mode change 100755 => 100644 recipes-bsp/efibootguard/files/debian/efibootguard.install

diff --git a/recipes-bsp/efibootguard/efibootguard_0.12.bb b/recipes-bsp/efibootguard/efibootguard_0.12.bb
index 88dc2ed..721b9dc 100644
--- a/recipes-bsp/efibootguard/efibootguard_0.12.bb
+++ b/recipes-bsp/efibootguard/efibootguard_0.12.bb
@@ -26,7 +26,7 @@ PROVIDES = "${PN}"
PROVIDES += "${PN}-dev"

DEPENDS = "python3-shtab"
-BUILD_DEB_DEPENDS = "dh-exec,autoconf-archive,gnu-efi,libpci-dev,check,pkg-config,python3-shtab"
+BUILD_DEB_DEPENDS = "debhelper,autoconf-archive,check,gnu-efi,libpci-dev,pkg-config,python3-shtab,zlib1g-dev"
BUILD_DEB_DEPENDS_append_amd64 = ",libc6-dev-i386"
BUILD_DEB_DEPENDS_append_i386 = ",libc6-dev-i386"

diff --git a/recipes-bsp/efibootguard/files/debian/efibootguard.install b/recipes-bsp/efibootguard/files/debian/efibootguard.install
old mode 100755
new mode 100644
index d3ea007..01cf974
--- a/recipes-bsp/efibootguard/files/debian/efibootguard.install
+++ b/recipes-bsp/efibootguard/files/debian/efibootguard.install
@@ -1,7 +1,5 @@
-#!/usr/bin/dh-exec
-bg_setenv usr/bin
-bg_printenv usr/bin
-tools/bg_gen_unified_kernel usr/bin
-*.efi usr/share/efibootguard
-completion/bash/bg_printenv.bash => usr/share/bash-completion/completions/bg_printenv
-completion/bash/bg_setenv.bash => usr/share/bash-completion/completions/bg_setenv
+usr/bin
+usr/lib/*/efibootguard/kernel-stub*.efi
+usr/lib/*/efibootguard/efibootguard*.efi
+usr/lib/*/libebgenv.so.0*
+usr/share/efibootguard/completion
diff --git a/recipes-bsp/efibootguard/files/debian/rules b/recipes-bsp/efibootguard/files/debian/rules
index 82e9e0e..9c3b916 100755
--- a/recipes-bsp/efibootguard/files/debian/rules
+++ b/recipes-bsp/efibootguard/files/debian/rules
@@ -1,21 +1,15 @@
#!/usr/bin/make -f
export DH_VERBOSE=1
-export DEB_BUILD_OPTIONS=hardening=-stackprotector
-export DPKG_EXPORT_BUILDFLAGS=1
-include /usr/share/dpkg/default.mk
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-stackprotector
+include /usr/share/dpkg/pkg-info.mk

override_dh_auto_test:
# we do not run the tests; that avoids having to pull the fff submodule

-override_dh_auto_install:
- # install using Debian's .install files rather than
- # make install in order to have a proper package split.
-
override_dh_installchangelogs:
# we're not interested in changelogs

override_dh_installdocs:
# we're not interested in docs
-
%:
dh $@ --with autoreconf
diff --git a/scripts/lib/wic/plugins/source/efibootguard-boot.py b/scripts/lib/wic/plugins/source/efibootguard-boot.py
index f9b232b..3d6b2d7 100644
--- a/scripts/lib/wic/plugins/source/efibootguard-boot.py
+++ b/scripts/lib/wic/plugins/source/efibootguard-boot.py
@@ -187,10 +187,18 @@ class EfibootguardBootPlugin(SourcePlugin):
"armhf": "arm",
"i386": "ia32"
}
+ distro_to_lib_arch = {
+ "amd64": "x86_64-linux-gnu",
+ "arm64": "aarch64-linux-gnu",
+ "armhf": "arm-linux-gnueabihf",
+ "i386": "i386-linux-gnu"
+ }
rootfs_path = rootfs_dir.get('ROOTFS_DIR')
- efistub = "{rootfs_path}/usr/share/efibootguard/kernel-stub{efiarch}.efi"\
+ distro_arch = get_bitbake_var("DISTRO_ARCH")
+ efistub = "{rootfs_path}/usr/lib/{libpath}/efibootguard/kernel-stub{efiarch}.efi"\
.format(rootfs_path=rootfs_path,
- efiarch=distro_to_efi_arch[get_bitbake_var("DISTRO_ARCH")])
+ libpath=distro_to_lib_arch[distro_arch],
+ efiarch=distro_to_efi_arch[distro_arch])
uefi_kernel_name = "linux.efi"
uefi_kernel_file = "{deploy_dir}/{uefi_kernel_name}"\
.format(deploy_dir=deploy_dir, uefi_kernel_name=uefi_kernel_name)
diff --git a/scripts/lib/wic/plugins/source/efibootguard-efi.py b/scripts/lib/wic/plugins/source/efibootguard-efi.py
index a754ee1..2d16fe3 100644
--- a/scripts/lib/wic/plugins/source/efibootguard-efi.py
+++ b/scripts/lib/wic/plugins/source/efibootguard-efi.py
@@ -59,9 +59,17 @@ class EfibootguardEFIPlugin(SourcePlugin):
"i386": "ia32"
}

+ distro_to_lib_arch = {
+ "amd64": "x86_64-linux-gnu",
+ "arm64": "aarch64-linux-gnu",
+ "armhf": "arm-linux-gnueabihf",
+ "i386": "i386-linux-gnu"
+ }
+
distro_arch = get_bitbake_var("DISTRO_ARCH")
- bootloader = "/usr/share/efibootguard/efibootguard{}.efi".format(
- distro_to_efi_arch[distro_arch])
+ bootloader = "/usr/lib/{libpath}/efibootguard/efibootguard{efiarch}.efi".format(
+ libpath=distro_to_lib_arch[distro_arch],
+ efiarch=distro_to_efi_arch[distro_arch])
part_rootfs_dir = "%s/disk/%s.%s" % (cr_workdir,
part.label,
part.lineno)
--
2.35.1


Jan Kiszka
 

On 03.11.22 09:36, Quirin Gylstorff wrote:
From: Quirin Gylstorff <quirin.gylstorff@...>

This allows using the Debian upstream version of efibootguard
in place.

Also add the new libebgenv to the installation.
This fixes the missing library from issue #47[1].

[1]: https://gitlab.com/cip-project/cip-core/isar-cip-core/-/issues/47

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@...>
---
recipes-bsp/efibootguard/efibootguard_0.12.bb | 2 +-
.../efibootguard/files/debian/efibootguard.install | 12 +++++-------
recipes-bsp/efibootguard/files/debian/rules | 10 ++--------
scripts/lib/wic/plugins/source/efibootguard-boot.py | 12 ++++++++++--
scripts/lib/wic/plugins/source/efibootguard-efi.py | 12 ++++++++++--
5 files changed, 28 insertions(+), 20 deletions(-)
mode change 100755 => 100644 recipes-bsp/efibootguard/files/debian/efibootguard.install

diff --git a/recipes-bsp/efibootguard/efibootguard_0.12.bb b/recipes-bsp/efibootguard/efibootguard_0.12.bb
index 88dc2ed..721b9dc 100644
--- a/recipes-bsp/efibootguard/efibootguard_0.12.bb
+++ b/recipes-bsp/efibootguard/efibootguard_0.12.bb
@@ -26,7 +26,7 @@ PROVIDES = "${PN}"
PROVIDES += "${PN}-dev"

DEPENDS = "python3-shtab"
-BUILD_DEB_DEPENDS = "dh-exec,autoconf-archive,gnu-efi,libpci-dev,check,pkg-config,python3-shtab"
+BUILD_DEB_DEPENDS = "debhelper,autoconf-archive,check,gnu-efi,libpci-dev,pkg-config,python3-shtab,zlib1g-dev"
BUILD_DEB_DEPENDS_append_amd64 = ",libc6-dev-i386"
BUILD_DEB_DEPENDS_append_i386 = ",libc6-dev-i386"

diff --git a/recipes-bsp/efibootguard/files/debian/efibootguard.install b/recipes-bsp/efibootguard/files/debian/efibootguard.install
old mode 100755
new mode 100644
index d3ea007..01cf974
--- a/recipes-bsp/efibootguard/files/debian/efibootguard.install
+++ b/recipes-bsp/efibootguard/files/debian/efibootguard.install
@@ -1,7 +1,5 @@
-#!/usr/bin/dh-exec
-bg_setenv usr/bin
-bg_printenv usr/bin
-tools/bg_gen_unified_kernel usr/bin
-*.efi usr/share/efibootguard
-completion/bash/bg_printenv.bash => usr/share/bash-completion/completions/bg_printenv
-completion/bash/bg_setenv.bash => usr/share/bash-completion/completions/bg_setenv
+usr/bin
+usr/lib/*/efibootguard/kernel-stub*.efi
+usr/lib/*/efibootguard/efibootguard*.efi
+usr/lib/*/libebgenv.so.0*
+usr/share/efibootguard/completion
diff --git a/recipes-bsp/efibootguard/files/debian/rules b/recipes-bsp/efibootguard/files/debian/rules
index 82e9e0e..9c3b916 100755
--- a/recipes-bsp/efibootguard/files/debian/rules
+++ b/recipes-bsp/efibootguard/files/debian/rules
@@ -1,21 +1,15 @@
#!/usr/bin/make -f
export DH_VERBOSE=1
-export DEB_BUILD_OPTIONS=hardening=-stackprotector
-export DPKG_EXPORT_BUILDFLAGS=1
-include /usr/share/dpkg/default.mk
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-stackprotector
+include /usr/share/dpkg/pkg-info.mk

override_dh_auto_test:
# we do not run the tests; that avoids having to pull the fff submodule

-override_dh_auto_install:
- # install using Debian's .install files rather than
- # make install in order to have a proper package split.
-
override_dh_installchangelogs:
# we're not interested in changelogs

override_dh_installdocs:
# we're not interested in docs
-
%:
dh $@ --with autoreconf
diff --git a/scripts/lib/wic/plugins/source/efibootguard-boot.py b/scripts/lib/wic/plugins/source/efibootguard-boot.py
index f9b232b..3d6b2d7 100644
--- a/scripts/lib/wic/plugins/source/efibootguard-boot.py
+++ b/scripts/lib/wic/plugins/source/efibootguard-boot.py
@@ -187,10 +187,18 @@ class EfibootguardBootPlugin(SourcePlugin):
"armhf": "arm",
"i386": "ia32"
}
+ distro_to_lib_arch = {
+ "amd64": "x86_64-linux-gnu",
+ "arm64": "aarch64-linux-gnu",
+ "armhf": "arm-linux-gnueabihf",
+ "i386": "i386-linux-gnu"
+ }
rootfs_path = rootfs_dir.get('ROOTFS_DIR')
- efistub = "{rootfs_path}/usr/share/efibootguard/kernel-stub{efiarch}.efi"\
+ distro_arch = get_bitbake_var("DISTRO_ARCH")
+ efistub = "{rootfs_path}/usr/lib/{libpath}/efibootguard/kernel-stub{efiarch}.efi"\
.format(rootfs_path=rootfs_path,
- efiarch=distro_to_efi_arch[get_bitbake_var("DISTRO_ARCH")])
+ libpath=distro_to_lib_arch[distro_arch],
+ efiarch=distro_to_efi_arch[distro_arch])
uefi_kernel_name = "linux.efi"
uefi_kernel_file = "{deploy_dir}/{uefi_kernel_name}"\
.format(deploy_dir=deploy_dir, uefi_kernel_name=uefi_kernel_name)
diff --git a/scripts/lib/wic/plugins/source/efibootguard-efi.py b/scripts/lib/wic/plugins/source/efibootguard-efi.py
index a754ee1..2d16fe3 100644
--- a/scripts/lib/wic/plugins/source/efibootguard-efi.py
+++ b/scripts/lib/wic/plugins/source/efibootguard-efi.py
@@ -59,9 +59,17 @@ class EfibootguardEFIPlugin(SourcePlugin):
"i386": "ia32"
}

+ distro_to_lib_arch = {
+ "amd64": "x86_64-linux-gnu",
+ "arm64": "aarch64-linux-gnu",
+ "armhf": "arm-linux-gnueabihf",
+ "i386": "i386-linux-gnu"
+ }
+
distro_arch = get_bitbake_var("DISTRO_ARCH")
- bootloader = "/usr/share/efibootguard/efibootguard{}.efi".format(
- distro_to_efi_arch[distro_arch])
+ bootloader = "/usr/lib/{libpath}/efibootguard/efibootguard{efiarch}.efi".format(
+ libpath=distro_to_lib_arch[distro_arch],
+ efiarch=distro_to_efi_arch[distro_arch])
These arch name changes look suspicious - or does Debian do the same
for, say, systemd-boot?

Jan

part_rootfs_dir = "%s/disk/%s.%s" % (cr_workdir,
part.label,
part.lineno)
--
Siemens AG, Technology
Competence Center Embedded Linux


Quirin Gylstorff
 

Hi,

On 11/3/22 13:07, Jan Kiszka wrote:
On 03.11.22 09:36, Quirin Gylstorff wrote:
From: Quirin Gylstorff <quirin.gylstorff@...>

This allows using the Debian upstream version of efibootguard
in place.

Also add the new libebgenv to the installation.
This fixes the missing library from issue #47[1].

[1]: https://gitlab.com/cip-project/cip-core/isar-cip-core/-/issues/47

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@...>
---
recipes-bsp/efibootguard/efibootguard_0.12.bb | 2 +-
.../efibootguard/files/debian/efibootguard.install | 12 +++++-------
recipes-bsp/efibootguard/files/debian/rules | 10 ++--------
scripts/lib/wic/plugins/source/efibootguard-boot.py | 12 ++++++++++--
scripts/lib/wic/plugins/source/efibootguard-efi.py | 12 ++++++++++--
5 files changed, 28 insertions(+), 20 deletions(-)
mode change 100755 => 100644 recipes-bsp/efibootguard/files/debian/efibootguard.install

diff --git a/recipes-bsp/efibootguard/efibootguard_0.12.bb b/recipes-bsp/efibootguard/efibootguard_0.12.bb
index 88dc2ed..721b9dc 100644
--- a/recipes-bsp/efibootguard/efibootguard_0.12.bb
+++ b/recipes-bsp/efibootguard/efibootguard_0.12.bb
@@ -26,7 +26,7 @@ PROVIDES = "${PN}"
PROVIDES += "${PN}-dev"
DEPENDS = "python3-shtab"
-BUILD_DEB_DEPENDS = "dh-exec,autoconf-archive,gnu-efi,libpci-dev,check,pkg-config,python3-shtab"
+BUILD_DEB_DEPENDS = "debhelper,autoconf-archive,check,gnu-efi,libpci-dev,pkg-config,python3-shtab,zlib1g-dev"
BUILD_DEB_DEPENDS_append_amd64 = ",libc6-dev-i386"
BUILD_DEB_DEPENDS_append_i386 = ",libc6-dev-i386"
diff --git a/recipes-bsp/efibootguard/files/debian/efibootguard.install b/recipes-bsp/efibootguard/files/debian/efibootguard.install
old mode 100755
new mode 100644
index d3ea007..01cf974
--- a/recipes-bsp/efibootguard/files/debian/efibootguard.install
+++ b/recipes-bsp/efibootguard/files/debian/efibootguard.install
@@ -1,7 +1,5 @@
-#!/usr/bin/dh-exec
-bg_setenv usr/bin
-bg_printenv usr/bin
-tools/bg_gen_unified_kernel usr/bin
-*.efi usr/share/efibootguard
-completion/bash/bg_printenv.bash => usr/share/bash-completion/completions/bg_printenv
-completion/bash/bg_setenv.bash => usr/share/bash-completion/completions/bg_setenv
+usr/bin
+usr/lib/*/efibootguard/kernel-stub*.efi
+usr/lib/*/efibootguard/efibootguard*.efi
+usr/lib/*/libebgenv.so.0*
+usr/share/efibootguard/completion
diff --git a/recipes-bsp/efibootguard/files/debian/rules b/recipes-bsp/efibootguard/files/debian/rules
index 82e9e0e..9c3b916 100755
--- a/recipes-bsp/efibootguard/files/debian/rules
+++ b/recipes-bsp/efibootguard/files/debian/rules
@@ -1,21 +1,15 @@
#!/usr/bin/make -f
export DH_VERBOSE=1
-export DEB_BUILD_OPTIONS=hardening=-stackprotector
-export DPKG_EXPORT_BUILDFLAGS=1
-include /usr/share/dpkg/default.mk
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-stackprotector
+include /usr/share/dpkg/pkg-info.mk
override_dh_auto_test:
# we do not run the tests; that avoids having to pull the fff submodule
-override_dh_auto_install:
- # install using Debian's .install files rather than
- # make install in order to have a proper package split.
-
override_dh_installchangelogs:
# we're not interested in changelogs
override_dh_installdocs:
# we're not interested in docs
-
%:
dh $@ --with autoreconf
diff --git a/scripts/lib/wic/plugins/source/efibootguard-boot.py b/scripts/lib/wic/plugins/source/efibootguard-boot.py
index f9b232b..3d6b2d7 100644
--- a/scripts/lib/wic/plugins/source/efibootguard-boot.py
+++ b/scripts/lib/wic/plugins/source/efibootguard-boot.py
@@ -187,10 +187,18 @@ class EfibootguardBootPlugin(SourcePlugin):
"armhf": "arm",
"i386": "ia32"
}
+ distro_to_lib_arch = {
+ "amd64": "x86_64-linux-gnu",
+ "arm64": "aarch64-linux-gnu",
+ "armhf": "arm-linux-gnueabihf",
+ "i386": "i386-linux-gnu"
+ }
rootfs_path = rootfs_dir.get('ROOTFS_DIR')
- efistub = "{rootfs_path}/usr/share/efibootguard/kernel-stub{efiarch}.efi"\
+ distro_arch = get_bitbake_var("DISTRO_ARCH")
+ efistub = "{rootfs_path}/usr/lib/{libpath}/efibootguard/kernel-stub{efiarch}.efi"\
.format(rootfs_path=rootfs_path,
- efiarch=distro_to_efi_arch[get_bitbake_var("DISTRO_ARCH")])
+ libpath=distro_to_lib_arch[distro_arch],
+ efiarch=distro_to_efi_arch[distro_arch])
uefi_kernel_name = "linux.efi"
uefi_kernel_file = "{deploy_dir}/{uefi_kernel_name}"\
.format(deploy_dir=deploy_dir, uefi_kernel_name=uefi_kernel_name)
diff --git a/scripts/lib/wic/plugins/source/efibootguard-efi.py b/scripts/lib/wic/plugins/source/efibootguard-efi.py
index a754ee1..2d16fe3 100644
--- a/scripts/lib/wic/plugins/source/efibootguard-efi.py
+++ b/scripts/lib/wic/plugins/source/efibootguard-efi.py
@@ -59,9 +59,17 @@ class EfibootguardEFIPlugin(SourcePlugin):
"i386": "ia32"
}
+ distro_to_lib_arch = {
+ "amd64": "x86_64-linux-gnu",
+ "arm64": "aarch64-linux-gnu",
+ "armhf": "arm-linux-gnueabihf",
+ "i386": "i386-linux-gnu"
+ }
+
distro_arch = get_bitbake_var("DISTRO_ARCH")
- bootloader = "/usr/share/efibootguard/efibootguard{}.efi".format(
- distro_to_efi_arch[distro_arch])
+ bootloader = "/usr/lib/{libpath}/efibootguard/efibootguard{efiarch}.efi".format(
+ libpath=distro_to_lib_arch[distro_arch],
+ efiarch=distro_to_efi_arch[distro_arch])
These arch name changes look suspicious - or does Debian do the same
for, say, systemd-boot?
You mean the move to `/usr/lib/{libpath}/...` according to this quick search [1]. It is a pattern in Debian, see https://packages.debian.org/bookworm/efitools.

[1]: https://packages.debian.org/search?suite=bookworm&arch=any&searchon=contents&keywords=efi

Quirin

Jan

part_rootfs_dir = "%s/disk/%s.%s" % (cr_workdir,
part.label,
part.lineno)


Jan Kiszka
 

On 03.11.22 13:43, Gylstorff Quirin wrote:
Hi,

On 11/3/22 13:07, Jan Kiszka wrote:
On 03.11.22 09:36, Quirin Gylstorff wrote:
From: Quirin Gylstorff <quirin.gylstorff@...>

This allows using the Debian upstream version of efibootguard
in place.

Also add the new libebgenv to the installation.
This fixes the missing library from issue #47[1].

[1]: https://gitlab.com/cip-project/cip-core/isar-cip-core/-/issues/47

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@...>
---
  recipes-bsp/efibootguard/efibootguard_0.12.bb        |  2 +-
  .../efibootguard/files/debian/efibootguard.install   | 12 +++++-------
  recipes-bsp/efibootguard/files/debian/rules          | 10 ++--------
  scripts/lib/wic/plugins/source/efibootguard-boot.py  | 12 ++++++++++--
  scripts/lib/wic/plugins/source/efibootguard-efi.py   | 12 ++++++++++--
  5 files changed, 28 insertions(+), 20 deletions(-)
  mode change 100755 => 100644
recipes-bsp/efibootguard/files/debian/efibootguard.install

diff --git a/recipes-bsp/efibootguard/efibootguard_0.12.bb
b/recipes-bsp/efibootguard/efibootguard_0.12.bb
index 88dc2ed..721b9dc 100644
--- a/recipes-bsp/efibootguard/efibootguard_0.12.bb
+++ b/recipes-bsp/efibootguard/efibootguard_0.12.bb
@@ -26,7 +26,7 @@ PROVIDES = "${PN}"
  PROVIDES += "${PN}-dev"
    DEPENDS = "python3-shtab"
-BUILD_DEB_DEPENDS =
"dh-exec,autoconf-archive,gnu-efi,libpci-dev,check,pkg-config,python3-shtab"
+BUILD_DEB_DEPENDS =
"debhelper,autoconf-archive,check,gnu-efi,libpci-dev,pkg-config,python3-shtab,zlib1g-dev"
  BUILD_DEB_DEPENDS_append_amd64 = ",libc6-dev-i386"
  BUILD_DEB_DEPENDS_append_i386 = ",libc6-dev-i386"
  diff --git
a/recipes-bsp/efibootguard/files/debian/efibootguard.install
b/recipes-bsp/efibootguard/files/debian/efibootguard.install
old mode 100755
new mode 100644
index d3ea007..01cf974
--- a/recipes-bsp/efibootguard/files/debian/efibootguard.install
+++ b/recipes-bsp/efibootguard/files/debian/efibootguard.install
@@ -1,7 +1,5 @@
-#!/usr/bin/dh-exec
-bg_setenv usr/bin
-bg_printenv usr/bin
-tools/bg_gen_unified_kernel usr/bin
-*.efi usr/share/efibootguard
-completion/bash/bg_printenv.bash =>
usr/share/bash-completion/completions/bg_printenv
-completion/bash/bg_setenv.bash =>
usr/share/bash-completion/completions/bg_setenv
+usr/bin
+usr/lib/*/efibootguard/kernel-stub*.efi
+usr/lib/*/efibootguard/efibootguard*.efi
+usr/lib/*/libebgenv.so.0*
+usr/share/efibootguard/completion
diff --git a/recipes-bsp/efibootguard/files/debian/rules
b/recipes-bsp/efibootguard/files/debian/rules
index 82e9e0e..9c3b916 100755
--- a/recipes-bsp/efibootguard/files/debian/rules
+++ b/recipes-bsp/efibootguard/files/debian/rules
@@ -1,21 +1,15 @@
  #!/usr/bin/make -f
  export DH_VERBOSE=1
-export DEB_BUILD_OPTIONS=hardening=-stackprotector
-export DPKG_EXPORT_BUILDFLAGS=1
-include /usr/share/dpkg/default.mk
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-stackprotector
+include /usr/share/dpkg/pkg-info.mk
    override_dh_auto_test:
      # we do not run the tests; that avoids having to pull the fff
submodule
  -override_dh_auto_install:
-    # install using Debian's .install files rather than
-    # make install in order to have a proper package split.
-
  override_dh_installchangelogs:
      # we're not interested in changelogs
    override_dh_installdocs:
      # we're not interested in docs
-
  %:
      dh $@ --with autoreconf
diff --git a/scripts/lib/wic/plugins/source/efibootguard-boot.py
b/scripts/lib/wic/plugins/source/efibootguard-boot.py
index f9b232b..3d6b2d7 100644
--- a/scripts/lib/wic/plugins/source/efibootguard-boot.py
+++ b/scripts/lib/wic/plugins/source/efibootguard-boot.py
@@ -187,10 +187,18 @@ class EfibootguardBootPlugin(SourcePlugin):
              "armhf": "arm",
              "i386": "ia32"
          }
+        distro_to_lib_arch = {
+            "amd64": "x86_64-linux-gnu",
+            "arm64": "aarch64-linux-gnu",
+            "armhf": "arm-linux-gnueabihf",
+            "i386": "i386-linux-gnu"
+        }
          rootfs_path = rootfs_dir.get('ROOTFS_DIR')
-        efistub =
"{rootfs_path}/usr/share/efibootguard/kernel-stub{efiarch}.efi"\
+        distro_arch = get_bitbake_var("DISTRO_ARCH")
+        efistub =
"{rootfs_path}/usr/lib/{libpath}/efibootguard/kernel-stub{efiarch}.efi"\
              .format(rootfs_path=rootfs_path,
-                   
efiarch=distro_to_efi_arch[get_bitbake_var("DISTRO_ARCH")])
+                    libpath=distro_to_lib_arch[distro_arch],
+                    efiarch=distro_to_efi_arch[distro_arch])
          uefi_kernel_name = "linux.efi"
          uefi_kernel_file = "{deploy_dir}/{uefi_kernel_name}"\
              .format(deploy_dir=deploy_dir,
uefi_kernel_name=uefi_kernel_name)
diff --git a/scripts/lib/wic/plugins/source/efibootguard-efi.py
b/scripts/lib/wic/plugins/source/efibootguard-efi.py
index a754ee1..2d16fe3 100644
--- a/scripts/lib/wic/plugins/source/efibootguard-efi.py
+++ b/scripts/lib/wic/plugins/source/efibootguard-efi.py
@@ -59,9 +59,17 @@ class EfibootguardEFIPlugin(SourcePlugin):
              "i386": "ia32"
          }
  +        distro_to_lib_arch = {
+            "amd64": "x86_64-linux-gnu",
+            "arm64": "aarch64-linux-gnu",
+            "armhf": "arm-linux-gnueabihf",
+            "i386": "i386-linux-gnu"
+        }
+
          distro_arch = get_bitbake_var("DISTRO_ARCH")
-        bootloader =
"/usr/share/efibootguard/efibootguard{}.efi".format(
-            distro_to_efi_arch[distro_arch])
+        bootloader =
"/usr/lib/{libpath}/efibootguard/efibootguard{efiarch}.efi".format(
+            libpath=distro_to_lib_arch[distro_arch],
+            efiarch=distro_to_efi_arch[distro_arch])
These arch name changes look suspicious - or does Debian do the same
for, say, systemd-boot?
You mean the move to `/usr/lib/{libpath}/...` according to this quick
search [1]. It is a pattern in Debian, see
https://packages.debian.org/bookworm/efitools.

[1]:
https://packages.debian.org/search?suite=bookworm&arch=any&searchon=contents&keywords=efi
I was rather referring to the binary name - but I misread that it would
start to carry lib-arch names as well.

Thanks, applied.

Jan

--
Siemens AG, Technology
Competence Center Embedded Linux