Commit | Line | Data |
---|---|---|
805e021f CE |
1 | #!/bin/bash |
2 | # Portions Copyright (c) 2003, 2006 Apple Computer, Inc. All rights reserved. | |
3 | echo '**BUILDPKG**' "$@" | |
4 | ||
5 | usage() { | |
6 | exec >&2 | |
7 | ||
8 | echo 'Usage: pkgbuild.sh [-x] [--app-key <appkey>] [--inst-key <instkey>]' | |
9 | echo ' [--pass N] [--csdb <CellServDB>] <binary-dir>' | |
10 | echo | |
11 | echo '--app-key and --inst-key are for signing. -x prints all comamnds as ' | |
12 | echo 'they are run.' | |
13 | echo | |
14 | echo 'By default, all passes are run. Available passes:' | |
15 | echo ' --pass 1: prepare pkgroot' | |
16 | echo ' --pass 2: create packages/installer from pkgroot' | |
17 | echo 'If you want to alter the pkgroot, run pass 1, then alter what you' | |
18 | echo 'want, and then run pass 2 to create the resulting packages.' | |
19 | echo 'The --pass argument may be given multiple times.' | |
20 | exit 1 | |
21 | } | |
22 | ||
23 | if [ x"$#" = x0 ]; then | |
24 | usage | |
25 | fi | |
26 | ||
27 | anypass=0 | |
28 | PASS1= | |
29 | PASS2= | |
30 | ||
31 | APP_KEY= | |
32 | INST_KEY= | |
33 | DEST_DIR= | |
34 | CSDB= | |
35 | ||
36 | while [ x"$#" != x0 ] ; do | |
37 | key="$1" | |
38 | shift | |
39 | ||
40 | case "$key" in | |
41 | --app-key) | |
42 | APP_KEY="$1" | |
43 | shift | |
44 | ;; | |
45 | --inst-key) | |
46 | INST_KEY="$1" | |
47 | shift | |
48 | ;; | |
49 | --csdb) | |
50 | CSDB="$1" | |
51 | shift | |
52 | ;; | |
53 | --pass) | |
54 | anypass=1 | |
55 | pass_arg="$1" | |
56 | shift | |
57 | case "$pass_arg" in | |
58 | 1) | |
59 | PASS1=1 | |
60 | ;; | |
61 | 2) | |
62 | PASS2=1 | |
63 | ;; | |
64 | *) | |
65 | echo "Unknown pass $pass_arg" >&2 | |
66 | exit 1 | |
67 | ;; | |
68 | esac | |
69 | ;; | |
70 | -x) | |
71 | DO_X=1 | |
72 | ;; | |
73 | *) | |
74 | if [ x"$DEST_DIR" = x ] ; then | |
75 | DEST_DIR="$key" | |
76 | else | |
77 | echo "Error: Unknown arg $key" >&2 | |
78 | usage | |
79 | fi | |
80 | ;; | |
81 | esac | |
82 | done | |
83 | ||
84 | if [ x"$anypass" = x0 ] ; then | |
85 | PASS1=1 | |
86 | PASS2=1 | |
87 | fi | |
88 | ||
89 | if [ x"$DEST_DIR" = x ] ; then | |
90 | echo "Error: binary 'dest' dir not given" | |
91 | usage | |
92 | fi | |
93 | ||
94 | set -e | |
95 | ||
96 | if [ x"$DO_X" = x1 ] ; then | |
97 | set -x | |
98 | fi | |
99 | ||
100 | BINDEST=`cd "$DEST_DIR" && pwd` | |
101 | CURDIR=`pwd` | |
102 | RESSRC=`dirname "$0"` | |
103 | RESSRC=`cd "$RESSRC" && pwd` | |
104 | majorvers=`uname -r | cut -d. -f1` | |
105 | ||
106 | if [ x"$majorvers" = x10 ]; then | |
107 | RELNAME="Snowleopard" | |
108 | THISREL=6 | |
109 | ||
110 | elif [ x"$majorvers" = x11 ]; then | |
111 | RELNAME="Lion" | |
112 | THISREL=7 | |
113 | ||
114 | elif [ x"$majorvers" = x12 ]; then | |
115 | RELNAME="MountainLion" | |
116 | THISREL=8 | |
117 | ||
118 | elif [ x"$majorvers" = x13 ]; then | |
119 | RELNAME="Mavericks" | |
120 | THISREL=9 | |
121 | ||
122 | elif [ x"$majorvers" = x14 ]; then | |
123 | RELNAME="Yosemite" | |
124 | THISREL=10 | |
125 | ||
126 | elif [ x"$majorvers" = x15 ]; then | |
127 | RELNAME="ElCapitan" | |
128 | THISREL=11 | |
129 | ||
130 | elif [ x"$majorvers" = x16 ]; then | |
131 | RELNAME="Sierra" | |
132 | THISREL=12 | |
133 | ||
134 | elif [ x"$majorvers" = x17 ]; then | |
135 | RELNAME="HighSierra" | |
136 | THISREL=13 | |
137 | ||
138 | elif [ x"$majorvers" = x18 ]; then | |
139 | RELNAME="Mojave" | |
140 | THISREL=14 | |
141 | ||
142 | elif [ x"$majorvers" = x ] ; then | |
143 | echo "Error running uname" >&2 | |
144 | exit 1 | |
145 | ||
146 | else | |
147 | echo "Unknown major version $majorvers" >&2 | |
148 | exit 1 | |
149 | fi | |
150 | ||
151 | SEP=: | |
152 | ||
153 | PKGROOT="$CURDIR"/pkgroot | |
154 | PKGRES="$CURDIR"/pkgres | |
155 | DPKGROOT="$CURDIR"/dpkgroot | |
156 | PLUGINS="$CURDIR"/plugins | |
157 | if test -e /usr/bin/pkgbuild; then | |
158 | : | |
159 | else | |
160 | echo pkgbuild not found >&2 | |
161 | exit 1 | |
162 | fi | |
163 | if test -e /usr/bin/productbuild; then | |
164 | : | |
165 | else | |
166 | echo productbuild not found >&2 | |
167 | exit 1 | |
168 | fi | |
169 | ||
170 | if [ x"$PASS1" = x1 ]; then | |
171 | if [ -x /usr/bin/curl ] && [ x"$CSDB" = x ]; then | |
172 | echo "No CellServDB provided; downloading one from central.org" | |
173 | /usr/bin/curl -f -O https://www.central.org/dl/cellservdb/CellServDB | |
174 | if [ -f "$CURDIR"/CellServDB ] ; then | |
175 | CSDB="$CURDIR"/CellServDB | |
176 | fi | |
177 | fi | |
178 | ||
179 | if [ x"$CSDB" = x ]; then | |
180 | echo "A CellServDB file must be provided with --csdb" >&2 | |
181 | die=1 | |
182 | else | |
183 | # Turn CSDB into an absolute path | |
184 | case "$CSDB" in | |
185 | /*) | |
186 | ;; | |
187 | *) | |
188 | CSDB="$CURDIR/$CSDB" | |
189 | ;; | |
190 | esac | |
191 | ||
192 | if grep -q 'GCO Public CellServDB' "$CSDB" ; then | |
193 | touch "$CSDB" | |
194 | else | |
195 | echo "A proper CellServDB file must be provided" >&2 | |
196 | die=1 | |
197 | fi | |
198 | fi | |
199 | ||
200 | for f in ReadMe.rtf."$majorvers" \ | |
201 | License.rtf \ | |
202 | CellServDB.list \ | |
203 | OpenAFS.info \ | |
204 | OpenAFS.post_install \ | |
205 | OpenAFS.pre_upgrade \ | |
206 | csrvdbmerge.pl \ | |
207 | 2.0.txt | |
208 | do | |
209 | if [ ! -f "$RESSRC/$f" ]; then | |
210 | echo "file missing: $RESSRC/$f" >&2 | |
211 | die=1 | |
212 | fi | |
213 | done | |
214 | if [ x"$die" = x1 ]; then | |
215 | echo "Correct above errors; then retry" >&2 | |
216 | exit 1 | |
217 | fi | |
218 | ||
219 | for f in "$BINDEST"/bin/translate_et \ | |
220 | "$BINDEST/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs" | |
221 | do | |
222 | if [ ! -f "$f" ] ; then | |
223 | echo "dest file missing: $f" >&2 | |
224 | die=1 | |
225 | fi | |
226 | done | |
227 | if [ x"$die" = x1 ]; then | |
228 | echo $BINDEST " is not a valid binary dir. it should be the result of" >&2 | |
229 | echo "make dest" >&2 | |
230 | exit 1 | |
231 | fi | |
232 | ||
233 | rm -rf "$PKGROOT" "$PLUGINS" | |
234 | mkdir "$PKGROOT" | |
235 | mkdir "$PLUGINS" | |
236 | ||
237 | mkdir -p "$PKGROOT"/Library | |
238 | mkdir -p "$PKGROOT"/Library/PreferencePanes | |
239 | mkdir -p "$PKGROOT"/Library/Security/SecurityAgentPlugins | |
240 | ||
241 | chown -R root${SEP}admin "$PKGROOT" | |
242 | chmod -R 755 "$PKGROOT" | |
243 | ||
244 | (cd "$BINDEST"/tools && pax -rw OpenAFS.prefPane "$PKGROOT"/Library/PreferencePanes/) | |
245 | (cd "$BINDEST"/tools && pax -rw aklog.bundle \ | |
246 | "$PKGROOT"/Library/Security/SecurityAgentPlugins/) | |
247 | ||
248 | mkdir -p "$PKGROOT"/Library/OpenAFS/Tools | |
249 | (cd "$BINDEST" && pax -rw * "$PKGROOT"/Library/OpenAFS/Tools) | |
250 | ||
251 | cd "$RESSRC" | |
252 | mv "$PKGROOT"/Library/OpenAFS/Tools/installer/* "$PLUGINS"/ | |
253 | ||
254 | mkdir -p "$PKGROOT"/Library/LaunchDaemons | |
255 | chmod -R o-w "$PKGROOT"/Library | |
256 | chmod -R g-w "$PKGROOT"/Library | |
257 | ||
258 | cp openafs.launchd.plist "$PKGROOT"/Library/LaunchDaemons/org.openafs.filesystems.afs.plist | |
259 | chmod 644 "$PKGROOT"/Library/LaunchDaemons/org.openafs.filesystems.afs.plist | |
260 | ||
261 | chown root${SEP}admin "$PKGROOT"/Library | |
262 | chown -R root${SEP}wheel "$PKGROOT"/Library/LaunchDaemons | |
263 | chown -R root${SEP}wheel "$PKGROOT"/Library/OpenAFS/Tools | |
264 | chmod -R og-w "$PKGROOT"/Library/OpenAFS/Tools | |
265 | ||
266 | mkdir -p "$PKGROOT"/private/var/db/openafs/cache | |
267 | mkdir -p "$PKGROOT"/private/var/db/openafs/etc/config | |
268 | ||
269 | cp openafs.launchdaemon "$PKGROOT"/private/var/db/openafs/etc/launchafs.sh | |
270 | chmod 755 "$PKGROOT"/private/var/db/openafs/etc/launchafs.sh | |
271 | ||
272 | cp "$CSDB" "$PKGROOT"/private/var/db/openafs/etc/CellServDB.master | |
273 | echo grand.central.org > "$PKGROOT"/private/var/db/openafs/etc/ThisCell.sample | |
274 | echo /afs:/var/db/openafs/cache:100000 > \ | |
275 | "$PKGROOT"/private/var/db/openafs/etc/cacheinfo.sample | |
276 | ||
277 | cp -RP "$PKGROOT"/Library/OpenAFS/Tools/etc/afssettings \ | |
278 | "$PKGROOT"/private/var/db/openafs/etc/config | |
279 | cp settings.plist "$PKGROOT"/private/var/db/openafs/etc/config/settings.plist.orig | |
280 | cp afs.conf "$PKGROOT"/private/var/db/openafs/etc/config/afs.conf.sample | |
281 | cp krb5-weak.conf "$PKGROOT"/private/var/db/openafs/etc/krb5-weak.conf | |
282 | ||
283 | cp decode-panic "$PKGROOT"/Library/OpenAFS/Tools/tools | |
284 | chmod a+x "$PKGROOT"/Library/OpenAFS/Tools/tools/decode-panic | |
285 | ||
286 | rm -rf "$DPKGROOT" | |
287 | mkdir "$DPKGROOT" | |
288 | mkdir -p "$DPKGROOT"/Library/OpenAFS/Debug | |
289 | ||
290 | mv "$PKGROOT"/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext.dSYM \ | |
291 | "$DPKGROOT"/Library/OpenAFS/Debug/ | |
292 | cp -RP "$PKGROOT"/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext \ | |
293 | "$DPKGROOT"/Library/OpenAFS/Debug/ | |
294 | chown -R root${SEP}wheel "$DPKGROOT"/Library/OpenAFS/Debug | |
295 | chmod -R og-w "$DPKGROOT"/Library/OpenAFS/Debug | |
296 | ||
297 | strip -X -S \ | |
298 | "$PKGROOT"/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs | |
299 | ||
300 | mkdir -p "$PKGROOT"/private/var/db/openafs | |
301 | ||
302 | cp -RP "$PKGROOT"/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext \ | |
303 | "$PKGROOT"/Library/OpenAFS/Tools/root.client/usr/vice/etc/C \ | |
304 | "$PKGROOT"/private/var/db/openafs/etc | |
305 | ||
306 | chown -R root${SEP}wheel "$PKGROOT"/private | |
307 | chmod -R og-w "$PKGROOT"/private | |
308 | ||
309 | chown -R root${SEP}wheel "$PKGROOT"/private | |
310 | chmod -R og-w "$PKGROOT"/private | |
311 | chmod og-rx "$PKGROOT"/private/var/db/openafs/cache | |
312 | ||
313 | if [ x"$APP_KEY" != x ] ; then | |
314 | # Sign each 'thing' that we have (commands, kexts, etc) | |
315 | for obj in "$DPKGROOT"/Library/OpenAFS/Debug/afs.kext \ | |
316 | "$PKGROOT"/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext \ | |
317 | "$PKGROOT"/private/var/db/openafs/etc/afs.kext \ | |
318 | "$PKGROOT"/Library/PreferencePanes/OpenAFS.prefPane/Contents/Resources/AFSBackgrounder.app \ | |
319 | "$PKGROOT"/Library/PreferencePanes/OpenAFS.prefPane \ | |
320 | "$PKGROOT"/Library/Security/SecurityAgentPlugins/aklog.bundle \ | |
321 | "$PKGROOT"/Library/OpenAFS/Tools/tools/growlagent-openafs.app \ | |
322 | "$PKGROOT"/Library/OpenAFS/Tools/tools/aklog.bundle \ | |
323 | "$PLUGINS"/afscell.bundle | |
324 | do | |
325 | codesign --verbose --force --timestamp --sign "$APP_KEY" "$obj" | |
326 | done | |
327 | ||
328 | # Check if our signatures for our kexts are valid. 'kextutil' will exit | |
329 | # with an error and print out a message if something is wrong with the | |
330 | # signature. Note that a code signing cert must have the | |
331 | # 1.2.840.113635.100.6.1.18 extension present to be used for kexts | |
332 | # (most code signing certs cannot be used for kexts). | |
333 | for kext in "$DPKGROOT"/Library/OpenAFS/Debug/afs.kext \ | |
334 | "$PKGROOT"/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext \ | |
335 | "$PKGROOT"/private/var/db/openafs/etc/afs.kext | |
336 | do | |
337 | kextutil -no-load -print-diagnostics "$kext" | |
338 | done | |
339 | fi | |
340 | ||
341 | if [ $majorvers -ge 15 ]; then | |
342 | # El Capitan and further prevent us from touching /usr/bin directly | |
343 | PREFIX=/opt | |
344 | USRBIN=/opt/openafs/bin | |
345 | USRBIN2TOOLS=../../../Library/OpenAFS/Tools | |
346 | ||
347 | USRSBIN=/opt/openafs/sbin | |
348 | USRSBIN2TOOLS=../../../Library/OpenAFS/Tools | |
349 | ||
350 | MANDIR=/opt/openafs/share/man | |
351 | MANDIR2TOOLS=../../../../Library/OpenAFS/Tools | |
352 | ||
353 | # Add our bin, sbin, and man directories to the default search path | |
354 | mkdir -p "$PKGROOT"/etc/paths.d "$PKGROOT"/etc/manpaths.d | |
355 | echo "$USRBIN" > "$PKGROOT"/etc/paths.d/40-openafs | |
356 | echo "$USRSBIN" >> "$PKGROOT"/etc/paths.d/40-openafs | |
357 | echo "$MANDIR" > "$PKGROOT"/etc/manpaths.d/40-openafs | |
358 | else | |
359 | PREFIX=/usr | |
360 | USRBIN=/usr/bin | |
361 | USRBIN2TOOLS=../../Library/OpenAFS/Tools | |
362 | ||
363 | USRSBIN=/usr/sbin | |
364 | USRSBIN2TOOLS="$USRBIN2TOOLS" | |
365 | ||
366 | MANDIR=/usr/share/man | |
367 | MANDIR2TOOLS=../../../Library/OpenAFS/Tools | |
368 | fi | |
369 | ||
370 | mkdir -p "$PKGROOT$USRBIN" \ | |
371 | "$PKGROOT$USRSBIN" \ | |
372 | "$PKGROOT$MANDIR"/man1 \ | |
373 | "$PKGROOT$MANDIR"/man5 \ | |
374 | "$PKGROOT$MANDIR"/man8 | |
375 | ||
376 | BINLIST="fs klog klog.krb pagsh pagsh.krb pts sys tokens tokens.krb unlog unlog.krb aklog" | |
377 | ETCLIST="vos" | |
378 | ||
379 | if [ x"$DO_X" = x1 ] ; then | |
380 | # Don't print out every single 'ln -s'... that's kinda useless | |
381 | : 'Symlinking commands and manpages into place...' | |
382 | set +x | |
383 | fi | |
384 | ||
385 | for f in $BINLIST; do | |
386 | ln -s "$USRBIN2TOOLS"/bin/"$f" "$PKGROOT$USRBIN/$f" | |
387 | done | |
388 | for f in $ETCLIST; do | |
389 | ln -s "$USRSBIN2TOOLS"/etc/"$f" "$PKGROOT$USRSBIN/$f" | |
390 | done | |
391 | ||
392 | for section in man1 man5 man8 ; do | |
393 | for f in $(ls $PKGROOT/Library/OpenAFS/Tools/man/$section); do | |
394 | ||
395 | if [ -L "$PKGROOT/Library/OpenAFS/Tools/man/$section/$f" ] ; then | |
396 | # If this manpage is a symlink, just change where it's pointing, | |
397 | # and rename the link; don't actually 'gzip' it. | |
398 | link=$(readlink "$PKGROOT/Library/OpenAFS/Tools/man/$section/$f") | |
399 | rm -f "$PKGROOT/Library/OpenAFS/Tools/man/$section/$f" | |
400 | ln -s "$link".gz "$PKGROOT/Library/OpenAFS/Tools/man/$section/$f".gz | |
401 | ||
402 | else | |
403 | gzip -9 "$PKGROOT/Library/OpenAFS/Tools/man/$section/$f" | |
404 | fi | |
405 | ln -s ../"$MANDIR2TOOLS"/man/"$section/$f".gz \ | |
406 | "$PKGROOT$MANDIR/$section/$f".gz | |
407 | done | |
408 | done | |
409 | ||
410 | if [ x"$DO_X" = x1 ] ; then | |
411 | set -x | |
412 | fi | |
413 | ||
414 | ln -s "$USRBIN2TOOLS"/bin/kpasswd "$PKGROOT$USRBIN"/kpasswd.afs | |
415 | ||
416 | ln -s "$USRSBIN2TOOLS"/root.client/usr/vice/etc/afsd "$PKGROOT$USRSBIN"/afsd | |
417 | ||
418 | chown -R root${SEP}wheel "$PKGROOT$PREFIX" | |
419 | chmod -R og-w "$PKGROOT$PREFIX" | |
420 | fi | |
421 | ||
422 | if [ x"$PASS2" = x1 ]; then | |
423 | rm -rf "$PKGRES" | |
424 | mkdir "$PKGRES" | |
425 | cd "$RESSRC" | |
426 | ||
427 | rm -rf "$CURDIR"/OpenAFS-debug-extension.pkg | |
428 | /usr/bin/pkgbuild --root "$DPKGROOT" --id org.openafs.OpenAFS-debug.pkg \ | |
429 | --version '@PACKAGE_VERSION@' \ | |
430 | "$CURDIR"/OpenAFS-debug-extension.pkg | |
431 | ||
432 | cd "$RESSRC" | |
433 | cp OpenAFS.post_install "$PKGRES"/postinstall | |
434 | cp OpenAFS.pre_upgrade "$PKGRES"/preupgrade | |
435 | cp OpenAFS.post_install "$PKGRES"/postupgrade | |
436 | cp csrvdbmerge.pl "$PKGRES" | |
437 | ||
438 | chmod a+x "$PKGRES"/csrvdbmerge.pl \ | |
439 | "$PKGRES"/postinstall \ | |
440 | "$PKGRES"/postupgrade \ | |
441 | "$PKGRES"/preupgrade | |
442 | ||
443 | cp CellServDB.list "$PKGRES" | |
444 | chown -R root${SEP}wheel "$PKGRES" | |
445 | ||
446 | rm -rf "$CURDIR"/OpenAFS-dist.pkg | |
447 | /usr/bin/pkgbuild --root "$PKGROOT" --id org.openafs.OpenAFS.pkg \ | |
448 | --version '@PACKAGE_VERSION@' \ | |
449 | --scripts "$PKGRES" "$CURDIR"/OpenAFS-dist.pkg | |
450 | ||
451 | rm -rf "$PKGRES" | |
452 | mkdir "$PKGRES" | |
453 | cp background.jpg "$PKGRES"/background.jpg | |
454 | cp License.rtf "$PKGRES" | |
455 | cp ReadMe.rtf."$majorvers" "$PKGRES"/ReadMe.rtf | |
456 | chown -R root${SEP}wheel "$PKGRES" | |
457 | ||
458 | if [ $majorvers -ge 15 ] ; then | |
459 | # For El Capitan and further, we have some extra information to tell | |
460 | # the user at the end of the installation process. | |
461 | cp conclusion.txt "$PKGRES"/conclusion.txt | |
462 | PRES_EXTRA="<conclusion file=\"conclusion.txt\"/>" | |
463 | fi | |
464 | ||
465 | # generate Distribution.xml from Distribution.xml.in -- nonstandard substs | |
466 | sed -e "s/%%OSX_MAJOR_CUR%%/$THISREL/g" \ | |
467 | -e "s/%%OSX_MAJOR_NEXT%%/$(( $THISREL + 1 ))/g" \ | |
468 | -e "s,%%PRES_EXTRA%%,$PRES_EXTRA,g" \ | |
469 | -e "s/%%OPENAFS_VERSION%%/@PACKAGE_VERSION@/g" \ | |
470 | < Distribution.xml.in > Distribution.xml | |
471 | ||
472 | rm -rf "$CURDIR/prod" | |
473 | mkdir "$CURDIR/prod" | |
474 | mv "$CURDIR"/OpenAFS-dist.pkg "$CURDIR"/OpenAFS-debug-extension.pkg "$CURDIR"/prod | |
475 | /usr/bin/productbuild --distribution Distribution.xml --resources "$PKGRES" \ | |
476 | --plugins "$PLUGINS" --package-path "$CURDIR"/prod "$CURDIR"/OpenAFS.pkg | |
477 | ||
478 | if [ x"$INST_KEY" != x ] ; then | |
479 | mv "$CURDIR"/OpenAFS.pkg "$CURDIR"/OpenAFS-unsigned.pkg | |
480 | productsign --timestamp --sign "$INST_KEY" "$CURDIR"/OpenAFS-unsigned.pkg \ | |
481 | "$CURDIR"/OpenAFS.pkg | |
482 | rm -f "$CURDIR"/OpenAFS-unsigned.pkg | |
483 | fi | |
484 | ||
485 | rm -rf "$CURDIR/dmg" | |
486 | rm -f "$CURDIR/TMP.dmg" | |
487 | rm -rf "$CURDIR/OpenAFS-@PACKAGE_VERSION@-$RELNAME.dmg" | |
488 | ||
489 | mkdir "$CURDIR"/dmg | |
490 | mv "$CURDIR"/OpenAFS.pkg "$CURDIR"/dmg | |
491 | cp "$RESSRC"/Uninstall.14.15 "$CURDIR"/dmg/Uninstall.command | |
492 | cp "$RESSRC"/DS_Store "$CURDIR"/dmg/.DS_Store | |
493 | mkdir "$CURDIR"/dmg/.background | |
494 | cp "$RESSRC"/afslogo.jpg "$CURDIR"/dmg/.background | |
495 | ||
496 | if [ x"$APP_KEY" != x ] ; then | |
497 | codesign --verbose --force --timestamp --sign "$APP_KEY" "$CURDIR"/dmg/Uninstall.command | |
498 | fi | |
499 | ||
500 | hdiutil create -srcfolder "$CURDIR"/dmg -volname OpenAFS \ | |
501 | -o "$CURDIR"/TMP.dmg | |
502 | hdiutil convert -format UDZO "$CURDIR"/TMP.dmg \ | |
503 | -o "$CURDIR/OpenAFS-@PACKAGE_VERSION@-$RELNAME".dmg | |
504 | ||
505 | echo | |
506 | echo "Created $CURDIR/OpenAFS-@PACKAGE_VERSION@-$RELNAME".dmg | |
507 | fi |