osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/37173?usp=email )
Change subject: OBS: add --configure-append ......................................................................
OBS: add --configure-append
Add a parameter for appending arguments to the ./configure line as it gets called in the debian package. This will be used for asan packages.
Related: OS#5301 Change-Id: I5ae396cc190559eb9c6a1671db374a91f03924e7 --- M scripts/obs/lib/__init__.py M scripts/obs/lib/debian.py M scripts/obs/lib/srcpkg.py 3 files changed, 52 insertions(+), 0 deletions(-)
Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved
diff --git a/scripts/obs/lib/__init__.py b/scripts/obs/lib/__init__.py index 2cb8a40..2e59806 100644 --- a/scripts/obs/lib/__init__.py +++ b/scripts/obs/lib/__init__.py @@ -45,6 +45,9 @@ group_pkg.add_argument("-e", "--version-append", help="add a string at the end of the version, e.g." " '~osmocom' for the wireshark package") + group_pkg.add_argument("-C", "--configure-append", + help="add these parameters to the ./configure line" + " (e.g. ' --enable-sanitize')")
group_git = parser.add_argument_group("git options") group_git.add_argument("-b", "--git-branch", help="instead of using a" diff --git a/scripts/obs/lib/debian.py b/scripts/obs/lib/debian.py index 6703f8b..dd85729 100644 --- a/scripts/obs/lib/debian.py +++ b/scripts/obs/lib/debian.py @@ -120,6 +120,39 @@ changelog_add_entry(project, version)
+def configure_append(project, parameters): + """ Add one or more configure parameters like --enable-sanitize to the + dh_auto_configure line, also add the override_dh_auto_configure block + if missing. """ + print(f"{project}: adding configure parameters: {parameters}") + rules = f"{lib.git.get_repo_path(project)}/debian/rules" + override_found = False + replaced = False + with open(rules, "r") as f: + lines = f.readlines() + for i in range(len(lines)): + line = lines[i] + if line.startswith("override_dh_auto_configure:"): + override_found = True + continue + if "dh_auto_configure" not in line: + continue + assert override_found + if " -- " in line.replace("\t", " "): + lines[i] = line.replace(" --", f" -- {parameters}", 1) + else: + lines[i] = line.replace("dh_auto_configure", + f"dh_auto_configure -- {parameters}", 1) + replaced = True + break + if not override_found: + lines += ["\n", + "override_dh_auto_configure:\n", + f"\tdh_auto_configure -- {parameters}\n"] + with open(rules, "w") as f: + f.writelines(lines) + + def build_source_package(project): fix_source_format(project) print(f"{project}: building debian source package") diff --git a/scripts/obs/lib/srcpkg.py b/scripts/obs/lib/srcpkg.py index aef7732..7701a83 100644 --- a/scripts/obs/lib/srcpkg.py +++ b/scripts/obs/lib/srcpkg.py @@ -204,6 +204,9 @@ if project in lib.config.projects_osmocom: run_generate_build_dep(project)
+ if lib.args.configure_append: + lib.debian.configure_append(project, lib.args.configure_append) + lib.debian.build_source_package(project) lib.debian.move_files_to_output(project)