Split out of #37344.
/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include "alloc-util.h"
#include "fd-util.h"
#include "fuzz.h"
#include "nspawn-oci.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include "alloc-util.h"
#include "fd-util.h"
#include "fuzz.h"
#include "nspawn-settings.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <grp.h>
+#include <pwd.h>
+#include <unistd.h>
+
#include "alloc-util.h"
#include "chase.h"
#include "fd-util.h"
#include "format-util.h"
#include "json-util.h"
#include "log.h"
+#include "nspawn-mount.h"
#include "nspawn.h"
#include "nspawn-bind-user.h"
#include "path-util.h"
+#include "string-util.h"
+#include "strv.h"
#include "user-util.h"
#include "userdb.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include "group-record.h"
-#include "nspawn-mount.h"
-#include "user-record.h"
+#include "forward.h"
+
+typedef struct CustomMount CustomMount;
typedef struct BindUserData {
/* The host's user/group records */
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/mount.h>
+#include <unistd.h>
#include "alloc-util.h"
#include "cgroup-setup.h"
#include "chase.h"
#include "fd-util.h"
#include "format-util.h"
-#include "fs-util.h"
-#include "mkdir.h"
+#include "log.h"
#include "mount-setup.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "nsresource.h"
#include "path-util.h"
#include "string-util.h"
+#include "strv.h"
static int chown_cgroup_path(const char *path, uid_t uid_shift) {
_cleanup_close_ int fd = -EBADF;
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <stdbool.h>
-#include <sys/types.h>
-
+#include "forward.h"
#include "nspawn-settings.h"
int create_subcgroup(
#include "firewall-util.h"
#include "in-addr-util.h"
#include "local-addresses.h"
-#include "netlink-util.h"
+#include "log.h"
#include "nspawn-expose-ports.h"
#include "parse-util.h"
#include "socket-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <inttypes.h>
-
-#include "sd-event.h"
-#include "sd-netlink.h"
-
#include "firewall-util.h"
-#include "in-addr-util.h"
+#include "forward.h"
#include "list.h"
typedef struct ExposePort {
#include <stddef.h>
#include "conf-parser.h"
#include "nspawn-settings.h"
-#include "nspawn-expose-ports.h"
%}
struct ConfigPerfItem;
%null_strings
#include "alloc-util.h"
#include "chase.h"
#include "escape.h"
+#include "extract-word.h"
#include "fd-util.h"
#include "format-util.h"
#include "fs-util.h"
-#include "label-util.h"
#include "log.h"
#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "namespace-util.h"
#include "nspawn-mount.h"
-#include "parse-util.h"
#include "path-util.h"
#include "rm-rf.h"
-#include "set.h"
#include "sort-util.h"
#include "stat-util.h"
#include "string-util.h"
#include "strv.h"
#include "tmpfile-util.h"
-#include "user-util.h"
CustomMount* custom_mount_add(CustomMount **l, size_t *n, CustomMountType t) {
CustomMount *ret;
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <stdbool.h>
-#include <stddef.h>
-#include <sys/types.h>
-
+#include "forward.h"
#include "volatile-util.h"
typedef enum MountSettingsMask {
#include "ether-addr-util.h"
#include "extract-word.h"
#include "fd-util.h"
-#include "hexdecoct.h"
#include "lock-util.h"
-#include "missing_network.h"
#include "mkdir.h"
#include "mount-util.h"
#include "namespace-util.h"
-#include "netif-naming-scheme.h"
#include "netif-util.h"
#include "netlink-util.h"
#include "nspawn-network.h"
-#include "parse-util.h"
#include "process-util.h"
-#include "siphash24.h"
-#include "socket-netlink.h"
#include "socket-util.h"
#include "stat-util.h"
#include "string-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <net/if.h>
-#include <stdbool.h>
-#include <sys/types.h>
+#include <linux/if.h>
-#include "ether-addr-util.h"
+#include "forward.h"
int test_network_interfaces_initialized(char **iface_pairs);
int resolve_network_interface_names(char **iface_pairs);
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/oom.h>
+#include <sys/stat.h>
+#include "sd-bus.h"
#include "sd-json.h"
#include "alloc-util.h"
#include "bus-util.h"
#include "cap-list.h"
+#include "cgroup-util.h"
#include "cpu-set-util.h"
#include "device-util.h"
#include "devnum-util.h"
#include "env-util.h"
-#include "format-util.h"
-#include "fs-util.h"
#include "hostname-util.h"
#include "json-util.h"
-#include "missing_sched.h"
+#include "nspawn-mount.h"
#include "nspawn-oci.h"
#include "path-util.h"
#include "rlimit-util.h"
-#include "seccomp-util.h"
-#include "stdio-util.h"
#include "string-util.h"
#include "strv.h"
-#include "user-util.h"
+#include "time-util.h"
/* TODO:
* OCI runtime tool implementation
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
+#include "forward.h"
#include "nspawn-settings.h"
int oci_load(FILE *f, const char *path, Settings **ret);
#include "bus-unit-util.h"
#include "bus-util.h"
#include "bus-wait-for-jobs.h"
+#include "nspawn-mount.h"
#include "nspawn-register.h"
#include "nspawn-settings.h"
+#include "pidref.h"
#include "special.h"
#include "stat-util.h"
-#include "strv.h"
+#include "string-util.h"
+#include "unit-name.h"
static int append_machine_properties(
sd_bus_message *m,
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <sys/types.h>
-
-#include "sd-id128.h"
-
-#include "nspawn-mount.h"
+#include "forward.h"
#include "nspawn-settings.h"
typedef enum RegisterMachineFlags {
/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include <errno.h>
+#include <linux/capability.h>
#include <linux/netlink.h>
-#include <sys/capability.h>
#include <sys/socket.h>
-#include <sys/types.h>
-#include "alloc-util.h"
#include "log.h"
#include "nspawn-seccomp.h"
#include "seccomp-util.h"
-#include "string-util.h"
#include "strv.h"
#if HAVE_SECCOMP
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <stdint.h>
+#include "forward.h"
int setup_seccomp(uint64_t cap_list_retain, char **syscall_allow_list, char **syscall_deny_list);
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include "sd-bus.h"
+
#include "alloc-util.h"
#include "cap-list.h"
#include "conf-parser.h"
#include "cpu-set-util.h"
-#include "hostname-util.h"
+#include "extract-word.h"
#include "namespace-util.h"
+#include "nspawn-expose-ports.h"
+#include "nspawn-mount.h"
#include "nspawn-network.h"
#include "nspawn-settings.h"
#include "parse-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <sched.h>
-#include <stdio.h>
-
-#include "sd-bus.h"
#include "sd-id128.h"
#include "capability-util.h"
-#include "conf-parser.h"
+#include "conf-parser-forward.h"
#include "cpu-set-util.h"
-#include "macro.h"
-#include "nspawn-expose-ports.h"
-#include "nspawn-mount.h"
+#include "forward.h"
#include "rlimit-util.h"
#include "seccomp-util.h"
-#include "time-util.h"
+#include "volatile-util.h"
+
+typedef struct CustomMount CustomMount;
+typedef struct ExposePort ExposePort;
typedef enum StartMode {
START_PID1, /* Run parameters as command line as process 1 */
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
-#include <sys/types.h>
#include <unistd.h>
#include "alloc-util.h"
-#include "constants.h"
#include "errno.h"
#include "extract-word.h"
#include "fd-util.h"
#include "mkdir.h"
#include "nspawn-setuid.h"
#include "process-util.h"
-#include "signal-util.h"
#include "string-util.h"
#include "strv.h"
#include "user-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <stdbool.h>
-#include <sys/types.h>
+#include "forward.h"
int change_uid_gid_raw(uid_t uid, gid_t gid, const gid_t *supplementary_gids, size_t n_supplementary_gids, bool chown_stdio);
int change_uid_gid(const char *user, bool chown_stdio, char **ret_home);
#include "sd-id128.h"
+#include "forward.h"
+
int stub_pid1(sd_id128_t uuid);
/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include <errno.h>
#include <getopt.h>
-#include <linux/fs.h>
-#include <linux/fuse.h>
#include <linux/loop.h>
+#include <net/if.h>
#include <stdlib.h>
#include <sys/file.h>
#include <sys/ioctl.h>
#include <sys/mount.h>
#include <sys/personality.h>
#include <sys/prctl.h>
-#include <sys/types.h>
#include <sys/wait.h>
-#include <termios.h>
#include <unistd.h>
+#include "constants.h"
#if HAVE_SELINUX
#include <selinux/selinux.h>
#include "sd-bus.h"
#include "sd-daemon.h"
+#include "sd-event.h"
#include "sd-id128.h"
+#include "sd-netlink.h"
#include "alloc-util.h"
#include "barrier.h"
#include "cgroup-setup.h"
#include "cgroup-util.h"
#include "chase.h"
-#include "chattr-util.h"
#include "common-signal.h"
#include "copy.h"
#include "cpu-set-util.h"
#include "env-util.h"
#include "escape.h"
#include "ether-addr-util.h"
+#include "extract-word.h"
#include "fd-util.h"
#include "fdset.h"
#include "fileio.h"
#include "format-util.h"
#include "fs-util.h"
#include "gpt.h"
+#include "group-record.h"
#include "hexdecoct.h"
#include "hostname-setup.h"
#include "hostname-util.h"
#include "id128-util.h"
+#include "image-policy.h"
+#include "in-addr-util.h"
#include "io-util.h"
#include "log.h"
#include "loop-util.h"
#include "loopback-setup.h"
#include "machine-credential.h"
-#include "macro.h"
#include "main-func.h"
+#include "missing_keyctl.h"
+#include "missing_syscall.h"
#include "mkdir.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "namespace-util.h"
#include "notify-recv.h"
-#include "nspawn.h"
#include "nspawn-bind-user.h"
#include "nspawn-cgroup.h"
#include "nspawn-expose-ports.h"
#include "nspawn-settings.h"
#include "nspawn-setuid.h"
#include "nspawn-stub-pid1.h"
+#include "nspawn.h"
#include "nsresource.h"
-#include "nulstr-util.h"
#include "os-util.h"
#include "osc-context.h"
#include "pager.h"
#include "parse-argument.h"
#include "parse-util.h"
+#include "path-util.h"
+#include "pidref.h"
#include "pretty-print.h"
#include "process-util.h"
#include "ptyfwd.h"
#include "resolve-util.h"
#include "rlimit-util.h"
#include "rm-rf.h"
+#include "runtime-scope.h"
#include "seccomp-util.h"
#include "shift-uid.h"
#include "signal-util.h"
+#include "siphash24.h"
#include "socket-util.h"
#include "stat-util.h"
#include "stdio-util.h"
#include "uid-classification.h"
#include "umask-util.h"
#include "unit-name.h"
+#include "user-record.h"
#include "user-util.h"
#include "vpick.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
-#include <sys/types.h>
+#include "forward.h"
int userns_lchown(const char *p, uid_t uid, gid_t gid);
int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid_t gid);