<p>laforge <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ci/+/14490">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved; Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">OBS: make nightly packages conflict with latest<br><br>Add conflicting dummy packages osmocom-nightly and osmocom-latest, and<br>make all packages from each repository depend on the right one.<br><br>As usually, the latest packages will only get changed when a new release<br>appears. So the dependency will get introduced after tagging a new<br>release. I have tested in an own OBS namespace, that everything works as<br>expected.<br><br>Related: OS#2640<br>Change-Id: I79c45e798c10a65443b9fb9ecb54393d1918608a<br>---<br>A scripts/common-obs.sh<br>M scripts/osmocom-latest-packages.sh<br>M scripts/osmocom-nightly-packages.sh<br>3 files changed, 95 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh</span><br><span>new file mode 100644</span><br><span>index 0000000..2b33039</span><br><span>--- /dev/null</span><br><span>+++ b/scripts/common-obs.sh</span><br><span>@@ -0,0 +1,79 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh</span><br><span style="color: hsl(120, 100%, 40%);">+# Various common code used in the OBS (opensuse build service) related osmo-ci shell scripts</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Create the source for a dummy package, that conflicts with another dummy package in the current directory. Example</span><br><span style="color: hsl(120, 100%, 40%);">+# of the structure that will be generated:</span><br><span style="color: hsl(120, 100%, 40%);">+# osmocom-nightly</span><br><span style="color: hsl(120, 100%, 40%);">+# └── debian</span><br><span style="color: hsl(120, 100%, 40%);">+#     ├── changelog</span><br><span style="color: hsl(120, 100%, 40%);">+#     ├── compat</span><br><span style="color: hsl(120, 100%, 40%);">+#     ├── control</span><br><span style="color: hsl(120, 100%, 40%);">+#     ├── copyright</span><br><span style="color: hsl(120, 100%, 40%);">+#     ├── rules</span><br><span style="color: hsl(120, 100%, 40%);">+#     └── source</span><br><span style="color: hsl(120, 100%, 40%);">+#         └── format</span><br><span style="color: hsl(120, 100%, 40%);">+# $1: name of dummy package (e.g. "osmocom-nightly")</span><br><span style="color: hsl(120, 100%, 40%);">+# $2: name of conflicting package (e.g. "osmocom-latest")</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_obs_prepare_conflict() {</span><br><span style="color: hsl(120, 100%, 40%);">+      local pkgname="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+  local pkgname_conflict="$2"</span><br><span style="color: hsl(120, 100%, 40%);">+ local pkgver="0.0.0"</span><br><span style="color: hsl(120, 100%, 40%);">+        local oldpwd="$PWD"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       mkdir -p "$pkgname/debian/source"</span><br><span style="color: hsl(120, 100%, 40%);">+   cd "$pkgname/debian"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      # Fill control, changelog, rules</span><br><span style="color: hsl(120, 100%, 40%);">+      cat << EOF > control</span><br><span style="color: hsl(120, 100%, 40%);">+Source: ${pkgname}</span><br><span style="color: hsl(120, 100%, 40%);">+Section: unknown</span><br><span style="color: hsl(120, 100%, 40%);">+Priority: optional</span><br><span style="color: hsl(120, 100%, 40%);">+Maintainer: Oliver Smith <osmith@sysmocom.de></span><br><span style="color: hsl(120, 100%, 40%);">+Build-Depends: debhelper (>= 9)</span><br><span style="color: hsl(120, 100%, 40%);">+Standards-Version: 3.9.8</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Package: ${pkgname}</span><br><span style="color: hsl(120, 100%, 40%);">+Depends: \${misc:Depends}</span><br><span style="color: hsl(120, 100%, 40%);">+Architecture: any</span><br><span style="color: hsl(120, 100%, 40%);">+Conflicts: ${pkgname_conflict}</span><br><span style="color: hsl(120, 100%, 40%);">+Description: Dummy package, which conflicts with ${pkgname_conflict}</span><br><span style="color: hsl(120, 100%, 40%);">+EOF</span><br><span style="color: hsl(120, 100%, 40%);">+    cat << EOF > changelog</span><br><span style="color: hsl(120, 100%, 40%);">+${pkgname} (${pkgver}) unstable; urgency=medium</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  * Dummy package, which conflicts with ${pkgname_conflict}.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ -- Oliver Smith <osmith@sysmocom.de>  Thu, 13 Jun 2019 12:50:19 +0200</span><br><span style="color: hsl(120, 100%, 40%);">+EOF</span><br><span style="color: hsl(120, 100%, 40%);">+ cat << EOF > rules</span><br><span style="color: hsl(120, 100%, 40%);">+#!/usr/bin/make -f</span><br><span style="color: hsl(120, 100%, 40%);">+%:</span><br><span style="color: hsl(120, 100%, 40%);">+   dh \$@</span><br><span style="color: hsl(120, 100%, 40%);">+EOF</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ # Finish up debian dir</span><br><span style="color: hsl(120, 100%, 40%);">+        chmod +x rules</span><br><span style="color: hsl(120, 100%, 40%);">+        echo "9" > compat</span><br><span style="color: hsl(120, 100%, 40%);">+        echo "3.0 (native)" > source/format</span><br><span style="color: hsl(120, 100%, 40%);">+      touch copyright</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     # Put in git repository</span><br><span style="color: hsl(120, 100%, 40%);">+       cd ..</span><br><span style="color: hsl(120, 100%, 40%);">+ git init .</span><br><span style="color: hsl(120, 100%, 40%);">+    git add -A</span><br><span style="color: hsl(120, 100%, 40%);">+    git commit -m "auto-commit: $pkgname dummy package" || true</span><br><span style="color: hsl(120, 100%, 40%);">+ git tag -f "$pkgver"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      cd "$oldpwd"</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Add dependency to all (sub)packages in debian/control and commit the change.</span><br><span style="color: hsl(120, 100%, 40%);">+# $1: path to debian/control file</span><br><span style="color: hsl(120, 100%, 40%);">+# $2: name of the package to depend on</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_obs_add_debian_dependency() {</span><br><span style="color: hsl(120, 100%, 40%);">+    # Note: adding the comma at the end should be fine. If there is a Depends: line, it is most likely not empty. It</span><br><span style="color: hsl(120, 100%, 40%);">+      # should at least have ${misc:Depends} according to lintian.</span><br><span style="color: hsl(120, 100%, 40%);">+  sed "s/^Depends: /Depends: $2, /g" -i "$1"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      git -C "$(dirname "$1")" commit -m "auto-commit: debian: depend on $2" .</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh</span><br><span>index 543c43a..2a9e28d 100755</span><br><span>--- a/scripts/osmocom-latest-packages.sh</span><br><span>+++ b/scripts/osmocom-latest-packages.sh</span><br><span>@@ -1,4 +1,5 @@</span><br><span> #!/bin/sh</span><br><span style="color: hsl(120, 100%, 40%);">+. "$(dirname "$0")/common-obs.sh"</span><br><span> </span><br><span> # requirements</span><br><span> # apt install git-buildpackage osc git</span><br><span>@@ -28,6 +29,9 @@</span><br><span>   fi</span><br><span>   [ -d "$DEBSRCDIR" ] && rm -rf "$DEBSRCDIR"</span><br><span>   mkdir "$DEBSRCDIR"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  cd "$TOP"</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_obs_prepare_conflict "osmocom-latest" "osmocom-nightly"</span><br><span> }</span><br><span> </span><br><span> get_last_tag() {</span><br><span>@@ -84,6 +88,11 @@</span><br><span>   VER=$(get_last_tag "$project")</span><br><span>   if [ -x ./git-version-gen ]; then</span><br><span>     ./git-version-gen . > .tarball-version 2>/dev/null</span><br><span style="color: hsl(120, 100%, 40%);">+  fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_obs_add_debian_dependency "./debian/control" "osmocom-latest"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  if [ -x ./git-version-gen ]; then</span><br><span>     gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$output" \</span><br><span>                      "--git-debian-branch=$VER" --git-ignore-new $gitbpargs \</span><br><span>                   --git-postexport='cp $GBP_GIT_DIR/../.tarball-version $GBP_TMP_DIR/'</span><br><span>@@ -152,6 +161,7 @@</span><br><span> </span><br><span>   checkout_copy_debian8_jessie "osmo-gsm-manuals"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  build osmocom-latest</span><br><span>   build limesuite --git-upstream-tree="$(get_last_tag limesuite)"</span><br><span>   build osmo-gsm-manuals</span><br><span>   build osmo-gsm-manuals-debian8-jessie</span><br><span>diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh</span><br><span>index 27cd9dc..172e4e0 100755</span><br><span>--- a/scripts/osmocom-nightly-packages.sh</span><br><span>+++ b/scripts/osmocom-nightly-packages.sh</span><br><span>@@ -1,4 +1,5 @@</span><br><span> #!/bin/bash</span><br><span style="color: hsl(120, 100%, 40%);">+. "$(dirname "$0")/common-obs.sh"</span><br><span> </span><br><span> # requirements</span><br><span> # apt install devscripts git-buildpackage osc git</span><br><span>@@ -23,6 +24,9 @@</span><br><span>   mkdir -p "$REPO/osc/"</span><br><span>   cd "$REPO/osc"</span><br><span>   osc co "$PROJ"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  cd "$REPO"</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_obs_prepare_conflict "osmocom-nightly" "osmocom-latest"</span><br><span> }</span><br><span> </span><br><span> get_last_tag() {</span><br><span>@@ -98,6 +102,7 @@</span><br><span> </span><br><span>   if [ "$changelog" = "commit" ] ; then</span><br><span>     VER=$(get_commit_version)</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo_obs_add_debian_dependency "./debian/control" "osmocom-nightly"</span><br><span>     dch -b -v "$VER" -m "Snapshot build"</span><br><span>     git commit -m "$VER snapshot" debian/</span><br><span>   fi</span><br><span>@@ -205,6 +210,7 @@</span><br><span>   checkout_copy_debian8_jessie "osmo-gsm-manuals"</span><br><span>   checkout_copy_debian8_jessie "osmo-trx"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  build osmocom-nightly</span><br><span>   build limesuite no_commit --git-upstream-tree="$(get_last_tag limesuite)"</span><br><span>   build osmo-gsm-manuals</span><br><span>   build osmo-gsm-manuals-debian8-jessie</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ci/+/14490">change 14490</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/c/osmo-ci/+/14490"/><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-Change-Id: I79c45e798c10a65443b9fb9ecb54393d1918608a </div>
<div style="display:none"> Gerrit-Change-Number: 14490 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>