From e39c6f1a5202ed066ea05fac9056abfd11166857 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 8 May 2017 16:21:38 +0200 Subject: [PATCH] Prepend LD_LIBRARY_PATH instead of overwritting it My current distribution ships a newer libcrypto and libssl which are not ABI compatible with the ones generated by Jenkins. I had to copy those libraries locally and use LD_LIBRARY_PATH to be able to run binaries compiled coming from the jenkins slave. Without this patch I am not able to run it because it is overwriting the previous variable. Change-Id: Id9b16d13d343616cbf87b9da8a99e3fae48da6bd --- src/osmo_gsm_tester/bts_octphy.py | 2 +- src/osmo_gsm_tester/bts_osmotrx.py | 2 +- src/osmo_gsm_tester/osmo_nitb.py | 4 +++- src/osmo_gsm_tester/util.py | 6 ++++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/osmo_gsm_tester/bts_octphy.py b/src/osmo_gsm_tester/bts_octphy.py index 1f36a79e..5a73c7df 100644 --- a/src/osmo_gsm_tester/bts_octphy.py +++ b/src/osmo_gsm_tester/bts_octphy.py @@ -50,7 +50,7 @@ class OsmoBtsOctphy(log.Origin): lib = self.inst.child('lib') if not os.path.isdir(lib): raise RuntimeError('No lib/ in %r' % self.inst) - self.env = { 'LD_LIBRARY_PATH': lib } + self.env = { 'LD_LIBRARY_PATH': util.prepend_library_path(lib) } self.launch_process(OsmoBtsOctphy.BIN_BTS_OCTPHY, '-r', '1', '-c', os.path.abspath(self.config_file)) self.suite_run.poll() diff --git a/src/osmo_gsm_tester/bts_osmotrx.py b/src/osmo_gsm_tester/bts_osmotrx.py index cadf98fd..e62e4e65 100644 --- a/src/osmo_gsm_tester/bts_osmotrx.py +++ b/src/osmo_gsm_tester/bts_osmotrx.py @@ -54,7 +54,7 @@ class OsmoBtsTrx(log.Origin): lib = self.inst.child('lib') if not os.path.isdir(lib): raise RuntimeError('No lib/ in %r' % self.inst) - self.env = { 'LD_LIBRARY_PATH': lib } + self.env = { 'LD_LIBRARY_PATH': util.prepend_library_path(lib) } self.proc_trx = self.launch_process(OsmoBtsTrx.BIN_TRX, '-x') self.log('Waiting for osmo-trx to start up...') diff --git a/src/osmo_gsm_tester/osmo_nitb.py b/src/osmo_gsm_tester/osmo_nitb.py index 4cd6055c..3ed48b29 100644 --- a/src/osmo_gsm_tester/osmo_nitb.py +++ b/src/osmo_gsm_tester/osmo_nitb.py @@ -50,7 +50,9 @@ class OsmoNitb(log.Origin): lib = inst.child('lib') if not os.path.isdir(lib): raise RuntimeError('No lib/ in %r' % inst) - env = { 'LD_LIBRARY_PATH': lib } + + env = { 'LD_LIBRARY_PATH': util.prepend_library_path(lib) } + self.dbg(run_dir=self.run_dir, binary=binary, env=env) self.process = process.Process(self.name(), self.run_dir, (binary, '-c', diff --git a/src/osmo_gsm_tester/util.py b/src/osmo_gsm_tester/util.py index 335e3baa..9a4e7285 100644 --- a/src/osmo_gsm_tester/util.py +++ b/src/osmo_gsm_tester/util.py @@ -32,6 +32,12 @@ import tty import readline +def prepend_library_path(path): + lp = os.getenv('LD_LIBRARY_PATH') + if not lp: + return path + return path + ':' + lp + class listdict: 'a dict of lists { "a": [1, 2, 3], "b": [1, 2] }' def __getattr__(ld, name):