From: reed Date: Thu, 13 Oct 2011 13:19:13 +0000 (-0500) Subject: Quick hack for ticket #1300 to workaround dlopen can't find library X-Git-Tag: perftcpdns_before_epoll~66^2~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=930d4317ed56bdb7cb0d7d53bac5db297ddd0551;p=thirdparty%2Fkea.git Quick hack for ticket #1300 to workaround dlopen can't find library This was from jinmei. The real fix will be done in #1292. --- diff --git a/src/bin/bind10/Makefile.am b/src/bin/bind10/Makefile.am index 5ec0c9f4a6..69ea256157 100644 --- a/src/bin/bind10/Makefile.am +++ b/src/bin/bind10/Makefile.am @@ -33,6 +33,7 @@ $(PYTHON_LOGMSGPKG_DIR)/work/bind10_messages.py : bind10_messages.mes # this is done here since configure.ac AC_OUTPUT doesn't expand exec_prefix bind10: bind10_src.py $(PYTHON_LOGMSGPKG_DIR)/work/bind10_messages.py $(SED) -e "s|@@PYTHONPATH@@|@pyexecdir@|" \ + -e "s|@@LIBDIR@@|$(libdir)|" \ -e "s|@@LIBEXECDIR@@|$(pkglibexecdir)|" bind10_src.py >$@ chmod a+x $@ diff --git a/src/bin/bind10/bind10_src.py.in b/src/bin/bind10/bind10_src.py.in index 1687cb1655..299509a90f 100755 --- a/src/bin/bind10/bind10_src.py.in +++ b/src/bin/bind10/bind10_src.py.in @@ -579,6 +579,22 @@ class BoB: self.start_simple("b10-xfrout", c_channel_env) def start_xfrin(self, c_channel_env): + # XXX: a quick-hack workaround. xfrin will implicitly use dynamically + # loadable data source modules, which will be installed in $(libdir). + # On some OSes (including MacOS X and *BSDs) the main process (python) + # cannot find the modules unless they are located in a common shared + # object path or a path in the (DY)LD_LIBRARY_PATH. We should seek + # a cleaner solution, but for a short term workaround we specify the + # path here, unconditionally, and without even bothering which + # environment varialbe should be used. + if not "B10_FROM_SOURCE" in os.environ: + cur_path = os.getenv('DYLD_LIBRARY_PATH') + cur_path = '' if cur_path is None else ':' + cur_path + c_channel_env['DYLD_LIBRARY_PATH'] = "@@LIBDIR@@" + cur_path + + cur_path = os.getenv('LD_LIBRARY_PATH') + cur_path = '' if cur_path is None else ':' + cur_path + c_channel_env['LD_LIBRARY_PATH'] = "@@LIBDIR@@" + cur_path self.start_simple("b10-xfrin", c_channel_env) def start_zonemgr(self, c_channel_env):