summaryrefslogtreecommitdiff
path: root/src/systemd-nspawn
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemd-nspawn')
-rw-r--r--src/systemd-nspawn/Makefile85
-rw-r--r--src/systemd-nspawn/nspawn-cgroup.c17
-rw-r--r--src/systemd-nspawn/nspawn-expose-ports.c22
-rw-r--r--src/systemd-nspawn/nspawn-expose-ports.h6
-rw-r--r--src/systemd-nspawn/nspawn-mount.c34
-rw-r--r--src/systemd-nspawn/nspawn-network.c28
-rw-r--r--src/systemd-nspawn/nspawn-patch-uid.c1
-rw-r--r--src/systemd-nspawn/nspawn-register.c13
-rw-r--r--src/systemd-nspawn/nspawn-settings.c21
-rw-r--r--src/systemd-nspawn/nspawn-settings.h3
-rw-r--r--src/systemd-nspawn/nspawn-setuid.c17
-rw-r--r--src/systemd-nspawn/nspawn-stub-pid1.c13
-rw-r--r--src/systemd-nspawn/nspawn.c4
-rw-r--r--src/systemd-nspawn/test-patch-uid.c7
14 files changed, 184 insertions, 87 deletions
diff --git a/src/systemd-nspawn/Makefile b/src/systemd-nspawn/Makefile
new file mode 100644
index 0000000000..d6f928ebd6
--- /dev/null
+++ b/src/systemd-nspawn/Makefile
@@ -0,0 +1,85 @@
+# -*- Mode: makefile; indent-tabs-mode: t -*-
+#
+# This file is part of systemd.
+#
+# Copyright 2010-2012 Lennart Poettering
+# Copyright 2010-2012 Kay Sievers
+# Copyright 2013 Zbigniew Jędrzejewski-Szmek
+# Copyright 2013 David Strauss
+# Copyright 2016 Luke Shumaker
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk
+include $(topsrcdir)/build-aux/Makefile.head.mk
+
+bin_PROGRAMS += systemd-nspawn
+systemd_nspawn_SOURCES = \
+ src/nspawn/nspawn.c \
+ src/nspawn/nspawn-settings.c \
+ src/nspawn/nspawn-settings.h \
+ src/nspawn/nspawn-mount.c \
+ src/nspawn/nspawn-mount.h \
+ src/nspawn/nspawn-network.c \
+ src/nspawn/nspawn-network.h \
+ src/nspawn/nspawn-expose-ports.c \
+ src/nspawn/nspawn-expose-ports.h \
+ src/nspawn/nspawn-cgroup.c \
+ src/nspawn/nspawn-cgroup.h \
+ src/nspawn/nspawn-register.c \
+ src/nspawn/nspawn-register.h \
+ src/nspawn/nspawn-setuid.c \
+ src/nspawn/nspawn-setuid.h \
+ src/nspawn/nspawn-stub-pid1.c \
+ src/nspawn/nspawn-stub-pid1.h \
+ src/nspawn/nspawn-patch-uid.c \
+ src/nspawn/nspawn-patch-uid.h \
+ src/core/mount-setup.c \
+ src/core/mount-setup.h \
+ src/core/loopback-setup.c \
+ src/core/loopback-setup.h \
+ src/core/machine-id-setup.c \
+ src/core/machine-id-setup.h
+
+nodist_systemd_nspawn_SOURCES = \
+ src/nspawn/nspawn-gperf.c
+
+gperf_gperf_sources += \
+ src/nspawn/nspawn-gperf.gperf
+
+systemd_nspawn_CFLAGS = \
+ $(AM_CFLAGS) \
+ $(BLKID_CFLAGS) \
+ $(SECCOMP_CFLAGS)
+
+systemd_nspawn_LDADD = \
+ libshared.la \
+ $(BLKID_LIBS)
+
+ifneq ($(HAVE_LIBIPTC),)
+systemd_nspawn_LDADD += \
+ libfirewall.la
+endif # HAVE_LIBIPTC
+
+test_patch_uid_SOURCES = \
+ src/nspawn/nspawn-patch-uid.c \
+ src/nspawn/nspawn-patch-uid.h \
+ src/nspawn/test-patch-uid.c
+
+test_patch_uid_LDADD = \
+ libshared.la
+
+manual_tests += \
+ test-patch-uid
+
+include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/systemd-nspawn/nspawn-cgroup.c b/src/systemd-nspawn/nspawn-cgroup.c
index f50f1ad6c2..d0e2de2345 100644
--- a/src/systemd-nspawn/nspawn-cgroup.c
+++ b/src/systemd-nspawn/nspawn-cgroup.c
@@ -19,15 +19,16 @@
#include <sys/mount.h>
-#include "alloc-util.h"
-#include "cgroup-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "mkdir.h"
+#include "basic/alloc-util.h"
+#include "basic/cgroup-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/mkdir.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/util.h"
+
#include "nspawn-cgroup.h"
-#include "string-util.h"
-#include "strv.h"
-#include "util.h"
int chown_cgroup(pid_t pid, uid_t uid_shift) {
_cleanup_free_ char *path = NULL, *fs = NULL;
diff --git a/src/systemd-nspawn/nspawn-expose-ports.c b/src/systemd-nspawn/nspawn-expose-ports.c
index 8122a14f7b..6c9dbf4508 100644
--- a/src/systemd-nspawn/nspawn-expose-ports.c
+++ b/src/systemd-nspawn/nspawn-expose-ports.c
@@ -17,19 +17,19 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include <systemd/sd-netlink.h>
-
-#include "alloc-util.h"
-#include "fd-util.h"
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/in-addr-util.h"
+#include "basic/parse-util.h"
+#include "basic/socket-util.h"
+#include "basic/string-util.h"
+#include "basic/util.h"
#include "firewall-util.h"
-#include "in-addr-util.h"
-#include "local-addresses.h"
-#include "netlink-util.h"
+#include "sd-netlink/local-addresses.h"
+#include "sd-netlink/netlink-util.h"
+#include "sd-netlink/sd-netlink.h"
+
#include "nspawn-expose-ports.h"
-#include "parse-util.h"
-#include "socket-util.h"
-#include "string-util.h"
-#include "util.h"
int expose_port_parse(ExposePort **l, const char *s) {
diff --git a/src/systemd-nspawn/nspawn-expose-ports.h b/src/systemd-nspawn/nspawn-expose-ports.h
index 0e9f8f7e88..2c0a5ecc88 100644
--- a/src/systemd-nspawn/nspawn-expose-ports.h
+++ b/src/systemd-nspawn/nspawn-expose-ports.h
@@ -22,10 +22,10 @@
#include <inttypes.h>
#include <systemd/sd-event.h>
-#include <systemd/sd-netlink.h>
-#include "in-addr-util.h"
-#include "list.h"
+#include "basic/in-addr-util.h"
+#include "basic/list.h"
+#include "sd-netlink/sd-netlink.h"
typedef struct ExposePort {
int protocol;
diff --git a/src/systemd-nspawn/nspawn-mount.c b/src/systemd-nspawn/nspawn-mount.c
index 8e2d2d543c..d8ca696f21 100644
--- a/src/systemd-nspawn/nspawn-mount.c
+++ b/src/systemd-nspawn/nspawn-mount.c
@@ -18,25 +18,27 @@
***/
#include <sys/mount.h>
+
#include <linux/magic.h>
-#include "alloc-util.h"
-#include "cgroup-util.h"
-#include "escape.h"
-#include "fs-util.h"
-#include "label.h"
-#include "mkdir.h"
-#include "mount-util.h"
+#include "basic/alloc-util.h"
+#include "basic/cgroup-util.h"
+#include "basic/escape.h"
+#include "basic/fs-util.h"
+#include "basic/label.h"
+#include "basic/mkdir.h"
+#include "basic/mount-util.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/rm-rf.h"
+#include "basic/set.h"
+#include "basic/stat-util.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/user-util.h"
+#include "basic/util.h"
+
#include "nspawn-mount.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "rm-rf.h"
-#include "set.h"
-#include "stat-util.h"
-#include "string-util.h"
-#include "strv.h"
-#include "user-util.h"
-#include "util.h"
CustomMount* custom_mount_add(CustomMount **l, unsigned *n, CustomMountType t) {
CustomMount *c, *ret;
diff --git a/src/systemd-nspawn/nspawn-network.c b/src/systemd-nspawn/nspawn-network.c
index 7052fb5804..f27b6c4105 100644
--- a/src/systemd-nspawn/nspawn-network.c
+++ b/src/systemd-nspawn/nspawn-network.c
@@ -17,24 +17,26 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include <linux/veth.h>
#include <net/if.h>
-#include "libudev.h"
+#include <linux/veth.h>
+
+#include <libudev.h>
#include <systemd/sd-id128.h>
-#include <systemd/sd-netlink.h>
-#include "alloc-util.h"
-#include "ether-addr-util.h"
-#include "lockfile-util.h"
-#include "netlink-util.h"
+#include "basic/alloc-util.h"
+#include "basic/ether-addr-util.h"
+#include "basic/lockfile-util.h"
+#include "basic/siphash24.h"
+#include "basic/socket-util.h"
+#include "basic/stat-util.h"
+#include "basic/string-util.h"
+#include "basic/util.h"
+#include "sd-netlink/netlink-util.h"
+#include "sd-netlink/sd-netlink.h"
+#include "shared/udev-util.h"
+
#include "nspawn-network.h"
-#include "siphash24.h"
-#include "socket-util.h"
-#include "stat-util.h"
-#include "string-util.h"
-#include "udev-util.h"
-#include "util.h"
#define HOST_HASH_KEY SD_ID128_MAKE(1a,37,6f,c7,46,ec,45,0b,ad,a3,d5,31,06,60,5d,b1)
#define CONTAINER_HASH_KEY SD_ID128_MAKE(c3,c4,f9,19,b5,57,b2,1c,e6,cf,14,27,03,9c,ee,a2)
diff --git a/src/systemd-nspawn/nspawn-patch-uid.c b/src/systemd-nspawn/nspawn-patch-uid.c
index c7382d412d..998bd9725d 100644
--- a/src/systemd-nspawn/nspawn-patch-uid.c
+++ b/src/systemd-nspawn/nspawn-patch-uid.c
@@ -18,6 +18,7 @@
***/
#include <fcntl.h>
+
#include <linux/magic.h>
#ifdef HAVE_ACL
#include <sys/acl.h>
diff --git a/src/systemd-nspawn/nspawn-register.c b/src/systemd-nspawn/nspawn-register.c
index adef200cb5..f1ed51e8b8 100644
--- a/src/systemd-nspawn/nspawn-register.c
+++ b/src/systemd-nspawn/nspawn-register.c
@@ -19,13 +19,14 @@
#include <systemd/sd-bus.h>
-#include "bus-error.h"
-#include "bus-unit-util.h"
-#include "bus-util.h"
+#include "basic/stat-util.h"
+#include "basic/strv.h"
+#include "basic/util.h"
+#include "sd-bus/bus-error.h"
+#include "shared/bus-unit-util.h"
+#include "shared/bus-util.h"
+
#include "nspawn-register.h"
-#include "stat-util.h"
-#include "strv.h"
-#include "util.h"
int register_machine(
const char *machine_name,
diff --git a/src/systemd-nspawn/nspawn-settings.c b/src/systemd-nspawn/nspawn-settings.c
index 5f1522cfb6..f05c671946 100644
--- a/src/systemd-nspawn/nspawn-settings.c
+++ b/src/systemd-nspawn/nspawn-settings.c
@@ -17,18 +17,19 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include "alloc-util.h"
-#include "cap-list.h"
-#include "conf-parser.h"
+#include "basic/alloc-util.h"
+#include "basic/cap-list.h"
+#include "basic/parse-util.h"
+#include "basic/process-util.h"
+#include "basic/socket-util.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/user-util.h"
+#include "basic/util.h"
+#include "shared/conf-parser.h"
+
#include "nspawn-network.h"
#include "nspawn-settings.h"
-#include "parse-util.h"
-#include "process-util.h"
-#include "socket-util.h"
-#include "string-util.h"
-#include "strv.h"
-#include "user-util.h"
-#include "util.h"
int settings_load(FILE *f, const char *path, Settings **ret) {
_cleanup_(settings_freep) Settings *s = NULL;
diff --git a/src/systemd-nspawn/nspawn-settings.h b/src/systemd-nspawn/nspawn-settings.h
index 1c47e37912..95e70d5fa4 100644
--- a/src/systemd-nspawn/nspawn-settings.h
+++ b/src/systemd-nspawn/nspawn-settings.h
@@ -21,7 +21,8 @@
#include <stdio.h>
-#include "macro.h"
+#include "basic/macro.h"
+
#include "nspawn-expose-ports.h"
#include "nspawn-mount.h"
diff --git a/src/systemd-nspawn/nspawn-setuid.c b/src/systemd-nspawn/nspawn-setuid.c
index ee15a47e93..38ca9e2e24 100644
--- a/src/systemd-nspawn/nspawn-setuid.c
+++ b/src/systemd-nspawn/nspawn-setuid.c
@@ -21,15 +21,16 @@
#include <sys/types.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "fd-util.h"
-#include "mkdir.h"
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/mkdir.h"
+#include "basic/process-util.h"
+#include "basic/signal-util.h"
+#include "basic/string-util.h"
+#include "basic/user-util.h"
+#include "basic/util.h"
+
#include "nspawn-setuid.h"
-#include "process-util.h"
-#include "signal-util.h"
-#include "string-util.h"
-#include "user-util.h"
-#include "util.h"
static int spawn_getent(const char *database, const char *key, pid_t *rpid) {
int pipe_fds[2];
diff --git a/src/systemd-nspawn/nspawn-stub-pid1.c b/src/systemd-nspawn/nspawn-stub-pid1.c
index 2de87e3c63..86783b6136 100644
--- a/src/systemd-nspawn/nspawn-stub-pid1.c
+++ b/src/systemd-nspawn/nspawn-stub-pid1.c
@@ -21,13 +21,14 @@
#include <sys/unistd.h>
#include <sys/wait.h>
-#include "fd-util.h"
-#include "log.h"
+#include "basic/def.h"
+#include "basic/fd-util.h"
+#include "basic/log.h"
+#include "basic/process-util.h"
+#include "basic/signal-util.h"
+#include "basic/time-util.h"
+
#include "nspawn-stub-pid1.h"
-#include "process-util.h"
-#include "signal-util.h"
-#include "time-util.h"
-#include "def.h"
int stub_pid1(void) {
enum {
diff --git a/src/systemd-nspawn/nspawn.c b/src/systemd-nspawn/nspawn.c
index bdf054e5c6..8ec058431b 100644
--- a/src/systemd-nspawn/nspawn.c
+++ b/src/systemd-nspawn/nspawn.c
@@ -43,8 +43,8 @@
#include <sys/types.h>
#include <unistd.h>
-#include <systemd/sd-daemon.h>
-#include <systemd/sd-id128.h>
+#include "sd-daemon.h"
+#include "sd-id128.h"
#include "alloc-util.h"
#include "barrier.h"
diff --git a/src/systemd-nspawn/test-patch-uid.c b/src/systemd-nspawn/test-patch-uid.c
index 11c5321788..e751e0ec95 100644
--- a/src/systemd-nspawn/test-patch-uid.c
+++ b/src/systemd-nspawn/test-patch-uid.c
@@ -19,10 +19,11 @@
#include <stdlib.h>
-#include "log.h"
+#include "basic/log.h"
+#include "basic/user-util.h"
+#include "basic/util.h"
+
#include "nspawn-patch-uid.h"
-#include "user-util.h"
-#include "util.h"
int main(int argc, char *argv[]) {
uid_t shift, range;