<p>osmith <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ci/+/24255">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  osmith: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">OBS: refactor osmo_obs_prepare_conflict<br><br>Determine the package name of the conflict package itself and all<br>conflicting packages automatically, so we don't need to have it<br>duplicated in the OBS latest and OBS nightly scripts.<br><br>This is in preparation to move osmocom-2021q1 from latest to nightly.<br>With the current logic in nightly for the conflict package, it would not<br>be possible.<br><br>Related: SYS#5370<br>Change-Id: I183b9040250e66e0d7d17ef4b95af9e7d4a26f04<br>---<br>M scripts/common-obs-conflict.sh<br>M scripts/common-obs.sh<br>M scripts/osmocom-latest-packages.sh<br>M scripts/osmocom-nightly-packages.sh<br>4 files changed, 40 insertions(+), 26 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh</span><br><span>index b6b381a..98c8b70 100644</span><br><span>--- a/scripts/common-obs-conflict.sh</span><br><span>+++ b/scripts/common-obs-conflict.sh</span><br><span>@@ -113,18 +113,28 @@</span><br><span> </span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-# Create conflicting packages</span><br><span style="color: hsl(0, 100%, 40%);">-# $1: name of dummy package (e.g. "osmocom-nightly")</span><br><span style="color: hsl(0, 100%, 40%);">-# $2-*: name of conflicting packages (e.g. "osmocom-latest")</span><br><span style="color: hsl(120, 100%, 40%);">+# Print names of packages that the conflict package from the current feed</span><br><span style="color: hsl(120, 100%, 40%);">+# (e.g. osmocom-nightly) should conflict with (e.g. osmocom-latest,</span><br><span style="color: hsl(120, 100%, 40%);">+# osmocom-next, osmocom-2021q1)</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_obs_prepare_conflict_args() {</span><br><span style="color: hsl(120, 100%, 40%);">+        for i in $FEEDS_ALL; do</span><br><span style="color: hsl(120, 100%, 40%);">+               if [ "$i" != "$FEED" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+                      echo "osmocom-$i"</span><br><span style="color: hsl(120, 100%, 40%);">+           fi</span><br><span style="color: hsl(120, 100%, 40%);">+    done</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%);">+# Create conflicting packages, based on global $FEED and $FEEDS_ALL vars</span><br><span> osmo_obs_prepare_conflict() {</span><br><span style="color: hsl(0, 100%, 40%);">-    local pkgname="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+  local pkgname="osmocom-$FEED"</span><br><span style="color: hsl(120, 100%, 40%);">+       local conflict_args="$(osmo_obs_prepare_conflict_args)"</span><br><span>    local oldpwd="$PWD"</span><br><span> </span><br><span>    mkdir -p "$pkgname"</span><br><span>        cd "$pkgname"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     osmo_obs_prepare_conflict_deb "$@"</span><br><span style="color: hsl(0, 100%, 40%);">-    osmo_obs_prepare_conflict_rpm "$@"</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_obs_prepare_conflict_deb "$pkgname" $conflict_args</span><br><span style="color: hsl(120, 100%, 40%);">+     osmo_obs_prepare_conflict_rpm "$pkgname" $conflict_args</span><br><span> </span><br><span>        # Put in git repository</span><br><span>      git init .</span><br><span>diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh</span><br><span>index 3a5c0c1..1a10eb6 100644</span><br><span>--- a/scripts/common-obs.sh</span><br><span>+++ b/scripts/common-obs.sh</span><br><span>@@ -2,6 +2,13 @@</span><br><span> # Various common code used in the OBS (opensuse build service) related osmo-ci shell scripts</span><br><span> . "$(dirname "$0")/common-obs-conflict.sh"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+FEEDS_ALL="</span><br><span style="color: hsl(120, 100%, 40%);">+        2021q1</span><br><span style="color: hsl(120, 100%, 40%);">+        latest</span><br><span style="color: hsl(120, 100%, 40%);">+        next</span><br><span style="color: hsl(120, 100%, 40%);">+  nightly</span><br><span style="color: hsl(120, 100%, 40%);">+"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> osmo_cmd_require \</span><br><span>      dch \</span><br><span>        dh \</span><br><span>@@ -281,14 +288,24 @@</span><br><span>         echo -n "$version"</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-# Verify that $FEED is in $FEEDS</span><br><span style="color: hsl(120, 100%, 40%);">+# Verify that $FEED is in $FEEDS and $FEEDS_ALL</span><br><span> osmo_obs_verify_feed() {</span><br><span>   local i</span><br><span style="color: hsl(120, 100%, 40%);">+       local j</span><br><span> </span><br><span>  for i in $FEEDS; do</span><br><span style="color: hsl(0, 100%, 40%);">-             if [ "$i" = "$FEED" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">-                 return</span><br><span style="color: hsl(120, 100%, 40%);">+                if [ "$i" != "$FEED" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+                      continue</span><br><span>             fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          for j in $FEEDS_ALL; do</span><br><span style="color: hsl(120, 100%, 40%);">+                       if [ "$j" = "$i" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+                          return</span><br><span style="color: hsl(120, 100%, 40%);">+                        fi</span><br><span style="color: hsl(120, 100%, 40%);">+            done</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                echo "feed found in FEEDS but not FEEDS_ALL: $FEED"</span><br><span style="color: hsl(120, 100%, 40%);">+         exit 1</span><br><span>       done</span><br><span> </span><br><span>     echo "unsupported feed: $FEED"</span><br><span>diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh</span><br><span>index 31fc877..c5c19c4 100755</span><br><span>--- a/scripts/osmocom-latest-packages.sh</span><br><span>+++ b/scripts/osmocom-latest-packages.sh</span><br><span>@@ -11,6 +11,7 @@</span><br><span> . "$(dirname "$0")/common.sh"</span><br><span> . "$(dirname "$0")/common-obs.sh"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+# Values for FEED env var. Adjust FEEDS_ALL in common-obs when changing.</span><br><span> FEEDS="</span><br><span>   2021q1</span><br><span>   latest</span><br><span>@@ -36,15 +37,7 @@</span><br><span>   mkdir "$DEBSRCDIR"</span><br><span> </span><br><span>   cd "$TOP"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  local conflict_args="osmocom-nightly osmocom-next"</span><br><span style="color: hsl(0, 100%, 40%);">-  local i</span><br><span style="color: hsl(0, 100%, 40%);">-  for i in $FEEDS; do</span><br><span style="color: hsl(0, 100%, 40%);">-    if [ "$i" != "$FEED" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">-      conflict_args="$conflict_args osmocom-$i"</span><br><span style="color: hsl(0, 100%, 40%);">-    fi</span><br><span style="color: hsl(0, 100%, 40%);">-  done</span><br><span style="color: hsl(0, 100%, 40%);">-  osmo_obs_prepare_conflict "osmocom-$FEED" $conflict_args</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_obs_prepare_conflict</span><br><span> }</span><br><span> </span><br><span> get_last_tag() {</span><br><span>diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh</span><br><span>index 62528c2..b9a56a3 100755</span><br><span>--- a/scripts/osmocom-nightly-packages.sh</span><br><span>+++ b/scripts/osmocom-nightly-packages.sh</span><br><span>@@ -11,6 +11,7 @@</span><br><span> . "$(dirname "$0")/common.sh"</span><br><span> . "$(dirname "$0")/common-obs.sh"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+# Values for FEED env var. Adjust FEEDS_ALL in common-obs when changing.</span><br><span> FEEDS="</span><br><span>   next</span><br><span>   nightly</span><br><span>@@ -32,14 +33,7 @@</span><br><span>   osc co "$PROJ"</span><br><span> </span><br><span>   cd "$REPO"</span><br><span style="color: hsl(0, 100%, 40%);">-  case "$FEED" in</span><br><span style="color: hsl(0, 100%, 40%);">-  nightly)</span><br><span style="color: hsl(0, 100%, 40%);">-    osmo_obs_prepare_conflict "osmocom-nightly" "osmocom-latest" "osmocom-next"</span><br><span style="color: hsl(0, 100%, 40%);">-    ;;</span><br><span style="color: hsl(0, 100%, 40%);">-  next)</span><br><span style="color: hsl(0, 100%, 40%);">-    osmo_obs_prepare_conflict "osmocom-next" "osmocom-latest" "osmocom-nightly"</span><br><span style="color: hsl(0, 100%, 40%);">-    ;;</span><br><span style="color: hsl(0, 100%, 40%);">-  esac</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_obs_prepare_conflict</span><br><span> }</span><br><span> </span><br><span> get_last_tag() {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ci/+/24255">change 24255</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/+/24255"/><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: I183b9040250e66e0d7d17ef4b95af9e7d4a26f04 </div>
<div style="display:none"> Gerrit-Change-Number: 24255 </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: laforge <laforge@osmocom.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>