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