Projet

Général

Profil

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

univnautes-tools / builder_scripts / builder_defaults.sh @ b3bdfdbf

1
#!/bin/sh
2

    
3
###########################################
4
# pfSense builder configuration file      #
5
# Please don't modify this file, you      #
6
# can put your settings and options       #
7
# in pfsense-build.conf, which is         #
8
# sourced at the beginning of this file   #
9
###########################################
10

    
11
export BUILD_CONF=./pfsense-build.conf
12

    
13
# Ensure file exists
14
if [ -f ${BUILD_CONF} ]; then
15
	. ${BUILD_CONF}
16
elif [ -f ../${BUILD_CONF} ]; then
17
	. ../${BUILD_CONF}
18
elif [ -z "${_SET_VERSION_SH}" ]; then
19
	echo
20
	echo "You must first run ./set_version.sh !"
21
	echo "See http://devwiki.pfsense.org/DevelopersBootStrapAndDevIso for more information."
22
	echo
23
	echo "You can also run ./menu.sh which will assist with the available options"
24
	echo
25
	exit 2
26
fi
27

    
28
OIFS=$IFS
29
IFS=%
30

    
31
# Architecture, supported ARCH values are: 
32
#  Tier 1: i386, AMD64, and PC98
33
#  Tier 2: ARM, PowerPC, ia64, Sparc64 and sun4v
34
#  Tier 3: MIPS and S/390
35
#  Tier 4: None at the moment
36
#  Source: http://www.freebsd.org/doc/en/articles/committers-guide/archs.html
37
export TARGET=${TARGET:-"`uname -m`"}
38
export TARGET_ARCH=${TARGET_ARCH:-${TARGET}}
39
# Set TARGET_ARCH_CONF_DIR
40
if [ "$TARGET_ARCH" = "" ]; then
41
        export TARGET_ARCH=`uname -p`
42
fi
43
export BUILDER_HOST_TARGET=`uname -m`
44

    
45
# FreeBSD version and build information
46
export FREEBSD_VERSION=${FREEBSD_VERSION:-10}
47
# This is used for using svn for retrieving src
48
# export USE_SVN=yes
49
export FREEBSD_REPO_BASE=${FREEBSD_REPO_BASE:-"git@git.pfmechanics.com:outsidemirrors/freebsd.git"}
50
export FREEBSD_BRANCH=${FREEBSD_BRANCH:-"stable/10"}
51

    
52
# Version that will be applied to this build
53
export PFSENSE_VERSION=${PFSENSE_VERSION:-2.2-DEVELOPMENT}
54

    
55
# pfSense repository tag to build
56
export PFSENSETAG=${PFSENSETAG:-RELENG_2_2}
57

    
58
export PRODUCT_NAME=${PRODUCT_NAME:-pfSense}
59

    
60
# Directory to be used for writing temporary information
61
export SCRATCHDIR=${SCRATCHDIR:-/tmp}
62

    
63
# Area that the final image will appear in
64
export MAKEOBJDIRPREFIXFINAL=${MAKEOBJDIRPREFIXFINAL:-${SCRATCHDIR}/${PRODUCT_NAME}/}
65

    
66
# Leave near the top.
67
export MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX:-/usr/obj.${TARGET}}
68

    
69
# Generally /home/pfsense
70
export BASE_DIR=${BASE_DIR:-/home/pfsense}
71

    
72
# pfSense and tools directory name
73
# Used for Git checkout
74
export TOOLS_DIR=${TOOLS_DIR:-tools}
75

    
76
# Generally /home/pfsense/tools
77
export BUILDER_TOOLS=${BUILDER_TOOLS:-${BASE_DIR}/${TOOLS_DIR}}
78

    
79
# Generally /home/pfsense/tools/builder_scripts
80
export BUILDER_SCRIPTS=${BUILDER_SCRIPTS:-${BUILDER_TOOLS}/builder_scripts}
81
export BUILDER_LOGS=${BUILDER_LOGS:-${BUILDER_TOOLS}/logs}
82
if [ ! -d ${BUILDER_LOGS} ]; then
83
	mkdir -p ${BUILDER_LOGS}
