sdbus-c++-libsystemd: Upgrade to 249.5

This is enforced by meson 60.x which otherwise would need some partial
backports to get it going.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj
2021-11-11 22:32:50 -08:00
parent 6d08a76370
commit 973a4ebea6
34 changed files with 1768 additions and 1256 deletions
@@ -1,29 +0,0 @@
From 4411a9a3ebff98b6fcf5967c75faa458d219df96 Mon Sep 17 00:00:00 2001
From: Chris Packham <chris.packham@alliedtelesis.co.nz>
Date: Fri, 10 Sep 2021 09:51:36 +1200
Subject: [PATCH] basic/linux: Sync if_arp.h with Linux 5.14
ARPHRD_MCTP was added in 5.14. Sync if_arp.h to pick up the definition
Fixes #20694
Upstream-Status: Backport [https://github.com/cpackham-atlnz/systemd/commit/67cd626399b0d02882ee00716c8bd31ba764c862]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/basic/linux/if_arp.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/basic/linux/if_arp.h b/src/basic/linux/if_arp.h
index c3cc5a9e5e..4783af9fe5 100644
--- a/src/basic/linux/if_arp.h
+++ b/src/basic/linux/if_arp.h
@@ -54,6 +54,7 @@
#define ARPHRD_X25 271 /* CCITT X.25 */
#define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */
#define ARPHRD_CAN 280 /* Controller Area Network */
+#define ARPHRD_MCTP 290
#define ARPHRD_PPP 512
#define ARPHRD_CISCO 513 /* Cisco HDLC */
#define ARPHRD_HDLC ARPHRD_CISCO
--
2.33.1
@@ -1,25 +0,0 @@
From 1ebf1a1df17afd8b89f84b1928a89069035bf20b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 12 Dec 2020 16:15:57 -0800
Subject: [PATCH] meson: Fix reallocarray check
reallocarray() is defined in stdlib.h, so that would be right header to
check for its presense.
Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/17951]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/meson.build
+++ b/meson.build
@@ -501,7 +501,7 @@ foreach ident : [
#include <sys/stat.h>
#include <unistd.h>'''],
['explicit_bzero' , '''#include <string.h>'''],
- ['reallocarray', '''#include <malloc.h>'''],
+ ['reallocarray', '''#include <stdlib.h>'''],
['set_mempolicy', '''#include <stdlib.h>
#include <unistd.h>'''],
['get_mempolicy', '''#include <stdlib.h>
@@ -1,25 +0,0 @@
Include sys/wait.h
Fixes:
src/login/logind-brightness.c:158:85: error: 'WEXITED' undeclared (first use in this function); did you mean 'WIFEXITED'?
158 | r = sd_event_add_child(w->manager->event, &w->child_event_source, w->child, WEXITED, on_brightness_writer_exit, w);
| ^~~~~~~
Upstream-Status: Pending
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
src/login/logind-brightness.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/login/logind-brightness.c b/src/login/logind-brightness.c
index 8dfa97d7ae..bddd4a2727 100644
--- a/src/login/logind-brightness.c
+++ b/src/login/logind-brightness.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <sys/wait.h>
#include "bus-util.h"
#include "device-util.h"
#include "hash-funcs.h"
@@ -1,27 +0,0 @@
Include signal.h
Fixes several signal set related errors:
src/basic/copy.c:92:19: error: implicit declaration of function 'sigemptyset' [-Werror=implicit-function-declaration]
src/basic/copy.c:93:19: error: implicit declaration of function 'sigaddset' [-Werror=implicit-function-declaration]
src/basic/copy.c:93:34: error: 'SIGINT' undeclared (first use in this function)
src/basic/copy.c:95:13: error: implicit declaration of function 'sigtimedwait' [-Werror=implicit-function-declaration]
Upstream-Status: Pending
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
src/basic/copy.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/basic/copy.c b/src/basic/copy.c
index ca311e021e..3cf7fc1697 100644
--- a/src/basic/copy.c
+++ b/src/basic/copy.c
@@ -12,6 +12,7 @@
#include <sys/xattr.h>
#include <time.h>
#include <unistd.h>
+#include <signal.h>
#include "alloc-util.h"
#include "btrfs-util.h"
@@ -1,442 +0,0 @@
From 399fd3eda3045636a70da438a0fd1406cc332ed1 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 14:18:21 +0800
Subject: [PATCH 05/24] src/basic/missing.h: check for missing strndupa
include missing.h for definition of strndupa
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[Rebased for v242]
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
meson.build | 1 +
src/backlight/backlight.c | 1 +
src/basic/env-util.c | 1 +
src/basic/missing_stdlib.h | 12 ++++++++++++
src/basic/mkdir.c | 1 +
src/basic/parse-util.c | 1 +
src/basic/proc-cmdline.c | 1 +
src/basic/procfs-util.c | 1 +
src/basic/time-util.c | 1 +
src/core/dbus-cgroup.c | 1 +
src/core/dbus-util.c | 1 +
src/core/kmod-setup.c | 1 +
src/core/service.c | 1 +
src/journal/journalctl.c | 1 +
src/libsystemd/sd-bus/bus-message.c | 1 +
src/libsystemd/sd-bus/bus-objects.c | 1 +
src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
src/locale/keymap-util.c | 1 +
src/login/pam_systemd.c | 1 +
src/network/generator/network-generator.c | 1 +
src/nspawn/nspawn-settings.c | 1 +
src/shared/dns-domain.c | 1 +
src/shared/journal-importer.c | 1 +
src/shared/logs-show.c | 1 +
src/shared/pager.c | 1 +
src/shared/path-lookup.c | 1 +
src/shared/uid-range.c | 1 +
src/socket-proxy/socket-proxyd.c | 1 +
src/test/test-hexdecoct.c | 1 +
src/udev/udev-builtin-path_id.c | 1 +
src/udev/udev-event.c | 1 +
src/udev/udev-rules.c | 1 +
32 files changed, 43 insertions(+)
diff --git a/meson.build b/meson.build
index 7f8c679411..81c061b768 100644
--- a/meson.build
+++ b/meson.build
@@ -506,6 +506,7 @@ foreach ident : [
#include <unistd.h>'''],
['get_mempolicy', '''#include <stdlib.h>
#include <unistd.h>'''],
+ ['strndupa' , '''#include <string.h>'''],
]
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
index dfd6805398..c2b2ace6ec 100644
--- a/src/backlight/backlight.c
+++ b/src/backlight/backlight.c
@@ -17,6 +17,7 @@
#include "string-util.h"
#include "strv.h"
#include "util.h"
+#include "missing.h"
static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) {
const char *subsystem, *sysname, *value;
diff --git a/src/basic/env-util.c b/src/basic/env-util.c
index a6503cf2b6..ceef9a62c8 100644
--- a/src/basic/env-util.c
+++ b/src/basic/env-util.c
@@ -16,6 +16,7 @@
#include "string-util.h"
#include "strv.h"
#include "utf8.h"
+#include "missing.h"
#define VALID_CHARS_ENV_NAME \
DIGITS LETTERS \
diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
index 188a8d4406..1e16ec287a 100644
--- a/src/basic/missing_stdlib.h
+++ b/src/basic/missing_stdlib.h
@@ -11,3 +11,15 @@
# error "neither secure_getenv nor __secure_getenv are available"
# endif
#endif
+
+/* string.h */
+#if ! HAVE_STRNDUPA
+#define strndupa(s, n) \
+ ({ \
+ const char *__old = (s); \
+ size_t __len = strnlen(__old, (n)); \
+ char *__new = (char *)alloca(__len + 1); \
+ __new[__len] = '\0'; \
+ (char *)memcpy(__new, __old, __len); \
+ })
+#endif
diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
index 6b82eab640..51c6b78615 100644
--- a/src/basic/mkdir.c
+++ b/src/basic/mkdir.c
@@ -14,6 +14,7 @@
#include "stat-util.h"
#include "stdio-util.h"
#include "user-util.h"
+#include "missing.h"
int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir) {
struct stat st;
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
index 115a1494a2..07a34bfd53 100644
--- a/src/basic/parse-util.c
+++ b/src/basic/parse-util.c
@@ -20,6 +20,7 @@
#include "process-util.h"
#include "stat-util.h"
#include "string-util.h"
+#include "missing.h"
int parse_boolean(const char *v) {
if (!v)
diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
index 09169cf963..f411ba897f 100644
--- a/src/basic/proc-cmdline.c
+++ b/src/basic/proc-cmdline.c
@@ -15,6 +15,7 @@
#include "string-util.h"
#include "util.h"
#include "virt.h"
+#include "missing.h"
int proc_cmdline(char **ret) {
const char *e;
diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
index 7aaf95bfce..42ce53d5aa 100644
--- a/src/basic/procfs-util.c
+++ b/src/basic/procfs-util.c
@@ -11,6 +11,7 @@
#include "procfs-util.h"
#include "stdio-util.h"
#include "string-util.h"
+#include "missing.h"
int procfs_tasks_get_limit(uint64_t *ret) {
_cleanup_free_ char *value = NULL;
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
index 3018e81acb..4e2b3b66c1 100644
--- a/src/basic/time-util.c
+++ b/src/basic/time-util.c
@@ -28,6 +28,7 @@
#include "string-util.h"
#include "strv.h"
#include "time-util.h"
+#include "missing.h"
static clockid_t map_clock_id(clockid_t c) {
diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
index 2f2313c599..c9937f9d62 100644
--- a/src/core/dbus-cgroup.c
+++ b/src/core/dbus-cgroup.c
@@ -15,6 +15,7 @@
#include "fileio.h"
#include "limits-util.h"
#include "path-util.h"
+#include "missing.h"
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_cgroup_device_policy, cgroup_device_policy, CGroupDevicePolicy);
diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
index 7862beaacb..19f6968cfe 100644
--- a/src/core/dbus-util.c
+++ b/src/core/dbus-util.c
@@ -7,6 +7,7 @@
#include "unit-printf.h"
#include "user-util.h"
#include "unit.h"
+#include "missing.h"
int bus_property_get_triggered_unit(
sd_bus *bus,
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
index a91cfebc67..a45961013f 100644
--- a/src/core/kmod-setup.c
+++ b/src/core/kmod-setup.c
@@ -11,6 +11,7 @@
#include "kmod-setup.h"
#include "macro.h"
#include "string-util.h"
+#include "missing.h"
#if HAVE_KMOD
#include <libkmod.h>
diff --git a/src/core/service.c b/src/core/service.c
index 73b3c9c316..ef74f00a08 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -43,6 +43,7 @@
#include "unit.h"
#include "utf8.h"
#include "util.h"
+#include "missing.h"
static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
[SERVICE_DEAD] = UNIT_INACTIVE,
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
index 6d6bb1cf63..6666349a35 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
@@ -70,6 +70,7 @@
#include "unit-name.h"
#include "user-util.h"
#include "varlink.h"
+#include "missing.h"
#define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
index eb029e4453..f31fe9d5a8 100644
--- a/src/libsystemd/sd-bus/bus-message.c
+++ b/src/libsystemd/sd-bus/bus-message.c
@@ -21,6 +21,7 @@
#include "strv.h"
#include "time-util.h"
#include "utf8.h"
+#include "missing.h"
static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
index ae643cacc7..1b752271a5 100644
--- a/src/libsystemd/sd-bus/bus-objects.c
+++ b/src/libsystemd/sd-bus/bus-objects.c
@@ -13,6 +13,7 @@
#include "set.h"
#include "string-util.h"
#include "strv.h"
+#include "missing.h"
static int node_vtable_get_userdata(
sd_bus *bus,
diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
index 8de0a859ee..4fd0a2e692 100644
--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
@@ -14,6 +14,7 @@
#include "missing_resource.h"
#include "time-util.h"
#include "util.h"
+#include "missing.h"
#define MAX_SIZE (2*1024*1024)
diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
index f8c36c94f5..41f5606aea 100644
--- a/src/locale/keymap-util.c
+++ b/src/locale/keymap-util.c
@@ -22,6 +22,7 @@
#include "string-util.h"
#include "strv.h"
#include "tmpfile-util.h"
+#include "missing.h"
static bool startswith_comma(const char *s, const char *prefix) {
s = startswith(s, prefix);
diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
index 3f762cbbc3..005cfea658 100644
--- a/src/login/pam_systemd.c
+++ b/src/login/pam_systemd.c
@@ -28,6 +28,7 @@
#include "hostname-util.h"
#include "login-util.h"
#include "macro.h"
+#include "missing.h"
#include "parse-util.h"
#include "path-util.h"
#include "process-util.h"
diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
index 0b5af33566..9c808cd014 100644
--- a/src/network/generator/network-generator.c
+++ b/src/network/generator/network-generator.c
@@ -13,6 +13,7 @@
#include "string-table.h"
#include "string-util.h"
#include "strv.h"
+#include "missing.h"
/*
# .network
diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
index 3a99736813..279fea4d88 100644
--- a/src/nspawn/nspawn-settings.c
+++ b/src/nspawn/nspawn-settings.c
@@ -16,6 +16,7 @@
#include "strv.h"
#include "user-util.h"
#include "util.h"
+#include "missing.h"
Settings *settings_new(void) {
Settings *s;
diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
index f62ad0a0f5..f1a27e158d 100644
--- a/src/shared/dns-domain.c
+++ b/src/shared/dns-domain.c
@@ -24,6 +24,7 @@
#include "string-util.h"
#include "strv.h"
#include "utf8.h"
+#include "missing.h"
int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
const char *n;
diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
index 7c4fc7021d..a6ff2214df 100644
--- a/src/shared/journal-importer.c
+++ b/src/shared/journal-importer.c
@@ -14,6 +14,7 @@
#include "parse-util.h"
#include "string-util.h"
#include "unaligned.h"
+#include "missing.h"
enum {
IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index b615c70dff..75b26e9c21 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -39,6 +39,7 @@
#include "time-util.h"
#include "utf8.h"
#include "util.h"
+#include "missing.h"
/* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
#define PRINT_LINE_THRESHOLD 3
diff --git a/src/shared/pager.c b/src/shared/pager.c
index 7c20b100b4..e4209d3a95 100644
--- a/src/shared/pager.c
+++ b/src/shared/pager.c
@@ -25,6 +25,7 @@
#include "strv.h"
#include "terminal-util.h"
#include "util.h"
+#include "missing.h"
static pid_t pager_pid = 0;
diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
index 6bf0ff0316..f6c8009cd2 100644
--- a/src/shared/path-lookup.c
+++ b/src/shared/path-lookup.c
@@ -20,6 +20,7 @@
#include "tmpfile-util.h"
#include "user-util.h"
#include "util.h"
+#include "missing.h"
int xdg_user_runtime_dir(char **ret, const char *suffix) {
const char *e;
diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
index 7cb7d8a477..8b12b91084 100644
--- a/src/shared/uid-range.c
+++ b/src/shared/uid-range.c
@@ -9,6 +9,7 @@
#include "sort-util.h"
#include "uid-range.h"
#include "user-util.h"
+#include "missing.h"
static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
assert(range);
diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
index abbbc9f2d6..6179b5851e 100644
--- a/src/socket-proxy/socket-proxyd.c
+++ b/src/socket-proxy/socket-proxyd.c
@@ -28,6 +28,7 @@
#include "socket-util.h"
#include "string-util.h"
#include "util.h"
+#include "missing.h"
#define BUFFER_SIZE (256 * 1024)
diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
index 52217429b1..a05e7782f6 100644
--- a/src/test/test-hexdecoct.c
+++ b/src/test/test-hexdecoct.c
@@ -6,6 +6,7 @@
#include "hexdecoct.h"
#include "macro.h"
#include "string-util.h"
+#include "missing.h"
static void test_hexchar(void) {
assert_se(hexchar(0xa) == 'a');
diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
index e8f1ce1354..8693cb02a4 100644
--- a/src/udev/udev-builtin-path_id.c
+++ b/src/udev/udev-builtin-path_id.c
@@ -23,6 +23,7 @@
#include "strv.h"
#include "sysexits.h"
#include "udev-builtin.h"
+#include "missing.h"
_printf_(2,3)
static void path_prepend(char **path, const char *fmt, ...) {
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
index 8cfa2cdf23..b0670c77ec 100644
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
@@ -35,6 +35,7 @@
#include "udev-util.h"
#include "udev-watch.h"
#include "user-util.h"
+#include "missing.h"
typedef struct Spawn {
sd_device *device;
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
index 1642f10535..fe2aa75478 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -28,6 +28,7 @@
#include "udev-event.h"
#include "udev-rules.h"
#include "user-util.h"
+#include "missing.h"
#define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
@@ -1,227 +0,0 @@
Include netinet/if_ether.h
Fixes
/path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
struct ethhdr {
^~~~~~
and related arphdr, arpreq, and arpreq_old errors
/path/to/systemd/recipe-sysroot/usr/include/net/if_arp.h:22:8: error: redefinition of 'struct arphdr'
struct arphdr {
^~~~~~
The latter requires removing some includes of net/if_arp.h to avoid
conflicting with netinet/if_ether.h.
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
src/libsystemd-network/sd-dhcp6-client.c | 1 -
src/libsystemd/sd-netlink/netlink-types.c | 1 +
src/machine/machine-dbus.c | 1 +
src/network/netdev/macsec.c | 1 +
src/network/netdev/netdev.c | 1 +
src/network/networkd-brvlan.c | 1 +
src/network/networkd-dhcp-common.c | 1 +
src/network/networkd-dhcp4.c | 2 +-
src/network/networkd-dhcp6.c | 2 +-
src/network/networkd-link.c | 2 +-
src/network/networkd-network.c | 1 +
src/shared/ethtool-util.c | 1 +
src/shared/ethtool-util.h | 1 +
src/udev/net/link-config.c | 1 +
src/udev/udev-builtin-net_setup_link.c | 1 +
15 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
index d7a5349c70..68b41dfb6c 100644
--- a/src/libsystemd-network/sd-dhcp6-client.c
+++ b/src/libsystemd-network/sd-dhcp6-client.c
@@ -6,7 +6,6 @@
#include <errno.h>
#include <string.h>
#include <sys/ioctl.h>
-#include <linux/if_arp.h>
#include <linux/if_infiniband.h>
#include "sd-dhcp6-client.h"
diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
index de9b8b21ab..f64f6500f7 100644
--- a/src/libsystemd/sd-netlink/netlink-types.c
+++ b/src/libsystemd/sd-netlink/netlink-types.c
@@ -3,6 +3,7 @@
#include <netinet/in.h>
#include <stdint.h>
#include <sys/socket.h>
+#include <netinet/if_ether.h>
#include <linux/can/vxcan.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
index 0d58b5eb8b..01093c1f62 100644
--- a/src/machine/machine-dbus.c
+++ b/src/machine/machine-dbus.c
@@ -4,6 +4,7 @@
#include <string.h>
#include <sys/mount.h>
#include <sys/wait.h>
+#include <netinet/if_ether.h>
/* When we include libgen.h because we need dirname() we immediately
* undefine basename() since libgen.h defines it as a macro to the POSIX
diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
index cf281e75a6..269dc618ff 100644
--- a/src/network/netdev/macsec.c
+++ b/src/network/netdev/macsec.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if_ether.h>
#include <linux/if_macsec.h>
diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
index 7735b455b7..ed4eda4a44 100644
--- a/src/network/netdev/netdev.c
+++ b/src/network/netdev/netdev.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <netinet/in.h>
diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c
index c3c5d535ac..ebea408c89 100644
--- a/src/network/networkd-brvlan.c
+++ b/src/network/networkd-brvlan.c
@@ -4,6 +4,7 @@
***/
#include <netinet/in.h>
+#include <netinet/if_ether.h>
#include <linux/if_bridge.h>
#include <stdbool.h>
diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
index 626b975839..42fe92f320 100644
--- a/src/network/networkd-dhcp-common.c
+++ b/src/network/networkd-dhcp-common.c
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#include "networkd-dhcp-common.h"
+#include <netinet/if_ether.h>
#include "networkd-network.h"
#include "parse-util.h"
#include "string-table.h"
diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
index 662770b50e..c6ab62a94d 100644
--- a/src/network/networkd-dhcp4.c
+++ b/src/network/networkd-dhcp4.c
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include "alloc-util.h"
#include "hostname-util.h"
diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
index 8ad736a82b..f41b4d834e 100644
--- a/src/network/networkd-dhcp6.c
+++ b/src/network/networkd-dhcp6.c
@@ -3,9 +3,9 @@
Copyright © 2014 Intel Corporation. All rights reserved.
***/
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include "sd-radv.h"
#include "sd-dhcp6-client.h"
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index f5bb78890a..f13a36b791 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include <unistd.h>
#include "alloc-util.h"
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
index 2b8d0eb2fb..2f79ef25cd 100644
--- a/src/network/networkd-network.c
+++ b/src/network/networkd-network.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <netinet/in.h>
#include <linux/netdevice.h>
diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c
index b0961df72e..53fcbbd84b 100644
--- a/src/shared/ethtool-util.c
+++ b/src/shared/ethtool-util.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <linux/ethtool.h>
diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h
index 8b32b243f3..262b819976 100644
--- a/src/shared/ethtool-util.h
+++ b/src/shared/ethtool-util.h
@@ -2,6 +2,7 @@
#pragma once
#include <macro.h>
+#include <netinet/if_ether.h>
#include <linux/ethtool.h>
#include "conf-parser.h"
diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
index d44af64d5e..fd052f1591 100644
--- a/src/udev/net/link-config.c
+++ b/src/udev/net/link-config.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <linux/netdevice.h>
#include <netinet/ether.h>
diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c
index ee3ca9fa38..9aa4e82874 100644
--- a/src/udev/udev-builtin-net_setup_link.c
+++ b/src/udev/udev-builtin-net_setup_link.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include "device-util.h"
#include "alloc-util.h"
#include "link-config.h"
@@ -1,53 +0,0 @@
From 7c5fd25119a495009ea62f79e5daec34cc464628 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Mon, 12 Apr 2021 14:03:32 +0200
Subject: [PATCH] meson: do not fail if rsync is not installed with meson
0.57.2
https://github.com/mesonbuild/meson/issues/8641
Our CI started to fail. Even if the change is reverted in meson,
we need a quick workaround here.
Upstream-Status: Backport
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
man/meson.build | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/man/meson.build b/man/meson.build
index 3cae8446cda..f9c4b83dc81 100644
--- a/man/meson.build
+++ b/man/meson.build
@@ -184,17 +184,20 @@ html = custom_target(
depends : html_pages,
command : ['echo'])
-run_target(
- 'doc-sync',
- depends : man_pages + html_pages,
- command : ['rsync', '-rlv',
- '--delete-excluded',
- '--include=man',
- '--include=*.html',
- '--exclude=*',
- '--omit-dir-times',
- meson.current_build_dir(),
- get_option('www-target')])
+rsync = find_program('rsync', required : false)
+if rsync.found()
+ run_target(
+ 'doc-sync',
+ depends : man_pages + html_pages,
+ command : [rsync, '-rlv',
+ '--delete-excluded',
+ '--include=man',
+ '--include=*.html',
+ '--exclude=*',
+ '--omit-dir-times',
+ meson.current_build_dir(),
+ get_option('www-target')])
+endif
############################################################
@@ -1,11 +0,0 @@
Index: git/src/libsystemd/libsystemd.pc.in
===================================================================
--- git.orig/src/libsystemd/libsystemd.pc.in
+++ git/src/libsystemd/libsystemd.pc.in
@@ -16,5 +16,5 @@ Name: systemd
Description: systemd Library
URL: @PROJECT_URL@
Version: @PROJECT_VERSION@
-Libs: -L${libdir} -lsystemd
+Libs: -L${libdir} -lsystemd -lrt -lmount -lcap
Cflags: -I${includedir}
@@ -1,7 +1,7 @@
From 1eb84534dea05d41afed1d898cba212ad7d310dd Mon Sep 17 00:00:00 2001 From 30bd749c6777701496124272b59e1283252c3267 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 13:41:41 +0800 Date: Mon, 25 Feb 2019 13:41:41 +0800
Subject: [PATCH 02/24] don't use glibc-specific qsort_r Subject: [PATCH] don't use glibc-specific qsort_r
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
@@ -10,21 +10,23 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[Rebased for v242] [Rebased for v242]
Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
[Rebased for v247]
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
--- ---
src/basic/sort-util.h | 14 -------------- src/basic/sort-util.h | 14 --------------
src/libsystemd/sd-hwdb/hwdb-util.c | 19 ++++++++++++++----- src/shared/format-table.c | 36 ++++++++++++++++++++++++------------
src/shared/format-table.c | 36 ++++++++++++++++++++++++------------ src/shared/hwdb-util.c | 19 ++++++++++++++-----
3 files changed, 38 insertions(+), 31 deletions(-) 3 files changed, 38 insertions(+), 31 deletions(-)
diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
index e029f8646e..27d68b341c 100644 index 49586a4a24..d92a5ab0ed 100644
--- a/src/basic/sort-util.h --- a/src/basic/sort-util.h
+++ b/src/basic/sort-util.h +++ b/src/basic/sort-util.h
@@ -54,17 +54,3 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn @@ -55,18 +55,4 @@ static inline void _qsort_safe(void *base, size_t nmemb, size_t size, __compar_f
int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \ _qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
}) })
-
-static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) { -static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) {
- if (nmemb <= 1) - if (nmemb <= 1)
- return; - return;
@@ -38,55 +40,13 @@ index e029f8646e..27d68b341c 100644
- int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \ - int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
- qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \ - qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \
- }) - })
diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c -
index c83575c7c8..72f8f3a050 100644 int cmp_int(const int *a, const int *b);
--- a/src/libsystemd/sd-hwdb/hwdb-util.c
+++ b/src/libsystemd/sd-hwdb/hwdb-util.c
@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) {
DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
-static int trie_values_cmp(const struct trie_value_entry *a, const struct trie_value_entry *b, struct trie *trie) {
- return strcmp(trie->strings->buf + a->key_off,
- trie->strings->buf + b->key_off);
+static struct trie *trie_node_add_value_trie;
+static int trie_values_cmp(const void *v1, const void *v2) {
+ const struct trie_value_entry *a = v1;
+ const struct trie_value_entry *b = v2;
+
+ return strcmp(trie_node_add_value_trie->strings->buf + a->key_off,
+ trie_node_add_value_trie->strings->buf + b->key_off);
}
static int trie_node_add_value(struct trie *trie, struct trie_node *node,
@@ -158,7 +162,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
.value_off = v,
};
- val = typesafe_bsearch_r(&search, node->values, node->values_count, trie_values_cmp, trie);
+ trie_node_add_value_trie = trie;
+ val = bsearch(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
+ trie_node_add_value_trie = NULL;
+
if (val) {
/* At this point we have 2 identical properties on the same match-string.
* Since we process files in order, we just replace the previous value. */
@@ -184,7 +191,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
.line_number = line_number,
};
node->values_count++;
- typesafe_qsort_r(node->values, node->values_count, trie_values_cmp, trie);
+ trie_node_add_value_trie = trie;
+ qsort(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
+ trie_node_add_value_trie = NULL;
return 0;
}
diff --git a/src/shared/format-table.c b/src/shared/format-table.c diff --git a/src/shared/format-table.c b/src/shared/format-table.c
index a5c0a99b08..d595cbe372 100644 index 4c4e4593d8..17b329f315 100644
--- a/src/shared/format-table.c --- a/src/shared/format-table.c
+++ b/src/shared/format-table.c +++ b/src/shared/format-table.c
@@ -850,31 +850,33 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t @@ -1282,30 +1282,32 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
return CMP(index_a, index_b); return CMP(index_a, index_b);
} }
@@ -94,7 +54,6 @@ index a5c0a99b08..d595cbe372 100644
+static Table *user_table; +static Table *user_table;
+static int table_data_compare(const void *x, const void *y) { +static int table_data_compare(const void *x, const void *y) {
+ const size_t *a = x, *b=y; + const size_t *a = x, *b=y;
size_t i;
int r; int r;
- assert(t); - assert(t);
@@ -114,8 +73,8 @@ index a5c0a99b08..d595cbe372 100644
return 1; return 1;
/* Order other lines by the sorting map */ /* Order other lines by the sorting map */
- for (i = 0; i < t->n_sort_map; i++) { - for (size_t i = 0; i < t->n_sort_map; i++) {
+ for (i = 0; i < user_table->n_sort_map; i++) { + for (size_t i = 0; i < user_table->n_sort_map; i++) {
TableData *d, *dd; TableData *d, *dd;
- d = t->data[*a + t->sort_map[i]]; - d = t->data[*a + t->sort_map[i]];
@@ -130,8 +89,8 @@ index a5c0a99b08..d595cbe372 100644
} }
/* Order identical lines by the order there were originally added in */ /* Order identical lines by the order there were originally added in */
@@ -1107,7 +1109,12 @@ int table_print(Table *t, FILE *f) { @@ -1944,7 +1946,12 @@ int table_print(Table *t, FILE *f) {
for (i = 0; i < n_rows; i++) for (size_t i = 0; i < n_rows; i++)
sorted[i] = i * t->n_columns; sorted[i] = i * t->n_columns;
- typesafe_qsort_r(sorted, n_rows, table_data_compare, t); - typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
@@ -144,8 +103,8 @@ index a5c0a99b08..d595cbe372 100644
} }
if (t->display_map) if (t->display_map)
@@ -1534,7 +1541,12 @@ int table_to_json(Table *t, JsonVariant **ret) { @@ -2572,7 +2579,12 @@ int table_to_json(Table *t, JsonVariant **ret) {
for (i = 0; i < n_rows; i++) for (size_t i = 0; i < n_rows; i++)
sorted[i] = i * t->n_columns; sorted[i] = i * t->n_columns;
- typesafe_qsort_r(sorted, n_rows, table_data_compare, t); - typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
@@ -158,6 +117,47 @@ index a5c0a99b08..d595cbe372 100644
} }
if (t->display_map) if (t->display_map)
-- diff --git a/src/shared/hwdb-util.c b/src/shared/hwdb-util.c
2.11.0 index d7626aed95..2003fac7c3 100644
--- a/src/shared/hwdb-util.c
+++ b/src/shared/hwdb-util.c
@@ -127,9 +127,13 @@ static struct trie* trie_free(struct trie *trie) {
DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
-static int trie_values_cmp(const struct trie_value_entry *a, const struct trie_value_entry *b, struct trie *trie) {
- return strcmp(trie->strings->buf + a->key_off,
- trie->strings->buf + b->key_off);
+static struct trie *trie_node_add_value_trie;
+static int trie_values_cmp(const void *v1, const void *v2) {
+ const struct trie_value_entry *a = v1;
+ const struct trie_value_entry *b = v2;
+
+ return strcmp(trie_node_add_value_trie->strings->buf + a->key_off,
+ trie_node_add_value_trie->strings->buf + b->key_off);
}
static int trie_node_add_value(struct trie *trie, struct trie_node *node,
@@ -157,7 +161,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
.value_off = v,
};
- val = typesafe_bsearch_r(&search, node->values, node->values_count, trie_values_cmp, trie);
+ trie_node_add_value_trie = trie;
+ val = bsearch(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
+ trie_node_add_value_trie = NULL;
+
if (val) {
/* At this point we have 2 identical properties on the same match-string.
* Since we process files in order, we just replace the previous value. */
@@ -183,7 +190,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
.line_number = line_number,
};
node->values_count++;
- typesafe_qsort_r(node->values, node->values_count, trie_values_cmp, trie);
+ trie_node_add_value_trie = trie;
+ qsort(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
+ trie_node_add_value_trie = NULL;
return 0;
}
@@ -1,24 +1,28 @@
From a9421d55102fc84f77f7c21a2479fcd00652b896 Mon Sep 17 00:00:00 2001 From 4dba0a3b1372ce34d8b6e150a108123a1b2b0b96 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 13:55:12 +0800 Date: Mon, 25 Feb 2019 13:55:12 +0800
Subject: [PATCH 03/24] missing_type.h: add __compare_fn_t and comparison_fn_t Subject: [PATCH] missing_type.h: add __compare_fn_t and comparison_fn_t
Make it work with musl where comparison_fn_t and __compare_fn_t Make it work with musl where comparison_fn_t and __compare_fn_t
is not provided. is not provided.
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
[Rebased for v244]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[Rebased for v242] [Rebased for v242]
Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
--- ---
src/basic/missing_type.h | 9 +++++++++ src/basic/missing_type.h | 9 +++++++++
src/basic/sort-util.h | 1 + src/basic/sort-util.h | 1 +
src/journal/catalog.c | 1 + src/core/kmod-setup.c | 1 +
3 files changed, 11 insertions(+) src/libsystemd/sd-journal/catalog.c | 1 +
4 files changed, 12 insertions(+)
diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
index bf8a6caa1b..2134fe5095 100644 index f6233090a9..aeaf6ad5ec 100644
--- a/src/basic/missing_type.h --- a/src/basic/missing_type.h
+++ b/src/basic/missing_type.h +++ b/src/basic/missing_type.h
@@ -10,3 +10,12 @@ @@ -10,3 +10,12 @@
@@ -35,29 +39,38 @@ index bf8a6caa1b..2134fe5095 100644
+typedef int (*__compar_fn_t)(const void *, const void *); +typedef int (*__compar_fn_t)(const void *, const void *);
+#endif +#endif
diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
index e029f86..7247d40 100644 index d92a5ab0ed..a63867c716 100644
--- a/src/basic/sort-util.h --- a/src/basic/sort-util.h
+++ b/src/basic/sort-util.h +++ b/src/basic/sort-util.h
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
#include <stdlib.h> #include <stdlib.h>
#include "macro.h" #include "macro.h"
+#include "missing.h" +#include "missing_type.h"
void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
__compar_d_fn_t compar, void *arg); __compar_d_fn_t compar, void *arg);
diff --git a/src/journal/catalog.c b/src/journal/catalog.c diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
index 7beffc1e1a..4818a2e5cc 100644 index 8a7f82812a..a56f12f47f 100644
--- a/src/journal/catalog.c --- a/src/core/kmod-setup.c
+++ b/src/journal/catalog.c +++ b/src/core/kmod-setup.c
@@ -29,6 +29,7 @@ @@ -10,6 +10,7 @@
#include "kmod-setup.h"
#include "macro.h"
#include "string-util.h"
+#include "missing_type.h"
#if HAVE_KMOD
#include "module-util.h"
diff --git a/src/libsystemd/sd-journal/catalog.c b/src/libsystemd/sd-journal/catalog.c
index ce8d47ccc3..00845f9776 100644
--- a/src/libsystemd/sd-journal/catalog.c
+++ b/src/libsystemd/sd-journal/catalog.c
@@ -28,6 +28,7 @@
#include "string-util.h" #include "string-util.h"
#include "strv.h" #include "strv.h"
#include "tmpfile-util.h" #include "tmpfile-util.h"
+#include "missing.h" +#include "missing_type.h"
const char * const catalog_file_dirs[] = { const char * const catalog_file_dirs[] = {
"/usr/local/lib/systemd/catalog/", "/usr/local/lib/systemd/catalog/",
--
2.11.0
@@ -1,7 +1,7 @@
From 7bcf3b166694090497a0acd2c5299e4e04fcc9b6 Mon Sep 17 00:00:00 2001 From 842d231165f0d564c51d93650820e4fa7f097c3e Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Mon, 25 Feb 2019 14:04:21 +0800 Date: Sat, 22 May 2021 20:26:24 +0200
Subject: [PATCH 04/24] add fallback parse_printf_format implementation Subject: [PATCH] add fallback parse_printf_format implementation
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
@@ -10,22 +10,23 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243] [rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com> Signed-off-by: Scott Murray <scott.murray@konsulko.com>
--- ---
meson.build | 1 + meson.build | 1 +
src/basic/meson.build | 5 + src/basic/meson.build | 5 +
src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++++++++++ src/basic/parse-printf-format.c | 273 +++++++++++++++++++++++
src/basic/parse-printf-format.h | 57 +++++++++ src/basic/parse-printf-format.h | 57 +++++
src/basic/stdio-util.h | 2 +- src/basic/stdio-util.h | 2 +-
src/journal/journal-send.c | 2 +- src/libsystemd/sd-journal/journal-send.c | 2 +-
6 files changed, 338 insertions(+), 2 deletions(-) 6 files changed, 338 insertions(+), 2 deletions(-)
create mode 100644 src/basic/parse-printf-format.c create mode 100644 src/basic/parse-printf-format.c
create mode 100644 src/basic/parse-printf-format.h create mode 100644 src/basic/parse-printf-format.h
diff --git a/meson.build b/meson.build diff --git a/meson.build b/meson.build
index 79b762faeb..7f8c679411 100644 index b5a51b6d0d..11cf56efee 100644
--- a/meson.build --- a/meson.build
+++ b/meson.build +++ b/meson.build
@@ -613,6 +613,7 @@ endif @@ -656,6 +656,7 @@ endif
foreach header : ['crypt.h', foreach header : ['crypt.h',
'linux/memfd.h', 'linux/memfd.h',
'linux/vm_sockets.h', 'linux/vm_sockets.h',
@@ -34,21 +35,21 @@ index 79b762faeb..7f8c679411 100644
'valgrind/memcheck.h', 'valgrind/memcheck.h',
'valgrind/valgrind.h', 'valgrind/valgrind.h',
diff --git a/src/basic/meson.build b/src/basic/meson.build diff --git a/src/basic/meson.build b/src/basic/meson.build
index d6caf28f14..32c1acf349 100644 index 452b965db3..4e64d883dc 100644
--- a/src/basic/meson.build --- a/src/basic/meson.build
+++ b/src/basic/meson.build +++ b/src/basic/meson.build
@@ -312,6 +312,11 @@ foreach item : [['af', af_list_txt, 'af', ''], @@ -321,6 +321,11 @@ endforeach
endforeach
basic_sources += generated_gperf_headers basic_sources += generated_gperf_headers
+
+if conf.get('HAVE_PRINTF_H') != 1 +if conf.get('HAVE_PRINTF_H') != 1
+ basic_sources += [files('parse-printf-format.c')] + basic_sources += [files('parse-printf-format.c')]
+endif +endif
+ +
basic_gcrypt_sources = files( +
'gcrypt-util.c', ############################################################
'gcrypt-util.h')
arch_list = [
diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
new file mode 100644 new file mode 100644
index 0000000000..49437e5445 index 0000000000..49437e5445
@@ -392,11 +393,11 @@ index 0000000000..47be7522d7
+ +
+#endif /* HAVE_PRINTF_H */ +#endif /* HAVE_PRINTF_H */
diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
index c3b9448d4f..2937aa13b1 100644 index 6dc1e72312..cea76b36cf 100644
--- a/src/basic/stdio-util.h --- a/src/basic/stdio-util.h
+++ b/src/basic/stdio-util.h +++ b/src/basic/stdio-util.h
@@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once #pragma once
-#include <printf.h> -#include <printf.h>
@@ -410,18 +411,18 @@ index c3b9448d4f..2937aa13b1 100644
#define snprintf_ok(buf, len, fmt, ...) \ #define snprintf_ok(buf, len, fmt, ...) \
((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len)) ((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len))
diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
index 5ef11fa1a4..6384ab620c 100644 index fd3fd7ef9c..e8e6ad555b 100644
--- a/src/journal/journal-send.c --- a/src/libsystemd/sd-journal/journal-send.c
+++ b/src/journal/journal-send.c +++ b/src/libsystemd/sd-journal/journal-send.c
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
-#include <printf.h> -#include <printf.h>
#include <stddef.h> #include <stddef.h>
#include <sys/socket.h>
#include <sys/un.h> #include <sys/un.h>
#include <unistd.h>
@@ -21,6 +20,7 @@ @@ -21,6 +20,7 @@
#include "stdio-util.h" #include "stdio-util.h"
#include "string-util.h" #include "string-util.h"
@@ -0,0 +1,694 @@
From 95c61768e1f8d76a7bd28355429fc4b7b428ad61 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 14:18:21 +0800
Subject: [PATCH] src/basic/missing.h: check for missing strndupa
include missing.h for definition of strndupa
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[Rebased for v242]
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
[rebased for systemd 244]
[Rebased for v247]
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
meson.build | 1 +
src/backlight/backlight.c | 1 +
src/basic/cgroup-util.c | 1 +
src/basic/env-util.c | 1 +
src/basic/log.c | 1 +
src/basic/missing_stdlib.h | 12 ++++++++++++
src/basic/mkdir.c | 1 +
src/basic/mountpoint-util.c | 1 +
src/basic/parse-util.c | 1 +
src/basic/path-lookup.c | 1 +
src/basic/percent-util.c | 1 +
src/basic/proc-cmdline.c | 1 +
src/basic/procfs-util.c | 1 +
src/basic/time-util.c | 1 +
src/boot/bless-boot.c | 1 +
src/core/dbus-cgroup.c | 1 +
src/core/dbus-execute.c | 1 +
src/core/dbus-util.c | 1 +
src/core/execute.c | 1 +
src/core/kmod-setup.c | 1 +
src/core/service.c | 1 +
src/coredump/coredump-vacuum.c | 1 +
src/journal-remote/journal-remote-main.c | 1 +
src/journal/journalctl.c | 1 +
src/libsystemd/sd-bus/bus-message.c | 1 +
src/libsystemd/sd-bus/bus-objects.c | 1 +
src/libsystemd/sd-bus/bus-socket.c | 1 +
src/libsystemd/sd-bus/sd-bus.c | 1 +
src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
src/libsystemd/sd-journal/sd-journal.c | 1 +
src/locale/keymap-util.c | 1 +
src/login/pam_systemd.c | 1 +
src/network/generator/network-generator.c | 1 +
src/nspawn/nspawn-settings.c | 1 +
src/nss-mymachines/nss-mymachines.c | 1 +
src/portable/portable.c | 1 +
src/resolve/resolvectl.c | 1 +
src/shared/bus-get-properties.c | 1 +
src/shared/bus-unit-procs.c | 1 +
src/shared/bus-unit-util.c | 1 +
src/shared/bus-util.c | 1 +
src/shared/dns-domain.c | 1 +
src/shared/journal-importer.c | 1 +
src/shared/logs-show.c | 1 +
src/shared/pager.c | 1 +
src/shared/uid-range.c | 1 +
src/socket-proxy/socket-proxyd.c | 1 +
src/test/test-hexdecoct.c | 1 +
src/udev/udev-builtin-path_id.c | 1 +
src/udev/udev-event.c | 1 +
src/udev/udev-rules.c | 1 +
51 files changed, 62 insertions(+)
diff --git a/meson.build b/meson.build
index 11cf56efee..5bd6602e03 100644
--- a/meson.build
+++ b/meson.build
@@ -480,6 +480,7 @@ foreach ident : ['secure_getenv', '__secure_getenv']
endforeach
foreach ident : [
+ ['strndupa' , '''#include <string.h>'''],
['memfd_create', '''#include <sys/mman.h>'''],
['gettid', '''#include <sys/types.h>
#include <unistd.h>'''],
diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
index 7c0970a60c..c129ff0f4f 100644
--- a/src/backlight/backlight.c
+++ b/src/backlight/backlight.c
@@ -19,6 +19,7 @@
#include "string-util.h"
#include "strv.h"
#include "util.h"
+#include "missing_stdlib.h"
static int help(void) {
_cleanup_free_ char *link = NULL;
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
index 1ff6160dc8..c9efd862a2 100644
--- a/src/basic/cgroup-util.c
+++ b/src/basic/cgroup-util.c
@@ -38,6 +38,7 @@
#include "unit-name.h"
#include "user-util.h"
#include "xattr-util.h"
+#include "missing_stdlib.h"
static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
_cleanup_free_ char *fs = NULL;
diff --git a/src/basic/env-util.c b/src/basic/env-util.c
index 1ca445dab4..1f5a212d4e 100644
--- a/src/basic/env-util.c
+++ b/src/basic/env-util.c
@@ -18,6 +18,7 @@
#include "string-util.h"
#include "strv.h"
#include "utf8.h"
+#include "missing_stdlib.h"
/* We follow bash for the character set. Different shells have different rules. */
#define VALID_BASH_ENV_NAME_CHARS \
diff --git a/src/basic/log.c b/src/basic/log.c
index fb183ea9e7..82e7bdff60 100644
--- a/src/basic/log.c
+++ b/src/basic/log.c
@@ -36,6 +36,7 @@
#include "terminal-util.h"
#include "time-util.h"
#include "utf8.h"
+#include "missing_stdlib.h"
#define SNDBUF_SIZE (8*1024*1024)
diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
index 8c76f93eb2..9068bfb4f0 100644
--- a/src/basic/missing_stdlib.h
+++ b/src/basic/missing_stdlib.h
@@ -11,3 +11,15 @@
# error "neither secure_getenv nor __secure_getenv are available"
# endif
#endif
+
+/* string.h */
+#if ! HAVE_STRNDUPA
+#define strndupa(s, n) \
+ ({ \
+ const char *__old = (s); \
+ size_t __len = strnlen(__old, (n)); \
+ char *__new = (char *)alloca(__len + 1); \
+ __new[__len] = '\0'; \
+ (char *)memcpy(__new, __old, __len); \
+ })
+#endif
diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
index f91f8f7a08..fb31596216 100644
--- a/src/basic/mkdir.c
+++ b/src/basic/mkdir.c
@@ -14,6 +14,7 @@
#include "stat-util.h"
#include "stdio-util.h"
#include "user-util.h"
+#include "missing_stdlib.h"
int mkdir_safe_internal(
const char *path,
diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c
index e7a5a99551..3cc157f248 100644
--- a/src/basic/mountpoint-util.c
+++ b/src/basic/mountpoint-util.c
@@ -11,6 +11,7 @@
#include "missing_stat.h"
#include "missing_syscall.h"
#include "mkdir.h"
+#include "missing_stdlib.h"
#include "mountpoint-util.h"
#include "parse-util.h"
#include "path-util.h"
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
index b79c885dfd..6dabda5691 100644
--- a/src/basic/parse-util.c
+++ b/src/basic/parse-util.c
@@ -19,6 +19,7 @@
#include "stat-util.h"
#include "string-util.h"
#include "strv.h"
+#include "missing_stdlib.h"
int parse_boolean(const char *v) {
if (!v)
diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
index 05eb17d66c..b6026aab28 100644
--- a/src/basic/path-lookup.c
+++ b/src/basic/path-lookup.c
@@ -15,6 +15,7 @@
#include "strv.h"
#include "tmpfile-util.h"
#include "user-util.h"
+#include "missing_stdlib.h"
int xdg_user_runtime_dir(char **ret, const char *suffix) {
const char *e;
diff --git a/src/basic/percent-util.c b/src/basic/percent-util.c
index 06f20fd61e..8159d721bb 100644
--- a/src/basic/percent-util.c
+++ b/src/basic/percent-util.c
@@ -3,6 +3,7 @@
#include "percent-util.h"
#include "string-util.h"
#include "parse-util.h"
+#include "missing_stdlib.h"
static int parse_parts_value_whole(const char *p, const char *symbol) {
const char *pc, *n;
diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
index 410b8a3eb5..f2c4355609 100644
--- a/src/basic/proc-cmdline.c
+++ b/src/basic/proc-cmdline.c
@@ -15,6 +15,7 @@
#include "string-util.h"
#include "util.h"
#include "virt.h"
+#include "missing_stdlib.h"
int proc_cmdline(char **ret) {
const char *e;
diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
index 9234ccaf85..8c57094225 100644
--- a/src/basic/procfs-util.c
+++ b/src/basic/procfs-util.c
@@ -11,6 +11,7 @@
#include "procfs-util.h"
#include "stdio-util.h"
#include "string-util.h"
+#include "missing_stdlib.h"
int procfs_tasks_get_limit(uint64_t *ret) {
_cleanup_free_ char *value = NULL;
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
index 5d162e8ffe..1cde8e4262 100644
--- a/src/basic/time-util.c
+++ b/src/basic/time-util.c
@@ -26,6 +26,7 @@
#include "string-util.h"
#include "strv.h"
#include "time-util.h"
+#include "missing_stdlib.h"
static clockid_t map_clock_id(clockid_t c) {
diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
index 3fc319ca27..90064c90f3 100644
--- a/src/boot/bless-boot.c
+++ b/src/boot/bless-boot.c
@@ -18,6 +18,7 @@
#include "util.h"
#include "verbs.h"
#include "virt.h"
+#include "missing_stdlib.h"
static char **arg_path = NULL;
diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
index 84c3caf3a5..0fa84eaa38 100644
--- a/src/core/dbus-cgroup.c
+++ b/src/core/dbus-cgroup.c
@@ -20,6 +20,7 @@
#include "parse-util.h"
#include "path-util.h"
#include "percent-util.h"
+#include "missing_stdlib.h"
BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
index 902e074bd2..ac15b944e6 100644
--- a/src/core/dbus-execute.c
+++ b/src/core/dbus-execute.c
@@ -42,6 +42,7 @@
#include "unit-printf.h"
#include "user-util.h"
#include "utf8.h"
+#include "missing_stdlib.h"
BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
index ca9b399d8c..b864480a8c 100644
--- a/src/core/dbus-util.c
+++ b/src/core/dbus-util.c
@@ -9,6 +9,7 @@
#include "unit-printf.h"
#include "user-util.h"
#include "unit.h"
+#include "missing_stdlib.h"
int bus_property_get_triggered_unit(
sd_bus *bus,
diff --git a/src/core/execute.c b/src/core/execute.c
index 2a337b55a2..2a64675c5f 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
@@ -98,6 +98,7 @@
#include "unit-serialize.h"
#include "user-util.h"
#include "utmp-wtmp.h"
+#include "missing_stdlib.h"
#define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
#define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
index a56f12f47f..6b8729ef67 100644
--- a/src/core/kmod-setup.c
+++ b/src/core/kmod-setup.c
@@ -11,6 +11,7 @@
#include "macro.h"
#include "string-util.h"
#include "missing_type.h"
+#include "missing_stdlib.h"
#if HAVE_KMOD
#include "module-util.h"
diff --git a/src/core/service.c b/src/core/service.c
index 701c145565..4ddc20ed7e 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -41,6 +41,7 @@
#include "unit.h"
#include "utf8.h"
#include "util.h"
+#include "missing_stdlib.h"
static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
[SERVICE_DEAD] = UNIT_INACTIVE,
diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c
index 95c3fca661..d4a9f27b08 100644
--- a/src/coredump/coredump-vacuum.c
+++ b/src/coredump/coredump-vacuum.c
@@ -16,6 +16,7 @@
#include "string-util.h"
#include "time-util.h"
#include "user-util.h"
+#include "missing_stdlib.h"
#define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
#define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
index ae1d43756a..24de98c9f3 100644
--- a/src/journal-remote/journal-remote-main.c
+++ b/src/journal-remote/journal-remote-main.c
@@ -24,6 +24,7 @@
#include "stat-util.h"
#include "string-table.h"
#include "strv.h"
+#include "missing_stdlib.h"
#define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
#define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
index 3eac97510d..db6913bc7a 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
@@ -72,6 +72,7 @@
#include "unit-name.h"
#include "user-util.h"
#include "varlink.h"
+#include "missing_stdlib.h"
#define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
#define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
index 20f7396c74..3471311ef5 100644
--- a/src/libsystemd/sd-bus/bus-message.c
+++ b/src/libsystemd/sd-bus/bus-message.c
@@ -20,6 +20,7 @@
#include "strv.h"
#include "time-util.h"
#include "utf8.h"
+#include "missing_stdlib.h"
static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
index bfd42aea7d..daefc56e3e 100644
--- a/src/libsystemd/sd-bus/bus-objects.c
+++ b/src/libsystemd/sd-bus/bus-objects.c
@@ -12,6 +12,7 @@
#include "set.h"
#include "string-util.h"
#include "strv.h"
+#include "missing_stdlib.h"
static int node_vtable_get_userdata(
sd_bus *bus,
diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
index 378774fe8b..2694c177d5 100644
--- a/src/libsystemd/sd-bus/bus-socket.c
+++ b/src/libsystemd/sd-bus/bus-socket.c
@@ -27,6 +27,7 @@
#include "string-util.h"
#include "user-util.h"
#include "utf8.h"
+#include "missing_stdlib.h"
#define SNDBUF_SIZE (8*1024*1024)
diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
index a32e2f5e20..97fd3aec82 100644
--- a/src/libsystemd/sd-bus/sd-bus.c
+++ b/src/libsystemd/sd-bus/sd-bus.c
@@ -42,6 +42,7 @@
#include "string-util.h"
#include "strv.h"
#include "user-util.h"
+#include "missing_stdlib.h"
#define log_debug_bus_message(m) \
do { \
diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
index 13c08fe295..9aae83486e 100644
--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
@@ -14,6 +14,7 @@
#include "string-util.h"
#include "time-util.h"
#include "util.h"
+#include "missing_stdlib.h"
#define MAX_SIZE (2*1024*1024)
diff --git a/src/libsystemd/sd-journal/sd-journal.c b/src/libsystemd/sd-journal/sd-journal.c
index b3240177cb..7e3ae2d24f 100644
--- a/src/libsystemd/sd-journal/sd-journal.c
+++ b/src/libsystemd/sd-journal/sd-journal.c
@@ -40,6 +40,7 @@
#include "string-util.h"
#include "strv.h"
#include "syslog-util.h"
+#include "missing_stdlib.h"
#define JOURNAL_FILES_MAX 7168
diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
index d2f0566dbc..3b7746557e 100644
--- a/src/locale/keymap-util.c
+++ b/src/locale/keymap-util.c
@@ -24,6 +24,7 @@
#include "string-util.h"
#include "strv.h"
#include "tmpfile-util.h"
+#include "missing_stdlib.h"
static bool startswith_comma(const char *s, const char *prefix) {
s = startswith(s, prefix);
diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
index f8bd17eefe..9633fbc152 100644
--- a/src/login/pam_systemd.c
+++ b/src/login/pam_systemd.c
@@ -31,6 +31,7 @@
#include "locale-util.h"
#include "login-util.h"
#include "macro.h"
+#include "missing_stdlib.h"
#include "pam-util.h"
#include "parse-util.h"
#include "path-util.h"
diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
index 60e074e99b..a728e3b7a1 100644
--- a/src/network/generator/network-generator.c
+++ b/src/network/generator/network-generator.c
@@ -13,6 +13,7 @@
#include "string-table.h"
#include "string-util.h"
#include "strv.h"
+#include "missing_stdlib.h"
/*
# .network
diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
index 3847fe4ec4..3696b57baa 100644
--- a/src/nspawn/nspawn-settings.c
+++ b/src/nspawn/nspawn-settings.c
@@ -17,6 +17,7 @@
#include "strv.h"
#include "user-util.h"
#include "util.h"
+#include "missing_stdlib.h"
Settings *settings_new(void) {
Settings *s;
diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
index 44715bb3e5..bc1e688b5e 100644
--- a/src/nss-mymachines/nss-mymachines.c
+++ b/src/nss-mymachines/nss-mymachines.c
@@ -21,6 +21,7 @@
#include "nss-util.h"
#include "signal-util.h"
#include "string-util.h"
+#include "missing_stdlib.h"
static void setup_logging(void) {
/* We need a dummy function because log_parse_environment is a macro. */
diff --git a/src/portable/portable.c b/src/portable/portable.c
index 4cf5fb4f0a..577dc5c8d7 100644
--- a/src/portable/portable.c
+++ b/src/portable/portable.c
@@ -34,6 +34,7 @@
#include "strv.h"
#include "tmpfile-util.h"
#include "user-util.h"
+#include "missing_stdlib.h"
static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile");
diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
index 7d13ed3905..ddc37115b8 100644
--- a/src/resolve/resolvectl.c
+++ b/src/resolve/resolvectl.c
@@ -41,6 +41,7 @@
#include "terminal-util.h"
#include "utf8.h"
#include "verbs.h"
+#include "missing_stdlib.h"
static int arg_family = AF_UNSPEC;
static int arg_ifindex = 0;
diff --git a/src/shared/bus-get-properties.c b/src/shared/bus-get-properties.c
index feb6d3807f..eb11d29e50 100644
--- a/src/shared/bus-get-properties.c
+++ b/src/shared/bus-get-properties.c
@@ -4,6 +4,7 @@
#include "rlimit-util.h"
#include "stdio-util.h"
#include "string-util.h"
+#include "missing_stdlib.h"
int bus_property_get_bool(
sd_bus *bus,
diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c
index 6f4a71138c..4a46de2c1b 100644
--- a/src/shared/bus-unit-procs.c
+++ b/src/shared/bus-unit-procs.c
@@ -10,6 +10,7 @@
#include "sort-util.h"
#include "string-util.h"
#include "terminal-util.h"
+#include "missing_stdlib.h"
struct CGroupInfo {
char *cgroup_path;
diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
index d3a5b25d18..003594e2d7 100644
--- a/src/shared/bus-unit-util.c
+++ b/src/shared/bus-unit-util.c
@@ -47,6 +47,7 @@
#include "unit-def.h"
#include "user-util.h"
#include "utf8.h"
+#include "missing_stdlib.h"
int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
assert(message);
diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
index 64ca67993c..31e3d148ea 100644
--- a/src/shared/bus-util.c
+++ b/src/shared/bus-util.c
@@ -21,6 +21,7 @@
#include "path-util.h"
#include "socket-util.h"
#include "stdio-util.h"
+#include "missing_stdlib.h"
static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
sd_event *e = userdata;
diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
index 787bb8fec9..009589a16f 100644
--- a/src/shared/dns-domain.c
+++ b/src/shared/dns-domain.c
@@ -17,6 +17,7 @@
#include "string-util.h"
#include "strv.h"
#include "utf8.h"
+#include "missing_stdlib.h"
int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
const char *n;
diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
index 9e11dc09c1..f9954c1520 100644
--- a/src/shared/journal-importer.c
+++ b/src/shared/journal-importer.c
@@ -15,6 +15,7 @@
#include "parse-util.h"
#include "string-util.h"
#include "unaligned.h"
+#include "missing_stdlib.h"
enum {
IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index e63c59bd94..dd9773c009 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -41,6 +41,7 @@
#include "utf8.h"
#include "util.h"
#include "web-util.h"
+#include "missing_stdlib.h"
/* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
#define PRINT_LINE_THRESHOLD 3
diff --git a/src/shared/pager.c b/src/shared/pager.c
index 4bbad7e37b..eefcdd068c 100644
--- a/src/shared/pager.c
+++ b/src/shared/pager.c
@@ -26,6 +26,7 @@
#include "strv.h"
#include "terminal-util.h"
#include "util.h"
+#include "missing_stdlib.h"
static pid_t pager_pid = 0;
diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
index 5d5bf7f21d..f1002ffa6c 100644
--- a/src/shared/uid-range.c
+++ b/src/shared/uid-range.c
@@ -9,6 +9,7 @@
#include "sort-util.h"
#include "uid-range.h"
#include "user-util.h"
+#include "missing_stdlib.h"
static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
assert(range);
diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
index 6e3ee0d76b..7727e33d95 100644
--- a/src/socket-proxy/socket-proxyd.c
+++ b/src/socket-proxy/socket-proxyd.c
@@ -26,6 +26,7 @@
#include "socket-util.h"
#include "string-util.h"
#include "util.h"
+#include "missing_stdlib.h"
#define BUFFER_SIZE (256 * 1024)
diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
index c9d318b8d1..fcb8d40805 100644
--- a/src/test/test-hexdecoct.c
+++ b/src/test/test-hexdecoct.c
@@ -6,6 +6,7 @@
#include "hexdecoct.h"
#include "macro.h"
#include "string-util.h"
+#include "missing_stdlib.h"
static void test_hexchar(void) {
assert_se(hexchar(0xa) == 'a');
diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
index 65c40de4c8..4ef9a0c6c8 100644
--- a/src/udev/udev-builtin-path_id.c
+++ b/src/udev/udev-builtin-path_id.c
@@ -22,6 +22,7 @@
#include "sysexits.h"
#include "udev-builtin.h"
#include "udev-util.h"
+#include "missing_stdlib.h"
_printf_(2,3)
static void path_prepend(char **path, const char *fmt, ...) {
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
index b28089be71..a7e2232299 100644
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
@@ -34,6 +34,7 @@
#include "udev-util.h"
#include "udev-watch.h"
#include "user-util.h"
+#include "missing_stdlib.h"
typedef struct Spawn {
sd_device *device;
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
index bf997fc0ed..e3f5f1f2e2 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -33,6 +33,7 @@
#include "udev-util.h"
#include "user-util.h"
#include "virt.h"
+#include "missing_stdlib.h"
#define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
@@ -0,0 +1,382 @@
From f95192d87a46a2191cf4ebd47c64e04b138d7fac Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 26 Oct 2017 22:10:42 -0700
Subject: [PATCH] Include netinet/if_ether.h
Fixes
/path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
struct ethhdr {
^~~~~~
and related arphdr, arpreq, and arpreq_old errors
/path/to/systemd/recipe-sysroot/usr/include/net/if_arp.h:22:8: error: redefinition of 'struct arphdr'
struct arphdr {
^~~~~~
The latter requires removing some includes of net/if_arp.h to avoid
conflicting with netinet/if_ether.h.
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
[rebased for systemd 247]
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
src/basic/linux/in6.h | 14 +++++++-------
src/libsystemd-network/sd-dhcp6-client.c | 1 -
src/libsystemd/sd-netlink/netlink-types.c | 1 +
src/machine/machine-dbus.c | 1 +
src/network/netdev/bond.c | 1 +
src/network/netdev/bridge.c | 1 +
src/network/netdev/macsec.c | 1 +
src/network/netdev/netdev-gperf.gperf | 1 +
src/network/netdev/netdev.c | 1 +
src/network/networkd-bridge-vlan.c | 1 +
src/network/networkd-dhcp-common.c | 4 +++-
src/network/networkd-dhcp-server.c | 4 ++--
src/network/networkd-dhcp4.c | 2 +-
src/network/networkd-dhcp6.c | 2 +-
src/network/networkd-link.c | 2 +-
src/network/networkd-network.c | 1 +
src/network/networkd-route.c | 1 +
src/network/networkd-setlink.c | 2 +-
src/network/test-network-tables.c | 1 +
src/shared/ethtool-util.c | 1 +
src/shared/ethtool-util.h | 1 +
src/udev/net/link-config.c | 1 +
src/udev/udev-builtin-net_setup_link.c | 1 +
23 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/src/basic/linux/in6.h b/src/basic/linux/in6.h
index 5ad396a57e..1dc007fe13 100644
--- a/src/basic/linux/in6.h
+++ b/src/basic/linux/in6.h
@@ -1,10 +1,10 @@
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
/*
- * Types and definitions for AF_INET6
- * Linux INET6 implementation
+ * Types and definitions for AF_INET6
+ * Linux INET6 implementation
*
* Authors:
- * Pedro Roque <roque@di.fc.ul.pt>
+ * Pedro Roque <roque@di.fc.ul.pt>
*
* Sources:
* IPv6 Program Interfaces for BSD Systems
@@ -19,8 +19,8 @@
* 2 of the License, or (at your option) any later version.
*/
-#ifndef _UAPI_LINUX_IN6_H
-#define _UAPI_LINUX_IN6_H
+#ifndef _LINUX_IN6_H
+#define _LINUX_IN6_H
#include <linux/types.h>
#include <linux/libc-compat.h>
@@ -97,7 +97,7 @@ struct in6_flowlabel_req {
/*
- * Bitmask constant declarations to help applications select out the
+ * Bitmask constant declarations to help applications select out the
* flow label and priority fields.
*
* Note that this are in host byte order while the flowinfo field of
@@ -298,4 +298,4 @@ struct in6_flowlabel_req {
* ...
* MRT6_MAX
*/
-#endif /* _UAPI_LINUX_IN6_H */
+#endif /* _LINUX_IN6_H */
diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
index f99c12620b..4966d62656 100644
--- a/src/libsystemd-network/sd-dhcp6-client.c
+++ b/src/libsystemd-network/sd-dhcp6-client.c
@@ -5,7 +5,6 @@
#include <errno.h>
#include <sys/ioctl.h>
-#include <linux/if_arp.h>
#include <linux/if_infiniband.h>
#include "sd-dhcp6-client.h"
diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
index beb926d40b..41de212242 100644
--- a/src/libsystemd/sd-netlink/netlink-types.c
+++ b/src/libsystemd/sd-netlink/netlink-types.c
@@ -3,6 +3,7 @@
#include <netinet/in.h>
#include <stdint.h>
#include <sys/socket.h>
+#include <netinet/if_ether.h>
#include <linux/can/vxcan.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
index 0022a980c5..fc22e51409 100644
--- a/src/machine/machine-dbus.c
+++ b/src/machine/machine-dbus.c
@@ -3,6 +3,7 @@
#include <errno.h>
#include <sys/mount.h>
#include <sys/wait.h>
+#include <netinet/if_ether.h>
/* When we include libgen.h because we need dirname() we immediately
* undefine basename() since libgen.h defines it as a macro to the POSIX
diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c
index a7a4adce45..eb111a6c48 100644
--- a/src/network/netdev/bond.c
+++ b/src/network/netdev/bond.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include "alloc-util.h"
#include "bond.h"
#include "bond-util.h"
diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c
index 99fb9e1c3c..ecc6ca91bf 100644
--- a/src/network/netdev/bridge.c
+++ b/src/network/netdev/bridge.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include "bridge.h"
diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
index 77c5f8c4e7..04be1b4ab2 100644
--- a/src/network/netdev/macsec.c
+++ b/src/network/netdev/macsec.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if_ether.h>
#include <linux/if_macsec.h>
diff --git a/src/network/netdev/netdev-gperf.gperf b/src/network/netdev/netdev-gperf.gperf
index 9dd081425e..130e5b3d3c 100644
--- a/src/network/netdev/netdev-gperf.gperf
+++ b/src/network/netdev/netdev-gperf.gperf
@@ -3,6 +3,7 @@
#if __GNUC__ >= 7
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
#endif
+#include <netinet/if_ether.h>
#include <stddef.h>
#include "bareudp.h"
#include "batadv.h"
diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
index 53534d4873..1cfda9469f 100644
--- a/src/network/netdev/netdev.c
+++ b/src/network/netdev/netdev.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <netinet/in.h>
#include <unistd.h>
diff --git a/src/network/networkd-bridge-vlan.c b/src/network/networkd-bridge-vlan.c
index 3153bf6984..687a26b057 100644
--- a/src/network/networkd-bridge-vlan.c
+++ b/src/network/networkd-bridge-vlan.c
@@ -4,6 +4,7 @@
***/
#include <netinet/in.h>
+#include <netinet/if_ether.h>
#include <linux/if_bridge.h>
#include <stdbool.h>
diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
index 249d780887..edd2e9adf8 100644
--- a/src/network/networkd-dhcp-common.c
+++ b/src/network/networkd-dhcp-common.c
@@ -1,7 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
-#include <linux/if_arp.h>
+#include <net/if_arp.h>
+#include <net/if.h>
#include "bus-error.h"
#include "dhcp-identifier.h"
@@ -13,6 +14,7 @@
#include "networkd-dhcp-common.h"
#include "networkd-link.h"
#include "networkd-manager.h"
+#include <netinet/if_ether.h>
#include "networkd-network.h"
#include "parse-util.h"
#include "socket-util.h"
diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c
index 9e2faa5675..fd8d817569 100644
--- a/src/network/networkd-dhcp-server.c
+++ b/src/network/networkd-dhcp-server.c
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
-#include <linux/if_arp.h>
-#include <linux/if.h>
+#include <net/if_arp.h>
+#include <net/if.h>
#include "sd-dhcp-server.h"
diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
index f80adcdbcf..3311e2a718 100644
--- a/src/network/networkd-dhcp4.c
+++ b/src/network/networkd-dhcp4.c
@@ -1,9 +1,9 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include "escape.h"
#include "alloc-util.h"
diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
index 2b72b618fc..d0d4cfb384 100644
--- a/src/network/networkd-dhcp6.c
+++ b/src/network/networkd-dhcp6.c
@@ -3,9 +3,9 @@
Copyright © 2014 Intel Corporation. All rights reserved.
***/
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include "sd-dhcp6-client.h"
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 20675f2306..2884511ff3 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -1,9 +1,9 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <net/if.h>
+#include <netinet/if_ether.h>
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include <linux/if_link.h>
#include <linux/netdevice.h>
#include <sys/socket.h>
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
index 850b4f449e..6f85d41328 100644
--- a/src/network/networkd-network.c
+++ b/src/network/networkd-network.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <netinet/in.h>
#include <linux/netdevice.h>
diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
index 791fd64c39..a2825c920d 100644
--- a/src/network/networkd-route.c
+++ b/src/network/networkd-route.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/in.h>
#include <linux/icmpv6.h>
#include <linux/ipv6_route.h>
#include <linux/nexthop.h>
diff --git a/src/network/networkd-setlink.c b/src/network/networkd-setlink.c
index 13c4cedd10..6558d551ab 100644
--- a/src/network/networkd-setlink.c
+++ b/src/network/networkd-setlink.c
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <netinet/in.h>
+#include <net/if_arp.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
#include "missing_network.h"
#include "netlink-util.h"
diff --git a/src/network/test-network-tables.c b/src/network/test-network-tables.c
index f55e524ae9..83d5c7cef3 100644
--- a/src/network/test-network-tables.c
+++ b/src/network/test-network-tables.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include "bond.h"
#include "dhcp6-internal.h"
#include "dhcp6-protocol.h"
diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c
index f77f6943ca..0e1506e04b 100644
--- a/src/shared/ethtool-util.c
+++ b/src/shared/ethtool-util.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <linux/ethtool.h>
diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h
index 7d28766624..e98a25418b 100644
--- a/src/shared/ethtool-util.h
+++ b/src/shared/ethtool-util.h
@@ -3,6 +3,7 @@
#include <macro.h>
#include <net/ethernet.h>
+#include <netinet/if_ether.h>
#include <linux/ethtool.h>
#include "conf-parser.h"
diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
index 8dfe23691b..e269856337 100644
--- a/src/udev/net/link-config.c
+++ b/src/udev/net/link-config.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include <linux/netdevice.h>
#include <netinet/ether.h>
#include <unistd.h>
diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c
index 5964e30bf1..52a18d7a7f 100644
--- a/src/udev/udev-builtin-net_setup_link.c
+++ b/src/udev/udev-builtin-net_setup_link.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <netinet/if_ether.h>
#include "alloc-util.h"
#include "device-util.h"
#include "errno-util.h"
@@ -1,8 +1,7 @@
From f8a239b182158ca0a537ba053cb0e6bad9c3a2fb Mon Sep 17 00:00:00 2001 From 9c0d0b61ffa4019b299e4c47f376ae823879dbf3 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 14:56:21 +0800 Date: Mon, 25 Feb 2019 14:56:21 +0800
Subject: [PATCH 07/24] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not Subject: [PATCH] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not defined
defined
If the standard library doesn't provide brace If the standard library doesn't provide brace
expansion users just won't get it. expansion users just won't get it.
@@ -17,6 +16,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243] [rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com> Signed-off-by: Scott Murray <scott.murray@konsulko.com>
--- ---
src/basic/glob-util.c | 12 ++++++++++++ src/basic/glob-util.c | 12 ++++++++++++
src/test/test-glob-util.c | 16 ++++++++++++++++ src/test/test-glob-util.c | 16 ++++++++++++++++
@@ -24,10 +24,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
3 files changed, 38 insertions(+) 3 files changed, 38 insertions(+)
diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c
index b335af8d97..2cdfc11f16 100644 index e026b29478..815e56ef68 100644
--- a/src/basic/glob-util.c --- a/src/basic/glob-util.c
+++ b/src/basic/glob-util.c +++ b/src/basic/glob-util.c
@@ -14,6 +14,12 @@ @@ -12,6 +12,12 @@
#include "path-util.h" #include "path-util.h"
#include "strv.h" #include "strv.h"
@@ -40,7 +40,7 @@ index b335af8d97..2cdfc11f16 100644
static void closedir_wrapper(void* v) { static void closedir_wrapper(void* v) {
(void) closedir(v); (void) closedir(v);
} }
@@ -21,6 +27,7 @@ static void closedir_wrapper(void* v) { @@ -19,6 +25,7 @@ static void closedir_wrapper(void* v) {
int safe_glob(const char *path, int flags, glob_t *pglob) { int safe_glob(const char *path, int flags, glob_t *pglob) {
int k; int k;
@@ -48,7 +48,7 @@ index b335af8d97..2cdfc11f16 100644
/* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */ /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */
assert(!(flags & GLOB_ALTDIRFUNC)); assert(!(flags & GLOB_ALTDIRFUNC));
@@ -34,9 +41,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) { @@ -32,9 +39,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
pglob->gl_lstat = lstat; pglob->gl_lstat = lstat;
if (!pglob->gl_stat) if (!pglob->gl_stat)
pglob->gl_stat = stat; pglob->gl_stat = stat;
@@ -64,10 +64,10 @@ index b335af8d97..2cdfc11f16 100644
return -ENOENT; return -ENOENT;
if (k == GLOB_NOSPACE) if (k == GLOB_NOSPACE)
diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
index b4f41445fe..f0d474ed14 100644 index 50b4924679..09c0a20aee 100644
--- a/src/test/test-glob-util.c --- a/src/test/test-glob-util.c
+++ b/src/test/test-glob-util.c +++ b/src/test/test-glob-util.c
@@ -13,6 +13,12 @@ @@ -12,6 +12,12 @@
#include "rm-rf.h" #include "rm-rf.h"
#include "tmpfile-util.h" #include "tmpfile-util.h"
@@ -78,9 +78,9 @@ index b4f41445fe..f0d474ed14 100644
+#endif +#endif
+ +
static void test_glob_exists(void) { static void test_glob_exists(void) {
char name[] = "/tmp/test-glob_exists.XXXXXX"; log_info("/* %s */", __func__);
int fd = -1;
@@ -40,11 +46,13 @@ static void test_glob_no_dot(void) { @@ -41,11 +47,13 @@ static void test_glob_no_dot(void) {
const char *fn; const char *fn;
_cleanup_globfree_ glob_t g = { _cleanup_globfree_ glob_t g = {
@@ -94,7 +94,7 @@ index b4f41445fe..f0d474ed14 100644
}; };
int r; int r;
@@ -52,11 +60,19 @@ static void test_glob_no_dot(void) { @@ -55,11 +63,19 @@ static void test_glob_no_dot(void) {
assert_se(mkdtemp(template)); assert_se(mkdtemp(template));
fn = strjoina(template, "/*"); fn = strjoina(template, "/*");
@@ -115,10 +115,10 @@ index b4f41445fe..f0d474ed14 100644
(void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL); (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index 3c30612af1..14bc428085 100644 index 7e85c50634..145c48a685 100644
--- a/src/tmpfiles/tmpfiles.c --- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c
@@ -63,6 +63,12 @@ @@ -66,6 +66,12 @@
#include "umask-util.h" #include "umask-util.h"
#include "user-util.h" #include "user-util.h"
@@ -131,7 +131,7 @@ index 3c30612af1..14bc428085 100644
/* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
* them in the file system. This is intended to be used to create * them in the file system. This is intended to be used to create
* properly owned directories beneath /tmp, /var/tmp, /run, which are * properly owned directories beneath /tmp, /var/tmp, /run, which are
@@ -1853,7 +1859,9 @@ finish: @@ -1990,7 +1996,9 @@ finish:
static int glob_item(Item *i, action_t action) { static int glob_item(Item *i, action_t action) {
_cleanup_globfree_ glob_t g = { _cleanup_globfree_ glob_t g = {
@@ -141,7 +141,7 @@ index 3c30612af1..14bc428085 100644
}; };
int r = 0, k; int r = 0, k;
char **fn; char **fn;
@@ -1873,7 +1881,9 @@ static int glob_item(Item *i, action_t action) { @@ -2010,7 +2018,9 @@ static int glob_item(Item *i, action_t action) {
static int glob_item_recursively(Item *i, fdaction_t action) { static int glob_item_recursively(Item *i, fdaction_t action) {
_cleanup_globfree_ glob_t g = { _cleanup_globfree_ glob_t g = {
@@ -1,7 +1,7 @@
From 6cd17c753d2c0a90fc791f69bbc694cbc8556a4f Mon Sep 17 00:00:00 2001 From 45b78e3dc3edead4fc9883dd5a9877f473367bf7 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:00:06 +0800 Date: Mon, 25 Feb 2019 15:00:06 +0800
Subject: [PATCH 08/24] add missing FTW_ macros for musl Subject: [PATCH] add missing FTW_ macros for musl
This is to avoid build failures like below for musl. This is to avoid build failures like below for musl.
@@ -12,10 +12,11 @@ Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
--- ---
src/basic/missing_type.h | 20 ++++++++++++++++++++ src/basic/missing_type.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+) src/shared/mount-setup.c | 1 +
2 files changed, 21 insertions(+)
diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
index c487e65..23602eb 100644 index aeaf6ad5ec..3df1084ef2 100644
--- a/src/basic/missing_type.h --- a/src/basic/missing_type.h
+++ b/src/basic/missing_type.h +++ b/src/basic/missing_type.h
@@ -19,3 +19,23 @@ typedef int (*comparison_fn_t)(const void *, const void *); @@ -19,3 +19,23 @@ typedef int (*comparison_fn_t)(const void *, const void *);
@@ -42,6 +43,15 @@ index c487e65..23602eb 100644
+#ifndef FTW_SKIP_SIBLINGS +#ifndef FTW_SKIP_SIBLINGS
+#define FTW_SKIP_SIBLINGS 3 +#define FTW_SKIP_SIBLINGS 3
+#endif +#endif
-- diff --git a/src/shared/mount-setup.c b/src/shared/mount-setup.c
2.7.4 index ef3527e9a7..c1cab40eb8 100644
--- a/src/shared/mount-setup.c
+++ b/src/shared/mount-setup.c
@@ -32,6 +32,7 @@
#include "strv.h"
#include "user-util.h"
#include "virt.h"
+#include "missing_type.h"
typedef enum MountMode {
MNT_NONE = 0,
@@ -1,20 +1,21 @@
From f1f4b4f9684fed185bfa8b9ed409cdf241657e99 Mon Sep 17 00:00:00 2001 From 943b4258b870c65caaa56fe4dad0d9c7281fdb1d Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:03:47 +0800 Date: Mon, 25 Feb 2019 15:03:47 +0800
Subject: [PATCH 10/24] fix missing of __register_atfork for non-glibc builds Subject: [PATCH] fix missing of __register_atfork for non-glibc builds
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
--- ---
src/basic/process-util.c | 7 +++++++ src/basic/process-util.c | 7 +++++++
1 file changed, 7 insertions(+) 1 file changed, 7 insertions(+)
diff --git a/src/basic/process-util.c b/src/basic/process-util.c diff --git a/src/basic/process-util.c b/src/basic/process-util.c
index 78ce43b..aec2daf 100644 index 14259ea8df..18681838ef 100644
--- a/src/basic/process-util.c --- a/src/basic/process-util.c
+++ b/src/basic/process-util.c +++ b/src/basic/process-util.c
@@ -22,6 +22,9 @@ @@ -18,6 +18,9 @@
#if HAVE_VALGRIND_VALGRIND_H #if HAVE_VALGRIND_VALGRIND_H
#include <valgrind/valgrind.h> #include <valgrind/valgrind.h>
#endif #endif
@@ -24,7 +25,7 @@ index 78ce43b..aec2daf 100644
#include "alloc-util.h" #include "alloc-util.h"
#include "architecture.h" #include "architecture.h"
@@ -1160,11 +1163,15 @@ void reset_cached_pid(void) { @@ -1202,11 +1205,15 @@ void reset_cached_pid(void) {
cached_pid = CACHED_PID_UNSET; cached_pid = CACHED_PID_UNSET;
} }
@@ -40,6 +41,3 @@ index 78ce43b..aec2daf 100644
pid_t getpid_cached(void) { pid_t getpid_cached(void) {
static bool installed = false; static bool installed = false;
--
2.7.4
@@ -1,7 +1,7 @@
From e3f847bd0338d27aff3335b42661d8a4b66b965e Mon Sep 17 00:00:00 2001 From cceb2bba69b371868e89d435c5406b67cdd84d57 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:12:41 +0800 Date: Mon, 25 Feb 2019 15:12:41 +0800
Subject: [PATCH 11/24] Use uintmax_t for handling rlim_t Subject: [PATCH] Use uintmax_t for handling rlim_t
PRIu{32,64} is not right format to represent rlim_t type PRIu{32,64} is not right format to represent rlim_t type
therefore use %ju and typecast the rlim_t variables to therefore use %ju and typecast the rlim_t variables to
@@ -20,17 +20,18 @@ Upstream-Status: Denied [https://github.com/systemd/systemd/pull/7199]
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
[Rebased for v241] [Rebased for v241]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
--- ---
src/basic/format-util.h | 8 +------- src/basic/format-util.h | 8 +-------
src/basic/rlimit-util.c | 10 +++++----- src/basic/rlimit-util.c | 12 ++++++------
src/core/execute.c | 4 ++-- src/core/execute.c | 4 ++--
3 files changed, 8 insertions(+), 14 deletions(-) 3 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/src/basic/format-util.h b/src/basic/format-util.h diff --git a/src/basic/format-util.h b/src/basic/format-util.h
index dece5d3..dbb87bc 100644 index b7e18768e3..3195ab205d 100644
--- a/src/basic/format-util.h --- a/src/basic/format-util.h
+++ b/src/basic/format-util.h +++ b/src/basic/format-util.h
@@ -42,13 +42,7 @@ @@ -32,13 +32,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32_t));
# define PRI_TIMEX "li" # define PRI_TIMEX "li"
#endif #endif
@@ -46,10 +47,19 @@ index dece5d3..dbb87bc 100644
#if SIZEOF_DEV_T == 8 #if SIZEOF_DEV_T == 8
# define DEV_FMT "%" PRIu64 # define DEV_FMT "%" PRIu64
diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
index 74b3a02..b02c03c 100644 index 23d108d5df..3e6fb438d7 100644
--- a/src/basic/rlimit-util.c --- a/src/basic/rlimit-util.c
+++ b/src/basic/rlimit-util.c +++ b/src/basic/rlimit-util.c
@@ -307,13 +307,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) { @@ -43,7 +43,7 @@ int setrlimit_closest(int resource, const struct rlimit *rlim) {
fixed.rlim_max == highest.rlim_max)
return 0;
- log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", rlim->rlim_max, rlimit_to_string(resource), fixed.rlim_max);
+ log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", (uintmax_t)rlim->rlim_max, rlimit_to_string(resource), (uintmax_t)fixed.rlim_max);
if (setrlimit(resource, &fixed) < 0)
return -errno;
@@ -308,13 +308,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY) if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
s = strdup("infinity"); s = strdup("infinity");
else if (rl->rlim_cur >= RLIM_INFINITY) else if (rl->rlim_cur >= RLIM_INFINITY)
@@ -67,7 +77,7 @@ index 74b3a02..b02c03c 100644
if (!s) if (!s)
return -ENOMEM; return -ENOMEM;
@@ -404,7 +404,7 @@ int rlimit_nofile_safe(void) { @@ -405,7 +405,7 @@ int rlimit_nofile_safe(void) {
rl.rlim_cur = FD_SETSIZE; rl.rlim_cur = FD_SETSIZE;
if (setrlimit(RLIMIT_NOFILE, &rl) < 0) if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
@@ -77,11 +87,11 @@ index 74b3a02..b02c03c 100644
return 1; return 1;
} }
diff --git a/src/core/execute.c b/src/core/execute.c diff --git a/src/core/execute.c b/src/core/execute.c
index a708231..e2b8748 100644 index 2a64675c5f..dca1e0e3b6 100644
--- a/src/core/execute.c --- a/src/core/execute.c
+++ b/src/core/execute.c +++ b/src/core/execute.c
@@ -4220,9 +4220,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) { @@ -5391,9 +5391,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
for (i = 0; i < RLIM_NLIMITS; i++) for (unsigned i = 0; i < RLIM_NLIMITS; i++)
if (c->rlimit[i]) { if (c->rlimit[i]) {
fprintf(f, "%sLimit%s: " RLIM_FMT "\n", fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max); - prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
@@ -92,6 +102,3 @@ index a708231..e2b8748 100644
} }
if (c->ioprio_set) { if (c->ioprio_set) {
--
2.7.4
@@ -1,22 +1,22 @@
From d3d65d4036670cbd5129fe55c09ca391286ef4b3 Mon Sep 17 00:00:00 2001 From c1ee5661fa24bf540a4880a9d528da8752be033b Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Wed, 28 Feb 2018 21:25:22 -0800 Date: Wed, 28 Feb 2018 21:25:22 -0800
Subject: [PATCH 14/24] test-sizeof.c: Disable tests for missing typedefs in Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl
musl
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
--- ---
src/test/test-sizeof.c | 4 ++++ src/test/test-sizeof.c | 4 ++++
1 file changed, 4 insertions(+) 1 file changed, 4 insertions(+)
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
index 35b0876..e78e7ca 100644 index e36bee4e8f..4403c0aa52 100644
--- a/src/test/test-sizeof.c --- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c +++ b/src/test/test-sizeof.c
@@ -41,8 +41,10 @@ int main(void) { @@ -55,8 +55,10 @@ int main(void) {
info(unsigned); info(unsigned);
info(long unsigned); info(long unsigned);
info(long long unsigned); info(long long unsigned);
@@ -27,7 +27,7 @@ index 35b0876..e78e7ca 100644
info(float); info(float);
info(double); info(double);
@@ -60,7 +62,9 @@ int main(void) { @@ -74,7 +76,9 @@ int main(void) {
info(ssize_t); info(ssize_t);
info(time_t); info(time_t);
info(usec_t); info(usec_t);
@@ -37,6 +37,3 @@ index 35b0876..e78e7ca 100644
info(pid_t); info(pid_t);
info(uid_t); info(uid_t);
info(gid_t); info(gid_t);
--
2.7.4
@@ -1,7 +1,7 @@
From 48c628f532f6025c2d1646b6819cd81eb789d7fb Mon Sep 17 00:00:00 2001 From ca9b1277fb4eb89bc2ca92440a280e318e882b66 Mon Sep 17 00:00:00 2001
From: Andre McCurdy <armccurdy@gmail.com> From: Andre McCurdy <armccurdy@gmail.com>
Date: Tue, 10 Oct 2017 14:33:30 -0700 Date: Tue, 10 Oct 2017 14:33:30 -0700
Subject: [PATCH 15/24] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat() Subject: [PATCH] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
thing to do and it's not portable (not supported by musl). See: thing to do and it's not portable (not supported by musl). See:
@@ -25,20 +25,22 @@ just historical and not actually necessary or desired behaviour?
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
--- ---
src/basic/fs-util.h | 22 +++++++++++++++++++++- src/basic/fs-util.h | 23 +++++++++++++++++++++--
src/shared/base-filesystem.c | 6 +++--- src/shared/base-filesystem.c | 6 +++---
2 files changed, 24 insertions(+), 4 deletions(-) 2 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
index 7ad030b..d4cb1e9 100644 index 7f15b558ca..4263298cad 100644
--- a/src/basic/fs-util.h --- a/src/basic/fs-util.h
+++ b/src/basic/fs-util.h +++ b/src/basic/fs-util.h
@@ -32,7 +32,27 @@ int fchmod_opath(int fd, mode_t m); @@ -47,8 +47,27 @@ int futimens_opath(int fd, const struct timespec ts[2]);
int fd_warn_permissions(const char *path, int fd); int fd_warn_permissions(const char *path, int fd);
int stat_warn_permissions(const char *path, const struct stat *st);
-#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW) -#define laccess(path, mode) \
- (faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW) < 0 ? -errno : 0)
+/* +/*
+ Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right thing to + Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right thing to
+ do and it's not portable (not supported by musl). See: + do and it's not portable (not supported by musl). See:
@@ -64,13 +66,13 @@ index 7ad030b..d4cb1e9 100644
int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode); int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
int touch(const char *path); int touch(const char *path);
diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
index 89d7a7d..34b4ad5 100644 index 016eb7b82a..b1967f9f2f 100644
--- a/src/shared/base-filesystem.c --- a/src/shared/base-filesystem.c
+++ b/src/shared/base-filesystem.c +++ b/src/shared/base-filesystem.c
@@ -53,7 +53,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { @@ -53,7 +53,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
return log_error_errno(errno, "Failed to open root file system: %m"); return log_error_errno(errno, "Failed to open root file system: %m");
for (i = 0; i < ELEMENTSOF(table); i ++) { for (size_t i = 0; i < ELEMENTSOF(table); i++) {
- if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0) - if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0)
+ if (faccessat(fd, table[i].dir, F_OK, 0) >= 0) + if (faccessat(fd, table[i].dir, F_OK, 0) >= 0)
continue; continue;
@@ -94,6 +96,3 @@ index 89d7a7d..34b4ad5 100644
continue; continue;
} }
--
2.7.4
@@ -1,8 +1,7 @@
From af76c973e41929360a6e021f2ff9a7fc1d7994e9 Mon Sep 17 00:00:00 2001 From 792f4718ebd5a156729be89a5b47e52dc4b62975 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 27 May 2018 08:36:44 -0700 Date: Sun, 27 May 2018 08:36:44 -0700
Subject: [PATCH 16/24] Define glibc compatible basename() for non-glibc Subject: [PATCH] Define glibc compatible basename() for non-glibc systems
systems
Fixes builds with musl, even though systemd is adamant about Fixes builds with musl, even though systemd is adamant about
using non-posix basename implementation, we have a way out using non-posix basename implementation, we have a way out
@@ -10,25 +9,24 @@ using non-posix basename implementation, we have a way out
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- ---
src/machine/machine-dbus.c | 4 ++++ src/machine/machine-dbus.c | 5 +++++
1 file changed, 4 insertions(+) 1 file changed, 5 insertions(+)
diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
index 7a558df..eca7d4b 100644 index fc22e51409..1fed07b941 100644
--- a/src/machine/machine-dbus.c --- a/src/machine/machine-dbus.c
+++ b/src/machine/machine-dbus.c +++ b/src/machine/machine-dbus.c
@@ -11,6 +11,10 @@ @@ -11,6 +11,11 @@
#include <libgen.h> #include <libgen.h>
#undef basename #undef basename
+#if !defined(__GLIBC__) +#if !defined(__GLIBC__)
+#include <string.h>
+#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src) +#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
+#endif +#endif
+ +
#include "alloc-util.h" #include "alloc-util.h"
#include "bus-common-errors.h" #include "bus-common-errors.h"
#include "bus-internal.h" #include "bus-get-properties.h"
--
2.7.4
@@ -1,7 +1,7 @@
From c7a4efb8bccb52e1714c151929c23e12bde59b82 Mon Sep 17 00:00:00 2001 From 101f5ceea7e575622c4f07d2972aeb4d6b082e4b Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Wed, 4 Jul 2018 15:00:44 +0800 Date: Wed, 4 Jul 2018 15:00:44 +0800
Subject: [PATCH 17/24] Do not disable buffering when writing to oom_score_adj Subject: [PATCH] Do not disable buffering when writing to oom_score_adj
On musl, disabling buffering when writing to oom_score_adj will On musl, disabling buffering when writing to oom_score_adj will
cause the following error. cause the following error.
@@ -19,15 +19,16 @@ Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243] [rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com> Signed-off-by: Scott Murray <scott.murray@konsulko.com>
--- ---
src/basic/process-util.c | 2 +- src/basic/process-util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/basic/process-util.c b/src/basic/process-util.c diff --git a/src/basic/process-util.c b/src/basic/process-util.c
index b1c08fcade..0a7a1f7d89 100644 index 18681838ef..0fa71ccce0 100644
--- a/src/basic/process-util.c --- a/src/basic/process-util.c
+++ b/src/basic/process-util.c +++ b/src/basic/process-util.c
@@ -1474,7 +1474,7 @@ int set_oom_score_adjust(int value) { @@ -1606,7 +1606,7 @@ int set_oom_score_adjust(int value) {
sprintf(t, "%i", value); sprintf(t, "%i", value);
return write_string_file("/proc/self/oom_score_adj", t, return write_string_file("/proc/self/oom_score_adj", t,
@@ -35,4 +36,4 @@ index b1c08fcade..0a7a1f7d89 100644
+ WRITE_STRING_FILE_VERIFY_ON_FAILURE); + WRITE_STRING_FILE_VERIFY_ON_FAILURE);
} }
static const char *const ioprio_class_table[] = { int pidfd_get_pid(int fd, pid_t *ret) {
@@ -1,7 +1,7 @@
From fffb2810611b4a26f5c6c0958093b5b3b7d4cd99 Mon Sep 17 00:00:00 2001 From 01ac079433b999a4747acf7be6a3b5fa182c3faf Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Tue, 10 Jul 2018 15:40:17 +0800 Date: Tue, 10 Jul 2018 15:40:17 +0800
Subject: [PATCH 18/24] distinguish XSI-compliant strerror_r from GNU-specifi Subject: [PATCH] distinguish XSI-compliant strerror_r from GNU-specifi
strerror_r strerror_r
XSI-compliant strerror_r and GNU-specifi strerror_r are different. XSI-compliant strerror_r and GNU-specifi strerror_r are different.
@@ -18,33 +18,17 @@ assigned to (char *) variable, resulting in segment fault.
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
--- ---
src/journal/journal-send.c | 5 +++++ src/libsystemd/sd-bus/bus-error.c | 5 +++++
src/libsystemd/sd-bus/bus-error.c | 5 +++++ src/libsystemd/sd-journal/journal-send.c | 5 +++++
2 files changed, 10 insertions(+) 2 files changed, 10 insertions(+)
diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
index 3fea912..4f1e592 100644
--- a/src/journal/journal-send.c
+++ b/src/journal/journal-send.c
@@ -337,7 +337,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
char* j;
errno = 0;
+#ifndef __GLIBC__
+ strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
+ j = buffer + 8 + k;
+#else
j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
+#endif
if (errno == 0) {
char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
index dc95237..bdda30f 100644 index 7483b46a11..c49be29e46 100644
--- a/src/libsystemd/sd-bus/bus-error.c --- a/src/libsystemd/sd-bus/bus-error.c
+++ b/src/libsystemd/sd-bus/bus-error.c +++ b/src/libsystemd/sd-bus/bus-error.c
@@ -379,7 +379,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) { @@ -404,7 +404,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
return; return;
errno = 0; errno = 0;
@@ -57,6 +41,20 @@ index dc95237..bdda30f 100644
if (errno == ERANGE || strlen(x) >= k - 1) { if (errno == ERANGE || strlen(x) >= k - 1) {
free(m); free(m);
k *= 2; k *= 2;
-- diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
2.7.4 index e8e6ad555b..8ca5271d02 100644
--- a/src/libsystemd/sd-journal/journal-send.c
+++ b/src/libsystemd/sd-journal/journal-send.c
@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
char* j;
errno = 0;
+#ifndef __GLIBC__
+ strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
+ j = buffer + 8 + k;
+#else
j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
+#endif
if (errno == 0) {
char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
@@ -1,7 +1,7 @@
From 969ab9e68249fd383f4b513b1c9306bdac4ae9b2 Mon Sep 17 00:00:00 2001 From df2470912f3197aa441b6751feace1454c7d1f84 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:18:00 +0800 Date: Mon, 25 Feb 2019 15:18:00 +0800
Subject: [PATCH 19/24] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
for currently unknown reasons they get exported to the shared libries for currently unknown reasons they get exported to the shared libries
even without being listed in the sym file even without being listed in the sym file
@@ -11,15 +11,16 @@ Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
[Rebased for v241] [Rebased for v241]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
--- ---
src/libsystemd/sd-bus/bus-error.c | 4 ++-- src/libsystemd/sd-bus/bus-error.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
index bdda30f..e21853c 100644 index c49be29e46..90731bd7e7 100644
--- a/src/libsystemd/sd-bus/bus-error.c --- a/src/libsystemd/sd-bus/bus-error.c
+++ b/src/libsystemd/sd-bus/bus-error.c +++ b/src/libsystemd/sd-bus/bus-error.c
@@ -54,8 +54,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = { @@ -55,8 +55,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
}; };
/* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */ /* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */
@@ -30,6 +31,3 @@ index bdda30f..e21853c 100644
/* Additional maps registered with sd_bus_error_add_map() are in this /* Additional maps registered with sd_bus_error_add_map() are in this
* NULL terminated array */ * NULL terminated array */
--
2.7.4
@@ -1,7 +1,7 @@
From 75c06e3e2a4760b36fffd95cdf5535b8ad73c481 Mon Sep 17 00:00:00 2001 From e27ecb188503159a3f11bb1179ba1892cd080843 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:27:54 +0800 Date: Mon, 25 Feb 2019 15:27:54 +0800
Subject: [PATCH 20/24] missing_type.h: add __compar_d_fn_t definition Subject: [PATCH] missing_type.h: add __compar_d_fn_t definition
Fix the following compile failure: Fix the following compile failure:
src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean '__compar_fn_t'? src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean '__compar_fn_t'?
@@ -9,12 +9,13 @@ src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
--- ---
src/basic/missing_type.h | 1 + src/basic/missing_type.h | 1 +
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
index 7d7c1e4..85902ab 100644 index 3df1084ef2..697aa7f58a 100644
--- a/src/basic/missing_type.h --- a/src/basic/missing_type.h
+++ b/src/basic/missing_type.h +++ b/src/basic/missing_type.h
@@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
@@ -25,6 +26,3 @@ index 7d7c1e4..85902ab 100644
#endif #endif
#ifndef __COMPAR_FN_T #ifndef __COMPAR_FN_T
--
2.7.4
@@ -1,7 +1,7 @@
From 3fbf61d54b82fc9bf21d8039bfd89dc9efc5bbcd Mon Sep 17 00:00:00 2001 From 748c4cf040856857f24f4aeef6d996bd58573bd3 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:44:54 +0800 Date: Mon, 25 Feb 2019 15:44:54 +0800
Subject: [PATCH 21/24] avoid redefinition of prctl_mm_map structure Subject: [PATCH] avoid redefinition of prctl_mm_map structure
Fix the following compile failure: Fix the following compile failure:
error: redefinition of 'struct prctl_mm_map' error: redefinition of 'struct prctl_mm_map'
@@ -9,16 +9,17 @@ error: redefinition of 'struct prctl_mm_map'
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
--- ---
src/basic/missing_prctl.h | 2 ++ src/basic/missing_prctl.h | 2 ++
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
index f80cd17..47e4893 100644 index ab851306ba..5547cad875 100644
--- a/src/basic/missing_prctl.h --- a/src/basic/missing_prctl.h
+++ b/src/basic/missing_prctl.h +++ b/src/basic/missing_prctl.h
@@ -1,7 +1,9 @@ @@ -1,7 +1,9 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once #pragma once
+#ifdef __GLIBC__ +#ifdef __GLIBC__
@@ -27,6 +28,3 @@ index f80cd17..47e4893 100644
/* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */ /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */
#ifndef PR_CAP_AMBIENT #ifndef PR_CAP_AMBIENT
--
2.11.0
@@ -0,0 +1,24 @@
From 647447e220e7e47e214c8258c7d4fbdb0da058aa Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Fri, 7 Aug 2020 15:19:27 +0000
Subject: [PATCH] Handle missing LOCK_EX
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
src/partition/makefs.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/partition/makefs.c b/src/partition/makefs.c
index 7c94fbfedb..42f966722d 100644
--- a/src/partition/makefs.c
+++ b/src/partition/makefs.c
@@ -6,6 +6,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
+#include <sys/file.h>
#include "alloc-util.h"
#include "blockdev-util.h"
@@ -0,0 +1,38 @@
From 85cf3d58ff1a9696f0754feffae7d81b8d1d9a43 Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Fri, 7 Aug 2020 15:20:17 +0000
Subject: [PATCH] Fix incompatible pointer type struct sockaddr_un *
| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c: In function 'cant_be_in_netns':
| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:4893:25: error: passing argument 2 of 'connect' from incompatible pointer type [-Werror=incompatible-pointer-types]
| 4893 | if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
| | ^~~~~~
| | |
| | struct sockaddr_un *
| In file included from ../../../../../../workspace/sources/systemd/src/systemd/sd-daemon.h:22,
| from ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:21:
| /home/ubuntu/poky/build/tmp/work/core2-64-poky-linux-musl/systemd/1_246-r0/recipe-sysroot/usr/include/sys/socket.h:384:19: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_un *'
| 384 | int connect (int, const struct sockaddr *, socklen_t);
| | ^~~~~~~~~~~~~~~~~~~~~~~
| cc1: some warnings being treated as errors
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
src/nspawn/nspawn.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 575b9da447..ff08ed23cc 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -5354,7 +5354,7 @@ static int cant_be_in_netns(void) {
if (fd < 0)
return log_error_errno(errno, "Failed to allocate udev control socket: %m");
- if (connect(fd, &sa.sa, SOCKADDR_UN_LEN(sa.un)) < 0) {
+ if (connect(fd, (struct sockaddr *)&sa.sa, SOCKADDR_UN_LEN(sa.un)) < 0) {
if (errno == ENOENT || ERRNO_IS_DISCONNECT(errno))
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
@@ -1,7 +1,7 @@
From 902412c271e0c5d9cb93b10ec0fb5b119b393474 Mon Sep 17 00:00:00 2001 From 9770c5873836e702c2a58cf3b439198415c82c28 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 16:53:06 +0800 Date: Mon, 25 Feb 2019 16:53:06 +0800
Subject: [PATCH 24/24] test-json.c: define M_PIl Subject: [PATCH] test-json.c: define M_PIl
Fix the following compile failure: Fix the following compile failure:
src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this function); did you mean 'M_PI'? src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this function); did you mean 'M_PI'?
@@ -9,15 +9,16 @@ src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this functi
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
--- ---
src/test/test-json.c | 4 ++++ src/test/test-json.c | 4 ++++
1 file changed, 4 insertions(+) 1 file changed, 4 insertions(+)
diff --git a/src/test/test-json.c b/src/test/test-json.c diff --git a/src/test/test-json.c b/src/test/test-json.c
index 9b8a2a9..efc746c 100644 index 1d4b11945e..572c8cf9d0 100644
--- a/src/test/test-json.c --- a/src/test/test-json.c
+++ b/src/test/test-json.c +++ b/src/test/test-json.c
@@ -11,6 +11,10 @@ @@ -13,6 +13,10 @@
#include "tests.h" #include "tests.h"
#include "util.h" #include "util.h"
@@ -28,6 +29,3 @@ index 9b8a2a9..efc746c 100644
static void test_tokenizer(const char *data, ...) { static void test_tokenizer(const char *data, ...) {
unsigned line = 0, column = 0; unsigned line = 0, column = 0;
void *state = NULL; void *state = NULL;
--
2.11.0
@@ -1,4 +1,4 @@
From 85e3c3046562ec24fc2f09ebfd08bf9f168091d5 Mon Sep 17 00:00:00 2001 From 26da484391e20b36eb65c98872d1145261028c7a Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com> From: Chen Qi <Qi.Chen@windriver.com>
Date: Fri, 1 Mar 2019 15:22:15 +0800 Date: Fri, 1 Mar 2019 15:22:15 +0800
Subject: [PATCH] do not disable buffer in writing files Subject: [PATCH] do not disable buffer in writing files
@@ -18,40 +18,31 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
[rebased for systemd 243] [rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com> Signed-off-by: Scott Murray <scott.murray@konsulko.com>
--- ---
src/basic/cgroup-util.c | 14 +++++++------- src/basic/cgroup-util.c | 10 +++++-----
src/basic/procfs-util.c | 4 ++-- src/basic/procfs-util.c | 4 ++--
src/basic/smack-util.c | 2 +- src/basic/sysctl-util.c | 2 +-
src/basic/util.c | 2 +- src/basic/util.c | 2 +-
src/binfmt/binfmt.c | 6 +++--- src/binfmt/binfmt.c | 6 +++---
src/core/main.c | 4 ++-- src/core/main.c | 4 ++--
src/core/smack-setup.c | 8 ++++---- src/core/smack-setup.c | 8 ++++----
src/hibernate-resume/hibernate-resume.c | 2 +- src/hibernate-resume/hibernate-resume.c | 2 +-
src/libsystemd/sd-device/sd-device.c | 2 +- src/libsystemd/sd-device/sd-device.c | 2 +-
src/login/logind-dbus.c | 2 +-
src/nspawn/nspawn-cgroup.c | 2 +- src/nspawn/nspawn-cgroup.c | 2 +-
src/nspawn/nspawn.c | 6 +++--- src/nspawn/nspawn.c | 6 +++---
src/shared/sysctl-util.c | 2 +- src/shared/cgroup-setup.c | 4 ++--
src/sleep/sleep.c | 10 +++++----- src/shared/mount-util.c | 4 ++--
src/udev/udevadm-trigger.c | 2 +- src/shared/smack-util.c | 2 +-
src/udev/udevd.c | 2 +- src/sleep/sleep.c | 8 ++++----
src/vconsole/vconsole-setup.c | 2 +- src/vconsole/vconsole-setup.c | 2 +-
17 files changed, 36 insertions(+), 36 deletions(-) 16 files changed, 34 insertions(+), 34 deletions(-)
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
index 7b5839ccd6..18f6e8ffc8 100644 index c9efd862a2..b3708ea925 100644
--- a/src/basic/cgroup-util.c --- a/src/basic/cgroup-util.c
+++ b/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c
@@ -860,7 +860,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) { @@ -766,7 +766,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
xsprintf(c, PID_FMT "\n", pid);
- r = write_string_file(fs, c, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(fs, c, 0);
if (r < 0)
return r;
@@ -1142,7 +1142,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
sc = strstrip(contents); sc = strstrip(contents);
if (isempty(sc)) { if (isempty(sc)) {
@@ -60,7 +51,7 @@ index 7b5839ccd6..18f6e8ffc8 100644
if (r < 0) if (r < 0)
return r; return r;
} else if (!path_equal(sc, agent)) } else if (!path_equal(sc, agent))
@@ -1160,7 +1160,7 @@ int cg_install_release_agent(const char *controller, const char *agent) { @@ -784,7 +784,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
sc = strstrip(contents); sc = strstrip(contents);
if (streq(sc, "0")) { if (streq(sc, "0")) {
@@ -69,7 +60,7 @@ index 7b5839ccd6..18f6e8ffc8 100644
if (r < 0) if (r < 0)
return r; return r;
@@ -1187,7 +1187,7 @@ int cg_uninstall_release_agent(const char *controller) { @@ -811,7 +811,7 @@ int cg_uninstall_release_agent(const char *controller) {
if (r < 0) if (r < 0)
return r; return r;
@@ -78,7 +69,7 @@ index 7b5839ccd6..18f6e8ffc8 100644
if (r < 0) if (r < 0)
return r; return r;
@@ -1197,7 +1197,7 @@ int cg_uninstall_release_agent(const char *controller) { @@ -821,7 +821,7 @@ int cg_uninstall_release_agent(const char *controller) {
if (r < 0) if (r < 0)
return r; return r;
@@ -87,7 +78,7 @@ index 7b5839ccd6..18f6e8ffc8 100644
if (r < 0) if (r < 0)
return r; return r;
@@ -2053,7 +2053,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri @@ -1651,7 +1651,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
if (r < 0) if (r < 0)
return r; return r;
@@ -96,17 +87,8 @@ index 7b5839ccd6..18f6e8ffc8 100644
} }
int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) { int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
@@ -2697,7 +2697,7 @@ int cg_enable_everywhere(
return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
}
- r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_stream(f, s, 0);
if (r < 0) {
log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
index 42ce53d5aa..57512532a6 100644 index 8c57094225..0cf6ec752b 100644
--- a/src/basic/procfs-util.c --- a/src/basic/procfs-util.c
+++ b/src/basic/procfs-util.c +++ b/src/basic/procfs-util.c
@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limit) { @@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limit) {
@@ -125,24 +107,24 @@ index 42ce53d5aa..57512532a6 100644
if (r < 0) { if (r < 0) {
uint64_t threads_max; uint64_t threads_max;
diff --git a/src/basic/smack-util.c b/src/basic/smack-util.c diff --git a/src/basic/sysctl-util.c b/src/basic/sysctl-util.c
index 123d00e13e..e7ea78f349 100644 index 8913e6ff85..29e6ec0755 100644
--- a/src/basic/smack-util.c --- a/src/basic/sysctl-util.c
+++ b/src/basic/smack-util.c +++ b/src/basic/sysctl-util.c
@@ -115,7 +115,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) { @@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
return 0;
p = procfs_file_alloca(pid, "attr/current"); log_debug("Setting '%s' to '%s'", p, value);
- r = write_string_file(p, label, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(p, label, 0);
if (r < 0)
return r;
- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER);
+ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | 0);
}
int sysctl_read(const char *property, char **ret) {
diff --git a/src/basic/util.c b/src/basic/util.c diff --git a/src/basic/util.c b/src/basic/util.c
index 93d610bc98..97dca64f73 100644 index 955b18bd2a..6d89c90176 100644
--- a/src/basic/util.c --- a/src/basic/util.c
+++ b/src/basic/util.c +++ b/src/basic/util.c
@@ -294,7 +294,7 @@ void disable_coredumps(void) { @@ -234,7 +234,7 @@ void disable_coredumps(void) {
if (detect_container() > 0) if (detect_container() > 0)
return; return;
@@ -152,7 +134,7 @@ index 93d610bc98..97dca64f73 100644
log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m"); log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
} }
diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
index aa9d811f2e..8c7f2dae7a 100644 index 29530bb691..3ecf6a45a2 100644
--- a/src/binfmt/binfmt.c --- a/src/binfmt/binfmt.c
+++ b/src/binfmt/binfmt.c +++ b/src/binfmt/binfmt.c
@@ -48,7 +48,7 @@ static int delete_rule(const char *rule) { @@ -48,7 +48,7 @@ static int delete_rule(const char *rule) {
@@ -173,7 +155,7 @@ index aa9d811f2e..8c7f2dae7a 100644
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to add binary format: %m"); return log_error_errno(r, "Failed to add binary format: %m");
@@ -213,7 +213,7 @@ static int run(int argc, char *argv[]) { @@ -223,7 +223,7 @@ static int run(int argc, char *argv[]) {
} }
/* Flush out all rules */ /* Flush out all rules */
@@ -183,10 +165,10 @@ index aa9d811f2e..8c7f2dae7a 100644
STRV_FOREACH(f, files) { STRV_FOREACH(f, files) {
k = apply_file(*f, true); k = apply_file(*f, true);
diff --git a/src/core/main.c b/src/core/main.c diff --git a/src/core/main.c b/src/core/main.c
index bcce7178a8..4199cedab9 100644 index c64c73883e..1ac185e946 100644
--- a/src/core/main.c --- a/src/core/main.c
+++ b/src/core/main.c +++ b/src/core/main.c
@@ -1285,7 +1285,7 @@ static int bump_unix_max_dgram_qlen(void) { @@ -1402,7 +1402,7 @@ static int bump_unix_max_dgram_qlen(void) {
if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN) if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN)
return 0; return 0;
@@ -195,7 +177,7 @@ index bcce7178a8..4199cedab9 100644
if (r < 0) if (r < 0)
return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r, return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r,
"Failed to bump AF_UNIX datagram queue length, ignoring: %m"); "Failed to bump AF_UNIX datagram queue length, ignoring: %m");
@@ -1509,7 +1509,7 @@ static void initialize_core_pattern(bool skip_setup) { @@ -1679,7 +1679,7 @@ static void initialize_core_pattern(bool skip_setup) {
if (getpid_cached() != 1) if (getpid_cached() != 1)
return; return;
@@ -205,10 +187,10 @@ index bcce7178a8..4199cedab9 100644
log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern); log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern);
} }
diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c
index b95e6239d4..fdbdaaaccb 100644 index 79c4808473..b111ce0a11 100644
--- a/src/core/smack-setup.c --- a/src/core/smack-setup.c
+++ b/src/core/smack-setup.c +++ b/src/core/smack-setup.c
@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) { @@ -323,17 +323,17 @@ int mac_smack_setup(bool *loaded_policy) {
} }
#ifdef SMACK_RUN_LABEL #ifdef SMACK_RUN_LABEL
@@ -231,7 +213,7 @@ index b95e6239d4..fdbdaaaccb 100644
log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m"); log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
#endif #endif
diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c
index 17e7cd1a00..87a7667716 100644 index 58e35e403e..1d0beb4008 100644
--- a/src/hibernate-resume/hibernate-resume.c --- a/src/hibernate-resume/hibernate-resume.c
+++ b/src/hibernate-resume/hibernate-resume.c +++ b/src/hibernate-resume/hibernate-resume.c
@@ -45,7 +45,7 @@ int main(int argc, char *argv[]) { @@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
@@ -244,36 +226,23 @@ index 17e7cd1a00..87a7667716 100644
log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor); log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor);
return EXIT_FAILURE; return EXIT_FAILURE;
diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
index c4a7f2f3d3..bcac758284 100644 index 388128bf33..695f535ff4 100644
--- a/src/libsystemd/sd-device/sd-device.c --- a/src/libsystemd/sd-device/sd-device.c
+++ b/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c
@@ -1849,7 +1849,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr, @@ -2096,7 +2096,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
if (!value) if (!value)
return -ENOMEM; return -ENOMEM;
- r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW); - r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW);
+ r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW); + r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW);
if (r < 0) { if (r < 0) {
if (r == -ELOOP) /* On failure, clear cache entry, as we do not know how it fails. */
return -EINVAL; device_remove_cached_sysattr_value(device, sysattr);
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index 30b9a66334..cc1d577933 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -1325,7 +1325,7 @@ static int trigger_device(Manager *m, sd_device *d) {
if (!t)
return -ENOMEM;
- (void) write_string_file(t, "change", WRITE_STRING_FILE_DISABLE_BUFFER);
+ (void) write_string_file(t, "change", 0);
}
return 0;
diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c
index 0462b46413..7c53d41483 100644 index cb01b25bc6..e92051268b 100644
--- a/src/nspawn/nspawn-cgroup.c --- a/src/nspawn/nspawn-cgroup.c
+++ b/src/nspawn/nspawn-cgroup.c +++ b/src/nspawn/nspawn-cgroup.c
@@ -123,7 +123,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) { @@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) {
fn = strjoina(tree, cgroup, "/cgroup.procs"); fn = strjoina(tree, cgroup, "/cgroup.procs");
sprintf(pid_string, PID_FMT, pid); sprintf(pid_string, PID_FMT, pid);
@@ -283,10 +252,10 @@ index 0462b46413..7c53d41483 100644
log_error_errno(r, "Failed to move process: %m"); log_error_errno(r, "Failed to move process: %m");
goto finish; goto finish;
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 2aec8041f0..841542f2f3 100644 index ff08ed23cc..e7c4a874a9 100644
--- a/src/nspawn/nspawn.c --- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c
@@ -2357,7 +2357,7 @@ static int reset_audit_loginuid(void) { @@ -2751,7 +2751,7 @@ static int reset_audit_loginuid(void) {
if (streq(p, "4294967295")) if (streq(p, "4294967295"))
return 0; return 0;
@@ -295,10 +264,54 @@ index 2aec8041f0..841542f2f3 100644
if (r < 0) { if (r < 0) {
log_error_errno(r, log_error_errno(r,
"Failed to reset audit login UID. This probably means that your kernel is too\n" "Failed to reset audit login UID. This probably means that your kernel is too\n"
@@ -3566,13 +3566,13 @@ static int setup_uid_map(pid_t pid) { @@ -4148,7 +4148,7 @@ static int setup_uid_map(
return log_oom();
xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
- r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(uid_map, s, 0);
if (r < 0)
return log_error_errno(r, "Failed to write UID map: %m");
@@ -4158,7 +4158,7 @@ static int setup_uid_map(
return log_oom();
xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid);
- r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(uid_map, s, 0);
if (r < 0)
return log_error_errno(r, "Failed to write GID map: %m");
diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c
index f197f715c7..077f893177 100644
--- a/src/shared/cgroup-setup.c
+++ b/src/shared/cgroup-setup.c
@@ -267,7 +267,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
xsprintf(c, PID_FMT "\n", pid);
- r = write_string_file(fs, c, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(fs, c, 0);
if (r < 0)
return r;
@@ -799,7 +799,7 @@ int cg_enable_everywhere(
return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
}
- r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_stream(f, s, 0);
if (r < 0) {
log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
diff --git a/src/shared/mount-util.c b/src/shared/mount-util.c
index 594efea989..d243b45bc4 100644
--- a/src/shared/mount-util.c
+++ b/src/shared/mount-util.c
@@ -1019,13 +1019,13 @@ static int make_userns(uid_t uid_shift, uid_t uid_range) {
xsprintf(line, UID_FMT " " UID_FMT " " UID_FMT "\n", 0, uid_shift, uid_range);
xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid); xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
xsprintf(line, UID_FMT " " UID_FMT " " UID_FMT "\n", 0, arg_uid_shift, arg_uid_range);
- r = write_string_file(uid_map, line, WRITE_STRING_FILE_DISABLE_BUFFER); - r = write_string_file(uid_map, line, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(uid_map, line, 0); + r = write_string_file(uid_map, line, 0);
if (r < 0) if (r < 0)
@@ -311,50 +324,42 @@ index 2aec8041f0..841542f2f3 100644
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to write GID map: %m"); return log_error_errno(r, "Failed to write GID map: %m");
diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c diff --git a/src/shared/smack-util.c b/src/shared/smack-util.c
index 93bdcf11bf..68cddb7a9f 100644 index 3362ee3924..80c0f2a52e 100644
--- a/src/shared/sysctl-util.c --- a/src/shared/smack-util.c
+++ b/src/shared/sysctl-util.c +++ b/src/shared/smack-util.c
@@ -88,7 +88,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c @@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
return 0;
log_debug("Setting '%s' to '%s'", p, value); p = procfs_file_alloca(pid, "attr/current");
- r = write_string_file(p, label, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(p, label, 0);
if (r < 0)
return r;
- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER);
+ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | 0);
}
int sysctl_read(const char *property, char **content) {
diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
index b9fe96635d..f168d7f890 100644 index a3aeb24633..d3e68e1b94 100644
--- a/src/sleep/sleep.c --- a/src/sleep/sleep.c
+++ b/src/sleep/sleep.c +++ b/src/sleep/sleep.c
@@ -54,7 +54,7 @@ static int write_hibernate_location_info(void) { @@ -46,7 +46,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
assert(hibernate_location->swap);
/* if it's a swap partition, we just write the disk to /sys/power/resume */ xsprintf(resume_str, "%u:%u", major(hibernate_location->devno), minor(hibernate_location->devno));
if (streq(type, "partition")) { - r = write_string_file("/sys/power/resume", resume_str, WRITE_STRING_FILE_DISABLE_BUFFER);
- r = write_string_file("/sys/power/resume", device, WRITE_STRING_FILE_DISABLE_BUFFER); + r = write_string_file("/sys/power/resume", resume_str, 0);
+ r = write_string_file("/sys/power/resume", device, 0); if (r < 0)
if (r < 0) return log_debug_errno(r, "Failed to write partition device to /sys/power/resume for '%s': '%s': %m",
return log_debug_errno(r, "Failed to write partition device to /sys/power/resume: %m"); hibernate_location->swap->device, resume_str);
@@ -73,7 +73,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
}
@@ -98,14 +98,14 @@ static int write_hibernate_location_info(void) { xsprintf(offset_str, "%" PRIu64, hibernate_location->offset);
offset = fiemap->fm_extents[0].fe_physical / page_size();
xsprintf(offset_str, "%" PRIu64, offset);
- r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER); - r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file("/sys/power/resume_offset", offset_str, 0); + r = write_string_file("/sys/power/resume_offset", offset_str, 0);
if (r < 0) if (r < 0)
return log_debug_errno(r, "Failed to write offset '%s': %m", offset_str); return log_debug_errno(r, "Failed to write swap file offset to /sys/power/resume_offset for '%s': '%s': %m",
hibernate_location->swap->device, offset_str);
log_debug("Wrote calculated resume_offset value to /sys/power/resume_offset: %s", offset_str); @@ -90,7 +90,7 @@ static int write_mode(char **modes) {
xsprintf(device_str, "%lx", (unsigned long)stb.st_dev);
- r = write_string_file("/sys/power/resume", device_str, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file("/sys/power/resume", device_str, 0);
if (r < 0)
return log_debug_errno(r, "Failed to write device '%s': %m", device_str);
@@ -121,7 +121,7 @@ static int write_mode(char **modes) {
STRV_FOREACH(mode, modes) { STRV_FOREACH(mode, modes) {
int k; int k;
@@ -363,7 +368,7 @@ index b9fe96635d..f168d7f890 100644
if (k >= 0) if (k >= 0)
return 0; return 0;
@@ -140,7 +140,7 @@ static int write_state(FILE **f, char **states) { @@ -112,7 +112,7 @@ static int write_state(FILE **f, char **states) {
STRV_FOREACH(state, states) { STRV_FOREACH(state, states) {
int k; int k;
@@ -372,37 +377,11 @@ index b9fe96635d..f168d7f890 100644
if (k >= 0) if (k >= 0)
return 0; return 0;
log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state); log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state);
diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c
index 77d95e513f..25ce4abfb1 100644
--- a/src/udev/udevadm-trigger.c
+++ b/src/udev/udevadm-trigger.c
@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerator *e, const char *action, Set *settle_se
if (!filename)
return log_oom();
- r = write_string_file(filename, action, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(filename, action, 0);
if (r < 0) {
log_full_errno(r == -ENOENT ? LOG_DEBUG : LOG_ERR, r,
"Failed to write '%s' to '%s': %m", action, filename);
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index cb5123042a..ea309a9e7f 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -1113,7 +1113,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) {
filename = strjoina(syspath, "/uevent");
log_device_debug(dev, "device is closed, synthesising 'change' on %s", syspath);
- r = write_string_file(filename, "change", WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(filename, "change", 0);
if (r < 0)
return log_device_debug_errno(dev, r, "Failed to write 'change' to %s: %m", filename);
return 0;
diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
index 75d052ae70..5a15c939d8 100644 index d1c3febdd5..1cc68694d1 100644
--- a/src/vconsole/vconsole-setup.c --- a/src/vconsole/vconsole-setup.c
+++ b/src/vconsole/vconsole-setup.c +++ b/src/vconsole/vconsole-setup.c
@@ -117,7 +117,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) { @@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
static int toggle_utf8_sysfs(bool utf8) { static int toggle_utf8_sysfs(bool utf8) {
int r; int r;
@@ -1,4 +1,7 @@
Handle __cpu_mask usage From 5fa412dcebe89fd9f6f6003163f17e0dc719df34 Mon Sep 17 00:00:00 2001
From: Scott Murray <scott.murray@konsulko.com>
Date: Fri, 13 Sep 2019 19:26:27 -0400
Subject: [PATCH] Handle __cpu_mask usage
Fixes errors: Fixes errors:
@@ -15,13 +18,14 @@ add a typedef to cpu-set-util.h defining __cpu_mask appropriately.
Upstream-Status: Inappropriate [musl specific] Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Scott Murray <scott.murray@konsulko.com> Signed-off-by: Scott Murray <scott.murray@konsulko.com>
--- ---
src/shared/cpu-set-util.h | 2 ++ src/shared/cpu-set-util.h | 2 ++
src/test/test-sizeof.c | 2 +- src/test/test-sizeof.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-) 2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
index 27812dfd59..f698f9df83 100644 index 3c63a58826..4c2d4347fc 100644
--- a/src/shared/cpu-set-util.h --- a/src/shared/cpu-set-util.h
+++ b/src/shared/cpu-set-util.h +++ b/src/shared/cpu-set-util.h
@@ -6,6 +6,8 @@ @@ -6,6 +6,8 @@
@@ -34,17 +38,17 @@ index 27812dfd59..f698f9df83 100644
typedef struct CPUSet { typedef struct CPUSet {
cpu_set_t *set; cpu_set_t *set;
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
index a710db5370..d1601ad929 100644 index 4403c0aa52..e7e4ae112d 100644
--- a/src/test/test-sizeof.c --- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c +++ b/src/test/test-sizeof.c
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include <sched.h> -#include <sched.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <sys/types.h>
@@ -8,6 +7,7 @@ @@ -10,6 +9,7 @@
#include <float.h> #include <float.h>
#include "time-util.h" #include "time-util.h"
@@ -0,0 +1,171 @@
From 4835f3ca2e277abd93e2d4a74ecfd7401f32862b Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Tue, 10 Mar 2020 11:05:20 +0000
Subject: [PATCH] Handle missing gshadow
gshadow usage is now present in the userdb code. Mask all uses of it to
allow compilation on musl
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
[Rebased for v247]
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
src/shared/user-record-nss.c | 20 ++++++++++++++++++++
src/shared/user-record-nss.h | 4 ++++
src/shared/userdb.c | 7 ++++++-
3 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/src/shared/user-record-nss.c b/src/shared/user-record-nss.c
index 88b8fc2f8f..a819d41bac 100644
--- a/src/shared/user-record-nss.c
+++ b/src/shared/user-record-nss.c
@@ -331,8 +331,10 @@ int nss_group_to_group_record(
if (isempty(grp->gr_name))
return -EINVAL;
+#if ENABLE_GSHADOW
if (sgrp && !streq_ptr(sgrp->sg_namp, grp->gr_name))
return -EINVAL;
+#endif
g = group_record_new();
if (!g)
@@ -348,6 +350,7 @@ int nss_group_to_group_record(
g->gid = grp->gr_gid;
+#if ENABLE_GSHADOW
if (sgrp) {
if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) {
g->hashed_password = strv_new(sgrp->sg_passwd);
@@ -363,6 +366,7 @@ int nss_group_to_group_record(
if (r < 0)
return r;
}
+#endif
r = json_build(&g->json, JSON_BUILD_OBJECT(
JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)),
@@ -388,6 +392,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
assert(ret_sgrp);
assert(ret_buffer);
+#if ENABLE_GSHADOW
for (;;) {
_cleanup_free_ char *buf = NULL;
struct sgrp sgrp, *result;
@@ -416,6 +421,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
buflen *= 2;
buf = mfree(buf);
}
+#else
+ return -ESRCH;
+#endif
}
int nss_group_record_by_name(
@@ -427,7 +435,9 @@ int nss_group_record_by_name(
struct group grp, *result;
bool incomplete = false;
size_t buflen = 4096;
+#if ENABLE_GSHADOW
struct sgrp sgrp, *sresult = NULL;
+#endif
int r;
assert(name);
@@ -457,6 +467,7 @@ int nss_group_record_by_name(
buf = mfree(buf);
}
+#if ENABLE_GSHADOW
if (with_shadow) {
r = nss_sgrp_for_group(result, &sgrp, &sbuf);
if (r < 0) {
@@ -468,6 +479,9 @@ int nss_group_record_by_name(
incomplete = true;
r = nss_group_to_group_record(result, sresult, ret);
+#else
+ r = nss_group_to_group_record(result, NULL, ret);
+#endif
if (r < 0)
return r;
@@ -484,7 +498,9 @@ int nss_group_record_by_gid(
struct group grp, *result;
bool incomplete = false;
size_t buflen = 4096;
+#if ENABLE_GSHADOW
struct sgrp sgrp, *sresult = NULL;
+#endif
int r;
assert(ret);
@@ -512,6 +528,7 @@ int nss_group_record_by_gid(
buf = mfree(buf);
}
+#if ENABLE_GSHADOW
if (with_shadow) {
r = nss_sgrp_for_group(result, &sgrp, &sbuf);
if (r < 0) {
@@ -523,6 +540,9 @@ int nss_group_record_by_gid(
incomplete = true;
r = nss_group_to_group_record(result, sresult, ret);
+#else
+ r = nss_group_to_group_record(result, NULL, ret);
+#endif
if (r < 0)
return r;
diff --git a/src/shared/user-record-nss.h b/src/shared/user-record-nss.h
index 22ab04d6ee..4e52e7a911 100644
--- a/src/shared/user-record-nss.h
+++ b/src/shared/user-record-nss.h
@@ -2,7 +2,11 @@
#pragma once
#include <grp.h>
+#if ENABLE_GSHADOW
#include <gshadow.h>
+#else
+struct sgrp;
+#endif
#include <pwd.h>
#include <shadow.h>
diff --git a/src/shared/userdb.c b/src/shared/userdb.c
index 91ac7c3832..20881ece84 100644
--- a/src/shared/userdb.c
+++ b/src/shared/userdb.c
@@ -1047,13 +1047,15 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
if (gr) {
_cleanup_free_ char *buffer = NULL;
bool incomplete = false;
+#if ENABLE_GSHADOW
struct sgrp sgrp;
-
+#endif
if (streq_ptr(gr->gr_name, "root"))
iterator->synthesize_root = false;
if (gr->gr_gid == GID_NOBODY)
iterator->synthesize_nobody = false;
+#if ENABLE_GSHADOW
if (!FLAGS_SET(iterator->flags, USERDB_SUPPRESS_SHADOW)) {
r = nss_sgrp_for_group(gr, &sgrp, &buffer);
if (r < 0) {
@@ -1066,6 +1068,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
}
r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
+#else
+ r = nss_group_to_group_record(gr, NULL, ret);
+#endif
if (r < 0)
return r;
@@ -0,0 +1,34 @@
From e90f18da3d2aef07ddd7d312ca8b34ff0324208e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 12 Apr 2021 23:44:53 -0700
Subject: [PATCH] missing_syscall.h: Define MIPS ABI defines for musl
musl does not define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32, _MIPS_SIM_ABI64
unlike glibc where these are provided by libc headers, therefore define
them here in case they are undefined
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/basic/missing_syscall.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
index 9e3a165857..4d59b3e7b0 100644
--- a/src/basic/missing_syscall.h
+++ b/src/basic/missing_syscall.h
@@ -20,6 +20,12 @@
#include <asm/sgidefs.h>
#endif
+#ifndef _MIPS_SIM_ABI32
+#define _MIPS_SIM_ABI32 1
+#define _MIPS_SIM_NABI32 2
+#define _MIPS_SIM_ABI64 3
+#endif
+
#include "missing_keyctl.h"
#include "missing_stat.h"
#include "missing_syscall_def.h"
@@ -0,0 +1,9 @@
--- a/src/libsystemd/libsystemd.pc.in
+++ b/src/libsystemd/libsystemd.pc.in
@@ -16,5 +16,5 @@ Name: systemd
Description: systemd Library
URL: {{PROJECT_URL}}
Version: {{PROJECT_VERSION}}
-Libs: -L${libdir} -lsystemd
+Libs: -L${libdir} -lsystemd -lrt -lmount -lcap
Cflags: -I${includedir}
@@ -8,14 +8,12 @@ LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
inherit meson pkgconfig inherit meson pkgconfig
DEPENDS += "gperf-native gettext-native util-linux libcap" DEPENDS += "gperf-native gettext-native util-linux libcap util-linux python3-jinja2-native"
SRCREV = "efb536d0cbe2e58f80e501d19999928c75e08f6a" SRCREV = "00b0393e65252bf631670604f58b844780b08c50"
SRCBRANCH = "v243-stable" SRCBRANCH = "v249-stable"
SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \ SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
file://static-libsystemd-pkgconfig.patch \ file://static-libsystemd-pkgconfig.patch \
file://7c5fd25119a495009ea62f79e5daec34cc464628.patch \
file://0001-basic-linux-Sync-if_arp.h-with-Linux-5.14.patch \
" "
# patches needed by musl # patches needed by musl
@@ -26,24 +24,25 @@ SRC_URI_MUSL = "\
file://0004-add-fallback-parse_printf_format-implementation.patch \ file://0004-add-fallback-parse_printf_format-implementation.patch \
file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \ file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \
file://0006-Include-netinet-if_ether.h.patch \ file://0006-Include-netinet-if_ether.h.patch \
file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch \ file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
file://0008-add-missing-FTW_-macros-for-musl.patch \ file://0008-add-missing-FTW_-macros-for-musl.patch \
file://0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch \ file://0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
file://0011-Use-uintmax_t-for-handling-rlim_t.patch \ file://0010-Use-uintmax_t-for-handling-rlim_t.patch \
file://0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \ file://0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
file://0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \ file://0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
file://0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch \ file://0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
file://0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \ file://0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
file://0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \ file://0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
file://0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \ file://0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
file://0020-missing_type.h-add-__compar_d_fn_t-definition.patch \ file://0017-missing_type.h-add-__compar_d_fn_t-definition.patch \
file://0021-avoid-redefinition-of-prctl_mm_map-structure.patch \ file://0018-avoid-redefinition-of-prctl_mm_map-structure.patch \
file://0024-test-json.c-define-M_PIl.patch \ file://0019-Handle-missing-LOCK_EX.patch \
file://0001-do-not-disable-buffer-in-writing-files.patch \ file://0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \
file://0002-src-login-brightness.c-include-sys-wait.h.patch \ file://0021-test-json.c-define-M_PIl.patch \
file://0003-src-basic-copy.c-include-signal.h.patch \ file://0022-do-not-disable-buffer-in-writing-files.patch \
file://0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch \ file://0025-Handle-__cpu_mask-usage.patch \
file://0001-meson-Fix-reallocarray-check.patch \ file://0026-Handle-missing-gshadow.patch \
file://0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \
" "
PACKAGECONFIG ??= "gshadow idn" PACKAGECONFIG ??= "gshadow idn"
@@ -51,6 +50,8 @@ PACKAGECONFIG:remove:libc-musl = " gshadow idn"
PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false" PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
PACKAGECONFIG[idn] = "-Didn=true,-Didn=false" PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
CFLAGS:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
EXTRA_OEMESON += "-Dstatic-libsystemd=pic" EXTRA_OEMESON += "-Dstatic-libsystemd=pic"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
@@ -58,6 +59,7 @@ S = "${WORKDIR}/git"
do_compile() { do_compile() {
ninja -v ${PARALLEL_MAKE} version.h ninja -v ${PARALLEL_MAKE} version.h
ninja -v ${PARALLEL_MAKE} libsystemd.a ninja -v ${PARALLEL_MAKE} libsystemd.a
ninja -v ${PARALLEL_MAKE} src/libsystemd/libsystemd.pc
} }
do_install () { do_install () {