Projet

Général

Profil

Télécharger (11,5 ko) Statistiques
| Branche: | Révision:

univnautes-tools / builder_scripts / set_version.sh @ efc3a5e2

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
(7-7/7)