1
|
#!/bin/sh
|
2
|
#
|
3
|
# set_version.sh
|
4
|
# Copyright (C) 2004-2010 Scott Ullrich
|
5
|
# All rights reserved.
|
6
|
#
|
7
|
# Redistribution and use in source and binary forms, with or without
|
8
|
# modification, are permitted provided that the following conditions are met:
|
9
|
#
|
10
|
# 1. Redistributions of source code must retain the above copyright notice,
|
11
|
# this list of conditions and the following disclaimer.
|
12
|
#
|
13
|
# 2. Redistributions in binary form must reproduce the above copyright
|
14
|
# notice, this list of conditions and the following disclaimer in the
|
15
|
# documentation and/or other materials provided with the distribution.
|
16
|
#
|
17
|
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
18
|
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
19
|
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
20
|
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
21
|
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
22
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
23
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
24
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
25
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
26
|
# POSSIBILITY OF SUCH DAMAGE.
|
27
|
#
|
28
|
|
29
|
if [ $# -lt 1 ]; then
|
30
|
cat <<END_OF_USAGE 1>&2
|
31
|
Usage : $0 BRANCH [FREEBSD_REPO_BASE] [ERROR_EMAIL_ADDRESS] \\
|
32
|
[COMPLETED_EMAIL_ADDRESS] [TWITTER_USERNAME] [TWITTER_PASSWORD] \\
|
33
|
[REMOVE_PHP]
|
34
|
Example: $0 master git@git.pfmechanics.com:outsidemirrors/freebsd.git \\
|
35
|
errors@example.com notify@example.com
|
36
|
|
37
|
BRANCH is required.
|
38
|
FREEBSD_REPO_BASE is required or the default of git@git.pfmechanics.com:outsidemirrors/freebsd.git
|
39
|
will be used.
|
40
|
|
41
|
All other arguments may be omitted; when not present, that action will not
|
42
|
be taken.
|
43
|
|
44
|
END_OF_USAGE
|
45
|
exit 127
|
46
|
fi
|
47
|
|
48
|
# Let builder_defaults.sh know we are running set_version.sh
|
49
|
export _SET_VERSION_SH=1
|
50
|
|
51
|
# Source pfsense-build.conf variables
|
52
|
. ./builder_defaults.sh
|
53
|
|
54
|
# Default FREEBSD_REPO_BASE
|
55
|
if [ "$2" != "" ]; then
|
56
|
FREEBSD_REPO_BASE="$2"
|
57
|
else
|
58
|
echo "WARNING: Setting FREEBSD repository to host git@git.pfmechanics.com:outsidemirrors/freebsd.git."
|
59
|
echo
|
60
|
FREEBSD_REPO_BASE="git@git.pfmechanics.com:outsidemirrors/freebsd.git"
|
61
|
sleep 2
|
62
|
fi
|
63
|
|
64
|
# Default EMAIL
|
65
|
if [ "$3" != "" ]; then
|
66
|
BUILD_ERROR_MAIL="$3"
|
67
|
fi
|
68
|
|
69
|
if [ "$4" != "" ]; then
|
70
|
BUILD_COMPLETED_MAIL="$4"
|
71
|
fi
|
72
|
|
73
|
if [ "$5" != "" ]; then
|
74
|
TWITTER_USERNAME="$5"
|
75
|
fi
|
76
|
|
77
|
if [ "$6" != "" ]; then
|
78
|
TWITTER_PASSWORD="$6"
|
79
|
fi
|
80
|
|
81
|
if [ "$7" != "" ]; then
|
82
|
REMOVE_PHP="$7"
|
83
|
fi
|
84
|
|
85
|
HANDLED=false
|
86
|
|
87
|
# Ensure file exists
|
88
|
rm -f pfsense-build.conf
|
89
|
touch pfsense-build.conf
|
90
|
|
91
|
export BUILDER_SCRIPTS=$(realpath `pwd`)
|
92
|
export BUILDER_TOOLS=$(realpath ${BUILDER_SCRIPTS}/..)
|
93
|
export BASE_DIR=$(realpath ${BUILDER_TOOLS}/..)
|
94
|
|
95
|
strip_pfsense_local() {
|
96
|
# Strip dynamic values
|
97
|
cat $BUILDER_SCRIPTS/pfsense-build.conf | \
|
98
|
grep -v BASE_DIR | \
|
99
|
grep -v BUILDER_TOOLS | \
|
100
|
grep -v BUILDER_SCRIPTS | \
|
101
|
grep -v FREEBSD_VERSION | \
|
102
|
grep -v FREEBSD_BRANCH | \
|
103
|
grep -v PFSENSETAG | \
|
104
|
grep -v "set_version.sh" | \
|
105
|
grep -v PFSPATCHFILE | \
|
106
|
grep -v PFSENSE_VERSION | \
|
107
|
grep -v PFSPATCHDIR | \
|
108
|
grep -v TWITTER_USERNAME | \
|
109
|
grep -v TWITTER_PASSWORD | \
|
110
|
grep -v PFSENSE_VERSION | \
|
111
|
grep -v BUILD_COMPLETED_MAIL | \
|
112
|
grep -v PFSPORTSFILE | \
|
113
|
grep -v CUSTOM_COPY_LIST | \
|
114
|
grep -v BUILD_ERROR_MAIL | \
|
115
|
grep -v REMOVE_PHP | \
|
116
|
grep -v EXTRA_DEVICES > /tmp/pfsense-build.conf
|
117
|
mv /tmp/pfsense-build.conf $BUILDER_SCRIPTS/pfsense-build.conf
|
118
|
}
|
119
|
|
120
|
set_items() {
|
121
|
strip_pfsense_local
|
122
|
# Add our custom dynamic values
|
123
|
echo "# set_version.sh generated defaults" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
124
|
echo export PFSENSE_VERSION="${PFSENSE_VERSION}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
125
|
echo export FREEBSD_VERSION="${FREEBSD_VERSION}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
126
|
echo export FREEBSD_BRANCH="${FREEBSD_BRANCH}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
127
|
if [ -n "${FREEBSD_REPO_BASE}" ]; then
|
128
|
echo "export FREEBSD_REPO_BASE=${FREEBSD_REPO_BASE}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
129
|
fi
|
130
|
echo export PFSENSETAG="${PFSENSETAG}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
131
|
echo export CUSTOM_COPY_LIST="${CUSTOM_COPY_LIST}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
132
|
echo export BASE_DIR="${BASE_DIR}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
133
|
echo export BUILDER_TOOLS="${BUILDER_TOOLS}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
134
|
echo export BUILDER_SCRIPTS="${BUILDER_SCRIPTS}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
135
|
echo export PFSPATCHFILE="${PFSPATCHFILE}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
136
|
echo export PFSPATCHDIR="${PFSPATCHDIR}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
137
|
echo export EXTRA_DEVICES="${EXTRA_DEVICES}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
138
|
if [ -n "$GIT_FREEBSD_COSHA1}" ]; then
|
139
|
echo "export GIT_FREEBSD_COSHA1=${GIT_FREEBSD_COSHA1}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
140
|
fi
|
141
|
if [ "$BUILD_ERROR_MAIL" != "" ]; then
|
142
|
echo "export BUILD_ERROR_MAIL=${BUILD_ERROR_MAIL}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
143
|
else
|
144
|
echo "#export BUILD_ERROR_MAIL=${BUILD_ERROR_MAIL}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
145
|
fi
|
146
|
if [ "$BUILD_COMPLETED_MAIL" != "" ]; then
|
147
|
echo "export BUILD_COMPLETED_MAIL=${BUILD_COMPLETED_MAIL}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
148
|
else
|
149
|
echo "#export BUILD_COMPLETED_MAIL=${BUILD_COMPLETED_MAIL}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
150
|
fi
|
151
|
if [ "$PFSPORTSFILE" != "" ]; then
|
152
|
echo "export PFSPORTSFILE=${PFSPORTSFILE}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
153
|
fi
|
154
|
if [ "$TWITTER_USERNAME" != "" ]; then
|
155
|
echo "export TWITTER_USERNAME=${TWITTER_USERNAME}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
156
|
echo "export TWITTER_PASSWORD=${TWITTER_PASSWORD}" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
157
|
fi
|
158
|
if [ "$REMOVE_PHP" != "" ]; then
|
159
|
echo "export REMOVE_PHP=true" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
160
|
fi
|
161
|
UNAME=`uname -m`
|
162
|
if [ "$UNAME" = "amd64" ]; then
|
163
|
echo "export TARGET=amd64" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
164
|
echo "export TARGET_ARCH=amd64" >> $BUILDER_SCRIPTS/pfsense-build.conf
|
165
|
fi
|
166
|
|
167
|
# To speedup builds and reducce internet traffic
|
168
|
# Also recommended for snapshot builders
|
169
|
echo "#export NO_CLEANFREEBSDOBJDIR=YES " >> $BUILDER_SCRIPTS/pfsense-build.conf
|
170
|
echo "#export NO_CLEANREPOS=YES " >> $BUILDER_SCRIPTS/pfsense-build.conf
|
171
|
|
172
|
# Output pfsense-build.conf
|
173
|
echo
|
174
|
echo ">>> Custom pfsense-build.conf contains:"
|
175
|
echo "---------------------------------------------------------------------------------------"
|
176
|
cat pfsense-build.conf
|
177
|
echo "---------------------------------------------------------------------------------------"
|
178
|
echo
|
179
|
echo " NOTE: pfsense-build.conf values updated. These values override builder_defaults.sh !!"
|
180
|
echo
|
181
|
echo "NOTE2: pfPorts will be rebuilt!"
|
182
|
echo " remove /tmp/pfPorts_forced_build_required to cancel"
|
183
|
echo
|
184
|
HANDLED=true
|
185
|
touch /tmp/pfPorts_forced_build_required
|
186
|
}
|
187
|
|
188
|
echo
|
189
|
|
190
|
case $1 in
|
191
|
HEAD)
|
192
|
export FREEBSD_VERSION="10"
|
193
|
export PFSENSE_VERSION=2.2-DEVELOPMENT
|
194
|
export PFSENSETAG=RELENG_2_2
|
195
|
export FREEBSD_BRANCH=stable/10
|
196
|
export GIT_FREEBSD_COSHA1=e852cd69383058c931f6f569329eed128eb9d109
|
197
|
export CUSTOM_COPY_LIST="${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.RELENG_2_2"
|
198
|
export PFSPORTSFILE=buildports.RELENG_2_2
|
199
|
export PFSPATCHDIR=${BUILDER_TOOLS}/patches/$FREEBSD_BRANCH
|
200
|
export PFSPATCHFILE=${BUILDER_TOOLS}/builder_scripts/conf/patchlist/$FREEBSD_BRANCH/patches
|
201
|
set_items
|
202
|
;;
|
203
|
|
204
|
RELENG_10_0)
|
205
|
export FREEBSD_VERSION="10"
|
206
|
export PFSENSE_VERSION=2.2-DEVELOPMENT
|
207
|
export PFSENSETAG=RELENG_2_2
|
208
|
export FREEBSD_BRANCH=releng/10.0
|
209
|
export CUSTOM_COPY_LIST="${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.RELENG_2_2"
|
210
|
export PFSPORTSFILE=buildports.RELENG_2_2
|
211
|
export PFSPATCHDIR=${BUILDER_TOOLS}/patches/$FREEBSD_BRANCH
|
212
|
export PFSPATCHFILE=${BUILDER_TOOLS}/builder_scripts/conf/patchlist/$FREEBSD_BRANCH/patches
|
213
|
set_items
|
214
|
;;
|
215
|
|
216
|
RELENG_2_2)
|
217
|
export FREEBSD_VERSION="10"
|
218
|
export PFSENSE_VERSION=2.2-DEVELOPMENT
|
219
|
export PFSENSETAG=RELENG_2_2
|
220
|
export FREEBSD_BRANCH=stable/10
|
221
|
export CUSTOM_COPY_LIST="${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.RELENG_2_2"
|
222
|
export PFSPORTSFILE=buildports.RELENG_2_2
|
223
|
export GIT_FREEBSD_COSHA1=e852cd69383058c931f6f569329eed128eb9d109
|
224
|
export PFSPATCHDIR=${BUILDER_TOOLS}/patches/$FREEBSD_BRANCH
|
225
|
export PFSPATCHFILE=${BUILDER_TOOLS}/builder_scripts/conf/patchlist/$FREEBSD_BRANCH/patches
|
226
|
set_items
|
227
|
;;
|
228
|
|
229
|
RELENG_2_1_0)
|
230
|
export FREEBSD_VERSION="8"
|
231
|
export PFSENSE_VERSION=2.1-RELEASE
|
232
|
export PFSENSETAG=RELENG_2_1_0
|
233
|
export FREEBSD_BRANCH=releng/8.3
|
234
|
export CUSTOM_COPY_LIST="${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.RELENG_2_1"
|
235
|
export PFSPATCHDIR=${BUILDER_TOOLS}/patches/$FREEBSD_BRANCH
|
236
|
export PFSPATCHFILE=${BUILDER_TOOLS}/builder_scripts/conf/patchlist/$FREEBSD_BRANCH/patches
|
237
|
export PFSPORTSFILE=buildports.RELENG_2_1
|
238
|
export EXTRA_DEVICES=${EXTRA_DEVICES:-"siba_bwn,bwn,run"}
|
239
|
set_items
|
240
|
;;
|
241
|
|
242
|
RELENG_2_1_1)
|
243
|
export FREEBSD_VERSION="8"
|
244
|
export PFSENSE_VERSION=2.1.1-RELEASE
|
245
|
export PFSENSETAG=RELENG_2_1_1
|
246
|
export FREEBSD_BRANCH=releng/8.3
|
247
|
export CUSTOM_COPY_LIST="${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.RELENG_2_1"
|
248
|
export PFSPATCHDIR=${BUILDER_TOOLS}/patches/$FREEBSD_BRANCH
|
249
|
export PFSPATCHFILE=${BUILDER_TOOLS}/builder_scripts/conf/patchlist/$FREEBSD_BRANCH/patches
|
250
|
export PFSPORTSFILE=buildports.RELENG_2_1
|
251
|
export EXTRA_DEVICES=${EXTRA_DEVICES:-"siba_bwn,bwn,run"}
|
252
|
set_items
|
253
|
;;
|
254
|
|
255
|
RELENG_2_1_2)
|
256
|
export FREEBSD_VERSION="8"
|
257
|
export PFSENSE_VERSION=2.1.2-RELEASE
|
258
|
export FREEBSD_BRANCH=releng/8.3
|
259
|
export PFSENSETAG=RELENG_2_1_2
|
260
|
export CUSTOM_COPY_LIST="${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.RELENG_2_1"
|
261
|
export PFSPATCHDIR=${BUILDER_TOOLS}/patches/$FREEBSD_BRANCH
|
262
|
export PFSPATCHFILE=${BUILDER_TOOLS}/builder_scripts/conf/patchlist/$FREEBSD_BRANCH/patches
|
263
|
export PFSPORTSFILE=buildports.RELENG_2_1
|
264
|
export EXTRA_DEVICES=${EXTRA_DEVICES:-"siba_bwn,bwn,run"}
|
265
|
set_items
|
266
|
;;
|
267
|
|
268
|
RELENG_2_1_3)
|
269
|
export FREEBSD_VERSION="8"
|
270
|
export PFSENSE_VERSION=2.1.3-RELEASE
|
271
|
export FREEBSD_BRANCH=releng/8.3
|
272
|
export PFSENSETAG=RELENG_2_1_3
|
273
|
export CUSTOM_COPY_LIST="${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.RELENG_2_1"
|
274
|
export PFSPATCHDIR=${BUILDER_TOOLS}/patches/$FREEBSD_BRANCH
|
275
|
export PFSPATCHFILE=${BUILDER_TOOLS}/builder_scripts/conf/patchlist/$FREEBSD_BRANCH/patches
|
276
|
export PFSPORTSFILE=buildports.RELENG_2_1
|
277
|
export EXTRA_DEVICES=${EXTRA_DEVICES:-"siba_bwn,bwn,run"}
|
278
|
set_items
|
279
|
;;
|
280
|
|
281
|
RELENG_2_1_4)
|
282
|
export FREEBSD_VERSION="8"
|
283
|
export PFSENSE_VERSION=2.1.4-RELEASE
|
284
|
export FREEBSD_BRANCH=releng/8.3
|
285
|
# XXX: This needs to be set to RELENG_2_1_4 after
|
286
|
export PFSENSETAG=RELENG_2_1
|
287
|
export CUSTOM_COPY_LIST="${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.RELENG_2_1"
|
288
|
export PFSPATCHDIR=${BUILDER_TOOLS}/patches/$FREEBSD_BRANCH
|
289
|
export PFSPATCHFILE=${BUILDER_TOOLS}/builder_scripts/conf/patchlist/$FREEBSD_BRANCH/patches
|
290
|
export PFSPORTSFILE=buildports.RELENG_2_1
|
291
|
export EXTRA_DEVICES=${EXTRA_DEVICES:-"siba_bwn,bwn,run"}
|
292
|
set_items
|
293
|
;;
|
294
|
|
295
|
RELENG_2_1)
|
296
|
export FREEBSD_VERSION="8"
|
297
|
export PFSENSE_VERSION=2.1-DEVELOPMENT
|
298
|
export FREEBSD_BRANCH=releng/8.3
|
299
|
export PFSENSETAG=RELENG_2_1
|
300
|
export CUSTOM_COPY_LIST="${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.RELENG_2_1"
|
301
|
export PFSPATCHDIR=${BUILDER_TOOLS}/patches/$FREEBSD_BRANCH
|
302
|
export PFSPATCHFILE=${BUILDER_TOOLS}/builder_scripts/conf/patchlist/$FREEBSD_BRANCH/patches
|
303
|
export PFSPORTSFILE=buildports.RELENG_2_1
|
304
|
export EXTRA_DEVICES=${EXTRA_DEVICES:-"siba_bwn,bwn,run"}
|
305
|
set_items
|
306
|
;;
|
307
|
|
308
|
esac
|
309
|
|
310
|
echo ">>> Setting builder environment to use ${PFSENSETAG} + ${FREEBSD_BRANCH} ..."
|
311
|
|
312
|
if [ -f pfsense-build.conf ]; then
|
313
|
. pfsense-build.conf
|
314
|
./build.sh --clean-builder
|
315
|
fi
|
316
|
|
317
|
if [ "$HANDLED" = "false" ]; then
|
318
|
echo "Invalid verison."
|
319
|
fi
|