summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-tpm/recipes-tpm1/hoth/libhoth/0001-Fix-building-with-gcc-15.patch151
-rw-r--r--meta-tpm/recipes-tpm1/hoth/libhoth/0002-Fix-building-without-dbus-backend.patch36
-rw-r--r--meta-tpm/recipes-tpm1/hoth/libhoth_git.bb11
3 files changed, 196 insertions, 2 deletions
diff --git a/meta-tpm/recipes-tpm1/hoth/libhoth/0001-Fix-building-with-gcc-15.patch b/meta-tpm/recipes-tpm1/hoth/libhoth/0001-Fix-building-with-gcc-15.patch
new file mode 100644
index 0000000..5004c66
--- /dev/null
+++ b/meta-tpm/recipes-tpm1/hoth/libhoth/0001-Fix-building-with-gcc-15.patch
@@ -0,0 +1,151 @@
1From 59dfffdb03654e004d848e8f6639ba066f7786a1 Mon Sep 17 00:00:00 2001
2From: Scott Murray <scott.murray@konsulko.com>
3Date: Thu, 3 Jul 2025 17:41:16 -0400
4Subject: [PATCH 1/2] Fix building with gcc 15
5
6Correct function signatures of a few of the htool command functions
7to fix gcc 15 errors from incompatible function pointer types.
8
9Upstream-Status: Pending
10Signed-off-by: Scott Murray <scott.murray@konsulko.com>
11---
12 examples/htool_key_rotation.c | 6 +++---
13 examples/htool_key_rotation.h | 6 +++---
14 examples/htool_payload.c | 2 +-
15 examples/htool_payload.h | 2 +-
16 examples/htool_payload_update.c | 2 +-
17 examples/htool_payload_update.h | 2 +-
18 examples/htool_statistics.c | 2 +-
19 examples/htool_statistics.h | 3 ++-
20 8 files changed, 13 insertions(+), 12 deletions(-)
21
22diff --git a/examples/htool_key_rotation.c b/examples/htool_key_rotation.c
23index af7ef59..3b938cd 100644
24--- a/examples/htool_key_rotation.c
25+++ b/examples/htool_key_rotation.c
26@@ -43,7 +43,7 @@ static const char *get_validation_method_string(uint32_t validation_method) {
27 }
28 }
29
30-int htool_key_rotation_get_status(void) {
31+int htool_key_rotation_get_status(const struct htool_invocation* inv) {
32 struct libhoth_device *dev = htool_libhoth_device();
33 if (!dev) {
34 return -1;
35@@ -65,7 +65,7 @@ int htool_key_rotation_get_status(void) {
36 return 0;
37 }
38
39-int htool_key_rotation_get_version(void) {
40+int htool_key_rotation_get_version(const struct htool_invocation* inv) {
41 struct libhoth_device *dev = htool_libhoth_device();
42 if (!dev) {
43 return -1;
44@@ -161,7 +161,7 @@ int htool_key_rotation_update(const struct htool_invocation *inv) {
45 return result;
46 }
47
48-int htool_key_rotation_payload_status() {
49+int htool_key_rotation_payload_status(const struct htool_invocation* inv) {
50 struct libhoth_device *dev = htool_libhoth_device();
51 if (!dev) {
52 return -1;
53diff --git a/examples/htool_key_rotation.h b/examples/htool_key_rotation.h
54index 1dbfc02..cbcde98 100644
55--- a/examples/htool_key_rotation.h
56+++ b/examples/htool_key_rotation.h
57@@ -23,9 +23,9 @@ extern "C" {
58 #endif
59
60 struct htool_invocation;
61-int htool_key_rotation_get_status();
62-int htool_key_rotation_get_version();
63-int htool_key_rotation_payload_status();
64+int htool_key_rotation_get_status(const struct htool_invocation* inv);
65+int htool_key_rotation_get_version(const struct htool_invocation* inv);
66+int htool_key_rotation_payload_status(const struct htool_invocation* inv);
67 int htool_key_rotation_read(const struct htool_invocation* inv);
68 int htool_key_rotation_read_chunk_type(const struct htool_invocation* inv);
69 int htool_key_rotation_update(const struct htool_invocation* inv);
70diff --git a/examples/htool_payload.c b/examples/htool_payload.c
71index cada560..5a87660 100644
72--- a/examples/htool_payload.c
73+++ b/examples/htool_payload.c
74@@ -29,7 +29,7 @@
75 #include "protocol/payload_info.h"
76 #include "protocol/payload_status.h"
77
78-int htool_payload_status() {
79+int htool_payload_status(const struct htool_invocation* inv) {
80 struct libhoth_device* dev = htool_libhoth_device();
81 if (!dev) {
82 return -1;
83diff --git a/examples/htool_payload.h b/examples/htool_payload.h
84index f218034..82c77ac 100644
85--- a/examples/htool_payload.h
86+++ b/examples/htool_payload.h
87@@ -24,7 +24,7 @@
88 extern "C" {
89 #endif
90
91-int htool_payload_status();
92+int htool_payload_status(const struct htool_invocation* inv);
93 int htool_payload_info(const struct htool_invocation* inv);
94
95 #ifdef __cplusplus
96diff --git a/examples/htool_payload_update.c b/examples/htool_payload_update.c
97index 8e3beb3..6cf44f1 100644
98--- a/examples/htool_payload_update.c
99+++ b/examples/htool_payload_update.c
100@@ -125,7 +125,7 @@ const char *payload_update_getstatus_half_string(uint8_t h) {
101 }
102 }
103
104-int htool_payload_update_getstatus() {
105+int htool_payload_update_getstatus(const struct htool_invocation* inv) {
106 struct libhoth_device *dev = htool_libhoth_device();
107 if (!dev) {
108 return -1;
109diff --git a/examples/htool_payload_update.h b/examples/htool_payload_update.h
110index f87c5e7..55c6b44 100644
111--- a/examples/htool_payload_update.h
112+++ b/examples/htool_payload_update.h
113@@ -24,7 +24,7 @@ extern "C" {
114
115 struct htool_invocation;
116 int htool_payload_update(const struct htool_invocation* inv);
117-int htool_payload_update_getstatus();
118+int htool_payload_update_getstatus(const struct htool_invocation* inv);
119
120 #ifdef __cplusplus
121 }
122diff --git a/examples/htool_statistics.c b/examples/htool_statistics.c
123index 4c5b536..6bca31a 100644
124--- a/examples/htool_statistics.c
125+++ b/examples/htool_statistics.c
126@@ -178,7 +178,7 @@ const char* PayloadUpdateErrorToString(uint16_t reason) {
127 }
128 }
129
130-int htool_statistics() {
131+int htool_statistics(const struct htool_invocation* inv) {
132 struct libhoth_device* dev = htool_libhoth_device();
133 if (!dev) {
134 return -1;
135diff --git a/examples/htool_statistics.h b/examples/htool_statistics.h
136index 2dd59b6..fe54eda 100644
137--- a/examples/htool_statistics.h
138+++ b/examples/htool_statistics.h
139@@ -19,7 +19,8 @@
140 extern "C" {
141 #endif
142
143-int htool_statistics();
144+struct htool_invocation;
145+int htool_statistics(const struct htool_invocation* inv);
146
147 #ifdef __cplusplus
148 }
149--
1502.50.0
151
diff --git a/meta-tpm/recipes-tpm1/hoth/libhoth/0002-Fix-building-without-dbus-backend.patch b/meta-tpm/recipes-tpm1/hoth/libhoth/0002-Fix-building-without-dbus-backend.patch
new file mode 100644
index 0000000..ca98609
--- /dev/null
+++ b/meta-tpm/recipes-tpm1/hoth/libhoth/0002-Fix-building-without-dbus-backend.patch
@@ -0,0 +1,36 @@
1From ee75dcb0ea9818a10a6f7f85a3b5ee37572a3b08 Mon Sep 17 00:00:00 2001
2From: Scott Murray <scott.murray@konsulko.com>
3Date: Thu, 3 Jul 2025 17:41:50 -0400
4Subject: [PATCH 2/2] Fix building without dbus backend
5
6Move libsystemd and libcap dependencies into conditional logic for
7dbus_backend option so that building without the backend works when
8libsystemd and libcap are not available in the build environment.
9This situation occurs when building with OpenEmbedded.
10
11Upstream-Status: Pending
12Signed-off-by: Scott Murray <scott.murray@konsulko.com>
13---
14 transports/meson.build | 4 ++--
15 1 file changed, 2 insertions(+), 2 deletions(-)
16
17diff --git a/transports/meson.build b/transports/meson.build
18index e9f30d4..5abd103 100644
19--- a/transports/meson.build
20+++ b/transports/meson.build
21@@ -9,10 +9,10 @@ transport_srcs = [
22
23 incdir = include_directories('..')
24 libusb = dependency('libusb-1.0')
25-libsystemd = dependency('libsystemd')
26-libcap = dependency('libcap')
27
28 if get_option('dbus_backend')
29+ libsystemd = dependency('libsystemd')
30+ libcap = dependency('libcap')
31 libhoth_dbus = static_library(
32 'hoth_dbus',
33 'libhoth_dbus.c',
34--
352.50.0
36
diff --git a/meta-tpm/recipes-tpm1/hoth/libhoth_git.bb b/meta-tpm/recipes-tpm1/hoth/libhoth_git.bb
index 9d29f78..2608acf 100644
--- a/meta-tpm/recipes-tpm1/hoth/libhoth_git.bb
+++ b/meta-tpm/recipes-tpm1/hoth/libhoth_git.bb
@@ -6,10 +6,17 @@ HOMEPAGE = "https://github.com/google/libhoth"
6LICENSE = "Apache-2.0" 6LICENSE = "Apache-2.0"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
8 8
9SRC_URI = "git://github.com/google/libhoth;protocol=https;branch=main" 9SRC_URI = "git://github.com/google/libhoth;protocol=https;branch=main \
10SRCREV = "e4827163741e0804f12ac96c81b8e97649be6795" 10 file://0001-Fix-building-with-gcc-15.patch \
11 file://0002-Fix-building-without-dbus-backend.patch \
12"
13SRCREV = "69661d3ea542604353c48a00beee9a6247b27686"
11 14
12DEPENDS += "libusb1" 15DEPENDS += "libusb1"
13 16
14inherit pkgconfig meson 17inherit pkgconfig meson
15 18
19PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'dbus', '', d)}"
20
21PACKAGECONFIG[dbus] = "-Ddbus_backend=true,-Ddbus_backend=false,systemd libcap"
22