diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-10-04 19:25:35 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-10-05 12:05:10 +0200 |
commit | 2958d13e2b3ab63c35c17408e7d438b7d9362a72 (patch) | |
tree | 0dce2b61f57652d61efc2d473f5a096453ea2021 /scripts/osmocom-latest-packages.sh | |
parent | 59f131cc44612d4310ec6a393363d0b1cca5b37a (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-x | scripts/osmocom-latest-packages.sh | 169 |
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 |