Project

General

Profile

Download (15.6 KB) Statistics
| Branch: | Tag: | Revision:
1
#!/bin/sh
2
#
3
# builder_defaults.sh
4
#
5
# part of pfSense (https://www.pfsense.org)
6
# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
7
# All rights reserved.
8
#
9
# Licensed under the Apache License, Version 2.0 (the "License");
10
# you may not use this file except in compliance with the License.
11
# You may obtain a copy of the License at
12
#
13
# http://www.apache.org/licenses/LICENSE-2.0
14
#
15
# Unless required by applicable law or agreed to in writing, software
16
# distributed under the License is distributed on an "AS IS" BASIS,
17
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
# See the License for the specific language governing permissions and
19
# limitations under the License.
20

    
21
###########################################
22
# Product builder configuration file      #
23
# Please don't modify this file, you      #
24
# can put your settings and options       #
25
# in build.conf, which is sourced at the  #
26
# beginning of this file                  #
27
###########################################
28

    
29
if [ -z "${BUILDER_ROOT}" ]; then
30
	echo ">>> ERROR: BUILDER_ROOT must be defined by script that includes builder_defaults.sh"
31
	exit 1
32
fi
33

    
34
if [ ! -d "${BUILDER_ROOT}" ]; then
35
	echo ">>> ERROR: BUILDER_ROOT is invalid"
36
	exit 1
37
fi
38

    
39
export BUILDER_TOOLS=${BUILDER_TOOLS:-"${BUILDER_ROOT}/tools"}
40
export BUILDER_SCRIPTS=${BUILDER_SCRIPTS:-"${BUILDER_ROOT}/build/scripts"}
41

    
42
if [ ! -d "${BUILDER_TOOLS}" ]; then
43
	echo ">>> ERROR: BUILDER_TOOLS is invalid"
44
	exit 1
45
fi
46

    
47
BUILD_CONF="${BUILDER_ROOT}/build.conf"
48

    
49
# Ensure file exists
50
if [ -f ${BUILD_CONF} ]; then
51
	. ${BUILD_CONF}
52
fi
53

    
54
# Make sure pkg will not be interactive
55
export ASSUME_ALWAYS_YES=true
56

    
57
# Architecture, supported ARCH values are:
58
#  Tier 1: i386, AMD64, and PC98
59
#  Tier 2: ARM, PowerPC, ia64, Sparc64 and sun4v
60
#  Tier 3: MIPS and S/390
61
#  Tier 4: None at the moment
62
#  Source: http://www.freebsd.org/doc/en/articles/committers-guide/archs.html
63
export TARGET=${TARGET:-"`uname -m`"}
64
export TARGET_ARCH=${TARGET_ARCH:-${TARGET}}
65
# Set TARGET_ARCH_CONF_DIR
66
if [ "$TARGET_ARCH" = "" ]; then
67
        export TARGET_ARCH=`uname -p`
68
fi
69

    
70
# Directory to be used for writing temporary information
71
export SCRATCHDIR=${SCRATCHDIR:-"${BUILDER_ROOT}/tmp"}
72
if [ ! -d ${SCRATCHDIR} ]; then
73
	mkdir -p ${SCRATCHDIR}
74
fi
75

    
76
# Product details
77
export PRODUCT_NAME=${PRODUCT_NAME:-"nonSense"}
78
export PRODUCT_NAME_SUFFIX=${PRODUCT_NAME_SUFFIX:-"-CE"}
79
export PRODUCT_URL=${PRODUCT_URL:-""}
80
export PRODUCT_SRC=${PRODUCT_SRC:-"${BUILDER_ROOT}/src"}
81
export PRODUCT_EMAIL=${PRODUCT_EMAIL:-"coreteam@pfsense.org"}
82
export XML_ROOTOBJ=${XML_ROOTOBJ:-$(echo "${PRODUCT_NAME}" | tr '[[:upper:]]' '[[:lower:]]')}
83

    
84
if [ "${PRODUCT_NAME}" = "pfSense" -a "${BUILD_AUTHORIZED_BY_ELECTRIC_SHEEP_FENCING}" != "yes" ]; then
85
	echo ">>>ERROR: According the following license, only Electric Sheep Fencing can build genuine pfSense® software"
