[lxc-devel] [PATCH 1/1] move lxc-init to /sbin/init.lxc

Stéphane Graber stgraber at ubuntu.com
Thu Mar 27 18:23:42 UTC 2014


On Thu, Mar 27, 2014 at 10:36:06AM -0500, Serge Hallyn wrote:
> 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 at ubuntu.com>

Acked-by: Stéphane Graber <stgraber at ubuntu.com>

> ---
>  configure.ac        |  1 +
>  src/lxc/Makefile.am |  7 ++++---
>  src/lxc/execute.c   | 16 +++++++++++-----
>  3 files changed, 16 insertions(+), 8 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index e352840..8f62c35 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 e69c9a6..ab8a46e 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 b4f3ed9..9a84131 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");
> -- 
> 1.9.1
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel

-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20140327/5ba42f3d/attachment.pgp>


More information about the lxc-devel mailing list