aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/osmocom-latest-packages.sh
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2018-10-04 19:25:35 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2018-10-05 12:05:10 +0200
commit2958d13e2b3ab63c35c17408e7d438b7d9362a72 (patch)
tree0dce2b61f57652d61efc2d473f5a096453ea2021 /scripts/osmocom-latest-packages.sh
parent59f131cc44612d4310ec6a393363d0b1cca5b37a (diff)
osmocom-latest-packages.sh: Refactor to support building limesuite
This way the latest script is a lot more similar to the nightly one, and easier to maintain and expand with new features. checkout and build steps are split because once we have a new osmo-trx release, we'll need the create_osmo_trx_debian8_jessie trick to build it. In the future we can do further steps to have a common function lib between latest and nightly scripts. Change-Id: I786c6f4ad4b4e43d1692c1588d2ad2194d0b25a4
Diffstat (limited to 'scripts/osmocom-latest-packages.sh')
-rwxr-xr-xscripts/osmocom-latest-packages.sh169
1 files changed, 112 insertions, 57 deletions
diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh
index ac5a2dd..f983d05 100755
--- a/scripts/osmocom-latest-packages.sh
+++ b/scripts/osmocom-latest-packages.sh
@@ -4,55 +4,87 @@
# apt install git-buildpackage osc git
set -e
+set -x
# OBS project name
PROJ=network:osmocom:latest
DT=$(date +%Y%m%d)
TOP=$(pwd)
+DEBSRCDIR="$TOP/debsrc"
if ! which osc >/dev/null 2>/dev/null ; then
echo "osc binary not found"
exit 1
fi
-# start with a checkout of the project
-if [ -d $PROJ ]; then
- (cd $PROJ && osc up)
-else
- osc co $PROJ
-fi
+prepare() {
+ # start with a checkout of the project
+ if [ -d $PROJ ]; then
+ (cd $PROJ && osc up)
+ else
+ osc co $PROJ
+ fi
+ [ -d "$DEBSRCDIR" ] && rm -rf "$DEBSRCDIR"
+ mkdir "$DEBSRCDIR"
+}
-build() {
+get_last_tag() {
+ project="$1"
+ if [ "$project" = "limesuite" ]; then
+ ver_regexp="^v[0-9]*.[0-9]*.[0-9]*$"
+ else
+ ver_regexp="^[0-9]*.[0-9]*.[0-9]*$"
+ fi
+ VER=$(git -C "${TOP}/${project}" tag -l --sort=v:refname | grep "$ver_regexp" | tail -n 1)
+ echo "${VER}"
+}
+
+checkout() {
project=$1
- output=$2
+ gitbpargs=""
echo
- echo "====> Building $project"
+ echo "====> Checking out $project"
cd "$TOP"
- [ -d "$1" ] || git clone "git://git.osmocom.org/$1"
- cd "$1"
+ if [ "$project" = "limesuite" ]; then
+ [ -d "$project" ] || git clone "https://github.com/myriadrf/LimeSuite" "$project"
+ else
+ [ -d "$project" ] || git clone "git://git.osmocom.org/$project"
+ fi
+ cd "$project"
git fetch
- VER=$(git tag -l --sort=v:refname | grep "^[0-9]*.[0-9]*.[0-9]*$" | tail -n 1)
+ VER=$(get_last_tag "$project")
+ git checkout -f -B "$VER" "refs/tags/$VER"
+}
+
+build() {
+ project=$1
+ gitbpargs="$2"
+ output="$DEBSRCDIR/$project"
+ echo
+ echo "====> Building $project"
+ cd "$TOP/$project"
+ VER=$(get_last_tag "$project")
git checkout -f -B "$VER" "refs/tags/$VER"
if [ -x ./git-version-gen ]; then
./git-version-gen . > .tarball-version 2>/dev/null
gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$output" \
- "--git-debian-branch=$VER" --git-ignore-new \
+ "--git-debian-branch=$VER" --git-ignore-new $gitbpargs \
--git-postexport='cp $GBP_GIT_DIR/../.tarball-version $GBP_TMP_DIR/'
else
gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$output" \
- "--git-debian-branch=$VER" --git-ignore-new
+ "--git-debian-branch=$VER" --git-ignore-new $gitbpargs
fi
- if [ ! -d "$TOP/$PROJ/$1" ] ; then
+ if [ ! -d "$TOP/$PROJ/$project" ] ; then
# creating a new package is different from using old ones
- mkdir "$TOP/$PROJ/$1"
- mv "$output/"*.dsc "$TOP/$PROJ/$1/"
- mv "$output/"*.tar* "$TOP/$PROJ/$1/"
+ mkdir "$TOP/$PROJ/$project"
+ mv "$output/"*.dsc "$TOP/$PROJ/$project/"
+ mv "$output/"*.tar* "$TOP/$PROJ/$project/"
cd "$TOP/$PROJ"
- osc add "$1"
+ osc add "$project"
else
- cd "$TOP/$PROJ/$1"
+ cd "$TOP/$PROJ/$project"
# update OBS only if the filename doesn't match
file=$(cd "$output/" ; ls ./*.dsc)
@@ -66,40 +98,63 @@ build() {
cd "$TOP"
}
-PACKAGES="
- libosmocore
- libosmo-sccp
- libosmo-abis
- libosmo-netif
- libsmpp34
- libasn1c
- libgtpnl
- libusrp
- osmo-iuh
- osmo-ggsn
- osmo-sgsn
- openbsc
- osmo-pcap
- osmo-trx
- osmo-sip-connector
- osmo-bts
- osmo-pcu
- osmo-hlr
- osmo-mgw
- osmo-msc
- osmo-bsc
- simtrace2
- "
-# add those two once they have tagged any versions that include the 'debian' sub-dir
- #rtl-sdr
- #osmo-fl2k
-
-[ -d "$TOP/debsrc" ] && rm -rf "$TOP/debsrc"
-mkdir "$TOP/debsrc"
-
-for p in $PACKAGES; do
- build "$p" "$TOP/debsrc/$p"
-done
-
-cd "$TOP/$PROJ"
-osc ci -m "Latest Tagged versions of $DT"
+# add those two once they have tagged any versions that include the 'debian' sub-dir:
+#rtl-sdr
+#osmo-fl2k
+
+build_osmocom() {
+ prepare
+
+ checkout limesuite
+ checkout libosmocore
+ checkout libosmo-sccp
+ checkout libosmo-abis
+ checkout libosmo-netif
+ checkout libsmpp34
+ checkout libasn1c
+ checkout libgtpnl
+ checkout libusrp
+ checkout osmo-iuh
+ checkout osmo-ggsn
+ checkout osmo-sgsn
+ checkout openbsc
+ checkout osmo-pcap
+ checkout osmo-trx
+ checkout osmo-sip-connector
+ checkout osmo-bts
+ checkout osmo-pcu
+ checkout osmo-hlr
+ checkout osmo-mgw
+ checkout osmo-msc
+ checkout osmo-bsc
+ checkout simtrace2
+
+ build limesuite --git-upstream-tree="$(get_last_tag limesuite)"
+ build libosmocore
+ build libosmo-sccp
+ build libosmo-abis
+ build libosmo-netif
+ build libsmpp34
+ build libasn1c
+ build libgtpnl
+ build libusrp
+ build osmo-iuh
+ build osmo-ggsn
+ build osmo-sgsn
+ build openbsc
+ build osmo-pcap
+ build osmo-trx
+ build osmo-sip-connector
+ build osmo-bts
+ build osmo-pcu
+ build osmo-hlr
+ build osmo-mgw
+ build osmo-msc
+ build osmo-bsc
+ build simtrace2
+
+ cd "$TOP/$PROJ"
+ osc ci -m "Latest Tagged versions of $DT"
+}
+
+build_osmocom