86
	echo ""
87
	cat ${BUILDER_ROOT}/LICENSE
88
	exit 1
89
fi
90

    
91
if [ -z "${PRODUCT_VERSION}" ]; then
92
	if [ ! -f ${PRODUCT_SRC}/etc/version ]; then
93
		echo ">>> ERROR: PRODUCT_VERSION is not defined and ${PRODUCT_SRC}/etc/version was not found"
94
		print_error_pfS
95
	fi
96

    
97
	export PRODUCT_VERSION=$(head -n 1 ${PRODUCT_SRC}/etc/version)
98
fi
99
export PRODUCT_REVISION=${PRODUCT_REVISION:-""}
100

    
101
# Product repository tag to build
102
_cur_git_repo_branch_or_tag=$(git -C ${BUILDER_ROOT} rev-parse --abbrev-ref HEAD)
103
if [ "${_cur_git_repo_branch_or_tag}" = "HEAD" ]; then
104
	# We are on a tag, lets find out its name
105
	export GIT_REPO_BRANCH_OR_TAG=$(git -C ${BUILDER_ROOT} describe --tags)
106
else
107
	export GIT_REPO_BRANCH_OR_TAG="${_cur_git_repo_branch_or_tag}"
108
fi
109
# Use vX_Y instead of RELENG_X_Y for poudriere to make it shorter
110
# Replace . by _ to make tag names look correct
111
POUDRIERE_BRANCH=$(echo "${GIT_REPO_BRANCH_OR_TAG}" | sed 's,RELENG_,v,; s,\.,_,g')
112

    
113
GIT_REPO_BASE=$(git -C ${BUILDER_ROOT} config --get remote.origin.url | sed -e 's,/[^/]*$,,')
114

    
115
# This is used for using svn for retrieving src
116
export FREEBSD_REPO_BASE=${FREEBSD_REPO_BASE:-"${GIT_REPO_BASE}/freebsd-src.git"}
117
export FREEBSD_BRANCH=${FREEBSD_BRANCH:-"devel-11"}
118
export FREEBSD_SRC_DIR=${FREEBSD_SRC_DIR:-"${SCRATCHDIR}/FreeBSD-src"}
119

    
120
export BUILD_KERNELS=${BUILD_KERNELS:-"${PRODUCT_NAME}"}
121

    
122
# XXX: Poudriere doesn't like ssh short form
123
case "${FREEBSD_REPO_BASE}" in
124
	git@*)
125
		export FREEBSD_REPO_BASE_POUDRIERE="ssh://$(echo ${FREEBSD_REPO_BASE} | sed 's,:,/,')"
126
		;;
127
	*)
128
		export FREEBSD_REPO_BASE_POUDRIERE="${FREEBSD_REPO_BASE}"
129
		;;
130
esac
131

    
132
# Leave this alone.
133
export SRCCONF=${SRCCONF:-"${FREEBSD_SRC_DIR}/release/conf/${PRODUCT_NAME}_src.conf"}
134
export SRC_ENV_CONF=${SRC_CONF:-"${FREEBSD_SRC_DIR}/release/conf/${PRODUCT_NAME}_src-env.conf"}
135
export __MAKE_CONF=${__MAKE_CONF:-"${FREEBSD_SRC_DIR}/release/conf/${PRODUCT_NAME}_make.conf"}
136

    
137
# Extra tools to be added to ITOOLS
138
export LOCAL_ITOOLS=${LOCAL_ITOOLS:-"uuencode uudecode ex"}
139

    
140
# Path to kernel files being built
141
export KERNEL_BUILD_PATH=${KERNEL_BUILD_PATH:-"${SCRATCHDIR}/kernels"}
142

    
143
# Do not touch builder /usr/obj
144
export MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX:-"${SCRATCHDIR}/obj"}
145

    
146
export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipmi ndis ipfw ipdivert dummynet fdescfs opensolaris zfs glxsb if_stf coretemp amdtemp aesni sfxge hwpmc vmm nmdm ix ixv"}
147

    
148
# Area that the final image will appear in
149
export IMAGES_FINAL_DIR=${IMAGES_FINAL_DIR:-"${SCRATCHDIR}/${PRODUCT_NAME}/"}
150

    
151
export BUILDER_LOGS=${BUILDER_LOGS:-"${BUILDER_ROOT}/logs"}
152
if [ ! -d ${BUILDER_LOGS} ]; then
153
	mkdir -p ${BUILDER_LOGS}
154
fi
155

    
156
# This is where files will be staged
157
export INSTALLER_CHROOT_DIR=${INSTALLER_CHROOT_DIR:-"${SCRATCHDIR}/installer-dir"}
158

    
159
# This is where files will be staged
160
export STAGE_CHROOT_DIR=${STAGE_CHROOT_DIR:-"${SCRATCHDIR}/stage-dir"}
161

    
162
# Directory that will clone to in order to create
163
# iso staging area.
164
export FINAL_CHROOT_DIR=${FINAL_CHROOT_DIR:-"${SCRATCHDIR}/final-dir"}
165

    
166
# OVF/vmdk parms
167
# Name of ovf file included inside OVA archive
168
export OVFTEMPLATE=${OVFTEMPLATE:-"${BUILDER_TOOLS}/templates/ovf/${PRODUCT_NAME}.ovf"}
169
# / partition to be used by mkimg
170
export OVFUFS=${OVFUFS:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-disk1.ufs"}
171
# Raw disk to be converted to vmdk
172
export OVFRAW=${OVFRAW:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-disk1.raw"}
173
# On disk name of VMDK file included in OVA
174
export OVFVMDK=${OVFVMDK:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-disk1.vmdk"}
175
# 8 gigabyte on disk VMDK size
176
export VMDK_DISK_CAPACITY_IN_GB=${VMDK_DISK_CAPACITY_IN_GB:-"8"}
177
# swap partition size (freebsd-swap)
178
export OVA_SWAP_PART_SIZE_IN_GB=${OVA_SWAP_PART_SIZE_IN_GB:-"0"}
179
# Temporary place to save files
180
export OVA_TMP=${OVA_TMP:-"${SCRATCHDIR}/ova_tmp"}
181
# end of OVF
182

    
183
# Number of code images on media (1 or 2)
184
export NANO_IMAGES=2
185
# 0 -> Leave second image all zeroes so it compresses better.
186
# 1 -> Initialize second image with a copy of the first
187
export NANO_INIT_IMG2=1
188
export NANO_NEWFS="-b 4096 -f 512 -i 8192 -O1"
189
export FLASH_SIZE=${FLASH_SIZE:-"2g"}
190
# Size of code file system in 512 bytes sectors
191
# If zero, size will be as large as possible.
192
export NANO_CODESIZE=0
193
# Size of data file system in 512 bytes sectors
194
# If zero: no partition configured.
195
# If negative: max size possible
196
export NANO_DATASIZE=0
197
# Size of Product /conf partition  # 102400 = 50 megabytes.
198
export NANO_CONFSIZE=102400
199
# packet is OK for 90% of embedded
200
export NANO_BOOT0CFG="-o packet -s 1 -m 3"
201

    
202
# NOTE: Date string is used for creating file names of images
203
#       The file is used for sharing the same value with build_snapshots.sh
204
export DATESTRINGFILE=${DATESTRINGFILE:-"$SCRATCHDIR/version.snapshots"}
205
if [ -z "${DATESTRING}" ]; then
206
	if [ -f "${DATESTRINGFILE}" -a -n "${_USE_OLD_DATESTRING}" ]; then
207
		export DATESTRING=$(cat $DATESTRINGFILE)
208
	else
209
		export DATESTRING=$(date "+%Y%m%d-%H%M")
210
	fi
211
fi
212
echo "$DATESTRING" > $DATESTRINGFILE
213

    
214
# NOTE: Date string is placed on the final image etc folder to help detect new updates
215
#       The file is used for sharing the same value with build_snapshots.sh
216
export BUILTDATESTRINGFILE=${BUILTDATESTRINGFILE:-"$SCRATCHDIR/version.buildtime"}
217
if [ -z "${BUILTDATESTRING}" ]; then
218
	if [ -f "${BUILTDATESTRINGFILE}" -a -n "${_USE_OLD_DATESTRING}" ]; then
219
		export BUILTDATESTRING=$(cat $BUILTDATESTRINGFILE)
220
	else
221
		export BUILTDATESTRING=$(date "+%a %b %d %T %Z %Y")
222
	fi
223
fi
224
echo "$BUILTDATESTRING" > $BUILTDATESTRINGFILE
225

    
226
STAGING_HOSTNAME=${STAGING_HOSTNAME:-"release-staging.netgate.com"}
227

    
228
# Poudriere
229
export ZFS_TANK=${ZFS_TANK:-"zroot"}
230
export ZFS_ROOT=${ZFS_ROOT:-"/poudriere"}
231

    
232
export POUDRIERE_BULK=${POUDRIERE_BULK:-"${BUILDER_TOOLS}/conf/pfPorts/poudriere_bulk"}
233
export POUDRIERE_PORTS_GIT_URL=${POUDRIERE_PORTS_GIT_URL:-"${GIT_REPO_BASE}/freebsd-ports.git"}
234
export POUDRIERE_PORTS_GIT_BRANCH=${POUDRIERE_PORTS_GIT_BRANCH:-"devel"}
235

    
236
# Use vX_Y instead of RELENG_X_Y for poudriere to make it shorter
237
POUDRIERE_PORTS_BRANCH=$(echo "${POUDRIERE_PORTS_GIT_BRANCH}" | sed 's,RELENG_,v,')
238

    
239
export POUDRIERE_PORTS_NAME=${POUDRIERE_PORTS_NAME:-"${PRODUCT_NAME}_${POUDRIERE_PORTS_BRANCH}"}
240

    
241
# XXX: Poudriere doesn't like ssh short form
242
case "${POUDRIERE_PORTS_GIT_URL}" in
243
	git@*)
244
		POUDRIERE_PORTS_GIT_URL="ssh://$(echo ${POUDRIERE_PORTS_GIT_URL} | sed 's,:,/,')"
245
		;;
246
esac
247

    
248
unset _IS_RELEASE
249
unset CORE_PKG_DATESTRING
250
export TIMESTAMP_SUFFIX="-${DATESTRING}"
251
# pkg doesn't like - as version separator, use . instead
252
export PKG_DATESTRING=$(echo "${DATESTRING}" | sed 's,-,.,g')
253
case "${PRODUCT_VERSION##*-}" in
254
	RELEASE)
255
		export _IS_RELEASE=yes
256
		unset TIMESTAMP_SUFFIX
257
		;;
258
	ALPHA|DEVELOPMENT)
259
		export CORE_PKG_DATESTRING=".a.${PKG_DATESTRING}"
260
		;;
261
	BETA*)
262
		export CORE_PKG_DATESTRING=".b.${PKG_DATESTRING}"
263
		;;
264
	RC*)
265
		export CORE_PKG_DATESTRING=".r.${PKG_DATESTRING}"
266
		;;
267
	*)
268
		echo ">>> ERROR: Invalid PRODUCT_VERSION format ${PRODUCT_VERSION}"
269
		exit 1
270
esac
271

    
272
# Host to rsync pkg repos from poudriere
273
export PKG_RSYNC_HOSTNAME=${PKG_RSYNC_HOSTNAME:-${STAGING_HOSTNAME}}
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:-"/staging/ce/packages"}
277
export PKG_RSYNC_LOGS=${PKG_RSYNC_LOGS:-"/staging/ce/packages/logs/${POUDRIERE_BRANCH}/${TARGET}"}
278

    
279
# Final packages server
280
if [ -n "${_IS_RELEASE}" ]; then
281
	export PKG_FINAL_RSYNC_HOSTNAME=${PKG_FINAL_RSYNC_HOSTNAME:-"files01.nyi.netgate.com"}
282
	export PKG_FINAL_RSYNC_DESTDIR=${PKG_FINAL_RSYNC_DESTDIR:-"/usr/local/www/pkg"}
283
else
284
	export PKG_FINAL_RSYNC_HOSTNAME=${PKG_FINAL_RSYNC_HOSTNAME:-"beta.pfsense.org"}
285
	export PKG_FINAL_RSYNC_DESTDIR=${PKG_FINAL_RSYNC_DESTDIR:-"/usr/local/www/beta/packages"}
286
fi
287
export PKG_FINAL_RSYNC_USERNAME=${PKG_FINAL_RSYNC_USERNAME:-"wwwsync"}
288
export PKG_FINAL_RSYNC_SSH_PORT=${PKG_FINAL_RSYNC_SSH_PORT:-"22"}
289
export SKIP_FINAL_RSYNC=${SKIP_FINAL_RSYNC:-}
290

    
291
# pkg repo variables
292
export USE_PKG_REPO_STAGING="1"
293
export PKG_REPO_SERVER_DEVEL=${PKG_REPO_SERVER_DEVEL:-"pkg+https://beta.pfsense.org/packages"}
294
export PKG_REPO_SERVER_RELEASE=${PKG_REPO_SERVER_RELEASE:-"pkg+https://beta.pfsense.org/packages"}
295
export PKG_REPO_SERVER_STAGING=${PKG_REPO_SERVER_STAGING:-"pkg+http://${STAGING_HOSTNAME}/ce/packages"}
296

    
297
if [ -n "${_IS_RELEASE}" ]; then
298
	export PKG_REPO_BRANCH_RELEASE=${PKG_REPO_BRANCH_RELEASE:-${POUDRIERE_BRANCH}}
299
	export PKG_REPO_BRANCH_DEVEL=${PKG_REPO_BRANCH_DEVEL:-${POUDRIERE_BRANCH}}
300
	export PKG_REPO_BRANCH_STAGING=${PKG_REPO_BRANCH_STAGING:-${PKG_REPO_BRANCH_RELEASE}}
301
else
302
	export PKG_REPO_BRANCH_RELEASE=${PKG_REPO_BRANCH_RELEASE:-${POUDRIERE_BRANCH}}
303
	export PKG_REPO_BRANCH_DEVEL=${PKG_REPO_BRANCH_DEVEL:-${POUDRIERE_BRANCH}}
304
	export PKG_REPO_BRANCH_STAGING=${PKG_REPO_BRANCH_STAGING:-${PKG_REPO_BRANCH_DEVEL}}
305
fi
306

    
307
if [ -n "${_IS_RELEASE}" ]; then
308
	export PKG_REPO_SIGN_KEY=${PKG_REPO_SIGN_KEY:-"release${PRODUCT_NAME_SUFFIX}"}
309
else
310
	export PKG_REPO_SIGN_KEY=${PKG_REPO_SIGN_KEY:-"beta${PRODUCT_NAME_SUFFIX}"}
