blob: c9eb2e0ae56ec5abcfe21fdf25eba7802c739eb9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
#!/bin/bash
# requirements
# apt install devscripts git-buildpackage osc git
set -e
set -x
if ! which osc >/dev/null 2>/dev/null ; then
echo "osc binary not found"
exit 1
fi
DT=$(date +%Y%m%d)
PROJ=network:osmocom:nightly
### common
checkout() {
local name=$1
local branch=$2
local url="git://git.osmocom.org"
cd "$REPO"
if [ -n "$branch" ] ; then
git clone "$url/$name" -b "$branch"
else
git clone "$url/$name"
fi
cd -
}
### OBS build
prepare() {
# clean up the whole space
mkdir -p "$REPO/osc/"
cd "$REPO/osc"
osc co "$PROJ"
}
build() {
local name=$1
local changelog=$2
local gitbpargs=$3
local repodir=$REPO/$name
local oscdir=$REPO/osc/$PROJ/$name
if [ -z "$changelog" ] ; then
changelog=commit
fi
if [ -d "$oscdir" ] ; then
# remove earlier version
cd "$oscdir"
osc rm -- * || true
else
# new package
mkdir -p "$oscdir/"
cd "$REPO/osc/$PROJ/"
osc add "$name"
fi
cd "$repodir"
if [ "$changelog" = "commit" ] ; then
VER=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,')
dch -v "$VER.$DT" -m "Snapshot build"
git commit -m "$DT snapshot" debian/
fi
mkdir -p "$DATA/$name"
# source code build without dependency checks and unsigned source and unsigned change log
gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$DATA/$name" $gitbpargs
mv "$DATA/$name/"*.tar* "$DATA/$name/"*.dsc "$oscdir/"
cd "$oscdir"
osc add -- *.tar* *.dsc
osc ci -m "Snapshot $name $DT"
}
post() {
cd "$REPO/osc/$PROJ/"
osc status
}
download_bumpversion() {
# bumpversion is required for debian < 9/stretch
local oscdir=$REPO/osc/$PROJ/bumpversion
local version=0.5.3
local release=3
if [ ! -d "$oscdir" ] ; then
mkdir "$oscdir"
cd "$oscdir"
wget "http://http.debian.net/debian/pool/main/b/bumpversion/bumpversion_$version-$release.dsc"
wget "http://http.debian.net/debian/pool/main/b/bumpversion/bumpversion_$version.orig.tar.gz"
wget "http://http.debian.net/debian/pool/main/b/bumpversion/bumpversion_$version-$release.debian.tar.xz"
fi
}
checkout_limesuite() {
TAG="v17.12.0"
cd "$REPO"
git clone https://github.com/myriadrf/LimeSuite limesuite
cd limesuite
git checkout "$TAG"
}
build_osmocom() {
BASE=$PWD
DATA=$BASE/data
REPO=$BASE/repo
# rather than including a dangerous 'rm -rf *' here, lets delegate to the user:
if [ -n "$(ls)" ]; then
echo "ERROR: I need to run in an empty directory."
exit 1
fi
prepare
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_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
download_bumpversion
build limesuite no_commit --git-upstream-tree=v17.12.0
post
}
if ! which osc >/dev/null 2>/dev/null ; then
echo "osc binary is not installed"
exit 1
fi
TMPDIR=$(mktemp -d nightly-3g_XXXXXX)
cd "$TMPDIR"
build_osmocom
|