diff options
| -rw-r--r-- | meta/recipes-core/systemd/systemd/0023-build-sys-fix-build-with-libgrcypt-disabled.patch | 122 | ||||
| -rw-r--r-- | meta/recipes-core/systemd/systemd_229.bb | 2 |
2 files changed, 123 insertions, 1 deletions
diff --git a/meta/recipes-core/systemd/systemd/0023-build-sys-fix-build-with-libgrcypt-disabled.patch b/meta/recipes-core/systemd/systemd/0023-build-sys-fix-build-with-libgrcypt-disabled.patch new file mode 100644 index 0000000000..1ae3d66c78 --- /dev/null +++ b/meta/recipes-core/systemd/systemd/0023-build-sys-fix-build-with-libgrcypt-disabled.patch | |||
| @@ -0,0 +1,122 @@ | |||
| 1 | From b68f10bf1f7519e012da5e35fab3a57da7dc46d4 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> | ||
| 3 | Date: Sun, 27 Mar 2016 17:33:54 -0400 | ||
| 4 | Subject: [PATCH] build-sys: fix build with libgrcypt disabled | ||
| 5 | |||
| 6 | - Move gcrypt.h include inside grcrypt-util.h. | ||
| 7 | - Allow gcrypt-util.[ch] to be compiled even without gcrypt. | ||
| 8 | This allows the logic in files using gcrypt to be simplified. | ||
| 9 | |||
| 10 | - Fix compilation of systemd-resolve without gcrypt. | ||
| 11 | systemd-resolved already supported that. | ||
| 12 | |||
| 13 | Upstream-Status: Backport [ https://github.com/systemd/systemd/pull/2905 ] | ||
| 14 | |||
| 15 | Fixes [YOCTO #9219] | ||
| 16 | |||
| 17 | Signed-off-by: Maxin B. John <maxin.john@intel.com> | ||
| 18 | --- | ||
| 19 | Makefile.am | 8 ++++---- | ||
| 20 | src/resolve/resolve-tool.c | 3 +-- | ||
| 21 | src/shared/gcrypt-util.c | 4 +++- | ||
| 22 | src/shared/gcrypt-util.h | 14 ++++++++++++++ | ||
| 23 | 4 files changed, 22 insertions(+), 7 deletions(-) | ||
| 24 | |||
| 25 | diff --git a/Makefile.am b/Makefile.am | ||
| 26 | index 2b72a53..95eaa9a 100644 | ||
| 27 | --- a/Makefile.am | ||
| 28 | +++ b/Makefile.am | ||
| 29 | @@ -4262,7 +4262,9 @@ libsystemd_journal_internal_la_SOURCES = \ | ||
| 30 | src/journal/mmap-cache.h \ | ||
| 31 | src/journal/compress.c \ | ||
| 32 | src/journal/audit-type.h \ | ||
| 33 | - src/journal/audit-type.c | ||
| 34 | + src/journal/audit-type.c \ | ||
| 35 | + src/shared/gcrypt-util.h \ | ||
| 36 | + src/shared/gcrypt-util.c | ||
| 37 | |||
| 38 | nodist_libsystemd_journal_internal_la_SOURCES = \ | ||
| 39 | src/journal/audit_type-to-name.h | ||
| 40 | @@ -4294,9 +4296,7 @@ libsystemd_journal_internal_la_SOURCES += \ | ||
| 41 | src/journal/journal-authenticate.c \ | ||
| 42 | src/journal/journal-authenticate.h \ | ||
| 43 | src/journal/fsprg.c \ | ||
| 44 | - src/journal/fsprg.h \ | ||
| 45 | - src/shared/gcrypt-util.c \ | ||
| 46 | - src/shared/gcrypt-util.h | ||
| 47 | + src/journal/fsprg.h | ||
| 48 | |||
| 49 | libsystemd_journal_internal_la_LIBADD += \ | ||
| 50 | $(GCRYPT_LIBS) | ||
| 51 | diff --git a/src/resolve/resolve-tool.c b/src/resolve/resolve-tool.c | ||
| 52 | index 009cc73..14ee01c 100644 | ||
| 53 | --- a/src/resolve/resolve-tool.c | ||
| 54 | +++ b/src/resolve/resolve-tool.c | ||
| 55 | @@ -17,7 +17,6 @@ | ||
| 56 | along with systemd; If not, see <http://www.gnu.org/licenses/>. | ||
| 57 | ***/ | ||
| 58 | |||
| 59 | -#include <gcrypt.h> | ||
| 60 | #include <getopt.h> | ||
| 61 | #include <net/if.h> | ||
| 62 | |||
| 63 | @@ -863,7 +862,7 @@ static int resolve_openpgp(sd_bus *bus, const char *address) { | ||
| 64 | } | ||
| 65 | domain++; | ||
| 66 | |||
| 67 | - r = string_hashsum(address, domain - 1 - address, GCRY_MD_SHA224, &hashed); | ||
| 68 | + r = string_hashsum_sha224(address, domain - 1 - address, &hashed); | ||
| 69 | if (r < 0) | ||
| 70 | return log_error_errno(r, "Hashing failed: %m"); | ||
| 71 | |||
| 72 | diff --git a/src/shared/gcrypt-util.c b/src/shared/gcrypt-util.c | ||
| 73 | index 4ff9452..39b544b 100644 | ||
| 74 | --- a/src/shared/gcrypt-util.c | ||
| 75 | +++ b/src/shared/gcrypt-util.c | ||
| 76 | @@ -19,10 +19,11 @@ | ||
| 77 | along with systemd; If not, see <http://www.gnu.org/licenses/>. | ||
| 78 | ***/ | ||
| 79 | |||
| 80 | +#ifdef HAVE_GCRYPT | ||
| 81 | #include <gcrypt.h> | ||
| 82 | |||
| 83 | -#include "hexdecoct.h" | ||
| 84 | #include "gcrypt-util.h" | ||
| 85 | +#include "hexdecoct.h" | ||
| 86 | |||
| 87 | void initialize_libgcrypt(bool secmem) { | ||
| 88 | const char *p; | ||
| 89 | @@ -67,3 +68,4 @@ int string_hashsum(const char *s, size_t len, int md_algorithm, char **out) { | ||
| 90 | *out = enc; | ||
| 91 | return 0; | ||
| 92 | } | ||
| 93 | +#endif | ||
| 94 | diff --git a/src/shared/gcrypt-util.h b/src/shared/gcrypt-util.h | ||
| 95 | index c7652c2..cf33b3c 100644 | ||
| 96 | --- a/src/shared/gcrypt-util.h | ||
| 97 | +++ b/src/shared/gcrypt-util.h | ||
| 98 | @@ -19,7 +19,21 @@ | ||
| 99 | along with systemd; If not, see <http://www.gnu.org/licenses/>. | ||
| 100 | ***/ | ||
| 101 | |||
| 102 | +#include <errno.h> | ||
| 103 | #include <stdbool.h> | ||
| 104 | +#include <stddef.h> | ||
| 105 | + | ||
| 106 | +#ifdef HAVE_GCRYPT | ||
| 107 | +#include <gcrypt.h> | ||
| 108 | |||
| 109 | void initialize_libgcrypt(bool secmem); | ||
| 110 | int string_hashsum(const char *s, size_t len, int md_algorithm, char **out); | ||
| 111 | +#endif | ||
| 112 | + | ||
| 113 | +static inline int string_hashsum_sha224(const char *s, size_t len, char **out) { | ||
| 114 | +#ifdef HAVE_GCRYPT | ||
| 115 | + return string_hashsum(s, len, GCRY_MD_SHA224, out); | ||
| 116 | +#else | ||
| 117 | + return -EOPNOTSUPP; | ||
| 118 | +#endif | ||
| 119 | +} | ||
| 120 | -- | ||
| 121 | 2.4.0 | ||
| 122 | |||
diff --git a/meta/recipes-core/systemd/systemd_229.bb b/meta/recipes-core/systemd/systemd_229.bb index b16cacb10f..309a4c3a08 100644 --- a/meta/recipes-core/systemd/systemd_229.bb +++ b/meta/recipes-core/systemd/systemd_229.bb | |||
| @@ -53,6 +53,7 @@ SRC_URI = "git://github.com/systemd/systemd.git;protocol=git \ | |||
| 53 | file://0020-check-for-uchar.h-in-configure.patch \ | 53 | file://0020-check-for-uchar.h-in-configure.patch \ |
| 54 | file://0021-include-missing.h-for-getting-secure_getenv-definiti.patch \ | 54 | file://0021-include-missing.h-for-getting-secure_getenv-definiti.patch \ |
| 55 | file://0022-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \ | 55 | file://0022-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \ |
| 56 | file://0023-build-sys-fix-build-with-libgrcypt-disabled.patch \ | ||
| 56 | " | 57 | " |
| 57 | SRC_URI_append_libc-uclibc = "\ | 58 | SRC_URI_append_libc-uclibc = "\ |
| 58 | file://0002-units-Prefer-getty-to-agetty-in-console-setup-system.patch \ | 59 | file://0002-units-Prefer-getty-to-agetty-in-console-setup-system.patch \ |
| @@ -101,7 +102,6 @@ PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt" | |||
| 101 | PACKAGECONFIG[cryptsetup] = "--enable-libcryptsetup,--disable-libcryptsetup,cryptsetup" | 102 | PACKAGECONFIG[cryptsetup] = "--enable-libcryptsetup,--disable-libcryptsetup,cryptsetup" |
| 102 | PACKAGECONFIG[microhttpd] = "--enable-microhttpd,--disable-microhttpd,libmicrohttpd" | 103 | PACKAGECONFIG[microhttpd] = "--enable-microhttpd,--disable-microhttpd,libmicrohttpd" |
| 103 | PACKAGECONFIG[elfutils] = "--enable-elfutils,--disable-elfutils,elfutils" | 104 | PACKAGECONFIG[elfutils] = "--enable-elfutils,--disable-elfutils,elfutils" |
| 104 | # resolved needs gcrypt | ||
| 105 | PACKAGECONFIG[resolved] = "--enable-resolved,--disable-resolved" | 105 | PACKAGECONFIG[resolved] = "--enable-resolved,--disable-resolved" |
| 106 | PACKAGECONFIG[networkd] = "--enable-networkd,--disable-networkd" | 106 | PACKAGECONFIG[networkd] = "--enable-networkd,--disable-networkd" |
| 107 | PACKAGECONFIG[machined] = "--enable-machined,--disable-machined" | 107 | PACKAGECONFIG[machined] = "--enable-machined,--disable-machined" |
