From: Serge Hallyn Date: Thu, 27 Mar 2014 15:36:06 +0000 (-0500) Subject: move lxc-init to /sbin/init.lxc X-Git-Tag: lxc-1.1.0.alpha1~186 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=718e4f484272f73ae25e988fe361afd5a91d1ca5;p=thirdparty%2Flxc.git move lxc-init to /sbin/init.lxc Using the multiarch dir causes problems when running lxc-execute on amd64 with an i386 container. /sbin/lxc-init is a more confusing name and will show up in 'lxc'. /sbin/init.lxc should be quite obvious as an init for lxc. Signed-off-by: Serge Hallyn Acked-by: Stéphane Graber --- diff --git a/configure.ac b/configure.ac index e35284038..8f62c3522 100644 --- a/configure.ac +++ b/configure.ac @@ -470,6 +470,7 @@ AC_ARG_WITH([log-path], AS_AC_EXPAND(PREFIX, "$prefix") AS_AC_EXPAND(LIBDIR, "$libdir") AS_AC_EXPAND(BINDIR, "$bindir") +AS_AC_EXPAND(SBINDIR, "$sbindir") AS_AC_EXPAND(LIBEXECDIR, "$libexecdir") AS_AC_EXPAND(INCLUDEDIR, "$includedir") AS_AC_EXPAND(SYSCONFDIR, "$sysconfdir") diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am index e69c9a653..ab8a46e6a 100644 --- a/src/lxc/Makefile.am +++ b/src/lxc/Makefile.am @@ -121,7 +121,8 @@ AM_CFLAGS=-I$(top_srcdir)/src \ -DLXC_USERNIC_DB=\"$(LXC_USERNIC_DB)\" \ -DLXC_USERNIC_CONF=\"$(LXC_USERNIC_CONF)\" \ -DDEFAULT_CGROUP_PATTERN=\"$(DEFAULT_CGROUP_PATTERN)\" \ - -DRUNTIME_PATH=\"$(RUNTIME_PATH)\" + -DRUNTIME_PATH=\"$(RUNTIME_PATH)\" \ + -DSBINDIR=\"$(SBINDIR)\" if ENABLE_APPARMOR AM_CFLAGS += -DHAVE_APPARMOR @@ -198,8 +199,8 @@ bin_PROGRAMS = \ lxc-usernsexec \ lxc-wait +sbin_PROGRAMS = init.lxc pkglibexec_PROGRAMS = \ - lxc-init \ lxc-monitord \ lxc-user-nic @@ -218,7 +219,7 @@ lxc_destroy_SOURCES = lxc_destroy.c lxc_execute_SOURCES = lxc_execute.c lxc_freeze_SOURCES = lxc_freeze.c lxc_info_SOURCES = lxc_info.c -lxc_init_SOURCES = lxc_init.c +init_lxc_SOURCES = lxc_init.c lxc_monitor_SOURCES = lxc_monitor.c lxc_monitord_SOURCES = lxc_monitord.c lxc_clone_SOURCES = lxc_clone.c diff --git a/src/lxc/execute.c b/src/lxc/execute.c index b4f3ed945..9a84131a4 100644 --- a/src/lxc/execute.c +++ b/src/lxc/execute.c @@ -38,11 +38,8 @@ struct execute_args { int quiet; }; -/* historically lxc-init has been under /usr/lib/lxc. Now with - * multi-arch it can be under /usr/lib/$ARCH/lxc. Serge thinks - * it makes more sense to put it under /sbin. - * If /usr/lib/$ARCH/lxc exists and is used, then LXCINITDIR will - * point to it. +/* historically lxc-init has been under /usr/lib/lxc and under + * /usr/lib/$ARCH/lxc. It now lives as $prefix/sbin/init.lxc. */ static char *choose_init(void) { @@ -52,6 +49,15 @@ static char *choose_init(void) if (!retv) return NULL; + ret = snprintf(retv, PATH_MAX, SBINDIR "/init.lxc"); + if (ret < 0 || ret >= PATH_MAX) { + ERROR("pathname too long"); + goto out1; + } + ret = stat(retv, &mystat); + if (ret == 0) + return retv; + ret = snprintf(retv, PATH_MAX, LXCINITDIR "/lxc/lxc-init"); if (ret < 0 || ret >= PATH_MAX) { ERROR("pathname too long");