84
fi
85

    
86
# Generally /home/pfsense/tools/builder_scripts/builder_profiles
87
export BUILDER_PROFILES=${BUILDER_SCRIPTS}/builder_profiles
88

    
89
# path to pfPorts
90
export pfSPORTS_BASE_DIR=${pfSPORTS_BASE_DIR:-${BUILDER_TOOLS}/pfPorts}
91

    
92
# Set it to "-c" to don't rebuild already built packages
93
CHECK_PORTS_INSTALLED=${CHECK_PORTS_INSTALLED:-""}
94

    
95
# This is where files will be staged
96
export PFSENSESTAGEDIR=${PFSENSESTAGEDIR:-/usr/local/pfsense-fs}
97

    
98
export SRCDIR=${SRCDIR:-/usr/pfSensesrc/src}
99
export PFSPKGFILE=${PFSPKGFILE:-${SCRATCHDIR}/pfspackages}
100
export PFSBUILDERREQUIREDPORTS=${PFSBUILDERREQUIREDPORTS:-${BUILDER_SCRIPTS}/conf/pfPorts/builder_required_ports}
101

    
102
export MEMORYDISK_SIZE=${MEMORYDISK_SIZE:-"400M"}
103
# Items beyond this must be defined after MAKEOBJDIRPREFIX!
104

    
105
# OVF/vmdk parms
106
export OVFPATH=${OVFPATH:-${MAKEOBJDIRPREFIXFINAL}}
107
# Name of ovf file included inside OVA archive
108
export OVFFILE=${OVFFILE:-${PRODUCT_NAME}.ovf}
109
# On disk name of VMDK file included in OVA
110
export OVFVMDK=${OVFVMDK:-${PRODUCT_NAME}.vmdk}
111
# Filename of final image output
112
export OVAFILE=${OVAFILE:-${PRODUCT_NAME}.ova}
113
# optional
114
export OVFCERT=${OVFCERT:-""}
115
# optional
116
export OVFSTRINGS=${OVFSTRINGS:-""}
117
# optional
118
export OVFMF=${OVFMF:-""}
119
# 10 gigabyte on disk VMDK size
120
export OVADISKSIZE=${OVADISKSIZE:-"10737418240"}
121
# dd buffering size when creating raw backed VMDK
122
export OVABLOCKSIZE=${OVABLOCKSIZE:-"409600"}
123
# first partition size (freebsd-ufs) GPT
124
export OVA_FIRST_PART_SIZE=${OVA_FIRST_PART_SIZE:-"8G"}
125
# swap partition size (freebsd-swap) GPT -
126
# remaining space of 10G-8G - 128 block beginning/loader
127
export OVA_SWAP_PART_SIZE=${OVA_SWAP_PART_SIZE:-"4193725"}
128
# 10737254400 = 10240MB = virtual box vmdk file size XXX grab this value from vbox creation
129
export OVA_DISKSECTIONALLOCATIONUNITS=${OVA_DISKSECTIONALLOCATIONUNITS:-"10737254400"}
130
# end of OVF
131

    
132
# Leave this alone.
133
export SRC_CONF=${SRC_CONF:-"${BUILDER_SCRIPTS}/conf/src/src.conf.$FREEBSD_VERSION"}
134
export SRC_CONF_INSTALL=${SRC_CONF_INSTALL:-"${BUILDER_SCRIPTS}/conf/src/src.conf.${FREEBSD_VERSION}.install"}
135

    
136
#### User settable options follow ###
137

    
138
# "UNBREAK TEXTMATE FORMATTING.  PLEASE LEAVE ME THANKS.
139

    
140
# Patch directory and patch file that lists patches to apply
141
export PFSPATCHDIR=${PFSPATCHDIR:-${BUILDER_TOOLS}/patches/${FREEBSD_BRANCH}}
142
export PFSPATCHFILE=${PFSPATCHFILE:-${BUILDER_TOOLS}/builder_scripts/conf/patchlist/${FREEBSD_BRANCH}/patches}
143

    
144
# Path to kernel files being built
145
export KERNEL_BUILD_PATH=${KERNEL_BUILD_PATH:-"${SCRATCHDIR}/kernels"}
146

    
147
# Controls how many concurrent make processes are run for each stage
148
if [ "${NO_MAKEJ}" = "" ]; then
149
	CPUS=`sysctl -n kern.smp.cpus`
150
	CPUS=`expr $CPUS '*' 2`
151
	export MAKEJ_WORLD=${MAKEJ_WORLD:-"-j$CPUS"}
152
	export MAKEJ_KERNEL=${MAKEJ_KERNEL:-"-j$CPUS"}
153
else
154
	export MAKEJ_WORLD=${MAKEJ_WORLD:-""}
155
	export MAKEJ_KERNEL=${MAKEJ_KERNEL:-""}
