X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnspawn%2Fnspawn.c;h=62dc20d82414433f8b0485670b28e937a3630fe6;hb=e985665d2d226cb42b52bfcad6fd5b1586ad57d7;hp=1f3bda5b4aded530b46484e6202cc0b0f3cd50e1;hpb=57cb4adf4ed61ab9eeb7f190f94d700a56bafad0;p=elogind.git diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 1f3bda5b4..62dc20d82 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -56,6 +56,7 @@ #include "sd-id128.h" #include "dev-setup.h" #include "fdset.h" +#include "build.h" typedef enum LinkJournal { LINK_NO, @@ -95,13 +96,16 @@ static uint64_t arg_retain = (1ULL << CAP_SYS_PTRACE) | (1ULL << CAP_SYS_TTY_CONFIG) | (1ULL << CAP_SYS_RESOURCE) | - (1ULL << CAP_SYS_BOOT); + (1ULL << CAP_SYS_BOOT) | + (1ULL << CAP_AUDIT_WRITE) | + (1ULL << CAP_AUDIT_CONTROL); static int help(void) { printf("%s [OPTIONS...] [PATH] [ARGUMENTS...]\n\n" "Spawn a minimal namespace container for debugging, testing and building.\n\n" " -h --help Show this help\n" + " --version Print version string\n" " -D --directory=NAME Root directory for the container\n" " -b --boot Boot up full system (i.e. invoke init)\n" " -u --user=USER Run the command under specified user or uid\n" @@ -120,7 +124,8 @@ static int help(void) { static int parse_argv(int argc, char *argv[]) { enum { - ARG_PRIVATE_NETWORK = 0x100, + ARG_VERSION = 0x100, + ARG_PRIVATE_NETWORK, ARG_UUID, ARG_READ_ONLY, ARG_CAPABILITY, @@ -129,6 +134,7 @@ static int parse_argv(int argc, char *argv[]) { static const struct option options[] = { { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, ARG_VERSION }, { "directory", required_argument, NULL, 'D' }, { "user", required_argument, NULL, 'u' }, { "controllers", required_argument, NULL, 'C' }, @@ -154,6 +160,11 @@ static int parse_argv(int argc, char *argv[]) { help(); return 0; + case ARG_VERSION: + puts(PACKAGE_STRING); + puts(SYSTEMD_FEATURES); + return 0; + case 'D': free(arg_directory); arg_directory = canonicalize_file_name(optarg);