<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ci/+/17248">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;">osmocom-nightly/latest: Build open5gs<br><br>This is unfortunately harder than expected.  The problem is the use<br>of meson external dependencies using 'wrap', specifically for<br>freeDiameter.<br><br>As a debian source package needs to include the entire source, the<br>dpkg helpers are calling 'meson --wrap-mode=nodownload' at build time.<br><br>This in turn requires us to download the freeDiameter after the git<br>clone of open5gs.  Unfortunately this creates a git checkout in a<br>sub directory of the open5gs repo, which is not part of the git history.<br><br>git-buildpackage hence generates a source tarball *without*<br>freeDiameter.  I tried very hard in several methods like<br>* git commit subprojects/freeDiameter<br>* adding subprojects/freeDiameter as git submodule<br>unfortuantely none of them helped.<br><br>In the end, I resorted to using 'dpkg-buildpackage' instead of<br>'git-buildpackage' (gbp), which then has other disadvantages,<br>such as not being able to determine the output directory to which<br>the .tar.* and .dsc files are written to.<br><br>In the end, the solution implemented here is the only one I could<br>make work.<br><br>Change-Id: I6752288868e5ee1378c0776b1be9f06750017c41<br>---<br>M scripts/osmocom-latest-packages.sh<br>M scripts/osmocom-nightly-packages.sh<br>2 files changed, 31 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh</span><br><span>index 3770ee1..bcc3067 100755</span><br><span>--- a/scripts/osmocom-latest-packages.sh</span><br><span>+++ b/scripts/osmocom-latest-packages.sh</span><br><span>@@ -37,7 +37,7 @@</span><br><span> </span><br><span> get_last_tag() {</span><br><span>   project="$1"</span><br><span style="color: hsl(0, 100%, 40%);">-  if [ "$project" = "limesuite" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+  if [ "$project" = "limesuite" ] || [ "$project" = "open5gs" ]; then</span><br><span>     ver_regexp="^v[0-9]*.[0-9]*.[0-9]*$"</span><br><span>   else</span><br><span>     ver_regexp="^[0-9]*.[0-9]*.[0-9]*$"</span><br><span>@@ -54,6 +54,10 @@</span><br><span>   cd "$TOP"</span><br><span>   if [ "$project" = "limesuite" ]; then</span><br><span>      [ -d "$project" ] || git clone "https://github.com/myriadrf/LimeSuite" "$project"</span><br><span style="color: hsl(120, 100%, 40%);">+  elif [ "$project" = "open5gs" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+    if [ ! -d "$project" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+      git clone "https://github.com/open5gs/open5gs" "$project"</span><br><span style="color: hsl(120, 100%, 40%);">+    fi</span><br><span>   else</span><br><span>     [ -d "$project" ] || osmo_git_clone_date "$(osmo_git_clone_url "$project")"</span><br><span>   fi</span><br><span>@@ -61,6 +65,9 @@</span><br><span>   git fetch</span><br><span>   VER=$(get_last_tag "$project")</span><br><span>   git checkout -f -B "$VER" "refs/tags/$VER"</span><br><span style="color: hsl(120, 100%, 40%);">+  if [ "$project" = "open5gs" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+      meson subprojects download freeDiameter</span><br><span style="color: hsl(120, 100%, 40%);">+  fi</span><br><span> }</span><br><span> </span><br><span> # Copy an already checked out repository dir and apply its debian 8 patch.</span><br><span>@@ -93,7 +100,12 @@</span><br><span> </span><br><span>   osmo_obs_add_debian_dependency "./debian/control" "osmocom-latest"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  if [ -x ./git-version-gen ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+  if [ "$project" = "open5gs" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+    # we cannot control the output directory of the generated source :(</span><br><span style="color: hsl(120, 100%, 40%);">+    dpkg-buildpackage -S -uc -us -d</span><br><span style="color: hsl(120, 100%, 40%);">+    mkdir -p "$output"</span><br><span style="color: hsl(120, 100%, 40%);">+    mv "../$name"*.tar* "../$name"*.dsc "$output"</span><br><span style="color: hsl(120, 100%, 40%);">+  elif [ -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>@@ -159,6 +171,7 @@</span><br><span>   checkout libosmo-dsp</span><br><span>   checkout osmo-sysmon</span><br><span>   checkout osmo-remsim</span><br><span style="color: hsl(120, 100%, 40%);">+  checkout open5gs</span><br><span> </span><br><span>   checkout_copy_debian8_jessie "osmo-gsm-manuals"</span><br><span> </span><br><span>@@ -191,6 +204,7 @@</span><br><span>   build libosmo-dsp</span><br><span>   build osmo-sysmon</span><br><span>   build osmo-remsim</span><br><span style="color: hsl(120, 100%, 40%);">+  build open5gs</span><br><span> </span><br><span>   cd "$TOP/$PROJ"</span><br><span>   osc ci -m "Latest Tagged versions of $DT"</span><br><span>diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh</span><br><span>index d49d968..6094db2 100755</span><br><span>--- a/scripts/osmocom-nightly-packages.sh</span><br><span>+++ b/scripts/osmocom-nightly-packages.sh</span><br><span>@@ -108,8 +108,11 @@</span><br><span>   fi</span><br><span> </span><br><span>   mkdir -p "$DATA/$name"</span><br><span style="color: hsl(0, 100%, 40%);">-  # source code build without dependency checks and unsigned source and unsigned change log</span><br><span style="color: hsl(0, 100%, 40%);">-  if [ -f .tarball-version ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+  if [ "$name" = "open5gs" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+    # we cannot control the output directory of the generated source :(</span><br><span style="color: hsl(120, 100%, 40%);">+    dpkg-buildpackage -S -uc -us -d</span><br><span style="color: hsl(120, 100%, 40%);">+    mv "../$name"*.tar* "../$name"*.dsc "$DATA/$name/"</span><br><span style="color: hsl(120, 100%, 40%);">+  elif [ -f .tarball-version ]; then</span><br><span>     gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$DATA/$name" \</span><br><span>                    --git-ignore-new $gitbpargs \</span><br><span>                --git-postexport='cp $GBP_GIT_DIR/../.tarball-version $GBP_TMP_DIR/'</span><br><span>@@ -153,6 +156,14 @@</span><br><span>   git checkout "$TAG"</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+checkout_open5gs() {</span><br><span style="color: hsl(120, 100%, 40%);">+  cd "$REPO"</span><br><span style="color: hsl(120, 100%, 40%);">+  git clone https://github.com/open5gs/open5gs</span><br><span style="color: hsl(120, 100%, 40%);">+  cd open5gs</span><br><span style="color: hsl(120, 100%, 40%);">+  meson subprojects download freeDiameter</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%);">+</span><br><span> # Copy an already checked out repository dir and apply its debian 8 patch.</span><br><span> # $1: Osmocom repository</span><br><span> checkout_copy_debian8_jessie() {</span><br><span>@@ -207,6 +218,7 @@</span><br><span>   checkout libosmo-dsp</span><br><span>   checkout osmo-sysmon</span><br><span>   checkout osmo-remsim</span><br><span style="color: hsl(120, 100%, 40%);">+  checkout_open5gs</span><br><span> </span><br><span>   checkout_copy_debian8_jessie "osmo-gsm-manuals"</span><br><span>   checkout_copy_debian8_jessie "osmo-trx"</span><br><span>@@ -244,6 +256,7 @@</span><br><span>   build libosmo-dsp</span><br><span>   build osmo-sysmon</span><br><span>   build osmo-remsim</span><br><span style="color: hsl(120, 100%, 40%);">+  build open5gs</span><br><span> </span><br><span>   download_bumpversion</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ci/+/17248">change 17248</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/+/17248"/><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: I6752288868e5ee1378c0776b1be9f06750017c41 </div>
<div style="display:none"> Gerrit-Change-Number: 17248 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>