156
fi
157
if [ ${FREEBSD_VERSION} -ge 10 ]; then
158
	if [ "${TARGET}" = "mips" ]; then
159
		export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipfw ipdivert dummynet fdescfs opensolaris zfs if_stf sfxge"}
160
	else
161
		export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipmi ndis ipfw ipdivert dummynet fdescfs opensolaris zfs glxsb if_stf coretemp amdtemp aesni sfxge"}
162
	fi
163
else
164
	export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipmi acpi ndis ipfw ipdivert dummynet fdescfs cpufreq opensolaris zfs glxsb runfw if_stf virtio coretemp amdtemp aesni sfxge mps ahci"}
165
fi
166
export MAKEJ_PORTS=${MAKEJ_PORTS:-""}
167
export NOEXTRA_DEVICES=${NOEXTRA_DEVICES:-}
168
export EXTRA_OPTIONS=${EXTRA_OPTIONS:-}
169
export NOEXTRA_OPTIONS=${NOEXTRA_OPTIONS:-}
170

    
171
# DO NOT SET THIS.  IT WILL BREAK 1.2.3 builds.  This is now
172
# set by default in setup_overlay.sh
173
# export EXTRA_DEVICES=${EXTRA_DEVICES:-"siba_bwn,bwn,run"}
174

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

    
200
# Custom Copy and Remove lists that override base remove.list.* and copy.list.*
201
export CUSTOM_REMOVE_LIST=${CUSTOM_REMOVE_LIST:-"${BUILDER_SCRIPTS}/conf/rmlist/remove.list.iso.$FREEBSD_VERSION"}
202
export CUSTOM_COPY_LIST=${CUSTOM_COPY_LIST:-"${BUILDER_TOOLS}/builder_scripts/conf/copylist/copy.list.$PSENSETAG"}
203

    
204
# " - UNBREAK TEXTMATE FORMATTING - PLEASE LEAVE.
205

    
206
# Use a custom config.xml
207
#export USE_CONFIG_XML=${USE_CONFIG_XML:-"/path/to/custom/config.xml"}
208

    
209
# GIT pfSense, BSDInstaller GIT repo settings
210
export GIT_REPO_PFSENSE=${GIT_REPO_PFSENSE:-"git@git.pfmechanics.com:pfsense/pfsense.git"}
211
export GIT_REPO_DIR="${BASE_DIR}/pfSenseGITREPO"
212
export GIT_REPO_TOOLS=${GIT_REPO_TOOLS:-"git@git.pfmechanics.com:pfsense/pfsense-tools.git ${TOOLS_DIR}"}
213
export GIT_REPO_BSDINSTALLER=${GIT_REPO_BSDINSTALLER:-"git@git.pfmechanics.com:pfsense/bsdinstaller.git"}
214

    
215
# Custom overlay for people building or extending pfSense images.
216
# The custom overlay tar gzipped file will be extracted over the root
217
# of the prepared image allowing for customization.
218
#
219
# Note: It is also possible to specify a directory instead of a
220
#       gzipped tarball.
221
#
222
# Tarball overlay (please uncomment):
223
#export custom_overlay="${BASE_DIR}/custom_overlay.tgz"
224
#
225
# Directory overlay (please uncomment):
226
#export custom_overlay="${BASE_DIR}/custom_overlay"
227

    
228
# Package overlay. This gives people a chance to build a pfSense
229
# installable image that already contains certain pfSense packages.
230
#
231
# Needs to contain comma separated package names. Of course
232
# package names must be valid. Using non existent
233
# package name would yield an error.
234
#
235
#export custom_package_list=""
236

    
237
# Directory that will clone to in order to create
238
# iso staging area.
239
export PFSENSEISODIR=${PFSENSEISODIR:-/usr/local/pfsense-clone}
240

    
241
# NOTE: Date string is used for creating file names of images
242
#       The file is used for sharing the same value with build_snapshots.sh
243
export _BUILDER_EPOCH=$(date +"%s")
244
export DATESTRINGFILE=${DATESTRINGFILE:-$SCRATCHDIR/version.snapshots}
245
if [ "${DATESTRING}" = "" ]; then
246
	if [ -f $DATESTRINGFILE ]; then
247
		# If the file is more than 30 minutes old regenerate it
248
		TMPDATESTRINGFILE=$(($_BUILDER_EPOCH - `stat -f %m $DATESTRINGFILE`))
249
		if [ $TMPDATESTRINGFILE -gt 1800 ]; then
250
			export DATESTRING=`date "+%Y%m%d-%H%M"`
