1
|
#!/bin/sh
|
2
|
#
|
3
|
# builder_defaults.sh
|
4
|
#
|
5
|
# Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. 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
|
15
|
# the documentation and/or other materials provided with the
|
16
|
# distribution.
|
17
|
#
|
18
|
# 3. All advertising materials mentioning features or use of this software
|
19
|
# must display the following acknowledgment:
|
20
|
# "This product includes software developed by the pfSense Project
|
21
|
# for use in the pfSense® software distribution. (http://www.pfsense.org/).
|
22
|
#
|
23
|
# 4. The names "pfSense" and "pfSense Project" must not be used to
|
24
|
# endorse or promote products derived from this software without
|
25
|
# prior written permission. For written permission, please contact
|
26
|
# coreteam@pfsense.org.
|
27
|
#
|
28
|
# 5. Products derived from this software may not be called "pfSense"
|
29
|
# nor may "pfSense" appear in their names without prior written
|
30
|
# permission of the Electric Sheep Fencing, LLC.
|
31
|
#
|
32
|
# 6. Redistributions of any form whatsoever must retain the following
|
33
|
# acknowledgment:
|
34
|
#
|
35
|
# "This product includes software developed by the pfSense Project
|
36
|
# for use in the pfSense software distribution (http://www.pfsense.org/).
|
37
|
#
|
38
|
# THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
|
39
|
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
40
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
41
|
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR
|
42
|
# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
43
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
44
|
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
45
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
46
|
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
47
|
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
48
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
49
|
# OF THE POSSIBILITY OF SUCH DAMAGE.
|
50
|
#
|
51
|
|
52
|
###########################################
|
53
|
# Product builder configuration file #
|
54
|
# Please don't modify this file, you #
|
55
|
# can put your settings and options #
|
56
|
# in build.conf, which is sourced at the #
|
57
|
# beginning of this file #
|
58
|
###########################################
|
59
|
|
60
|
if [ -z "${BUILDER_ROOT}" ]; then
|
61
|
echo ">>> ERROR: BUILDER_ROOT must be defined by script that includes builder_defaults.sh"
|
62
|
exit 1
|
63
|
fi
|
64
|
|
65
|
if [ ! -d "${BUILDER_ROOT}" ]; then
|
66
|
echo ">>> ERROR: BUILDER_ROOT is invalid"
|
67
|
exit 1
|
68
|
fi
|
69
|
|
70
|
export BUILDER_TOOLS=${BUILDER_TOOLS:-"${BUILDER_ROOT}/tools"}
|
71
|
|
72
|
if [ ! -d "${BUILDER_TOOLS}" ]; then
|
73
|
echo ">>> ERROR: BUILDER_TOOLS is invalid"
|
74
|
exit 1
|
75
|
fi
|
76
|
|
77
|
BUILD_CONF="${BUILDER_ROOT}/build.conf"
|
78
|
|
79
|
# Ensure file exists
|
80
|
if [ -f ${BUILD_CONF} ]; then
|
81
|
. ${BUILD_CONF}
|
82
|
fi
|
83
|
|
84
|
# Make sure pkg will not be interactive
|
85
|
export ASSUME_ALWAYS_YES=true
|
86
|
|
87
|
# Architecture, supported ARCH values are:
|
88
|
# Tier 1: i386, AMD64, and PC98
|
89
|
# Tier 2: ARM, PowerPC, ia64, Sparc64 and sun4v
|
90
|
# Tier 3: MIPS and S/390
|
91
|
# Tier 4: None at the moment
|
92
|
# Source: http://www.freebsd.org/doc/en/articles/committers-guide/archs.html
|
93
|
export TARGET=${TARGET:-"`uname -m`"}
|
94
|
export TARGET_ARCH=${TARGET_ARCH:-${TARGET}}
|
95
|
# Set TARGET_ARCH_CONF_DIR
|
96
|
if [ "$TARGET_ARCH" = "" ]; then
|
97
|
export TARGET_ARCH=`uname -p`
|
98
|
fi
|
99
|
|
100
|
# Directory to be used for writing temporary information
|
101
|
export SCRATCHDIR=${SCRATCHDIR:-"${BUILDER_ROOT}/tmp"}
|
102
|
if [ ! -d ${SCRATCHDIR} ]; then
|
103
|
mkdir -p ${SCRATCHDIR}
|
104
|
fi
|
105
|
|
106
|
# Product details
|
107
|
export PRODUCT_NAME=${PRODUCT_NAME:-"nonSense"}
|
108
|
export PRODUCT_NAME_SUFFIX=${PRODUCT_NAME_SUFFIX:-"-CE"}
|
109
|
export PRODUCT_URL=${PRODUCT_URL:-""}
|
110
|
export PRODUCT_SRC=${PRODUCT_SRC:-"${BUILDER_ROOT}/src"}
|
111
|
export PRODUCT_EMAIL=${PRODUCT_EMAIL:-"coreteam@pfsense.org"}
|
112
|
export XML_ROOTOBJ=${XML_ROOTOBJ:-$(echo "${PRODUCT_NAME}" | tr '[[:upper:]]' '[[:lower:]]')}
|
113
|
|
114
|
if [ "${PRODUCT_NAME}" = "pfSense" -a "${BUILD_AUTHORIZED_BY_ELECTRIC_SHEEP_FENCING}" != "yes" ]; then
|
115
|
echo ">>>ERROR: According the following license, only Electric Sheep Fencing can build genuine pfSense® software"
|
116
|
echo ""
|
117
|
cat ${BUILDER_ROOT}/license.txt
|
118
|
exit 1
|
119
|
fi
|
120
|
|
121
|
if [ -z "${PRODUCT_VERSION}" ]; then
|
122
|
if [ ! -f ${PRODUCT_SRC}/etc/version ]; then
|
123
|
echo ">>> ERROR: PRODUCT_VERSION is not defined and ${PRODUCT_SRC}/etc/version was not found"
|
124
|
print_error_pfS
|
125
|
fi
|
126
|
|
127
|
export PRODUCT_VERSION=$(head -n 1 ${PRODUCT_SRC}/etc/version)
|
128
|
fi
|
129
|
|
130
|
# Product repository tag to build
|
131
|
_cur_git_repo_branch_or_tag=$(git -C ${BUILDER_ROOT} rev-parse --abbrev-ref HEAD)
|
132
|
if [ "${_cur_git_repo_branch_or_tag}" = "HEAD" ]; then
|
133
|
# We are on a tag, lets find out its name
|
134
|
export GIT_REPO_BRANCH_OR_TAG=$(git -C ${BUILDER_ROOT} describe --tags)
|
135
|
else
|
136
|
export GIT_REPO_BRANCH_OR_TAG="${_cur_git_repo_branch_or_tag}"
|
137
|
fi
|
138
|
# Use vX_Y instead of RELENG_X_Y for poudriere to make it shorter
|
139
|
POUDRIERE_BRANCH=$(echo "${GIT_REPO_BRANCH_OR_TAG}" | sed 's,RELENG_,v,')
|
140
|
|
141
|
GIT_REPO_BASE=$(git -C ${BUILDER_ROOT} config --get remote.origin.url | sed -e 's,/[^/]*$,,')
|
142
|
|
143
|
# This is used for using svn for retrieving src
|
144
|
export FREEBSD_REPO_BASE=${FREEBSD_REPO_BASE:-"${GIT_REPO_BASE}/freebsd-src.git"}
|
145
|
export FREEBSD_BRANCH=${FREEBSD_BRANCH:-"RELENG_2_3_0"}
|
146
|
export FREEBSD_PARENT_BRANCH=${FREEBSD_PARENT_BRANCH:-"releng/10.3"}
|
147
|
export FREEBSD_SRC_DIR=${FREEBSD_SRC_DIR:-"${SCRATCHDIR}/FreeBSD-src"}
|
148
|
|
149
|
if [ "${TARGET}" = "i386" ]; then
|
150
|
export BUILD_KERNELS=${BUILD_KERNELS:-"${PRODUCT_NAME} ${PRODUCT_NAME}_wrap ${PRODUCT_NAME}_wrap_vga"}
|
151
|
else
|
152
|
export BUILD_KERNELS=${BUILD_KERNELS:-"${PRODUCT_NAME}"}
|
153
|
fi
|
154
|
|
155
|
# Leave this alone.
|
156
|
export SRC_CONF=${SRC_CONF:-"${FREEBSD_SRC_DIR}/release/conf/${PRODUCT_NAME}_src.conf"}
|
157
|
export MAKE_CONF=${MAKE_CONF:-"${FREEBSD_SRC_DIR}/release/conf/${PRODUCT_NAME}_make.conf"}
|
158
|
|
159
|
# Extra tools to be added to ITOOLS
|
160
|
export EXTRA_TOOLS=${EXTRA_TOOLS:-"uuencode uudecode ex"}
|
161
|
|
162
|
# Path to kernel files being built
|
163
|
export KERNEL_BUILD_PATH=${KERNEL_BUILD_PATH:-"${SCRATCHDIR}/kernels"}
|
164
|
|
165
|
# Do not touch builder /usr/obj
|
166
|
export MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX:-"${SCRATCHDIR}/obj"}
|
167
|
|
168
|
# Controls how many concurrent make processes are run for each stage
|
169
|
_CPUS=""
|
170
|
if [ -z "${NO_MAKEJ}" ]; then
|
171
|
_CPUS=$(expr $(sysctl -n kern.smp.cpus) '*' 2)
|
172
|
if [ -n "${_CPUS}" ]; then
|
173
|
_CPUS="-j${_CPUS}"
|
174
|
fi
|
175
|
fi
|
176
|
|
177
|
export MAKEJ_WORLD=${MAKEJ_WORLD:-"${_CPUS}"}
|
178
|
export MAKEJ_KERNEL=${MAKEJ_KERNEL:-"${_CPUS}"}
|
179
|
|
180
|
if [ "${TARGET}" = "i386" ]; then
|
181
|
export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipmi ndis ipfw ipdivert dummynet fdescfs opensolaris zfs glxsb if_stf coretemp amdtemp hwpmc"}
|
182
|
else
|
183
|
export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipmi ndis ipfw ipdivert dummynet fdescfs opensolaris zfs glxsb if_stf coretemp amdtemp aesni sfxge hwpmc vmm nmdm ixgbe"}
|
184
|
fi
|
185
|
|
186
|
# Area that the final image will appear in
|
187
|
export IMAGES_FINAL_DIR=${IMAGES_FINAL_DIR:-"${SCRATCHDIR}/${PRODUCT_NAME}/"}
|
188
|
|
189
|
export BUILDER_LOGS=${BUILDER_LOGS:-"${BUILDER_ROOT}/logs"}
|
190
|
if [ ! -d ${BUILDER_LOGS} ]; then
|
191
|
mkdir -p ${BUILDER_LOGS}
|
192
|
fi
|
193
|
|
194
|
# This is where files will be staged
|
195
|
export STAGE_CHROOT_DIR=${STAGE_CHROOT_DIR:-"${SCRATCHDIR}/stage-dir"}
|
196
|
|
197
|
# Directory that will clone to in order to create
|
198
|
# iso staging area.
|
199
|
export FINAL_CHROOT_DIR=${FINAL_CHROOT_DIR:-"${SCRATCHDIR}/final-dir"}
|
200
|
|
201
|
# 400M is not enough for amd64
|
202
|
export MEMORYDISK_SIZE=${MEMORYDISK_SIZE:-"1024M"}
|
203
|
|
204
|
# OVF/vmdk parms
|
205
|
# Name of ovf file included inside OVA archive
|
206
|
export OVFTEMPLATE=${OVFTEMPLATE:-"${BUILDER_TOOLS}/templates/ovf/${PRODUCT_NAME}.ovf"}
|
207
|
# / partition to be used by mkimg
|
208
|
export OVFUFS=${OVFUFS:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-disk1.ufs"}
|
209
|
# Raw disk to be converted to vmdk
|
210
|
export OVFRAW=${OVFRAW:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-disk1.raw"}
|
211
|
# On disk name of VMDK file included in OVA
|
212
|
export OVFVMDK=${OVFVMDK:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-disk1.vmdk"}
|
213
|
# 8 gigabyte on disk VMDK size
|
214
|
export VMDK_DISK_CAPACITY_IN_GB=${VMDK_DISK_CAPACITY_IN_GB:-"8"}
|
215
|
# swap partition size (freebsd-swap)
|
216
|
export OVA_SWAP_PART_SIZE_IN_GB=${OVA_SWAP_PART_SIZE_IN_GB:-"0"}
|
217
|
# Temporary place to save files
|
218
|
export OVA_TMP=${OVA_TMP:-"${SCRATCHDIR}/ova_tmp"}
|
219
|
# end of OVF
|
220
|
|
221
|
# Number of code images on media (1 or 2)
|
222
|
export NANO_IMAGES=2
|
223
|
# 0 -> Leave second image all zeroes so it compresses better.
|
224
|
# 1 -> Initialize second image with a copy of the first
|
225
|
export NANO_INIT_IMG2=1
|
226
|
export NANO_NEWFS="-b 4096 -f 512 -i 8192 -O1"
|
227
|
export FLASH_SIZE=${FLASH_SIZE:-"2g"}
|
228
|
# Size of code file system in 512 bytes sectors
|
229
|
# If zero, size will be as large as possible.
|
230
|
export NANO_CODESIZE=0
|
231
|
# Size of data file system in 512 bytes sectors
|
232
|
# If zero: no partition configured.
|
233
|
# If negative: max size possible
|
234
|
export NANO_DATASIZE=0
|
235
|
# Size of Product /conf partition # 102400 = 50 megabytes.
|
236
|
export NANO_CONFSIZE=102400
|
237
|
# packet is OK for 90% of embedded
|
238
|
export NANO_BOOT0CFG="-o packet -s 1 -m 3"
|
239
|
|
240
|
# NOTE: Date string is used for creating file names of images
|
241
|
# The file is used for sharing the same value with build_snapshots.sh
|
242
|
export DATESTRINGFILE=${DATESTRINGFILE:-"$SCRATCHDIR/version.snapshots"}
|
243
|
if [ -z "${DATESTRING}" ]; then
|
244
|
if [ -f "${DATESTRINGFILE}" -a -n "${_USE_OLD_DATESTRING}" ]; then
|
245
|
export DATESTRING=$(cat $DATESTRINGFILE)
|
246
|
else
|
247
|
export DATESTRING=$(date "+%Y%m%d-%H%M")
|
248
|
fi
|
249
|
fi
|
250
|
echo "$DATESTRING" > $DATESTRINGFILE
|
251
|
|
252
|
# NOTE: Date string is placed on the final image etc folder to help detect new updates
|
253
|
# The file is used for sharing the same value with build_snapshots.sh
|
254
|
export BUILTDATESTRINGFILE=${BUILTDATESTRINGFILE:-"$SCRATCHDIR/version.buildtime"}
|
255
|
if [ -z "${BUILTDATESTRING}" ]; then
|
256
|
if [ -f "${BUILTDATESTRINGFILE}" -a -n "${_USE_OLD_DATESTRING}" ]; then
|
257
|
export BUILTDATESTRING=$(cat $BUILTDATESTRINGFILE)
|
258
|
else
|
259
|
export BUILTDATESTRING=$(date "+%a %b %d %T %Z %Y")
|
260
|
fi
|
261
|
fi
|
262
|
echo "$BUILTDATESTRING" > $BUILTDATESTRINGFILE
|
263
|
|
264
|
# Poudriere
|
265
|
export ZFS_TANK=${ZFS_TANK:-"zroot"}
|
266
|
export ZFS_ROOT=${ZFS_ROOT:-"/poudriere"}
|
267
|
export POUDRIERE_PORTS_NAME=${POUDRIERE_PORTS_NAME:-"${PRODUCT_NAME}_${POUDRIERE_BRANCH}"}
|
268
|
|
269
|
export POUDRIERE_BULK=${POUDRIERE_BULK:-"${BUILDER_TOOLS}/conf/pfPorts/poudriere_bulk"}
|
270
|
export POUDRIERE_PORTS_GIT_URL=${POUDRIERE_PORTS_GIT_URL:-"${GIT_REPO_BASE}/freebsd-ports.git"}
|
271
|
export POUDRIERE_PORTS_GIT_BRANCH=${POUDRIERE_PORTS_GIT_BRANCH:-"RELENG_2_3_0"}
|
272
|
|
273
|
# Host to rsync pkg repos from poudriere
|
274
|
export PKG_RSYNC_USERNAME=${PKG_RSYNC_USERNAME:-"wwwsync"}
|
275
|
export PKG_RSYNC_SSH_PORT=${PKG_RSYNC_SSH_PORT:-"22"}
|
276
|
export PKG_RSYNC_DESTDIR=${PKG_RSYNC_DESTDIR:-"/usr/local/www/beta/packages"}
|
277
|
export PKG_RSYNC_LOGS=${PKG_RSYNC_LOGS:-"/usr/local/www/beta"}
|
278
|
|
279
|
unset _IS_RELEASE
|
280
|
unset CORE_PKG_DATESTRING
|
281
|
export TIMESTAMP_SUFFIX="-${DATESTRING}"
|
282
|
# pkg doesn't like - as version separator, use . instead
|
283
|
export PKG_DATESTRING=$(echo "${DATESTRING}" | sed 's,-,.,g')
|
284
|
case "${PRODUCT_VERSION##*-}" in
|
285
|
RELEASE)
|
286
|
export _IS_RELEASE=yes
|
287
|
unset TIMESTAMP_SUFFIX
|
288
|
;;
|
289
|
ALPHA|DEVELOPMENT)
|
290
|
export CORE_PKG_DATESTRING=".a.${PKG_DATESTRING}"
|
291
|
;;
|
292
|
BETA*)
|
293
|
export CORE_PKG_DATESTRING=".b.${PKG_DATESTRING}"
|
294
|
;;
|
295
|
RC*)
|
296
|
export CORE_PKG_DATESTRING=".r.${PKG_DATESTRING}"
|
297
|
;;
|
298
|
*)
|
299
|
echo ">>> ERROR: Invalid PRODUCT_VERSION format ${PRODUCT_VERSION}"
|
300
|
exit 1
|
301
|
esac
|
302
|
|
303
|
# pkg repo variables
|
304
|
export USE_PKG_REPO_STAGING="1"
|
305
|
export PKG_REPO_SERVER_DEVEL=${PKG_REPO_SERVER_DEVEL:-"pkg+http://beta.pfsense.org/packages"}
|
306
|
export PKG_REPO_SERVER_RELEASE=${PKG_REPO_SERVER_RELEASE:-"pkg+http://pkg.pfsense.org"}
|
307
|
|
308
|
if [ -n "${_IS_RELEASE}" ]; then
|
309
|
export PKG_REPO_BRANCH_RELEASE=${PKG_REPO_BRANCH_RELEASE:-${POUDRIERE_BRANCH}}
|
310
|
export PKG_REPO_BRANCH_DEVEL=${PKG_REPO_BRANCH_DEVEL:-"v2_3"}
|
311
|
export PKG_REPO_BRANCH_STAGING=${PKG_REPO_BRANCH_STAGING:-${PKG_REPO_BRANCH_RELEASE}}
|
312
|
export PKG_REPO_SERVER_STAGING=${PKG_REPO_SERVER_STAGING:-"pkg+http://release-staging.netgate.com/ce/packages"}
|
313
|
else
|
314
|
export PKG_REPO_BRANCH_RELEASE=${PKG_REPO_BRANCH_RELEASE:-"v2_3_0"}
|
315
|
export PKG_REPO_BRANCH_DEVEL=${PKG_REPO_BRANCH_DEVEL:-${POUDRIERE_BRANCH}}
|
316
|
export PKG_REPO_BRANCH_STAGING=${PKG_REPO_BRANCH_STAGING:-${PKG_REPO_BRANCH_DEVEL}}
|
317
|
export PKG_REPO_SERVER_STAGING=${PKG_REPO_SERVER_STAGING:-${PKG_REPO_SERVER_DEVEL}}
|
318
|
fi
|
319
|
|
320
|
if [ -n "${_IS_RELEASE}" ]; then
|
321
|
export PKG_REPO_SIGN_KEY=${PKG_REPO_SIGN_KEY:-"release${PRODUCT_NAME_SUFFIX}"}
|
322
|
else
|
323
|
export PKG_REPO_SIGN_KEY=${PKG_REPO_SIGN_KEY:-"beta${PRODUCT_NAME_SUFFIX}"}
|
324
|
fi
|
325
|
# Command used to sign pkg repo
|
326
|
export PKG_REPO_SIGNING_COMMAND=${PKG_REPO_SIGNING_COMMAND:-"ssh sign@codesigner.netgate.com sudo ./sign.sh ${PKG_REPO_SIGN_KEY}"}
|
327
|
|
328
|
# Define base package version, based on date for snaps
|
329
|
export CORE_PKG_VERSION="${PRODUCT_VERSION%%-*}${CORE_PKG_DATESTRING}"
|
330
|
export CORE_PKG_PATH=${CORE_PKG_PATH:-"${SCRATCHDIR}/${PRODUCT_NAME}_${POUDRIERE_BRANCH}_${TARGET_ARCH}-core"}
|
331
|
export CORE_PKG_REAL_PATH="${CORE_PKG_PATH}/.real_${DATESTRING}"
|
332
|
export CORE_PKG_TMP=${CORE_PKG_TMP:-"${SCRATCHDIR}/core_pkg_tmp"}
|
333
|
|
334
|
export PKG_REPO_BASE=${PKG_REPO_BASE:-"${FREEBSD_SRC_DIR}/release/pkg_repos"}
|
335
|
export PKG_REPO_DEFAULT=${PKG_REPO_DEFAULT:-"${PKG_REPO_BASE}/${PRODUCT_NAME}-repo.conf"}
|
336
|
export PKG_REPO_PATH=${PKG_REPO_PATH:-"/usr/local/etc/pkg/repos/${PRODUCT_NAME}.conf"}
|
337
|
|
338
|
export PRODUCT_SHARE_DIR=${PRODUCT_SHARE_DIR:-"/usr/local/share/${PRODUCT_NAME}"}
|
339
|
|
340
|
# Package overlay. This gives people a chance to build product
|
341
|
# installable image that already contains certain extra packages.
|
342
|
#
|
343
|
# Needs to contain comma separated package names. Of course
|
344
|
# package names must be valid. Using non existent
|
345
|
# package name would yield an error.
|
346
|
#
|
347
|
#export custom_package_list=""
|
348
|
|
349
|
# General builder output filenames
|
350
|
export UPDATESDIR=${UPDATESDIR:-"${IMAGES_FINAL_DIR}/updates"}
|
351
|
export ISOPATH=${ISOPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-${PRODUCT_VERSION}-${TARGET}${TIMESTAMP_SUFFIX}.iso"}
|
352
|
export MEMSTICKPATH=${MEMSTICKPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-memstick-${PRODUCT_VERSION}-${TARGET}${TIMESTAMP_SUFFIX}.img"}
|
353
|
export MEMSTICKSERIALPATH=${MEMSTICKSERIALPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-memstick-serial-${PRODUCT_VERSION}-${TARGET}${TIMESTAMP_SUFFIX}.img"}
|
354
|
export MEMSTICKADIPATH=${MEMSTICKADIPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-memstick-ADI-${PRODUCT_VERSION}-${TARGET}${TIMESTAMP_SUFFIX}.img"}
|
355
|
export OVAPATH=${OVAPATH:-"${IMAGES_FINAL_DIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-${PRODUCT_VERSION}-${TARGET}${TIMESTAMP_SUFFIX}.ova"}
|
356
|
|
357
|
# set full-update update filename
|
358
|
export UPDATES_TARBALL_FILENAME=${UPDATES_TARBALL_FILENAME:-"${UPDATESDIR}/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-Full-Update-${PRODUCT_VERSION}-${TARGET}${TIMESTAMP_SUFFIX}.tgz"}
|
359
|
|
360
|
# nanobsd templates
|
361
|
export NANOBSD_IMG_TEMPLATE=${NANOBSD_IMG_TEMPLATE:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-${PRODUCT_VERSION}-%%SIZE%%-${TARGET}-%%TYPE%%${TIMESTAMP_SUFFIX}.img"}
|
362
|
export NANOBSD_UPGRADE_TEMPLATE=${NANOBSD_UPGRADE_TEMPLATE:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-${PRODUCT_VERSION}-%%SIZE%%-${TARGET}-%%TYPE%%-upgrade${TIMESTAMP_SUFFIX}.img"}
|
363
|
|
364
|
# Rsync data to send snapshots
|
365
|
export RSYNCUSER=${RSYNCUSER:-"snapshots"}
|
366
|
export RSYNCPATH=${RSYNCPATH:-"/usr/local/www/snapshots/${TARGET}/${PRODUCT_NAME}_${GIT_REPO_BRANCH_OR_TAG}"}
|
367
|
export RSYNCLOGS=${RSYNCLOGS:-"/usr/local/www/snapshots/logs/${PRODUCT_NAME}_${GIT_REPO_BRANCH_OR_TAG}/${TARGET}"}
|
368
|
export RSYNCKBYTELIMIT=${RSYNCKBYTELIMIT:-"248000"}
|
369
|
|
370
|
# staging area used on snapshots build
|
371
|
STAGINGAREA=${STAGINGAREA:-"${SCRATCHDIR}/staging"}
|
372
|
mkdir -p ${STAGINGAREA}
|
373
|
|
374
|
export SNAPSHOTSLOGFILE=${SNAPSHOTSLOGFILE:-"${SCRATCHDIR}/snapshots-build.log"}
|
375
|
export SNAPSHOTSLASTUPDATE=${SNAPSHOTSLASTUPDATE:-"${SCRATCHDIR}/snapshots-lastupdate.log"}
|
376
|
|
377
|
if [ -n "${POUDRIERE_SNAPSHOTS}" ]; then
|
378
|
export SNAPSHOTS_RSYNCIP=${PKG_RSYNC_HOSTNAME}
|
379
|
export SNAPSHOTS_RSYNCUSER=${PKG_RSYNC_USERNAME}
|
380
|
export SNAPSHOTS_RSYNCLOGS=${PKG_RSYNC_LOGS}
|
381
|
else
|
382
|
export SNAPSHOTS_RSYNCIP=${RSYNCIP}
|
383
|
export SNAPSHOTS_RSYNCUSER=${RSYNCUSER}
|
384
|
export SNAPSHOTS_RSYNCLOGS=${RSYNCLOGS}
|
385
|
fi
|
386
|
|
387
|
if [ "${PRODUCT_NAME}" = "pfSense" ]; then
|
388
|
export VENDOR_NAME=${VENDOR_NAME:-"Electric Sheep Fencing, LLC"}
|
389
|
export OVF_INFO=${OVF_INFO:-"pfSense is a free, open source customized distribution of FreeBSD tailored for use as a firewall and router. In addition to being a powerful, flexible firewalling and routing platform, it includes a long list of related features and a package system allowing further expandability without adding bloat and potential security vulnerabilities to the base distribution. pfSense is a popular project with more than 1 million downloads since its inception, and proven in countless installations ranging from small home networks protecting a PC and an Xbox to large corporations, universities and other organizations protecting thousands of network devices."}
|
390
|
else
|
391
|
export VENDOR_NAME=${VENDOR_NAME:-"nonSense"}
|
392
|
export OVF_INFO=${OVF_INFO:-"none"}
|
393
|
fi
|