mirror of
https://github.com/openvswitch/ovs
synced 2025-10-29 15:28:56 +00:00
dirs: dbdir default must be based on sysconfdir.
Some in-tree and out-of-tree code sets the OVS_SYSCONFDIR environment variable to control where /etc files go (mostly for test purposes). When the database directory (dbdir) was split off from the sysconfdir, the configure-time default continued to be based on the sysconfdir, but overriding the sysconfdir at runtime with OVS_SYSCONFDIR didn't have any effect on the dbdir, which caused a visible change in behavior for code that set the OVS_SYSCONFDIR environment variable. This commit reverts that change in behavior, by basing the dbdir on OVS_SYSCONFDIR if that environment variable is set (but the OVS_DBDIR environment variable is not). Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
@@ -18,6 +18,7 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include "dirs.h"
|
#include "dirs.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
struct directory {
|
struct directory {
|
||||||
const char *value; /* Actual value; NULL if not yet determined. */
|
const char *value; /* Actual value; NULL if not yet determined. */
|
||||||
@@ -68,8 +69,18 @@ ovs_logdir(void)
|
|||||||
const char *
|
const char *
|
||||||
ovs_dbdir(void)
|
ovs_dbdir(void)
|
||||||
{
|
{
|
||||||
static struct directory d = { NULL, @DBDIR@, "OVS_DBDIR" };
|
static const char *dbdir;
|
||||||
return get_dir(&d);
|
if (!dbdir) {
|
||||||
|
dbdir = getenv("OVS_DBDIR");
|
||||||
|
if (!dbdir || !dbdir[0]) {
|
||||||
|
char *sysconfdir = getenv("OVS_SYSCONFDIR");
|
||||||
|
|
||||||
|
dbdir = (sysconfdir
|
||||||
|
? xasprintf("%s/openvswitch", sysconfdir)
|
||||||
|
: @DBDIR@);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dbdir;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
|
|||||||
@@ -43,12 +43,15 @@ if HAVE_PYTHON
|
|||||||
nobase_pkgdata_DATA = $(ovs_pyfiles) $(ovstest_pyfiles)
|
nobase_pkgdata_DATA = $(ovs_pyfiles) $(ovstest_pyfiles)
|
||||||
ovs-install-data-local:
|
ovs-install-data-local:
|
||||||
$(MKDIR_P) python/ovs
|
$(MKDIR_P) python/ovs
|
||||||
(echo "import os" && \
|
sed \
|
||||||
echo 'PKGDATADIR = os.environ.get("OVS_PKGDATADIR", """$(pkgdatadir)""")' && \
|
-e '/^##/d' \
|
||||||
echo 'RUNDIR = os.environ.get("OVS_RUNDIR", """@RUNDIR@""")' && \
|
-e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
|
||||||
echo 'LOGDIR = os.environ.get("OVS_LOGDIR", """@LOGDIR@""")' && \
|
-e 's,[@]RUNDIR[@],$(RUNDIR),g' \
|
||||||
echo 'DBDIR = os.environ.get("OVS_DBDIR", """@DBDIR@""")' && \
|
-e 's,[@]LOGDIR[@],$(LOGDIR),g' \
|
||||||
echo 'BINDIR = os.environ.get("OVS_BINDIR", """$(bindir)""")') \
|
-e 's,[@]bindir[@],$(bindir),g' \
|
||||||
|
-e 's,[@]sysconfdir[@],$(sysconfdir),g' \
|
||||||
|
-e 's,[@]DBDIR[@],$(DBDIR),g' \
|
||||||
|
< $(srcdir)/python/ovs/dirs.py.template \
|
||||||
> python/ovs/dirs.py.tmp
|
> python/ovs/dirs.py.tmp
|
||||||
$(MKDIR_P) $(DESTDIR)$(pkgdatadir)/python/ovs
|
$(MKDIR_P) $(DESTDIR)$(pkgdatadir)/python/ovs
|
||||||
$(INSTALL_DATA) python/ovs/dirs.py.tmp $(DESTDIR)$(pkgdatadir)/python/ovs/dirs.py
|
$(INSTALL_DATA) python/ovs/dirs.py.tmp $(DESTDIR)$(pkgdatadir)/python/ovs/dirs.py
|
||||||
@@ -68,3 +71,17 @@ $(srcdir)/python/ovs/version.py: config.status
|
|||||||
$(ro_shell) > $(@F).tmp
|
$(ro_shell) > $(@F).tmp
|
||||||
echo 'VERSION = "$(VERSION)"' >> $(@F).tmp
|
echo 'VERSION = "$(VERSION)"' >> $(@F).tmp
|
||||||
if cmp -s $(@F).tmp $@; then touch $@; rm $(@F).tmp; else mv $(@F).tmp $@; fi
|
if cmp -s $(@F).tmp $@; then touch $@; rm $(@F).tmp; else mv $(@F).tmp $@; fi
|
||||||
|
|
||||||
|
ALL_LOCAL += $(srcdir)/python/ovs/dirs.py
|
||||||
|
$(srcdir)/python/ovs/dirs.py: python/ovs/dirs.py.template
|
||||||
|
sed \
|
||||||
|
-e '/^##/d' \
|
||||||
|
-e 's,[@]pkgdatadir[@],/usr/local/share/openvswitch,g' \
|
||||||
|
-e 's,[@]RUNDIR[@],/var/run,g' \
|
||||||
|
-e 's,[@]LOGDIR[@],/usr/local/var/log,g' \
|
||||||
|
-e 's,[@]bindir[@],/usr/local/bin,g' \
|
||||||
|
-e 's,[@]sysconfdir[@],/usr/local/etc,g' \
|
||||||
|
-e 's,[@]DBDIR[@],/usr/local/etc/openvswitch,g' \
|
||||||
|
< $? > $@.tmp
|
||||||
|
mv $@.tmp $@
|
||||||
|
EXTRA_DIST += python/ovs/dirs.py python/ovs/dirs.py.template
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
# These are the default directories. They will be replaced by the
|
|
||||||
# configured directories at install time.
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
PKGDATADIR = os.environ.get("OVS_PKGDATADIR", "/usr/local/share/openvswitch")
|
PKGDATADIR = os.environ.get("OVS_PKGDATADIR", """/usr/local/share/openvswitch""")
|
||||||
RUNDIR = os.environ.get("OVS_RUNDIR", "/var/run")
|
RUNDIR = os.environ.get("OVS_RUNDIR", """/var/run""")
|
||||||
LOGDIR = os.environ.get("OVS_LOGDIR", "/usr/local/var/log")
|
LOGDIR = os.environ.get("OVS_LOGDIR", """/usr/local/var/log""")
|
||||||
DBDIR = os.environ.get("OVS_DBDIR", "/usr/local/etc/openvswitch")
|
BINDIR = os.environ.get("OVS_BINDIR", """/usr/local/bin""")
|
||||||
BINDIR = os.environ.get("OVS_BINDIR", "/usr/local/bin")
|
|
||||||
|
DBDIR = os.environ.get("OVS_DBDIR")
|
||||||
|
if not DBDIR:
|
||||||
|
sysconfdir = os.environ.get("OVS_SYSCONFDIR")
|
||||||
|
if sysconfdir:
|
||||||
|
DBDIR = "%s/openvswitch" % sysconfdir
|
||||||
|
else:
|
||||||
|
DBDIR = """/usr/local/etc/openvswitch"""
|
||||||
|
|||||||
17
python/ovs/dirs.py.template
Normal file
17
python/ovs/dirs.py.template
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
## The @variables@ in this file are replaced by default directories for
|
||||||
|
## use in python/ovs/dirs.py in the source directory and replaced by the
|
||||||
|
## configured directories for use in the installed python/ovs/dirs.py.
|
||||||
|
##
|
||||||
|
import os
|
||||||
|
PKGDATADIR = os.environ.get("OVS_PKGDATADIR", """@pkgdatadir@""")
|
||||||
|
RUNDIR = os.environ.get("OVS_RUNDIR", """@RUNDIR@""")
|
||||||
|
LOGDIR = os.environ.get("OVS_LOGDIR", """@LOGDIR@""")
|
||||||
|
BINDIR = os.environ.get("OVS_BINDIR", """@bindir@""")
|
||||||
|
|
||||||
|
DBDIR = os.environ.get("OVS_DBDIR")
|
||||||
|
if not DBDIR:
|
||||||
|
sysconfdir = os.environ.get("OVS_SYSCONFDIR")
|
||||||
|
if sysconfdir:
|
||||||
|
DBDIR = "%s/openvswitch" % sysconfdir
|
||||||
|
else:
|
||||||
|
DBDIR = """@DBDIR@"""
|
||||||
@@ -22,14 +22,21 @@
|
|||||||
# All of these should be substituted by the Makefile at build time.
|
# All of these should be substituted by the Makefile at build time.
|
||||||
logdir=${OVS_LOGDIR-'@LOGDIR@'} # /var/log/openvswitch
|
logdir=${OVS_LOGDIR-'@LOGDIR@'} # /var/log/openvswitch
|
||||||
rundir=${OVS_RUNDIR-'@RUNDIR@'} # /var/run/openvswitch
|
rundir=${OVS_RUNDIR-'@RUNDIR@'} # /var/run/openvswitch
|
||||||
dbdir=${OVS_DBDIR-'@DBDIR@'} # /etc/openvswitch
|
|
||||||
# or /var/lib/openvswitch
|
|
||||||
sysconfdir=${OVS_SYSCONFDIR-'@sysconfdir@'} # /etc
|
sysconfdir=${OVS_SYSCONFDIR-'@sysconfdir@'} # /etc
|
||||||
etcdir=$sysconfdir/openvswitch # /etc/openvswitch
|
etcdir=$sysconfdir/openvswitch # /etc/openvswitch
|
||||||
datadir=${OVS_PKGDATADIR-'@pkgdatadir@'} # /usr/share/openvswitch
|
datadir=${OVS_PKGDATADIR-'@pkgdatadir@'} # /usr/share/openvswitch
|
||||||
bindir=${OVS_BINDIR-'@bindir@'} # /usr/bin
|
bindir=${OVS_BINDIR-'@bindir@'} # /usr/bin
|
||||||
sbindir=${OVS_SBINDIR-'@sbindir@'} # /usr/sbin
|
sbindir=${OVS_SBINDIR-'@sbindir@'} # /usr/sbin
|
||||||
|
|
||||||
|
# /etc/openvswitch or /var/lib/openvswitch
|
||||||
|
if test X"$OVS_DBDIR" != X; then
|
||||||
|
dbdir=$OVS_DBDIR
|
||||||
|
elif test X"$OVS_SYSCONFDIR" != X; then
|
||||||
|
dbdir=$OVS_SYSCONFDIR/openvswitch
|
||||||
|
else
|
||||||
|
dbdir='@DBDIR@'
|
||||||
|
fi
|
||||||
|
|
||||||
VERSION='@VERSION@'
|
VERSION='@VERSION@'
|
||||||
|
|
||||||
LC_ALL=C; export LC_ALL
|
LC_ALL=C; export LC_ALL
|
||||||
|
|||||||
Reference in New Issue
Block a user