251
		else
252
			export DATESTRING=`cat $DATESTRINGFILE`
253
		fi
254
		unset TMPDATESTRINGFILE
255
	else
256
		export DATESTRING=`date "+%Y%m%d-%H%M"`
257
	fi
258
	echo "$DATESTRING" > $DATESTRINGFILE
259
fi
260

    
261
# NOTE: Date string is placed on the final image etc folder to help detect new updates
262
#       The file is used for sharing the same value with build_snapshots.sh
263
export BUILTDATESTRINGFILE=${BUILTDATESTRINGFILE:-$SCRATCHDIR/version.buildtime}
264
if [ "${BUILTDATESTRING}" = "" ]; then
265
	if [ -f $BUILTDATESTRINGFILE ]; then
266
		# If the file is more than 30 minutes old regenerate it
267
		TMPBUILTDATESTRINGFILE=$(($_BUILDER_EPOCH - `stat -f %m $BUILTDATESTRINGFILE`))
268
		if [ $TMPBUILTDATESTRINGFILE -gt 1800 ]; then
269
			export BUILTDATESTRING=`date "+%a %b %d %T %Z %Y"`
270
		else
271
			export BUILTDATESTRING=`cat $BUILTDATESTRINGFILE`
272
		fi
273
		unset TMPBUILTDATESTRINGFILE
274
	else
275
		export BUILTDATESTRING=`date "+%a %b %d %T %Z %Y"`
276
	fi
277
	echo "$BUILTDATESTRING" > $BUILTDATESTRINGFILE
278
fi
279

    
280
# General builder output filenames
281
export UPDATESDIR=${UPDATESDIR:-$MAKEOBJDIRPREFIXFINAL/updates}
282
export ISOPATH=${ISOPATH:-${MAKEOBJDIRPREFIXFINAL}/${PRODUCT_NAME}-LiveCD-${PFSENSE_VERSION}-${TARGET}-${DATESTRING}.iso}
283
export MEMSTICKPATH=${MEMSTICKPATH:-${MAKEOBJDIRPREFIXFINAL}/${PRODUCT_NAME}-memstick-${PFSENSE_VERSION}-${TARGET}-${DATESTRING}.img}
284
export MEMSTICKSERIALPATH=${MEMSTICKSERIALPATH:-${MAKEOBJDIRPREFIXFINAL}/${PRODUCT_NAME}-memstick-serial-${PFSENSE_VERSION}-${TARGET}-${DATESTRING}.img}
285

    
286
# set full-update update filename
287
export UPDATES_TARBALL_FILENAME=${UPDATES_TARBALL_FILENAME:-"${UPDATESDIR}/${PRODUCT_NAME}-Full-Update-${PFSENSE_VERSION}-${TARGET}-${DATESTRING}.tgz"}
288

    
289
# Do not compress /usr and make it geom_uzip usable 
290
export NO_COMPRESSEDFS=yes
291

    
292
# " - UNBREAK TEXTMATE FORMATTING - PLEASE LEAVE.
293

    
294
# Can call custom functions during build such as disable_lan_disable_dhcpd_enable_sshd
295
export CUSTOM_CALL_SHELL_FUNCTION=${CUSTOM_CALL_SHELL_FUNCTION:-""}
296

    
297
if [ ${FREEBSD_VERSION} -ge 10 ]; then
298
	USE_PKGNG=yes
299
	PKG_INFO="pkg info"
300
	PKG_QUERY="pkg query %n"
301

    
302
	if [ "${TARGET}" = "i386" ]; then
303
		export BUILD_KERNELS=${BUILD_KERNELS:-"pfSense_SMP.${FREEBSD_VERSION} pfSense_wrap.${FREEBSD_VERSION}.${TARGET} pfSense_wrap_vga.${FREEBSD_VERSION}.${TARGET}"}
304
	else
305
		export BUILD_KERNELS=${BUILD_KERNELS:-pfSense_SMP.${FREEBSD_VERSION}}
306
	fi
307
else
308
	PKG_INFO="pkg_info"
309
	PKG_QUERY="pkg_info -e"
310

    
311
	export BUILD_KERNELS=${BUILD_KERNELS:-"pfSense_SMP.${FREEBSD_VERSION} pfSense_wrap.${FREEBSD_VERSION}.${TARGET} pfSense_wrap_vga.${FREEBSD_VERSION}.${TARGET}"}
312
fi
313

    
314
# This needs to be at the very end of the file.
315
IFS=$OIFS
(4-4/7)