[lxc-devel] [PATCH] $(localstatedir) != $(prefix)/var

Guido Trotter ultrotter at google.com
Mon Mar 30 09:12:13 UTC 2009


The current code assumes that localstatedir is equal to $(prefix)/var,
thus failing for example on debian, where prefix is /usr and
localstatedir is /var. This patch fixes this by expanding LXCPATH just
once in configure.ac to $(localstatedir)/lib/lxc and expanding that
variable everywhere else.

install-exec-local is changed to just do one mkdir -p, and taking into
account of the DESTDIR variable, user for example for packaging.

Changing the permission of LXCPATH is done in lxc-setcap

Signed-off-by: Guido Trotter <ultrotter at quaqua.net>
---
 configure.in           |    1 +
 src/lxc/Makefile.am    |    5 ++---
 src/lxc/lxc-ls.in      |    2 +-
 src/lxc/lxc-netstat.in |    2 +-
 src/lxc/lxc-ps.in      |    2 +-
 src/lxc/lxc-setcap.in  |    2 ++
 6 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/configure.in b/configure.in
index 76c271c..7e61280 100644
--- a/configure.in
+++ b/configure.in
@@ -19,6 +19,7 @@ AS_AC_EXPAND(BINDIR, $bindir)
 AS_AC_EXPAND(LIBEXECDIR, $libexecdir)
 AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
 AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
+AS_AC_EXPAND(LXCPATH, "${localstatedir}/lib/lxc")
 
 AC_CHECK_HEADERS([linux/netlink.h linux/genetlink.h], [], AC_MSG_ERROR([netlink headers not found]),
 [#include <linux/types.h>
diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am
index 1c13c85..8690819 100644
--- a/src/lxc/Makefile.am
+++ b/src/lxc/Makefile.am
@@ -1,4 +1,4 @@
-INCLUDES= -I$(top_srcdir)/src -DLXCPATH="\"$(localstatedir)/lxc\"" \
+INCLUDES= -I$(top_srcdir)/src -DLXCPATH="\"@LXCPATH@\"" \
 	  -DLXCBINDIR="\"$(bindir)\"" \
 	  -DLXCLIBEXECDIR="\"$(libexecdir)\""
 AM_LDFLAGS= -lutil
@@ -130,5 +130,4 @@ lxc_version_SOURCES = lxc_version.c
 lxc_version_LDADD = liblxc.la
 
 install-exec-local:
-	@mkdir -p $(localstatedir) && mkdir -p $(prefix)/var/lxc && \
-	chmod ugo+rw $(prefix)/var/lxc
+	@mkdir -p $(DESTDIR)@LXCPATH@
diff --git a/src/lxc/lxc-ls.in b/src/lxc/lxc-ls.in
index 49722d1..6a77ebe 100644
--- a/src/lxc/lxc-ls.in
+++ b/src/lxc/lxc-ls.in
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-lxcpath=@LOCALSTATEDIR@/lxc
+lxcpath=@LXCPATH@
 
 if [ ! -r $lxcpath ]; then
     exit 0
diff --git a/src/lxc/lxc-netstat.in b/src/lxc/lxc-netstat.in
index 072b4f4..901c323 100644
--- a/src/lxc/lxc-netstat.in
+++ b/src/lxc/lxc-netstat.in
@@ -1,7 +1,7 @@
 #!/bin/bash
 # set -ex
 
-lxcpath=@LOCALSTATEDIR@/lxc
+lxcpath=@LXCPATH@
 exec=""
 
 if [ ! -r $lxcpath ]; then
diff --git a/src/lxc/lxc-ps.in b/src/lxc/lxc-ps.in
index efbafb2..48a153f 100755
--- a/src/lxc/lxc-ps.in
+++ b/src/lxc/lxc-ps.in
@@ -1,7 +1,7 @@
 #!/bin/bash
 # set -ex
 
-lxcpath=@LOCALSTATEDIR@/lxc
+lxcpath=@LXCPATH@
 
 if [ ! -r $lxcpath ]; then
     exit 0
diff --git a/src/lxc/lxc-setcap.in b/src/lxc/lxc-setcap.in
index df903ba..637b29f 100644
--- a/src/lxc/lxc-setcap.in
+++ b/src/lxc/lxc-setcap.in
@@ -49,6 +49,7 @@ lxc_setcaps()
     setcap $LXC_UNSHARE_CAPS=ep @BINDIR@/lxc-unshare
     setcap $LXC_NETSTAT_CAPS=ep @BINDIR@/lxc-netstat
     setcap $LXC_INIT_CAPS=ep @LIBEXECDIR@/lxc-init
+    chmod 2777 @LXCPATH@
 }
 
 lxc_dropcaps()
@@ -60,6 +61,7 @@ lxc_dropcaps()
     setcap -r @BINDIR@/lxc-unshare
     setcap -r @BINDIR@/lxc-netstat
     setcap -r @LIBEXECDIR@/lxc-init
+    chmod 0755 @LXCPATH@
 }
 
 if [ "$(id -u)" != "0" ]; then
-- 
1.5.6.5





More information about the lxc-devel mailing list