From 1291d52f3f36a8563170c59d7d3a1c55b32ba1b7 Mon Sep 17 00:00:00 2001 From: Joel Martin Date: Thu, 29 Aug 2019 09:27:35 -0500 Subject: [PATCH] Call gstreamer_root with top_dir string, not func. Commit 72e28dffcdf560543d312abc0ec4ff76b7c7dfaf introduced a build regression on Linux when resolving the in-tree gstreamer libs. The error: ------------------------------------ $ ./mach build --release ... The details of the failure are as follows: AttributeError: 'function' object has no attribute 'endswith' File "/data/joelm/personal/UTA/dissertation/servo/servo-master.git/python/servo/build_commands.py", line 237, in build env = self.build_env(target=target, is_build=True) File "/data/joelm/personal/UTA/dissertation/servo/servo-master.git/python/servo/command_base.py", line 646, in build_env if self.needs_gstreamer_env(target or host_triple(), env): File "/data/joelm/personal/UTA/dissertation/servo/servo-master.git/python/servo/command_base.py", line 574, in needs_gstreamer_env if path.isdir(gstreamer_root(effective_target, env, self.get_top_dir)): File "/data/joelm/personal/UTA/dissertation/servo/servo-master.git/python/servo/command_base.py", line 257, in gstreamer_root return path.join(topdir, "support", "linux", "gstreamer", "gst") File "/usr/lib/python2.7/posixpath.py", line 70, in join elif path == '' or path.endswith('/'): ------------------------------------ The problem is that get_top_dir is being passed as a function to gstreamer_root in a couple of places instead of being invoked first. --- python/servo/command_base.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 21118c68add..2a370d757da 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -571,7 +571,7 @@ class CommandBase(object): # We don't build gstreamer for non-x86_64 / android yet return False if sys.platform == "linux2" or is_windows(): - if path.isdir(gstreamer_root(effective_target, env, self.get_top_dir)): + if path.isdir(gstreamer_root(effective_target, env, self.get_top_dir())): return True else: raise Exception("Your system's gstreamer libraries are out of date \ @@ -586,7 +586,7 @@ install them, let us know by filing a bug!") """Some commands, like test-wpt, don't use a full build env, but may still need dynamic search paths. This command sets that up""" if not android and self.needs_gstreamer_env(None, os.environ): - gstpath = gstreamer_root(host_triple(), os.environ, self.get_top_dir) + gstpath = gstreamer_root(host_triple(), os.environ, self.get_top_dir()) if gstpath is None: return os.environ["LD_LIBRARY_PATH"] = path.join(gstpath, "lib")