Chameleon Applications

Chameleon Applications Commit Details

Date:2010-11-28 13:54:27 (13 years 4 months ago)
Author:blackosx
Commit:244
Parents: 243
Message:
Changes:
D/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Standard/null
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/Welcome.rtfd/TXT.rtf
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/Conclusion.rtfd/TXT.rtf
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Standard/nullstandard
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/ReadMe.rtfd/TXT.rtf
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/background.tiff
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/Welcome.rtfd
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/Conclusion.rtfd
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/ReadMe.rtfd
A/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/License.rtf
M/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Scripts/MainESPPostinstall.sh
M/branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Scripts/postflight.sh

File differences

branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Scripts/postflight.sh
2525
2626
2727
28
28
2929
3030
3131
32
32
33
34
35
36
37
38
39
3340
3441
3542
if [ -d ${3}/.Chameleon/Extra ]; then
# check to see if install to EFI system partition was selected
# Check to see if install to EFI system partition was selected
# if chosen, the package installer would have added a file named
# 'nullESP' in to the temporary directory /.Chameleon
if [ -f ${3}/.Chameleon/nullESP ]; then
# We also need to check to see if the user selected both the
# standard install and EFI system partition options.
# If they did then the EFI system partition script would
# have been cancelled, meaning the Extra folder needs to
# be copied the selected destination.
if [ -f ${3}/.Chameleon/nullESP ] && ! [ -f ${3}/.Chameleon/nullstandard ]; then
echo "Executing command: ditto ${3}/.Chameleon/Extra /Volumes/EFI/Extra"
ditto ${3}/.Chameleon/Extra /Volumes/EFI/Extra
branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Scripts/MainESPPostinstall.sh
1313
1414
1515
16
17
18
19
20
21
22
23
24
25
26
27
28
16
17
18
19
2920
21
22
3023
31
24
25
26
27
28
29
30
31
32
33
34
35
36
3237
33
34
35
36
37
3838
39
40
39
4140
42
43
44
45
46
47
48
41
42
43
44
45
4946
47
48
5049
50
51
52
53
54
55
56
5157
52
53
54
5558
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
7359
60
61
62
7463
75
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
7681
77
78
7982
80
81
83
8284
83
85
86
8487
85
86
87
88
88
89
8990
91
9092
91
92
93
93
9494
9595
9696
9797
9898
99
100
99
101100
102
103
101
102
103
104
104105
105106
106
107
108
109
107
108
110109
111
112
110
111
113112
114113
115
116
117
114
115
116
117
118118
119
119
120
120121
121122
122
123
124
125
123
124
125
126126
127
128
127
129128
130129
131
132
130
131
132
133
133134
134
135
136
135137
136138
137
138
139
139
140
140141
141
142
143
144
142
145143
146144
147
148
149
150
145
146
147
151148
152
153
149
150
151
152
154153
155
156
157154
158
159
155
156
157
158
159
160
161
162
163
164
165
166
167
160168
169
170
171
172
161173
162174
175
176
177
178
163179
164180
165
166
167
181
182
183
168184
169185
170186
scriptDir=$MYLOCATION
#echo "==============================================="
#echo "Apple Installer Package Variables"
#echo "*********************************"
#echo "DEBUG: $ 1 = Full path to the installation package the installer app is processing: " $1
#echo "DEBUG: $ 2 = Full path to the installation destination: " $2
#echo "DEBUG: $ 3 = Installation volume (mountpoint) to receive the payload: " $3
#echo "DEBUG: $ 4 = Root directory for the system: " $4
#echo "DEBUG: Script Name: " $SCRIPT_NAME
#echo "DEBUG: Package Path: " $PACKAGE_PATH
#echo "DEBUG: Installer Temp: " $INSTALLER_TEMP
#echo "DEBUG: Full path to the temp directory containing the operation executable: " $RECEIPT_PATH
#echo "-----------------------------------------------"
#echo ""
# Before starting - we'd better check to see if the user selected
# both the standard and the EFI system partition install options.
# If they did then the standard install will have already be run.
# Therefore, we will not run this.
if ! [ -f ${3}/.Chameleon/nullstandard ]; then
# OK to continue
# Initialise Script Globals
#echo "==============================================="
#echo "Apple Installer Package Variables"
#echo "*********************************"
#echo "DEBUG: $ 1 = Full path to the installation package the installer app is processing: " $1
#echo "DEBUG: $ 2 = Full path to the installation destination: " $2
#echo "DEBUG: $ 3 = Installation volume (mountpoint) to receive the payload: " $3
#echo "DEBUG: $ 4 = Root directory for the system: " $4
#echo "DEBUG: Script Name: " $SCRIPT_NAME
#echo "DEBUG: Package Path: " $PACKAGE_PATH
#echo "DEBUG: Installer Temp: " $INSTALLER_TEMP
#echo "DEBUG: Full path to the temp directory containing the operation executable: " $RECEIPT_PATH
#echo "-----------------------------------------------"
#echo ""
stage0Loader="boot0" #diskloader
stage0LoaderDualBoot="boot0hfs" #was stage0Loaderdualboot
stage1LoaderHFS="boot1h" #was stage1LoaderHFS
stage1LoaderFAT="boot1f32" #was partitionloaderfat
stage2Loader="boot" #was filesystemloader
targetVolumeTemp=$3 #was bootvolume
targetDeviceTemp=$( df "${targetVolumeTemp}" | sed -n '2p' | awk '{print $1}' ) #was bootdev
# Initialise Script Globals
targetVolume="/Volumes/EFI"
targetDevice=${targetDeviceTemp%s*}s1
targetDeviceRaw=${targetDevice/disk/rdisk} #was bootrdev
targetDisk=${targetDevice%s*} #was bootdisk
targetDiskRaw=${targetDisk/disk/rdisk} #was bootrdisk
targetSlice=${targetDevice#*disk*s} #was bootslice
targetResources="${targetVolume%/*}" #was bootresources - is this needed?
stage0Loader="boot0"
stage0LoaderDualBoot="boot0hfs"
stage1LoaderHFS="boot1h"
stage1LoaderFAT="boot1f32"
stage2Loader="boot"
targetVolumeTemp=$3
targetDeviceTemp=$( df "${targetVolumeTemp}" | sed -n '2p' | awk '{print $1}' )
targetVolume="/Volumes/EFI"
targetDevice=${targetDeviceTemp%s*}s1
targetDeviceRaw=${targetDevice/disk/rdisk}
targetDisk=${targetDevice%s*}
targetDiskRaw=${targetDisk/disk/rdisk}
targetSlice=${targetDevice#*disk*s}
targetResources="${targetVolume%/*}" # - is this needed?
echo "==============================================="
echo "DEBUG: display script variables"
echo "***************************"
echo "DEBUG: stage0Loader: Disk loader is ${stage0Loader}"
echo "DEBUG: stage0LoaderDualBoot: Disk loader is ${stage0LoaderDualBoot}"
echo "DEBUG: stage1LoaderHFS: Partition loader is ${stage1LoaderHFS}"
echo "DEBUG: stage1LoaderFat: Partition loader is ${stage1LoaderFAT}"
echo "DEBUG: stage2Loader: Filesystem loader is ${stage2Loader}"
echo "DEBUG: targetVolumeTemp: Volume is ${targetVolumeTemp}"
echo "DEBUG: targetDeviceTemp: Volume device is ${targetDeviceTemp}"
echo "DEBUG: targetVolume: Volume is ${targetVolume}"
echo "DEBUG: targetDevice: Volume device is ${targetDevice}"
echo "DEBUG: targetDeviceRaw: Volume raw device is ${targetDeviceRaw}"
echo "DEBUG: targetDisk: Disk device is ${targetDisk}"
echo "DEBUG: targetDiskRaw: Disk raw device is ${targetDiskRaw}"
echo "DEBUG: targetSlice: Volume slice is ${targetSlice}"
echo "DEBUG: targetResources: Boot Resources is ${targetResources} - ????????????"
echo "DEBUG: targetName: Volume name to look for is ${targetName} - ????????????"
echo "-----------------------------------------------"
echo ""
#echo "==============================================="
#echo "DEBUG: display script variables"
#echo "***************************"
# Check to see if the selected disk uses a GPT
#echo "DEBUG: stage0Loader: Disk loader is ${stage0Loader}"
#echo "DEBUG: stage0LoaderDualBoot: Disk loader is ${stage0LoaderDualBoot}"
#echo "DEBUG: stage1LoaderHFS: Partition loader is ${stage1LoaderHFS}"
#echo "DEBUG: stage1LoaderFat: Partition loader is ${stage1LoaderFAT}"
#echo "DEBUG: stage2Loader: Filesystem loader is ${stage2Loader}"
#echo "DEBUG: targetVolumeTemp: Volume is ${targetVolumeTemp}"
#echo "DEBUG: targetDeviceTemp: Volume device is ${targetDeviceTemp}"
#echo "DEBUG: targetVolume: Volume is ${targetVolume}"
#echo "DEBUG: targetDevice: Volume device is ${targetDevice}"
#echo "DEBUG: targetDeviceRaw: Volume raw device is ${targetDeviceRaw}"
#echo "DEBUG: targetDisk: Disk device is ${targetDisk}"
#echo "DEBUG: targetDiskRaw: Disk raw device is ${targetDiskRaw}"
#echo "DEBUG: targetSlice: Volume slice is ${targetSlice}"
#echo "DEBUG: targetResources: Boot Resources is ${targetResources} - ????????????"
#echo "DEBUG: targetName: Volume name to look for is ${targetName} - ????????????"
#echo "-----------------------------------------------"
#echo ""
bootuuid=$( diskutil info "$targetDeviceTemp" | grep Volume\ UUID | awk {'print $3'} )
partitiontable=$( diskutil list ${targetDeviceTemp%s*} | sed -n '3p' | awk '{print $2}' )
if [ ${partitiontable} = "GUID_partition_scheme" ]; then
echo "Confirm this is a GPT partitioned disk."
# Check to see if the selected disk uses a GPT
# Double check we can see the selected partition and it's of the right type
bootuuid=$( diskutil info "$targetDeviceTemp" | grep Volume\ UUID | awk {'print $3'} )
partitiontable=$( diskutil list ${targetDeviceTemp%s*} | sed -n '3p' | awk '{print $2}' )
"$scriptDir"CheckProceed.sh "${targetVolumeTemp}" "${targetDeviceTemp}"
returnValue=$?
if [ ${returnValue} = 0 ]; then
# OK to proceed
if [ ${partitiontable} = "GUID_partition_scheme" ]; then
echo "Confirm this is a GPT partitioned disk."
# Double check we can see the selected partition and it's of the right type
# Does a GRUB or Linux loader already exist in the disk's MBR?
"$scriptDir"CheckDiskMicrocodeType.sh "${targetDisk}"
"$scriptDir"CheckProceed.sh "${targetVolumeTemp}" "${targetDeviceTemp}"
returnValue=$?
if [ ${returnValue} = 0 ]; then
# OK to proceed
# check for a 4-byte Windows disk signature in the disk's MBR.
# the following script returns 1 if a Windows disk signature exists, and 0 if not.
# Does a GRUB or Linux loader already exist in the disk's MBR?
"$scriptDir"CheckDiskSignature.sh "${targetDisk}"
diskSigCheck=$?
"$scriptDir"CheckDiskMicrocodeType.sh "${targetDisk}"
returnValue=$?
if [ ${returnValue} = 0 ]; then
# OK to proceed
# check for existing bootloaders in the disk's MBR
# and find out if we can write the Chameleon boot files.
# the following script returns 1 if we can proceed
# with writing the boot files, and 0 for not.
# check for a 4-byte Windows disk signature in the disk's MBR.
# the following script returns 1 if a Windows disk signature exists, and 0 if not.
"$scriptDir"CheckDiskMicrocode.sh "${targetDisk}" "${diskSigCheck}"
diskupdate=$?
"$scriptDir"CheckDiskSignature.sh "${targetDisk}"
diskSigCheck=$?
# Cancelled this as all it does is read the GPTdiskProtectiveMBR
# and the GPTdiskGPTHeader and look to see if they're blank
# check for existing bootloaders in the disk's MBR
# and find out if we can write the Chameleon boot files.
# the following script returns 1 if we can proceed
# with writing the boot files, and 0 for not.
#"$scriptDir"FindPartitionBootcode.sh "${targetDeviceRaw}"
"$scriptDir"CheckDiskMicrocode.sh "${targetDisk}" "${diskSigCheck}"
diskupdate=$?
# check the format of the selected partition.
# the following script returns 1 if HFS
# the following script returns 2 if MSDOS
# the following script returns 0 if nothing
# Cancelled this as all it does is read the GPTdiskProtectiveMBR
# and the GPTdiskGPTHeader and look to see if they're blank
"$scriptDir"CheckFormat.sh "${targetDevice}"
espformat=$?
#"$scriptDir"FindPartitionBootcode.sh "${targetDeviceRaw}"
# Determine the partition scheme of the selected disk
# is it GPT or a hybrid GPT/MBR
# check the format of the selected partition.
# the following script returns 1 if HFS
# the following script returns 2 if MSDOS
# the following script returns 0 if nothing
"$scriptDir"CheckPartitionScheme.sh "${targetDisk}"
"$scriptDir"CheckFormat.sh "${targetDevice}"
espformat=$?
# Unmount ALL mounted volumes named EFI
# the following script returns 0 if it succeeds
# the following script returns 1 if it fails to un-mount any EFI volume
# Determine the partition scheme of the selected disk
# is it GPT or a hybrid GPT/MBR
"$scriptDir"UnMountEFIvolumes.sh
returnValue=$?
if [ ${returnValue} = 0 ]; then
# OK to proceed
"$scriptDir"CheckPartitionScheme.sh "${targetDisk}"
# If diskupdate is flagged as 1 then the stage 0 loader can be written to the MBR
if [ ${diskupdate} = 1 ]; then
"$scriptDir"WriteChameleonStage0.sh "${diskupdate}" "${diskSigCheck}" "${stage0Loader}" "${stage0LoaderDualBoot}" "${targetDisk}" "${targetVolumeTemp}"
fi
# Unmount ALL mounted volumes named EFI
# the following script returns 0 if it succeeds
# the following script returns 1 if it fails to un-mount any EFI volume
# Write the stage 1 loader to the partition boot sector
"$scriptDir"WriteChameleonStage1.sh "${espformat}" "${stage1LoaderHFS}" "${stage1LoaderFAT}" "${targetVolumeTemp}" "${targetDeviceRaw}" "${targetVolume}"
"$scriptDir"UnMountEFIvolumes.sh
returnValue=$?
if [ ${returnValue} = 0 ]; then
# OK to proceed
# Write the stage 2 loader to the root of the selected partition
"$scriptDir"WriteChameleonStage2.sh "${espformat}" "${stage2Loader}" "${targetVolumeTemp}" "${targetDevice}" "${targetVolume}"
# Set the active partition ONLY if Windows is not installed
"$scriptDir"SetActivePartition.sh "${espformat}" "${diskSigCheck}" "${targetDiskRaw}" "${targetSlice}" "${targetVolumeTemp}"
# If diskupdate is flagged as 1 then the stage 0 loader can be written to the MBR
if [ ${diskupdate} = 1 ]; then
"$scriptDir"WriteChameleonStage0.sh "${diskupdate}" "${diskSigCheck}" "${stage0Loader}" "${stage0LoaderDualBoot}" "${targetDisk}" "${targetVolumeTemp}"
fi
# Write the stage 1 loader to the partition boot sector
"$scriptDir"WriteChameleonStage1.sh "${espformat}" "${stage1LoaderHFS}" "${stage1LoaderFAT}" "${targetVolumeTemp}" "${targetDeviceRaw}" "${targetVolume}"
# Write the stage 2 loader to the root of the selected partition
"$scriptDir"WriteChameleonStage2.sh "${espformat}" "${stage2Loader}" "${targetVolumeTemp}" "${targetDevice}" "${targetVolume}"
# Set the active partition ONLY if Windows is not installed
"$scriptDir"SetActivePartition.sh "${espformat}" "${diskSigCheck}" "${targetDiskRaw}" "${targetSlice}" "${targetVolumeTemp}"
fi
else
# Write error to Chameleon_Error_Log file
"$scriptDir"WriteInstallerLog.sh "${targetVolumeTemp}" "Error: Target drive has existing GRUB / Linux loader in the MBR - Not sure how to continue"
fi
fi
else
echo "ERROR Volume is not on a GPT partitioned disc."
# Write error to Chameleon_Error_Log file
"$scriptDir"WriteInstallerLog.sh "${targetVolumeTemp}" "Error: ${targetVolumeTemp} is not on a GPT partitioned disc."
fi
else
echo
echo "ERROR Volume is not on a GPT partitioned disc."
echo
echo "Error: User selected both locations for installation"
# Write error to Chameleon_Error_Log file
"$scriptDir"WriteInstallerLog.sh "${3}" "Error: User selected both locations for installation. Exiting the script for installing to the EFI system partition"
fi
exit 0
branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/Welcome.rtfd/TXT.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
{\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
{\colortbl;\red255\green255\blue255;\red27\green37\blue255;\red7\green90\blue4;}
\margl1440\margr1440\vieww11660\viewh12980\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
\f0\b\fs36 \cf2 \
Unofficial Chameleon Test installer
\fs22 \cf0 v2.1b\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
\b0 \cf3 by blackosx - 28th November 2010
\fs26 \cf0 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\cf0 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\fs22 \cf0 This installer will attempt to write the necessary Chameleon files to the selected destination. It will work with both hard disks and USB memory sticks partitioned with either a GUID or MBR partition schemes.\
\
Test installations have succeeded to the following:\
\'95 HFS format EFI system partition of an HDD using GPT\
\'95\'a0FAT32 format EFI system partition of an HDD using GPT\
\'95\'a0HFS format partition of an HDD using GPT\
\'95\'a0HFS format partition of a USB memory stick using GPT\
\'95\'a0FAT32 format partition of an HDD using MBR*\
\'95\'a0FAT32 format partition of a USB memory stick using MBR\
\'95\'a0HFS format partition of an HDD using MBR\
\
* the drive requires an HFS partition on the disk for it to boot correctly.\
\
\b Credits go to the creators of the original Chameleon scripts which this installer is based on and the developers of the Chameleon boot loader.}
branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/Conclusion.rtfd/TXT.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
{\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
{\colortbl;\red255\green255\blue255;\red11\green0\blue255;}
\margl1440\margr1440\vieww11660\viewh12980\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
\f0\b\fs36 \cf0 \
Installation Complete.
\b0\fs26 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\cf0 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
\b\fs36 \cf2 For an installation log,\
press Command-L now\
before closing this window.\
\
\fs26 \cf0 If the installer failed for any reason then you should\
have a file named 'Chameleon_Error_Log.txt'\
at the root of your selected target volume.}
branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/ReadMe.rtfd/TXT.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
{\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
{\colortbl;\red255\green255\blue255;\red255\green22\blue16;\red255\green22\blue17;\red8\green25\blue255;
\red12\green7\blue255;}
\margl1440\margr1440\vieww11660\viewh12980\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\f0\b\fs22 \cf2 \
\fs28 \cf3 Please understand that you use this at your own risk and I take no responsibility if you mess up your system. As this is an unofficial release do not contact the Chameleon team regarding any problems.
\b0\fs22 \cf0 \
\
This version of the installer has been started from scratch using Apple's PackageMaker with the aim of building a Chameleon installer using most of the original Chameleon scripts, albeit chopped in to separate scripts with comments, notes and debug echo's to aid my own style.
\b Please note that this is a work-in-progress release.
\b0 \
\
The package has been tested on various setups by me but now needs thorough testing. I therefore ask kindly for users to test this installer in the aim of giving feedback to any problems etc.\
\
Installation to a software RAID is not yet implemented and the installation process will not write the Chameleon files if an existence of GRUB/Linux loader is found in the MBR.\
\
There are numerous tweaks, additions and changes that I have in mind for future releases and I will look at addressing them in time.\
\
\b Note: Even though I've posted this package, I still believe it's best to learn and understand the install process so you can use the Terminal to install the Chameleon files manually. That way you will be able to change or update your system safely with the knowledge of what's happening.\
\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\b0\fs20 \cf0 The Chameleon bootloaer sources can be obtained from:\
\cf4 http://forge.voodooprojects.org/p/chameleon/source/tree/HEAD/trunk\cf0 \
and contain the APPLE_LICENSE, GPL_V2_LICENSE and MEMTEST86_LICENSE\
\
The source for this package installer can be obtained from:\
\cf5 http://forge.voodooprojects.org/p/chameleonApplications/source/tree/HEAD/branches/blackosx\
\cf0 \
\b If I have displayed this information incorrectly then please let me know and I'll amend it for the next release.}
branches/blackosx/trunk/PackageBuilder/Main_Package_Elements/Resources/English.lproj/License.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;}
{\colortbl;\red255\green255\blue255;}
\vieww22060\viewh18360\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \
\fs26 Version 2.0 - August 6, 2003\
\
\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\
\
1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\
\
1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\
\
1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\
\
1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\
\
1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\
\
1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\
\
1.6 "Modifications" mean any addition to, deletion from, and/or change\
to, the substance and/or structure of the Original Code, any previous\
Modifications, the combination of Original Code and any previous\
Modifications, and/or any respective portions thereof. When code is\
released as a series of files, a Modification is: (a) any addition to\
or deletion from the contents of a file containing Covered Code;\
and/or (b) any new file or other representation of computer program\
statements that contains any part of Covered Code.\
\
1.7 "Original Code" means (a) the Source Code of a program or other\
work as originally made available by Apple under this License,\
including the Source Code of any updates or upgrades to such programs\
or works made available by Apple under this License, and that has been\
expressly identified by Apple as such in the header file(s) of such\
work; and (b) the object code compiled from such Source Code and\
originally made available by Apple under this License.\
\
1.8 "Source Code" means the human readable form of a program or other\
work that is suitable for making modifications to it, including all\
modules it contains, plus any associated interface definition files,\
scripts used to control compilation and installation of an executable\
(object code).\
\
1.9 "You" or "Your" means an individual or a legal entity exercising\
rights under this License. For legal entities, "You" or "Your"\
includes any entity which controls, is controlled by, or is under\
common control with, You, where "control" means (a) the power, direct\
or indirect, to cause the direction or management of such entity,\
whether by contract or otherwise, or (b) ownership of fifty percent\
(50%) or more of the outstanding shares or beneficial ownership of\
such entity.\
\
2. Permitted Uses; Conditions & Restrictions. Subject to the terms\
and conditions of this License, Apple hereby grants You, effective on\
the date You accept this License and download the Original Code, a\
world-wide, royalty-free, non-exclusive license, to the extent of\
Apple's Applicable Patent Rights and copyrights covering the Original\
Code, to do the following:\
\
2.1 Unmodified Code. You may use, reproduce, display, perform,\
internally distribute within Your organization, and Externally Deploy\
verbatim, unmodified copies of the Original Code, for commercial or\
non-commercial purposes, provided that in each instance:\
\
(a) You must retain and reproduce in all copies of Original Code the\
copyright and other proprietary notices and disclaimers of Apple as\
they appear in the Original Code, and keep intact all notices in the\
Original Code that refer to this License; and\
\
(b) You must include a copy of this License with every copy of Source\
Code of Covered Code and documentation You distribute or Externally\
Deploy, and You may not offer or impose any terms on such Source Code\
that alter or restrict this License or the recipients' rights\
hereunder, except as permitted under Section 6.\
\
2.2 Modified Code. You may modify Covered Code and use, reproduce,\
display, perform, internally distribute within Your organization, and\
Externally Deploy Your Modifications and Covered Code, for commercial\
or non-commercial purposes, provided that in each instance You also\
meet all of these conditions:\
\
(a) You must satisfy all the conditions of Section 2.1 with respect to\
the Source Code of the Covered Code;\
\
(b) You must duplicate, to the extent it does not already exist, the\
notice in Exhibit A in each file of the Source Code of all Your\
Modifications, and cause the modified files to carry prominent notices\
stating that You changed the files and the date of any change; and\
\
(c) If You Externally Deploy Your Modifications, You must make\
Source Code of all Your Externally Deployed Modifications either\
available to those to whom You have Externally Deployed Your\
Modifications, or publicly available. Source Code of Your Externally\
Deployed Modifications must be released under the terms set forth in\
this License, including the license grants set forth in Section 3\
below, for as long as you Externally Deploy the Covered Code or twelve\
(12) months from the date of initial External Deployment, whichever is\
longer. You should preferably distribute the Source Code of Your\
Externally Deployed Modifications electronically (e.g. download from a\
web site).\
\
2.3 Distribution of Executable Versions. In addition, if You\
Externally Deploy Covered Code (Original Code and/or Modifications) in\
object code, executable form only, You must include a prominent\
notice, in the code itself as well as in related documentation,\
stating that Source Code of the Covered Code is available under the\
terms of this License with information on how and where to obtain such\
Source Code.\
\
2.4 Third Party Rights. You expressly acknowledge and agree that\
although Apple and each Contributor grants the licenses to their\
respective portions of the Covered Code set forth herein, no\
assurances are provided by Apple or any Contributor that the Covered\
Code does not infringe the patent or other intellectual property\
rights of any other entity. Apple and each Contributor disclaim any\
liability to You for claims brought by any other entity based on\
infringement of intellectual property rights or otherwise. As a\
condition to exercising the rights and licenses granted hereunder, You\
hereby assume sole responsibility to secure any other intellectual\
property rights needed, if any. For example, if a third party patent\
license is required to allow You to distribute the Covered Code, it is\
Your responsibility to acquire that license before distributing the\
Covered Code.\
\
3. Your Grants. In consideration of, and as a condition to, the\
licenses granted to You under this License, You hereby grant to any\
person or entity receiving or distributing Covered Code under this\
License a non-exclusive, royalty-free, perpetual, irrevocable license,\
under Your Applicable Patent Rights and other intellectual property\
rights (other than patent) owned or controlled by You, to use,\
reproduce, display, perform, modify, sublicense, distribute and\
Externally Deploy Your Modifications of the same scope and extent as\
Apple's licenses under Sections 2.1 and 2.2 above.\
\
4. Larger Works. You may create a Larger Work by combining Covered\
Code with other code not governed by the terms of this License and\
distribute the Larger Work as a single product. In each such instance,\
You must make sure the requirements of this License are fulfilled for\
the Covered Code or any portion thereof.\
\
5. Limitations on Patent License. Except as expressly stated in\
Section 2, no other patent rights, express or implied, are granted by\
Apple herein. Modifications and/or Larger Works may require additional\
patent licenses from Apple which Apple may grant in its sole\
discretion.\
\
6. Additional Terms. You may choose to offer, and to charge a fee for,\
warranty, support, indemnity or liability obligations and/or other\
rights consistent with the scope of the license granted herein\
("Additional Terms") to one or more recipients of Covered Code.\
However, You may do so only on Your own behalf and as Your sole\
responsibility, and not on behalf of Apple or any Contributor. You\
must obtain the recipient's agreement that any such Additional Terms\
are offered by You alone, and You hereby agree to indemnify, defend\
and hold Apple and every Contributor harmless for any liability\
incurred by or claims asserted against Apple or such Contributor by\
reason of any such Additional Terms.\
\
7. Versions of the License. Apple may publish revised and/or new\
versions of this License from time to time. Each version will be given\
a distinguishing version number. Once Original Code has been published\
under a particular version of this License, You may continue to use it\
under the terms of that version. You may also choose to use such\
Original Code under the terms of any subsequent version of this\
License published by Apple. No one other than Apple has the right to\
modify the terms applicable to Covered Code created under this\
License.\
\
8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\
part pre-release, untested, or not fully tested works. The Covered\
Code may contain errors that could cause failures or loss of data, and\
may be incomplete or contain inaccuracies. You expressly acknowledge\
and agree that use of the Covered Code, or any portion thereof, is at\
Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\
WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\
APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\
PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\
ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\
NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\
MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\
PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\
PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\
INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\
FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\
THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\
ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\
ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\
AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\
You acknowledge that the Covered Code is not intended for use in the\
operation of nuclear facilities, aircraft navigation, communication\
systems, or air traffic control machines in which case the failure of\
the Covered Code could lead to death, personal injury, or severe\
physical or environmental damage.\
\
9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\
EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\
TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\
ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\
TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\
APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\
DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\
REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\
INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\
TO YOU. In no event shall Apple's total liability to You for all\
damages (other than as may be required by applicable law) under this\
License exceed the amount of fifty dollars ($50.00).\
\
10. Trademarks. This License does not grant any rights to use the\
trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\
"QuickTime", "QuickTime Streaming Server" or any other trademarks,\
service marks, logos or trade names belonging to Apple (collectively\
"Apple Marks") or to any trademark, service mark, logo or trade name\
belonging to any Contributor. You agree not to use any Apple Marks in\
or as part of the name of products derived from the Original Code or\
to endorse or promote products derived from the Original Code other\
than as expressly permitted by and in strict compliance at all times\
with Apple's third party trademark usage guidelines which are posted\
at http://www.apple.com/legal/guidelinesfor3rdparties.html.\
\
11. Ownership. Subject to the licenses granted under this License,\
each Contributor retains all rights, title and interest in and to any\
Modifications made by such Contributor. Apple retains all rights,\
title and interest in and to the Original Code and any Modifications\
made by or on behalf of Apple ("Apple Modifications"), and such Apple\
Modifications will not be automatically subject to this License. Apple\
may, at its sole discretion, choose to license such Apple\
Modifications under this License, or on different terms from those\
contained in this License or may choose not to license them at all.\
\
12. Termination.\
\
12.1 Termination. This License and the rights granted hereunder will\
terminate:\
\
(a) automatically without notice from Apple if You fail to comply with\
any term(s) of this License and fail to cure such breach within 30\
days of becoming aware of such breach;\
\
(b) immediately in the event of the circumstances described in Section\
13.5(b); or\
\
(c) automatically without notice from Apple if You, at any time during\
the term of this License, commence an action for patent infringement\
against Apple; provided that Apple did not first commence\
an action for patent infringement against You in that instance.\
\
12.2 Effect of Termination. Upon termination, You agree to immediately\
stop any further use, reproduction, modification, sublicensing and\
distribution of the Covered Code. All sublicenses to the Covered Code\
which have been properly granted prior to termination shall survive\
any termination of this License. Provisions which, by their nature,\
should remain in effect beyond the termination of this License shall\
survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\
12.2 and 13. No party will be liable to any other for compensation,\
indemnity or damages of any sort solely as a result of terminating\
this License in accordance with its terms, and termination of this\
License will be without prejudice to any other right or remedy of\
any party.\
\
13. Miscellaneous.\
\
13.1 Government End Users. The Covered Code is a "commercial item" as\
defined in FAR 2.101. Government software and technical data rights in\
the Covered Code include only those rights customarily provided to the\
public as defined in this License. This customary commercial license\
in technical data and software is provided in accordance with FAR\
12.211 (Technical Data) and 12.212 (Computer Software) and, for\
Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\
Commercial Items) and 227.7202-3 (Rights in Commercial Computer\
Software or Computer Software Documentation). Accordingly, all U.S.\
Government End Users acquire Covered Code with only those rights set\
forth herein.\
\
13.2 Relationship of Parties. This License will not be construed as\
creating an agency, partnership, joint venture or any other form of\
legal association between or among You, Apple or any Contributor, and\
You will not represent to the contrary, whether expressly, by\
implication, appearance or otherwise.\
\
13.3 Independent Development. Nothing in this License will impair\
Apple's right to acquire, license, develop, have others develop for\
it, market and/or distribute technology or products that perform the\
same or similar functions as, or otherwise compete with,\
Modifications, Larger Works, technology or products that You may\
develop, produce, market or distribute.\
\
13.4 Waiver; Construction. Failure by Apple or any Contributor to\
enforce any provision of this License will not be deemed a waiver of\
future enforcement of that or any other provision. Any law or\
regulation which provides that the language of a contract shall be\
construed against the drafter will not apply to this License.\
\
13.5 Severability. (a) If for any reason a court of competent\
jurisdiction finds any provision of this License, or portion thereof,\
to be unenforceable, that provision of the License will be enforced to\
the maximum extent permissible so as to effect the economic benefits\
and intent of the parties, and the remainder of this License will\
continue in full force and effect. (b) Notwithstanding the foregoing,\
if applicable law prohibits or restricts You from fully and/or\
specifically complying with Sections 2 and/or 3 or prevents the\
enforceability of either of those Sections, this License will\
immediately terminate and You must immediately discontinue any use of\
the Covered Code and destroy all copies of it that are in your\
possession or control.\
\
13.6 Dispute Resolution. Any litigation or other dispute resolution\
between You and Apple relating to this License shall take place in the\
Northern District of California, and You and Apple hereby consent to\
the personal jurisdiction of, and venue in, the state and federal\
courts within that District with respect to this License. The\
application of the United Nations Convention on Contracts for the\
International Sale of Goods is expressly excluded.\
\
13.7 Entire Agreement; Governing Law. This License constitutes the\
entire agreement between the parties with respect to the subject\
matter hereof. This License shall be governed by the laws of the\
United States and the State of California, except that body of\
California law concerning conflicts of law.\
\
Where You are located in the province of Quebec, Canada, the following\
clause applies: The parties hereby confirm that they have requested\
that this License and all related documents be drafted in English. Les\
parties ont exige que le present contrat et tous les documents\
connexes soient rediges en anglais.\
\
EXHIBIT A.\
\
"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\
Reserved.\
\
This file contains Original Code and/or Modifications of Original Code\
as defined in and that are subject to the Apple Public Source License\
Version 2.0 (the 'License'). You may not use this file except in\
compliance with the License. Please obtain a copy of the License at\
http://www.opensource.apple.com/apsl/ and read it before using this\
file.\
\
The Original Code and all software distributed under the License are\
distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\
EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\
INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\
FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\
Please see the License for the specific language governing rights and\
limitations under the License." }

Archive Download the corresponding diff file

Revision: 244