Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sebastian Schrader
Kea
Commits
d66d0cc2
Commit
d66d0cc2
authored
Jan 06, 2012
by
JINMEI Tatuya
Committed by
Michal 'vorner' Vaner
Jan 06, 2012
Browse files
[805] Run sockcreator from source
If it is run from the source code, all programs should be run from there.
parent
f786ba42
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/bin/bind10/bind10_src.py.in
View file @
d66d0cc2
...
...
@@ -44,12 +44,10 @@ import os
# installed on the system
if "B10_FROM_SOURCE" in os.environ:
SPECFILE_LOCATION = os.environ["B10_FROM_SOURCE"] + "/src/bin/bind10/bob.spec"
ADD_LIBEXEC_PATH = False
else:
PREFIX = "@prefix@"
DATAROOTDIR = "@datarootdir@"
SPECFILE_LOCATION = "@datadir@/@PACKAGE@/bob.spec".replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX)
ADD_LIBEXEC_PATH = True
import subprocess
import signal
...
...
@@ -65,6 +63,7 @@ import pwd
import posix
import copy
from bind10_config import LIBEXECPATH
import isc.cc
import isc.util.process
import isc.net.parse
...
...
@@ -151,8 +150,7 @@ class ProcessInfo:
# on construction (self.env).
spawn_env = copy.deepcopy(os.environ)
spawn_env.update(self.env)
if ADD_LIBEXEC_PATH:
spawn_env['PATH'] = "@@LIBEXECDIR@@:" + spawn_env['PATH']
spawn_env['PATH'] = LIBEXECPATH + spawn_env['PATH']
self.process = subprocess.Popen(self.args,
stdin=subprocess.PIPE,
stdout=spawn_stdout,
...
...
src/lib/python/bind10_config.py.in
View file @
d66d0cc2
...
...
@@ -23,24 +23,37 @@ def reload():
global DATA_PATH
global PLUGIN_PATHS
global PREFIX
global LIBEXECDIR
LIBEXECDIR = ("@libexecdir@/@PACKAGE@"). \
replace("${exec_prefix}", "@exec_prefix@"). \
replace("${prefix}", "@prefix@")
global LIBEXECPATH
BIND10_MSGQ_SOCKET_FILE = os.path.join("@localstatedir@",
"@PACKAGE_NAME@",
"msgq_socket").replace("${prefix}",
"@prefix@")
PREFIX = "@prefix@"
# If B10_FROM_SOURCE is set in the environment, we use data files
# from a directory relative to the value of that variable, or, if defined,
# relative to the value of B10_FROM_SOURCE_LOCALSTATEDIR. Otherwise
# we use the ones installed on the system.
# B10_FROM_SOURCE is set in the environment for internal tests and
# an experimental run without installagion. In that case we need to
# specialize some configuration variables, generally so that they refer
# to somewhere in the source tree instead of the appropriate places
# after installation.
#
# DATA_PATH: used by the config manager to find configuration files.
# When "FROM_SOURCE", we use data files from a directory relative to the
# value of that variable, or, if defined, relative to the value of
# B10_FROM_SOURCE_LOCALSTATEDIR. Otherwise we use the ones installed on
# the system.
# PLUGIN_PATHS: configuration modules that are not associated to specific
# process
# LIBEXECPATH: Paths to programs invoked by the boss process
# The boss process (directly or via a helper module) uses this as
# the prefererred PATH before starting a child process.
# When "FROM_SOURCE", it lists the directories where the programs are
# built so that when BIND 10 is experimentally started on the source
# tree the programs in the tree (not installed ones) will be used.
#
# B10_FROM_SOURCE_LOCALSTATEDIR is specifically intended to be used for
# tests where we want to use variuos types of configuration within the test
# environment. (We may want to make it even more generic so that the path
is
# passed from the boss process)
# environment. (We may want to make it even more generic so that the path
#
is
passed from the boss process)
if "B10_FROM_SOURCE" in os.environ:
if "B10_FROM_SOURCE_LOCALSTATEDIR" in os.environ:
DATA_PATH = os.environ["B10_FROM_SOURCE_LOCALSTATEDIR"]
...
...
@@ -48,9 +61,17 @@ def reload():
DATA_PATH = os.environ["B10_FROM_SOURCE"]
PLUGIN_PATHS = [os.environ["B10_FROM_SOURCE"] +
'/src/bin/cfgmgr/plugins']
programdirs = ['auth', 'cfgmgr', 'cmdctl', 'ddns', 'dhcp6', 'msgq',
'resolver', 'sockcreator', 'stats', 'xfrin', 'xfrout',
'zonemgr']
LIBEXECPATH = ':'.join(['@abs_top_builddir@/src/bin/' + p for p in
programdirs])
else:
DATA_PATH = "@localstatedir@/@PACKAGE@".replace("${prefix}", PREFIX)
PLUGIN_PATHS = ["@prefix@/share/@PACKAGE@/config_plugins"]
LIBEXECPATH = ("@libexecdir@/@PACKAGE@"). \
replace("${exec_prefix}", "@exec_prefix@"). \
replace("${prefix}", "@prefix@")
# For testing the plugins so they can find their own spec files
if "B10_TEST_PLUGIN_DIR" in os.environ:
PLUGIN_PATHS = os.environ["B10_TEST_PLUGIN_DIR"].split(':')
...
...
src/lib/python/isc/bind10/special_component.py
View file @
d66d0cc2
...
...
@@ -15,7 +15,7 @@
from
isc.bind10.component
import
Component
,
BaseComponent
import
isc.bind10.sockcreator
from
bind10_config
import
LIBEXEC
DIR
from
bind10_config
import
LIBEXEC
PATH
import
os
import
posix
import
isc.log
...
...
@@ -39,7 +39,7 @@ class SockCreator(BaseComponent):
def
_start_internal
(
self
):
self
.
_boss
.
curproc
=
'b10-sockcreator'
self
.
__creator
=
isc
.
bind10
.
sockcreator
.
Creator
(
LIBEXEC
DIR
+
':'
+
self
.
__creator
=
isc
.
bind10
.
sockcreator
.
Creator
(
LIBEXEC
PATH
+
':'
+
os
.
environ
[
'PATH'
])
self
.
_boss
.
register_process
(
self
.
pid
(),
self
)
self
.
_boss
.
set_creator
(
self
.
__creator
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment