<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>