<p>Pau Espin Pedrol <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/11239">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Harald Welte: Looks good to me, approved
Pau Espin Pedrol: Verified
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmocom-latest-packages.sh: Refactor to support building limesuite<br><br>This way the latest script is a lot more similar to the nightly one, and<br>easier to maintain and expand with new features.<br><br>checkout and build steps are split because once we have a new<br>osmo-trx release, we'll need the create_osmo_trx_debian8_jessie trick to<br>build it.<br><br>In the future we can do further steps to have a common function lib<br>between latest and nightly scripts.<br><br>Change-Id: I786c6f4ad4b4e43d1692c1588d2ad2194d0b25a4<br>---<br>M scripts/osmocom-latest-packages.sh<br>1 file changed, 109 insertions(+), 54 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 ac5a2dd..f983d05 100755</span><br><span>--- a/scripts/osmocom-latest-packages.sh</span><br><span>+++ b/scripts/osmocom-latest-packages.sh</span><br><span>@@ -4,55 +4,87 @@</span><br><span> # apt install git-buildpackage osc git</span><br><span> </span><br><span> set -e</span><br><span style="color: hsl(120, 100%, 40%);">+set -x</span><br><span> </span><br><span> # OBS project name</span><br><span> PROJ=network:osmocom:latest</span><br><span> </span><br><span> DT=$(date +%Y%m%d)</span><br><span> TOP=$(pwd)</span><br><span style="color: hsl(120, 100%, 40%);">+DEBSRCDIR="$TOP/debsrc"</span><br><span> </span><br><span> if ! which osc >/dev/null 2>/dev/null ; then</span><br><span> echo "osc binary not found"</span><br><span> exit 1</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-# start with a checkout of the project</span><br><span style="color: hsl(0, 100%, 40%);">-if [ -d $PROJ ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- (cd $PROJ && osc up)</span><br><span style="color: hsl(0, 100%, 40%);">-else</span><br><span style="color: hsl(0, 100%, 40%);">- osc co $PROJ</span><br><span style="color: hsl(0, 100%, 40%);">-fi</span><br><span style="color: hsl(120, 100%, 40%);">+prepare() {</span><br><span style="color: hsl(120, 100%, 40%);">+ # start with a checkout of the project</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ -d $PROJ ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ (cd $PROJ && osc up)</span><br><span style="color: hsl(120, 100%, 40%);">+ else</span><br><span style="color: hsl(120, 100%, 40%);">+ osc co $PROJ</span><br><span style="color: hsl(120, 100%, 40%);">+ fi</span><br><span style="color: hsl(120, 100%, 40%);">+ [ -d "$DEBSRCDIR" ] && rm -rf "$DEBSRCDIR"</span><br><span style="color: hsl(120, 100%, 40%);">+ mkdir "$DEBSRCDIR"</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%);">+get_last_tag() {</span><br><span style="color: hsl(120, 100%, 40%);">+ project="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$project" = "limesuite" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ ver_regexp="^v[0-9]*.[0-9]*.[0-9]*$"</span><br><span style="color: hsl(120, 100%, 40%);">+ else</span><br><span style="color: hsl(120, 100%, 40%);">+ ver_regexp="^[0-9]*.[0-9]*.[0-9]*$"</span><br><span style="color: hsl(120, 100%, 40%);">+ fi</span><br><span style="color: hsl(120, 100%, 40%);">+ VER=$(git -C "${TOP}/${project}" tag -l --sort=v:refname | grep "$ver_regexp" | tail -n 1)</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "${VER}"</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%);">+checkout() {</span><br><span style="color: hsl(120, 100%, 40%);">+ project=$1</span><br><span style="color: hsl(120, 100%, 40%);">+ gitbpargs=""</span><br><span style="color: hsl(120, 100%, 40%);">+ echo</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "====> Checking out $project"</span><br><span style="color: hsl(120, 100%, 40%);">+ cd "$TOP"</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$project" = "limesuite" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ [ -d "$project" ] || git clone "https://github.com/myriadrf/LimeSuite" "$project"</span><br><span style="color: hsl(120, 100%, 40%);">+ else</span><br><span style="color: hsl(120, 100%, 40%);">+ [ -d "$project" ] || git clone "git://git.osmocom.org/$project"</span><br><span style="color: hsl(120, 100%, 40%);">+ fi</span><br><span style="color: hsl(120, 100%, 40%);">+ cd "$project"</span><br><span style="color: hsl(120, 100%, 40%);">+ git fetch</span><br><span style="color: hsl(120, 100%, 40%);">+ VER=$(get_last_tag "$project")</span><br><span style="color: hsl(120, 100%, 40%);">+ git checkout -f -B "$VER" "refs/tags/$VER"</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span> build() {</span><br><span> project=$1</span><br><span style="color: hsl(0, 100%, 40%);">- output=$2</span><br><span style="color: hsl(120, 100%, 40%);">+ gitbpargs="$2"</span><br><span style="color: hsl(120, 100%, 40%);">+ output="$DEBSRCDIR/$project"</span><br><span> echo</span><br><span> echo "====> Building $project"</span><br><span style="color: hsl(0, 100%, 40%);">- cd "$TOP"</span><br><span style="color: hsl(0, 100%, 40%);">- [ -d "$1" ] || git clone "git://git.osmocom.org/$1"</span><br><span style="color: hsl(0, 100%, 40%);">- cd "$1"</span><br><span style="color: hsl(0, 100%, 40%);">- git fetch</span><br><span style="color: hsl(0, 100%, 40%);">- VER=$(git tag -l --sort=v:refname | grep "^[0-9]*.[0-9]*.[0-9]*$" | tail -n 1)</span><br><span style="color: hsl(120, 100%, 40%);">+ cd "$TOP/$project"</span><br><span style="color: hsl(120, 100%, 40%);">+ VER=$(get_last_tag "$project")</span><br><span> git checkout -f -B "$VER" "refs/tags/$VER"</span><br><span> if [ -x ./git-version-gen ]; then</span><br><span> ./git-version-gen . > .tarball-version 2>/dev/null</span><br><span> gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$output" \</span><br><span style="color: hsl(0, 100%, 40%);">- "--git-debian-branch=$VER" --git-ignore-new \</span><br><span style="color: hsl(120, 100%, 40%);">+ "--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> else</span><br><span> gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$output" \</span><br><span style="color: hsl(0, 100%, 40%);">- "--git-debian-branch=$VER" --git-ignore-new</span><br><span style="color: hsl(120, 100%, 40%);">+ "--git-debian-branch=$VER" --git-ignore-new $gitbpargs</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if [ ! -d "$TOP/$PROJ/$1" ] ; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ ! -d "$TOP/$PROJ/$project" ] ; then</span><br><span> # creating a new package is different from using old ones</span><br><span style="color: hsl(0, 100%, 40%);">- mkdir "$TOP/$PROJ/$1"</span><br><span style="color: hsl(0, 100%, 40%);">- mv "$output/"*.dsc "$TOP/$PROJ/$1/"</span><br><span style="color: hsl(0, 100%, 40%);">- mv "$output/"*.tar* "$TOP/$PROJ/$1/"</span><br><span style="color: hsl(120, 100%, 40%);">+ mkdir "$TOP/$PROJ/$project"</span><br><span style="color: hsl(120, 100%, 40%);">+ mv "$output/"*.dsc "$TOP/$PROJ/$project/"</span><br><span style="color: hsl(120, 100%, 40%);">+ mv "$output/"*.tar* "$TOP/$PROJ/$project/"</span><br><span> cd "$TOP/$PROJ"</span><br><span style="color: hsl(0, 100%, 40%);">- osc add "$1"</span><br><span style="color: hsl(120, 100%, 40%);">+ osc add "$project"</span><br><span> else</span><br><span style="color: hsl(0, 100%, 40%);">- cd "$TOP/$PROJ/$1"</span><br><span style="color: hsl(120, 100%, 40%);">+ cd "$TOP/$PROJ/$project"</span><br><span> </span><br><span> # update OBS only if the filename doesn't match</span><br><span> file=$(cd "$output/" ; ls ./*.dsc)</span><br><span>@@ -66,40 +98,63 @@</span><br><span> cd "$TOP"</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-PACKAGES="</span><br><span style="color: hsl(0, 100%, 40%);">- libosmocore</span><br><span style="color: hsl(0, 100%, 40%);">- libosmo-sccp</span><br><span style="color: hsl(0, 100%, 40%);">- libosmo-abis</span><br><span style="color: hsl(0, 100%, 40%);">- libosmo-netif</span><br><span style="color: hsl(0, 100%, 40%);">- libsmpp34</span><br><span style="color: hsl(0, 100%, 40%);">- libasn1c</span><br><span style="color: hsl(0, 100%, 40%);">- libgtpnl</span><br><span style="color: hsl(0, 100%, 40%);">- libusrp</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-iuh</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-ggsn</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-sgsn</span><br><span style="color: hsl(0, 100%, 40%);">- openbsc</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-pcap</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-trx</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-sip-connector</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-bts</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-pcu</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-hlr</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-mgw</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-msc</span><br><span style="color: hsl(0, 100%, 40%);">- osmo-bsc</span><br><span style="color: hsl(0, 100%, 40%);">- simtrace2</span><br><span style="color: hsl(0, 100%, 40%);">- "</span><br><span style="color: hsl(0, 100%, 40%);">-# add those two once they have tagged any versions that include the 'debian' sub-dir</span><br><span style="color: hsl(0, 100%, 40%);">- #rtl-sdr</span><br><span style="color: hsl(0, 100%, 40%);">- #osmo-fl2k</span><br><span style="color: hsl(120, 100%, 40%);">+# add those two once they have tagged any versions that include the 'debian' sub-dir:</span><br><span style="color: hsl(120, 100%, 40%);">+#rtl-sdr</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-fl2k</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-[ -d "$TOP/debsrc" ] && rm -rf "$TOP/debsrc"</span><br><span style="color: hsl(0, 100%, 40%);">-mkdir "$TOP/debsrc"</span><br><span style="color: hsl(120, 100%, 40%);">+build_osmocom() {</span><br><span style="color: hsl(120, 100%, 40%);">+ prepare</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-for p in $PACKAGES; do</span><br><span style="color: hsl(0, 100%, 40%);">- build "$p" "$TOP/debsrc/$p"</span><br><span style="color: hsl(0, 100%, 40%);">-done</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout limesuite</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout libosmocore</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout libosmo-sccp</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout libosmo-abis</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout libosmo-netif</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout libsmpp34</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout libasn1c</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout libgtpnl</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout libusrp</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-iuh</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-ggsn</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-sgsn</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout openbsc</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-pcap</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-trx</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-sip-connector</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-bts</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-pcu</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-hlr</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-mgw</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-msc</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout osmo-bsc</span><br><span style="color: hsl(120, 100%, 40%);">+ checkout simtrace2</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-cd "$TOP/$PROJ"</span><br><span style="color: hsl(0, 100%, 40%);">-osc ci -m "Latest Tagged versions of $DT"</span><br><span style="color: hsl(120, 100%, 40%);">+ build limesuite --git-upstream-tree="$(get_last_tag limesuite)"</span><br><span style="color: hsl(120, 100%, 40%);">+ build libosmocore</span><br><span style="color: hsl(120, 100%, 40%);">+ build libosmo-sccp</span><br><span style="color: hsl(120, 100%, 40%);">+ build libosmo-abis</span><br><span style="color: hsl(120, 100%, 40%);">+ build libosmo-netif</span><br><span style="color: hsl(120, 100%, 40%);">+ build libsmpp34</span><br><span style="color: hsl(120, 100%, 40%);">+ build libasn1c</span><br><span style="color: hsl(120, 100%, 40%);">+ build libgtpnl</span><br><span style="color: hsl(120, 100%, 40%);">+ build libusrp</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-iuh</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-ggsn</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-sgsn</span><br><span style="color: hsl(120, 100%, 40%);">+ build openbsc</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-pcap</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-trx</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-sip-connector</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-bts</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-pcu</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-hlr</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-mgw</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-msc</span><br><span style="color: hsl(120, 100%, 40%);">+ build osmo-bsc</span><br><span style="color: hsl(120, 100%, 40%);">+ build simtrace2</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ cd "$TOP/$PROJ"</span><br><span style="color: hsl(120, 100%, 40%);">+ osc ci -m "Latest Tagged versions of $DT"</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%);">+build_osmocom</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11239">change 11239</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/11239"/><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-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I786c6f4ad4b4e43d1692c1588d2ad2194d0b25a4 </div>
<div style="display:none"> Gerrit-Change-Number: 11239 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>