[lxc-devel] [PATCH] Add --with-runtime-path to configure

Serge Hallyn serge.hallyn at ubuntu.com
Tue Feb 11 23:24:30 UTC 2014


Quoting Stéphane Graber (stgraber at ubuntu.com):
> This allows older distros to override /run with whatever their own path
> is, mostly useful for old RedHat and possibly Android.
> 
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

> ---
>  config/init/upstart/lxc-net.conf |  2 +-
>  configure.ac                     | 10 +++++++++-
>  src/lxc/Makefile.am              |  3 ++-
>  src/lxc/utils.c                  |  2 +-
>  src/tests/Makefile.am            |  3 ++-
>  src/tests/locktests.c            |  6 ++----
>  src/tests/lxc-test-unpriv        |  4 +++-
>  src/tests/lxc-test-usernic.in    |  4 +++-
>  8 files changed, 23 insertions(+), 11 deletions(-)
> 
> diff --git a/config/init/upstart/lxc-net.conf b/config/init/upstart/lxc-net.conf
> index 3ae3e95..86e9a71 100644
> --- a/config/init/upstart/lxc-net.conf
> +++ b/config/init/upstart/lxc-net.conf
> @@ -12,7 +12,7 @@ env LXC_NETWORK="10.0.3.0/24"
>  env LXC_DHCP_RANGE="10.0.3.2,10.0.3.254"
>  env LXC_DHCP_MAX="253"
>  env LXC_DHCP_CONFILE=""
> -env varrun="/var/run/lxc"
> +env varrun="/run/lxc"
>  env LXC_DOMAIN=""
>  
>  pre-start script
> diff --git a/configure.ac b/configure.ac
> index b07ac14..5346ba2 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -397,6 +397,13 @@ AC_ARG_ENABLE([tests],
>  	[], [enable_tests=no])
>  AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = "xyes"])
>  
> +# Allow overriding the default runtime dir (/run)
> +AC_ARG_WITH([runtime-path],
> +	[AC_HELP_STRING(
> +		[--with-runtime-path=dir],
> +		[runtime directory (default: /run)]
> +	)], [], [with_runtime_path=['/run']])
> +
>  # LXC container path, where the containers are actually stored
>  # This is overridden by an entry in the file called LXCCONF
>  # (i.e. /etc/lxc/lxc.conf)
> @@ -425,7 +432,7 @@ AC_ARG_WITH([usernic-db],
>  	[AC_HELP_STRING(
>  		[--with-usernic-db],
>  		[lxc user nic database]
> -	)], [], [with_usernic_db=['/run/lxc/nics']])
> +	)], [], [with_usernic_db=['$(with_runtime_path)/lxc/nics']])
>  
>  # Rootfs path, where the container mount structure is assembled
>  AC_ARG_WITH([rootfs-path],
> @@ -484,6 +491,7 @@ AS_AC_EXPAND(LXCTEMPLATECONFIG, "$datadir/lxc/config")
>  AS_AC_EXPAND(LXCHOOKDIR, "$datadir/lxc/hooks")
>  AS_AC_EXPAND(LXCINITDIR, "$libexecdir")
>  AS_AC_EXPAND(LOGPATH, "$with_log_path")
> +AS_AC_EXPAND(RUNTIME_PATH, "$with_runtime_path")
>  AC_SUBST(DEFAULT_CGROUP_PATTERN, ["$with_cgroup_pattern"])
>  
>  # Check for some standard kernel headers
> diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am
> index c6ef8f5..e69c9a6 100644
> --- a/src/lxc/Makefile.am
> +++ b/src/lxc/Makefile.am
> @@ -120,7 +120,8 @@ AM_CFLAGS=-I$(top_srcdir)/src \
>  	-DLXC_DEFAULT_CONFIG=\"$(LXC_DEFAULT_CONFIG)\" \
>  	-DLXC_USERNIC_DB=\"$(LXC_USERNIC_DB)\" \
>  	-DLXC_USERNIC_CONF=\"$(LXC_USERNIC_CONF)\" \
> -	-DDEFAULT_CGROUP_PATTERN=\"$(DEFAULT_CGROUP_PATTERN)\"
> +	-DDEFAULT_CGROUP_PATTERN=\"$(DEFAULT_CGROUP_PATTERN)\" \
> +	-DRUNTIME_PATH=\"$(RUNTIME_PATH)\"
>  
>  if ENABLE_APPARMOR
>  AM_CFLAGS += -DHAVE_APPARMOR
> diff --git a/src/lxc/utils.c b/src/lxc/utils.c
> index 411917e..b7a29cb 100644
> --- a/src/lxc/utils.c
> +++ b/src/lxc/utils.c
> @@ -382,7 +382,7 @@ const char *get_rundir()
>  
>  	rundir = getenv("XDG_RUNTIME_DIR");
>  	if (geteuid() == 0 || rundir == NULL)
> -		rundir = "/run";
> +		rundir = RUNTIME_PATH;
>  	return rundir;
>  }
>  
> diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
> index bd1f8ce..de1f7e6 100644
> --- a/src/tests/Makefile.am
> +++ b/src/tests/Makefile.am
> @@ -28,7 +28,8 @@ AM_CFLAGS=-I$(top_srcdir)/src \
>  	-DLXCPATH=\"$(LXCPATH)\" \
>  	-DLXC_GLOBAL_CONF=\"$(LXC_GLOBAL_CONF)\" \
>  	-DLXCINITDIR=\"$(LXCINITDIR)\" \
> -	-DLXC_DEFAULT_CONFIG=\"$(LXC_DEFAULT_CONFIG)\"
> +	-DLXC_DEFAULT_CONFIG=\"$(LXC_DEFAULT_CONFIG)\" \
> +	-DRUNTIME_PATH=\"$(RUNTIME_PATH)\"
>  
>  if ENABLE_APPARMOR
>  AM_CFLAGS += -DHAVE_APPARMOR
> diff --git a/src/tests/locktests.c b/src/tests/locktests.c
> index c3f5352..2d04052 100644
> --- a/src/tests/locktests.c
> +++ b/src/tests/locktests.c
> @@ -17,6 +17,7 @@
>   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
>   */
>  #include "lxc/lxclock.h"
> +#include "config.h"
>  #include <unistd.h>
>  #include <signal.h>
>  #include <stdio.h>
> @@ -121,10 +122,7 @@ int main(int argc, char *argv[])
>  		exit(1);
>  	}
>  	struct stat sb;
> -	// we don't create the file until the container is running, so this
> -	// bit of the test needs to be changed
> -	//char *pathname = "/run/lock/lxc/var/lib/lxc/" mycontainername;
> -	char *pathname = "/run/lock/lxc/var/lib/lxc/";
> +	char *pathname = RUNTIME_PATH "/lock/lxc/var/lib/lxc/";
>  	ret = stat(pathname, &sb);
>  	if (ret != 0) {
>  		fprintf(stderr, "%d: filename %s not created\n", __LINE__,
> diff --git a/src/tests/lxc-test-unpriv b/src/tests/lxc-test-unpriv
> index d9a5c5c..9e3fe21 100755
> --- a/src/tests/lxc-test-unpriv
> +++ b/src/tests/lxc-test-unpriv
> @@ -21,6 +21,8 @@
>  # License along with this library; if not, write to the Free Software
>  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>  
> +# This test assumes an Ubuntu host
> +
>  if [ $(id -u) -ne 0 ]; then
>  	echo 'run as root'
>  	exit 1
> @@ -34,7 +36,7 @@ cleanup() {
>  	run_cmd lxc-stop -n c1 -k
>  	pkill -u $(id -u $TUSER) -9
>  
> -	sed -i '/lxcunpriv/d' /var/run/lxc/nics /etc/lxc/lxc-usernet
> +	sed -i '/lxcunpriv/d' /run/lxc/nics /etc/lxc/lxc-usernet
>  	sed -i '/^lxcunpriv:/d' /etc/subuid /etc/subgid
>  
>  	rm -Rf $HDIR /run/user/$(id -u $TUSER)
> diff --git a/src/tests/lxc-test-usernic.in b/src/tests/lxc-test-usernic.in
> index 846e592..4f96d2e 100755
> --- a/src/tests/lxc-test-usernic.in
> +++ b/src/tests/lxc-test-usernic.in
> @@ -21,6 +21,8 @@
>  # License along with this library; if not, write to the Free Software
>  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>  
> +# This test assumes an Ubuntu host
> +
>  DONE=0
>  LXC_USER_NIC="@LIBEXECDIR@/lxc/lxc-user-nic"
>  
> @@ -31,7 +33,7 @@ cleanup() {
>  		lxc-stop -n usernic-c1 -k
>  		lxc-destroy -n usernic-c1
>  
> -		sed -i '/usernic-user/d' /var/run/lxc/nics /etc/lxc/lxc-usernet
> +		sed -i '/usernic-user/d' /run/lxc/nics /etc/lxc/lxc-usernet
>  		ifconfig usernic-br0 down
>  		ifconfig usernic-br1 down
>  		brctl delbr usernic-br0
> -- 
> 1.9.rc1
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel


More information about the lxc-devel mailing list