311
fi
312
# Command used to sign pkg repo
313
export PKG_REPO_SIGNING_COMMAND=${PKG_REPO_SIGNING_COMMAND:-"ssh sign@codesigner.netgate.com sudo ./sign.sh ${PKG_REPO_SIGN_KEY}"}
314
export DO_NOT_SIGN_PKG_REPO=${DO_NOT_SIGN_PKG_REPO:-}
315

    
316
# Define base package version, based on date for snaps
317
export CORE_PKG_VERSION="${PRODUCT_VERSION%%-*}${CORE_PKG_DATESTRING}${PRODUCT_REVISION:+_}${PRODUCT_REVISION}"
318
export CORE_PKG_PATH=${CORE_PKG_PATH:-"${SCRATCHDIR}/${PRODUCT_NAME}_${POUDRIERE_BRANCH}_${TARGET_ARCH}-core"}
319
export CORE_PKG_REAL_PATH="${CORE_PKG_PATH}/.real_${DATESTRING}"
320
export CORE_PKG_ALL_PATH="${CORE_PKG_PATH}/All"
321

    
322
export PKG_REPO_BASE=${PKG_REPO_BASE:-"${FREEBSD_SRC_DIR}/release/pkg_repos"}
323
export PKG_REPO_DEFAULT=${PKG_REPO_DEFAULT:-"${PKG_REPO_BASE}/${PRODUCT_NAME}-repo.conf"}
324
export PKG_REPO_PATH=${PKG_REPO_PATH:-"/usr/local/etc/pkg/repos/${PRODUCT_NAME}.conf"}
325

    
326
export PRODUCT_SHARE_DIR=${PRODUCT_SHARE_DIR:-"/usr/local/share/${PRODUCT_NAME}"}
327

    
328
# Package overlay. This gives people a chance to build product
329
# installable image that already contains certain extra packages.
330
#
331
# Needs to contain comma separated package names. Of course
332
# package names must be valid. Using non existent
333
# package name would yield an error.
334
#
335
#export custom_package_list=""
336

    
337
# General builder output filenames
338
export ISOPATH=${ISOPATH:-"${IMAGES_FINAL_DIR}/installer/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-${TARGET}${TIMESTAMP_SUFFIX}.iso"}
339
export MEMSTICKPATH=${MEMSTICKPATH:-"${IMAGES_FINAL_DIR}/installer/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-memstick-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-${TARGET}${TIMESTAMP_SUFFIX}.img"}
340
export MEMSTICKSERIALPATH=${MEMSTICKSERIALPATH:-"${IMAGES_FINAL_DIR}/installer/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-memstick-serial-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-${TARGET}${TIMESTAMP_SUFFIX}.img"}
341
export MEMSTICKADIPATH=${MEMSTICKADIPATH:-"${IMAGES_FINAL_DIR}/installer/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-memstick-ADI-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-${TARGET}${TIMESTAMP_SUFFIX}.img"}
342
export OVAPATH=${OVAPATH:-"${IMAGES_FINAL_DIR}/virtualization/${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-${TARGET}${TIMESTAMP_SUFFIX}.ova"}
343
export MEMSTICK_VARIANTS=${MEMSTICK_VARIANTS:-}
344
export VARIANTIMAGES=""
345
export VARIANTUPDATES=""
346

    
347
# nanobsd templates
348
export NANOBSD_IMG_TEMPLATE=${NANOBSD_IMG_TEMPLATE:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-%%SIZE%%-${TARGET}-%%TYPE%%${TIMESTAMP_SUFFIX}.img"}
349

    
350
# Rsync data to send snapshots
351
export RSYNCUSER=${RSYNCUSER:-"snapshots"}
352
export RSYNCPATH=${RSYNCPATH:-"/usr/local/www/snapshots/${TARGET}/${PRODUCT_NAME}_${GIT_REPO_BRANCH_OR_TAG}"}
353

    
354
export SNAPSHOTSLOGFILE=${SNAPSHOTSLOGFILE:-"${SCRATCHDIR}/snapshots-build.log"}
355
export SNAPSHOTSLASTUPDATE=${SNAPSHOTSLASTUPDATE:-"${SCRATCHDIR}/snapshots-lastupdate.log"}
356

    
357
if [ -n "${POUDRIERE_SNAPSHOTS}" ]; then
358
	export SNAPSHOTS_RSYNCIP=${PKG_RSYNC_HOSTNAME}
359
	export SNAPSHOTS_RSYNCUSER=${PKG_RSYNC_USERNAME}
360
else
361
	export SNAPSHOTS_RSYNCIP=${RSYNCIP}
362
	export SNAPSHOTS_RSYNCUSER=${RSYNCUSER}
363
fi
364

    
365
if [ "${PRODUCT_NAME}" = "pfSense" ]; then
366
	export VENDOR_NAME=${VENDOR_NAME:-"Electric Sheep Fencing, LLC"}
367
	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."}
368
else
369
	export VENDOR_NAME=${VENDOR_NAME:-"nonSense"}
370
	export OVF_INFO=${OVF_INFO:-"none"}
371
fi
(3-3/3)