Skip to content

Commit

Permalink
move lxc-init to /sbin/init.lxc
Browse files Browse the repository at this point in the history
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<tab>'.  /sbin/init.lxc should be quite
obvious as an init for lxc.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
  • Loading branch information
hallyn authored and stgraber committed Mar 27, 2014
1 parent cd698bd commit 718e4f4
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
1 change: 1 addition & 0 deletions configure.ac
Expand Up @@ -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")
Expand Down
7 changes: 4 additions & 3 deletions src/lxc/Makefile.am
Expand Up @@ -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
Expand Down Expand Up @@ -198,8 +199,8 @@ bin_PROGRAMS = \
lxc-usernsexec \
lxc-wait

sbin_PROGRAMS = init.lxc
pkglibexec_PROGRAMS = \
lxc-init \
lxc-monitord \
lxc-user-nic

Expand All @@ -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
Expand Down
16 changes: 11 additions & 5 deletions src/lxc/execute.c
Expand Up @@ -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)
{
Expand All @@ -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");
Expand Down

0 comments on commit 718e4f4

Please sign in to comment.