<p>osmith <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/11053">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Pau Espin Pedrol: Looks good to me, approved
  osmith: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmo-depcheck: don't use /tmp, better git code<br><br>* replace --gitdir with --workdir and give it a new folder structure:<br>  * git/$repo: downloaded source code<br>  * build/$repo: files created during the build process<br>  * install/: installation prefix<br>* adjust the jenkins job to use --workdir<br>* fetch --tags when source exists already<br>* readable error message for failed git checkout<br><br>Change-Id: I06589277b9d54a2af177451cfab2ca1a658b4058<br>Relates: OS#2642<br>---<br>M jobs/osmocom-depcheck.yml<br>M scripts/osmo-depcheck/buildstack.py<br>M scripts/osmo-depcheck/dependencies.py<br>M scripts/osmo-depcheck/osmo-depcheck.py<br>M scripts/osmo-depcheck/parse.py<br>5 files changed, 96 insertions(+), 68 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/jobs/osmocom-depcheck.yml b/jobs/osmocom-depcheck.yml</span><br><span>index f13d4b7..fd2432e 100644</span><br><span>--- a/jobs/osmocom-depcheck.yml</span><br><span>+++ b/jobs/osmocom-depcheck.yml</span><br><span>@@ -52,13 +52,13 @@</span><br><span>           # Build the arguments</span><br><span>           args="$PROJECTS"</span><br><span>           args="$args -j 5"</span><br><span style="color: hsl(0, 100%, 40%);">-          args="$args -g $PWD/DEPCHECK_GITDIR"</span><br><span style="color: hsl(120, 100%, 40%);">+          args="$args -w $PWD/DEPCHECK_WORKDIR"</span><br><span>           args="$args -u $GIT_URL_PREFIX"</span><br><span>           [ "$BUILD" = "true" ] && args="$args -b"</span><br><span>           [ "$PRINT_OLD_DEPENDS" = "true" ] && args="$args -o"</span><br><span> </span><br><span>           # Run osmo-depcheck</span><br><span style="color: hsl(0, 100%, 40%);">-          mkdir DEPCHECK_GITDIR</span><br><span style="color: hsl(120, 100%, 40%);">+          mkdir DEPCHECK_WORKDIR</span><br><span>           export PYTHONUNBUFFERED=1</span><br><span>           scripts/osmo-depcheck/osmo-depcheck.py $args</span><br><span>     scm:</span><br><span>diff --git a/scripts/osmo-depcheck/buildstack.py b/scripts/osmo-depcheck/buildstack.py</span><br><span>index 87210ab..0a9a011 100644</span><br><span>--- a/scripts/osmo-depcheck/buildstack.py</span><br><span>+++ b/scripts/osmo-depcheck/buildstack.py</span><br><span>@@ -70,29 +70,15 @@</span><br><span>         print(" * " + program + ":" + version)</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def temp_install_folder():</span><br><span style="color: hsl(0, 100%, 40%);">-    """ Generate a temporary installation folder</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        It will be used as configure prefix, so when running 'make install',</span><br><span style="color: hsl(0, 100%, 40%);">-        the files will get copied in there instead of "/usr/local/". The folder</span><br><span style="color: hsl(0, 100%, 40%);">-        will get removed when the script has finished.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        :returns: the path to the temporary folder """</span><br><span style="color: hsl(0, 100%, 40%);">-    ret = tempfile.mkdtemp(prefix="depcheck_")</span><br><span style="color: hsl(0, 100%, 40%);">-    atexit.register(shutil.rmtree, ret)</span><br><span style="color: hsl(0, 100%, 40%);">-    print("Temporary install folder: " + ret)</span><br><span style="color: hsl(0, 100%, 40%);">-    return ret</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-def set_environment(jobs, tempdir):</span><br><span style="color: hsl(120, 100%, 40%);">+def set_environment(jobs, prefix):</span><br><span>     """ Configure the environment variables before running configure, make etc.</span><br><span> </span><br><span>         :param jobs: parallel build jobs (for make)</span><br><span style="color: hsl(0, 100%, 40%);">-        :param tempdir: temporary installation dir (see temp_install_folder())</span><br><span style="color: hsl(120, 100%, 40%);">+        :param prefix: installation folder</span><br><span>     """</span><br><span style="color: hsl(0, 100%, 40%);">-    # Add tempdir to PKG_CONFIG_PATH and LD_LIBRARY_PATH</span><br><span style="color: hsl(0, 100%, 40%);">-    extend = {"PKG_CONFIG_PATH": tempdir + "/lib/pkgconfig",</span><br><span style="color: hsl(0, 100%, 40%);">-              "LD_LIBRARY_PATH": tempdir + "/lib"}</span><br><span style="color: hsl(120, 100%, 40%);">+    # Add prefix to PKG_CONFIG_PATH and LD_LIBRARY_PATH</span><br><span style="color: hsl(120, 100%, 40%);">+    extend = {"PKG_CONFIG_PATH": prefix + "/lib/pkgconfig",</span><br><span style="color: hsl(120, 100%, 40%);">+              "LD_LIBRARY_PATH": prefix + "/lib"}</span><br><span>     for env_var, folder in extend.items():</span><br><span>         old = os.environ[env_var] if env_var in os.environ else ""</span><br><span>         os.environ[env_var] = old + ":" + folder</span><br><span>@@ -101,10 +87,10 @@</span><br><span>     os.environ["JOBS"] = str(jobs)</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def build(gitdir, jobs, stack):</span><br><span style="color: hsl(120, 100%, 40%);">+def build(workdir, jobs, stack):</span><br><span>     """ Build one program with all its dependencies.</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        :param gitdir: folder to which the sources will be cloned</span><br><span style="color: hsl(120, 100%, 40%);">+        :param workdir: path to where all data (git, build, install) is stored</span><br><span>         :param jobs: parallel build jobs (for make)</span><br><span>         :param stack: the build stack as returned by generate() above</span><br><span> </span><br><span>@@ -122,18 +108,23 @@</span><br><span>           anymore in case they decide to compile the code again manually from</span><br><span>           the source folder. """</span><br><span>     # Prepare the install folder and environment</span><br><span style="color: hsl(0, 100%, 40%);">-    tempdir = temp_install_folder()</span><br><span style="color: hsl(0, 100%, 40%);">-    unitdir = tempdir + "/lib/systemd/system/"</span><br><span style="color: hsl(0, 100%, 40%);">-    set_environment(jobs, tempdir)</span><br><span style="color: hsl(120, 100%, 40%);">+    prefix = workdir + "/install"</span><br><span style="color: hsl(120, 100%, 40%);">+    unitdir = prefix + "/lib/systemd/system/"</span><br><span style="color: hsl(120, 100%, 40%);">+    set_environment(jobs, prefix)</span><br><span> </span><br><span>     # Iterate over stack</span><br><span>     for program, version in stack.items():</span><br><span>         print("Building " + program + ":" + version)</span><br><span style="color: hsl(0, 100%, 40%);">-        os.chdir(gitdir + "/" + program)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Create and enter the build folder</span><br><span style="color: hsl(120, 100%, 40%);">+        builddir = workdir + "/build/" + program</span><br><span style="color: hsl(120, 100%, 40%);">+        os.mkdir(builddir)</span><br><span style="color: hsl(120, 100%, 40%);">+        os.chdir(builddir)</span><br><span> </span><br><span>         # Run the build commands</span><br><span style="color: hsl(0, 100%, 40%);">-        commands = [["autoreconf", "-fi"],</span><br><span style="color: hsl(0, 100%, 40%);">-                    ["./configure", "--prefix", tempdir,</span><br><span style="color: hsl(120, 100%, 40%);">+        gitdir = workdir + "/git/" + program</span><br><span style="color: hsl(120, 100%, 40%);">+        commands = [["autoreconf", "-fi", gitdir],</span><br><span style="color: hsl(120, 100%, 40%);">+                    [gitdir + "/configure", "--prefix", prefix,</span><br><span>                      "--with-systemdsystemunitdir=" + unitdir],</span><br><span>                     ["make", "clean"],</span><br><span>                     ["make"],</span><br><span>diff --git a/scripts/osmo-depcheck/dependencies.py b/scripts/osmo-depcheck/dependencies.py</span><br><span>index 78cf4a0..9b5187d 100644</span><br><span>--- a/scripts/osmo-depcheck/dependencies.py</span><br><span>+++ b/scripts/osmo-depcheck/dependencies.py</span><br><span>@@ -10,37 +10,55 @@</span><br><span> import parse</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def git_clone(gitdir, prefix, repository, version):</span><br><span style="color: hsl(120, 100%, 40%);">+def git_clone(workdir, prefix, cache_git_fetch, repository, version):</span><br><span>     """ Clone a missing git repository and checkout a specific version tag.</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        :param gitdir: folder to which the sources will be cloned</span><br><span style="color: hsl(120, 100%, 40%);">+        :param workdir: path to where all data (git, build, install) is stored</span><br><span>         :param prefix: git url prefix (e.g. "git://git.osmocom.org/")</span><br><span style="color: hsl(120, 100%, 40%);">+        :param cache_git_fetch: list of repositories that have already been</span><br><span style="color: hsl(120, 100%, 40%);">+                                fetched in this run of osmo-depcheck</span><br><span>         :param repository: Osmocom git repository name (e.g. "libosmo-abis")</span><br><span>         :param version: "master" or a version tag like "0.11.0" """</span><br><span style="color: hsl(0, 100%, 40%);">-    # Clone when needed</span><br><span style="color: hsl(0, 100%, 40%);">-    if not os.path.exists(gitdir + "/" + repository):</span><br><span style="color: hsl(0, 100%, 40%);">-        url = prefix + repository</span><br><span style="color: hsl(0, 100%, 40%);">-        print("Cloning git repo: " + url)</span><br><span style="color: hsl(0, 100%, 40%);">-        try:</span><br><span style="color: hsl(0, 100%, 40%);">-            subprocess.run(["git", "-C", gitdir, "clone", "-q", url],</span><br><span style="color: hsl(120, 100%, 40%);">+    repodir = workdir + "/git/" + repository</span><br><span style="color: hsl(120, 100%, 40%);">+    if repository not in cache_git_fetch:</span><br><span style="color: hsl(120, 100%, 40%);">+        if os.path.exists(repodir):</span><br><span style="color: hsl(120, 100%, 40%);">+            # Fetch tags for existing source</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Fetching tags...")</span><br><span style="color: hsl(120, 100%, 40%);">+            subprocess.run(["git", "-C", repodir, "fetch", "--tags", "-q"],</span><br><span>                            check=True)</span><br><span style="color: hsl(0, 100%, 40%);">-        except subprocess.CalledProcessError:</span><br><span style="color: hsl(0, 100%, 40%);">-            print("NOTE: if '" + repository + "' is part of a git repository"</span><br><span style="color: hsl(0, 100%, 40%);">-                  " with a different name, please add it to the mapping in"</span><br><span style="color: hsl(0, 100%, 40%);">-                  " 'config.py' and try again.")</span><br><span style="color: hsl(0, 100%, 40%);">-            sys.exit(1)</span><br><span style="color: hsl(120, 100%, 40%);">+        else:</span><br><span style="color: hsl(120, 100%, 40%);">+            # Clone the source</span><br><span style="color: hsl(120, 100%, 40%);">+            url = prefix + repository</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Cloning git repo: " + url)</span><br><span style="color: hsl(120, 100%, 40%);">+            try:</span><br><span style="color: hsl(120, 100%, 40%);">+                subprocess.run(["git", "-C", workdir + "/git", "clone", "-q",</span><br><span style="color: hsl(120, 100%, 40%);">+                                url], check=True)</span><br><span style="color: hsl(120, 100%, 40%);">+            except subprocess.CalledProcessError:</span><br><span style="color: hsl(120, 100%, 40%);">+                print("NOTE: if '" + repository + "' is part of a git"</span><br><span style="color: hsl(120, 100%, 40%);">+                      " repository with a different name, please add it to the"</span><br><span style="color: hsl(120, 100%, 40%);">+                      " mapping in 'config.py' and try again.")</span><br><span style="color: hsl(120, 100%, 40%);">+                sys.exit(1)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Only fetch the same repository once per session</span><br><span style="color: hsl(120, 100%, 40%);">+        cache_git_fetch.append(repository)</span><br><span> </span><br><span>     # Checkout the version tag</span><br><span style="color: hsl(0, 100%, 40%);">-    subprocess.run(["git", "-C", gitdir + "/" + repository, "checkout",</span><br><span style="color: hsl(0, 100%, 40%);">-                    version, "-q"], check=True)</span><br><span style="color: hsl(120, 100%, 40%);">+    try:</span><br><span style="color: hsl(120, 100%, 40%);">+        subprocess.run(["git", "-C", repodir, "checkout", version, "-q"],</span><br><span style="color: hsl(120, 100%, 40%);">+                       check=True)</span><br><span style="color: hsl(120, 100%, 40%);">+    except subprocess.CalledProcessError:</span><br><span style="color: hsl(120, 100%, 40%);">+        print("ERROR: git checkout failed! Invalid version specified?")</span><br><span style="color: hsl(120, 100%, 40%);">+        sys.exit(1)</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def generate(gitdir, prefix, initial, rev):</span><br><span style="color: hsl(120, 100%, 40%);">+def generate(workdir, prefix, cache_git_fetch, initial, rev):</span><br><span>     """ Generate the dependency graph of an Osmocom program by cloning the git</span><br><span>         repository, parsing the "configure.ac" file, and recursing.</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        :param gitdir: folder to which the sources will be cloned</span><br><span style="color: hsl(120, 100%, 40%);">+        :param workdir: path to where all data (git, build, install) is stored</span><br><span>         :param prefix: git url prefix (e.g. "git://git.osmocom.org/")</span><br><span style="color: hsl(120, 100%, 40%);">+        :param cache_git_fetch: list of repositories that have already been</span><br><span style="color: hsl(120, 100%, 40%);">+                                fetched in this run of osmo-depcheck</span><br><span>         :param initial: the first program to look at (e.g. "osmo-bts")</span><br><span>         :param rev: the git revision to check out ("master", "0.1.0", ...)</span><br><span>         :returns: a dictionary like the following:</span><br><span>@@ -65,8 +83,8 @@</span><br><span> </span><br><span>         # Add the programs dependencies to the stack</span><br><span>         print("Looking at " + program + ":" + version)</span><br><span style="color: hsl(0, 100%, 40%);">-        git_clone(gitdir, prefix, program, version)</span><br><span style="color: hsl(0, 100%, 40%);">-        depends = parse.configure_ac(gitdir, program)</span><br><span style="color: hsl(120, 100%, 40%);">+        git_clone(workdir, prefix, cache_git_fetch, program, version)</span><br><span style="color: hsl(120, 100%, 40%);">+        depends = parse.configure_ac(workdir, program)</span><br><span>         stack.update(depends)</span><br><span> </span><br><span>         # Add the program to the ret</span><br><span>@@ -86,28 +104,28 @@</span><br><span>         print(" * " + program + ":" + version + " depends: " + str(depends))</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def git_latest_tag(gitdir, repository):</span><br><span style="color: hsl(120, 100%, 40%);">+def git_latest_tag(workdir, repository):</span><br><span>     """ Get the last release string by asking git for the latest tag.</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        :param gitdir: folder to which the sources will be cloned</span><br><span style="color: hsl(120, 100%, 40%);">+        :param workdir: path to where all data (git, build, install) is stored</span><br><span>         :param repository: Osmocom git repository name (e.g. "libosmo-abis")</span><br><span>         :returns: the latest git tag (e.g. "1.0.2") """</span><br><span style="color: hsl(0, 100%, 40%);">-    dir = gitdir + "/" + repository</span><br><span style="color: hsl(120, 100%, 40%);">+    dir = workdir + "/git/" + repository</span><br><span>     complete = subprocess.run(["git", "-C", dir, "describe", "--abbrev=0",</span><br><span>                                "master"], check=True, stdout=subprocess.PIPE)</span><br><span>     return complete.stdout.decode().rstrip()</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def print_old(gitdir, depends):</span><br><span style="color: hsl(120, 100%, 40%);">+def print_old(workdir, depends):</span><br><span>     """ Print dependencies tied to an old release tag</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        :param gitdir: folder to which the sources will be cloned</span><br><span style="color: hsl(120, 100%, 40%);">+        :param workdir: path to where all data (git, build, install) is stored</span><br><span>         :param depends: return value from generate() above """</span><br><span>     print("Dependencies on old releases:")</span><br><span> </span><br><span>     for program, data in depends.items():</span><br><span>         for depend, version in data["depends"].items():</span><br><span style="color: hsl(0, 100%, 40%);">-            latest = git_latest_tag(gitdir, depend)</span><br><span style="color: hsl(120, 100%, 40%);">+            latest = git_latest_tag(workdir, depend)</span><br><span>             if latest == version:</span><br><span>                 continue</span><br><span>             print(" * " + program + ":" + data["version"] + " -> " +</span><br><span>diff --git a/scripts/osmo-depcheck/osmo-depcheck.py b/scripts/osmo-depcheck/osmo-depcheck.py</span><br><span>index 92c0ce6..7f701d6 100755</span><br><span>--- a/scripts/osmo-depcheck/osmo-depcheck.py</span><br><span>+++ b/scripts/osmo-depcheck/osmo-depcheck.py</span><br><span>@@ -4,6 +4,7 @@</span><br><span> </span><br><span> import argparse</span><br><span> import os</span><br><span style="color: hsl(120, 100%, 40%);">+import shutil</span><br><span> import sys</span><br><span> </span><br><span> # Same folder</span><br><span>@@ -17,16 +18,16 @@</span><br><span>     description = ("This script verifies that Osmocom programs really build"</span><br><span>                    " with the dependency versions they claim to support in"</span><br><span>                    " configure.ac. In order to do that, it clones the"</span><br><span style="color: hsl(0, 100%, 40%);">-                   " dependency repositories if they don't exist in gitdir"</span><br><span style="color: hsl(120, 100%, 40%);">+                   " dependency repositories if they don't exist in workdir"</span><br><span>                    " already, and checks out the minimum version tag. This"</span><br><span>                    " happens recursively for their dependencies as well.")</span><br><span>     parser = argparse.ArgumentParser(description=description)</span><br><span> </span><br><span>     # Git sources folder</span><br><span style="color: hsl(0, 100%, 40%);">-    gitdir_default = os.path.expanduser("~") + "/code"</span><br><span style="color: hsl(0, 100%, 40%);">-    parser.add_argument("-g", "--gitdir", default=gitdir_default,</span><br><span style="color: hsl(120, 100%, 40%);">+    workdir_default = os.path.expanduser("~") + "/osmo-depcheck-work"</span><br><span style="color: hsl(120, 100%, 40%);">+    parser.add_argument("-w", "--workdir", default=workdir_default,</span><br><span>                         help="folder to which the sources will be cloned"</span><br><span style="color: hsl(0, 100%, 40%);">-                             " (default: " + gitdir_default + ")")</span><br><span style="color: hsl(120, 100%, 40%);">+                             " (default: " + workdir_default + ")")</span><br><span> </span><br><span>     # Build switch</span><br><span>     parser.add_argument("-b", "--build", action="store_true",</span><br><span>@@ -55,17 +56,33 @@</span><br><span>                              " revision is 'master')",</span><br><span>                         metavar="project[:revision]")</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    # Gitdir must exist</span><br><span style="color: hsl(120, 100%, 40%);">+    # Workdir must exist</span><br><span>     ret = parser.parse_args()</span><br><span style="color: hsl(0, 100%, 40%);">-    if not os.path.exists(ret.gitdir):</span><br><span style="color: hsl(0, 100%, 40%);">-        print("ERROR: gitdir does not exist: " + ret.gitdir)</span><br><span style="color: hsl(120, 100%, 40%);">+    if not os.path.exists(ret.workdir):</span><br><span style="color: hsl(120, 100%, 40%);">+        print("ERROR: workdir does not exist: " + ret.workdir)</span><br><span>         sys.exit(1)</span><br><span>     return ret</span><br><span> </span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+def workdir_prepare(workdir):</span><br><span style="color: hsl(120, 100%, 40%);">+    """ Delete old binaries and create the subfolders in workdir</span><br><span style="color: hsl(120, 100%, 40%);">+        :param workdir: path to where all data is stored """</span><br><span style="color: hsl(120, 100%, 40%);">+    # Delete folders with binaries from previous runs</span><br><span style="color: hsl(120, 100%, 40%);">+    for subfolder in ("build", "install"):</span><br><span style="color: hsl(120, 100%, 40%);">+        full = workdir + "/" + subfolder</span><br><span style="color: hsl(120, 100%, 40%);">+        if os.path.exists(full):</span><br><span style="color: hsl(120, 100%, 40%);">+            shutil.rmtree(full)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    # Create all subfolders</span><br><span style="color: hsl(120, 100%, 40%);">+    for subfolder in ("build", "install", "git"):</span><br><span style="color: hsl(120, 100%, 40%);">+        os.makedirs(workdir + "/" + subfolder, exist_ok=True)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> def main():</span><br><span style="color: hsl(0, 100%, 40%);">-    # Iterate over projects</span><br><span>     args = parse_arguments()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    # Iterate over projects</span><br><span style="color: hsl(120, 100%, 40%);">+    cache_git_fetch = []</span><br><span>     for project_rev in args.projects_revs:</span><br><span>         # Split the git revision from the project name</span><br><span>         project = project_rev</span><br><span>@@ -74,7 +91,9 @@</span><br><span>             project, rev = project_rev.split(":", 1)</span><br><span> </span><br><span>         # Clone and parse the repositories</span><br><span style="color: hsl(0, 100%, 40%);">-        depends = dependencies.generate(args.gitdir, args.prefix, project, rev)</span><br><span style="color: hsl(120, 100%, 40%);">+        workdir_prepare(args.workdir)</span><br><span style="color: hsl(120, 100%, 40%);">+        depends = dependencies.generate(args.workdir, args.prefix,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        cache_git_fetch, project, rev)</span><br><span>         print("---")</span><br><span>         dependencies.print_dict(depends)</span><br><span>         stack = buildstack.generate(depends)</span><br><span>@@ -84,12 +103,12 @@</span><br><span>         # Old versions</span><br><span>         if args.old:</span><br><span>             print("---")</span><br><span style="color: hsl(0, 100%, 40%);">-            dependencies.print_old(args.gitdir, depends)</span><br><span style="color: hsl(120, 100%, 40%);">+            dependencies.print_old(args.workdir, depends)</span><br><span> </span><br><span>         # Build</span><br><span>         if args.build:</span><br><span>             print("---")</span><br><span style="color: hsl(0, 100%, 40%);">-            buildstack.build(args.gitdir, args.jobs, stack)</span><br><span style="color: hsl(120, 100%, 40%);">+            buildstack.build(args.workdir, args.jobs, stack)</span><br><span> </span><br><span>         # Success</span><br><span>         print("---")</span><br><span>diff --git a/scripts/osmo-depcheck/parse.py b/scripts/osmo-depcheck/parse.py</span><br><span>index c6297d6..06f932e 100644</span><br><span>--- a/scripts/osmo-depcheck/parse.py</span><br><span>+++ b/scripts/osmo-depcheck/parse.py</span><br><span>@@ -84,16 +84,16 @@</span><br><span>                   operator + "'")</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-def configure_ac(gitdir, repo):</span><br><span style="color: hsl(120, 100%, 40%);">+def configure_ac(workdir, repo):</span><br><span>     """ Parse the PKG_CHECK_MODULES statements of a configure.ac file.</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        :param gitdir: parent folder of all locally cloned git repositories</span><br><span style="color: hsl(120, 100%, 40%);">+        :param workdir: path to where all data (git, build, install) is stored</span><br><span>         :param repo: the repository to look at (e.g. "osmo-bts")</span><br><span>         :returns: a dictionary like the following:</span><br><span>                   {"libosmocore": "0.11.0",</span><br><span>                    "libosmo-abis": "0.5.0"} """</span><br><span>     # Read configure.ac</span><br><span style="color: hsl(0, 100%, 40%);">-    path = gitdir + "/" + repo + "/configure.ac"</span><br><span style="color: hsl(120, 100%, 40%);">+    path = workdir + "/git/" + repo + "/configure.ac"</span><br><span>     with open(path) as handle:</span><br><span>         lines = handle.readlines()</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11053">change 11053</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/11053"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ci </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I06589277b9d54a2af177451cfab2ca1a658b4058 </div>
<div style="display:none"> Gerrit-Change-Number: 11053 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>