3 SYNTAX="make_dmg.sh <environment> <builddir> <apple-id> <apple-password>"
5 # e.g. make_dmg.sh /Users/carl/osx-environment /Users/carl/cdist foo@bar.net opensesame
7 # Don't set -e here as egrep (used a few times) returns 1 if no matches
10 version=`git describe --tags --abbrev=0 | sed -e "s/v//"`
12 # DMG size in megabytes
19 # This is our work area for making up the .dmgs
20 mkdir -p build/platform/osx
23 cat <<EOF > entitlements.plist
24 <?xml version="1.0" encoding="UTF-8"?>
25 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
28 <key>com.apple.security.cs.disable-library-validation</key>
30 <key>com.apple.security.cs.allow-dyld-environment-variables</key>
37 for f in $1/arm64/$2; do
39 ln -s $(readlink $f) "$3/`basename $f`"
41 g=`echo $f | sed -e "s/\/arm64\//\/x86_64\//g"`
43 lipo -create $f $g -output "$3/`basename $f`"
48 function copy_lib_root {
49 for f in $ROOT/arm64/lib/$1*.dylib; do
51 ln -s $(readlink $f) "$2/`basename $f`"
53 g=`echo $f | sed -e "s/\/arm64\//\/x86_64\//g"`
55 lipo -create $f $g -output "$2/`basename $f`"
58 to_relink="$to_relink|$1"
61 function copy_lib_env {
62 for f in $ENV/arm64/lib/$1*.dylib; do
64 ln -s $(readlink $f) "$2/`basename $f`"
66 g=`echo $f | sed -e "s/\/arm64\//\/x86_64\//g"`
68 lipo -create $f $g -output "$2/`basename $f`"
71 to_relink="$to_relink|$1"
74 # @param #1 directory to copy to
77 copy_lib_root libcxml "$dest"
78 copy_lib_root libdcp-1.0 "$dest"
79 copy_lib_root libasdcp-carl "$dest"
80 copy_lib_root libkumu-carl "$dest"
81 copy_lib_root libsub "$dest"
82 copy_lib_root libopenjp2 "$dest"
83 copy_lib_root libavdevice "$dest"
84 copy_lib_root libavformat "$dest"
85 copy_lib_root libavfilter "$dest"
86 copy_lib_root libavutil "$dest"
87 copy_lib_root libavcodec "$dest"
88 copy_lib_root libswscale "$dest"
89 copy_lib_root libpostproc "$dest"
90 copy_lib_root libswresample "$dest"
91 copy_lib_root liblwext4 "$dest"
92 copy_lib_root libblockdev "$dest"
93 copy_lib_root libleqm_nrt "$dest"
94 copy $ROOT src/dcpomatic/build/src/lib/libdcpomatic2.dylib "$dest"
95 copy $ROOT src/dcpomatic/build/src/wx/libdcpomatic2-wx.dylib "$dest"
96 copy_lib_env libboost_system "$dest"
97 copy_lib_env libboost_filesystem "$dest"
98 copy_lib_env libboost_thread "$dest"
99 copy_lib_env libboost_date_time "$dest"
100 copy_lib_env libboost_locale "$dest"
101 copy_lib_env libboost_regex "$dest"
102 copy_lib_env libxml++ "$dest"
103 copy_lib_env libxslt "$dest"
104 copy_lib_env libxml2 "$dest"
105 copy_lib_env libglibmm-2.4 "$dest"
106 copy_lib_env libgobject "$dest"
107 copy_lib_env libgthread "$dest"
108 copy_lib_env libgmodule "$dest"
109 copy_lib_env libsigc "$dest"
110 copy_lib_env libglib-2 "$dest"
111 copy_lib_env libintl "$dest"
112 copy_lib_env libsndfile "$dest"
113 copy_lib_env libssh "$dest"
114 copy_lib_env libwx "$dest"
115 copy_lib_env libfontconfig "$dest"
116 copy_lib_env libfreetype "$dest"
117 copy_lib_env libexpat "$dest"
118 copy_lib_env libltdl "$dest"
119 copy_lib_env libxmlsec1 "$dest"
120 copy_lib_env libcurl "$dest"
121 copy_lib_env libffi "$dest"
122 copy_lib_env libpango "$dest"
123 copy_lib_env libcairo "$dest"
124 copy_lib_env libpixman "$dest"
125 copy_lib_env libharfbuzz "$dest"
126 copy_lib_env libsamplerate "$dest"
127 copy_lib_env libicui18n "$dest"
128 copy_lib_env libicudata "$dest"
129 copy_lib_env libicuio "$dest"
130 copy_lib_env libicutest "$dest"
131 copy_lib_env libicutu "$dest"
132 copy_lib_env libicuuc "$dest"
133 copy_lib_env libFLAC "$dest"
134 copy_lib_env libvorbis "$dest"
135 copy_lib_env libogg "$dest"
136 copy_lib_env libxerces-c "$dest"
137 copy_lib_env libcrypto "$dest"
138 copy_lib_env libssl "$dest"
139 copy_lib_env libfribidi "$dest"
140 copy_lib_env libgio "$dest"
141 copy_lib_env libz "$dest"
144 # @param #1 directory to copy to
145 function copy_resources {
147 local prefix=$ROOT/x86_64
148 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic_small.png "$dest"
149 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2.icns "$dest"
150 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_kdm.icns "$dest"
151 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_server.icns "$dest"
152 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_player.icns "$dest"
153 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_batch.icns "$dest"
154 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_playlist.icns "$dest"
155 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_disk.icns "$dest"
156 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_combiner.icns "$dest"
157 cp $prefix/src/dcpomatic/graphics/osx/preferences/defaults.png "$dest"
158 cp $prefix/src/dcpomatic/graphics/osx/preferences/defaults@2x.png "$dest"
159 cp $prefix/src/dcpomatic/graphics/osx/preferences/kdm_email.png "$dest"
160 cp $prefix/src/dcpomatic/graphics/osx/preferences/kdm_email@2x.png "$dest"
161 cp $prefix/src/dcpomatic/graphics/osx/preferences/email.png "$dest"
162 cp $prefix/src/dcpomatic/graphics/osx/preferences/email@2x.png "$dest"
163 cp $prefix/src/dcpomatic/graphics/osx/preferences/servers.png "$dest"
164 cp $prefix/src/dcpomatic/graphics/osx/preferences/servers@2x.png "$dest"
165 cp $prefix/src/dcpomatic/graphics/osx/preferences/tms.png "$dest"
166 cp $prefix/src/dcpomatic/graphics/osx/preferences/tms@2x.png "$dest"
167 cp $prefix/src/dcpomatic/graphics/osx/preferences/keys.png "$dest"
168 cp $prefix/src/dcpomatic/graphics/osx/preferences/keys@2x.png "$dest"
169 cp $prefix/src/dcpomatic/graphics/osx/preferences/cover_sheet.png "$dest"
170 cp $prefix/src/dcpomatic/graphics/osx/preferences/cover_sheet@2x.png "$dest"
171 cp $prefix/src/dcpomatic/graphics/osx/preferences/notifications.png "$dest"
172 cp $prefix/src/dcpomatic/graphics/osx/preferences/notifications@2x.png "$dest"
173 cp $prefix/src/dcpomatic/graphics/osx/preferences/sound.png "$dest"
174 cp $prefix/src/dcpomatic/graphics/osx/preferences/sound@2x.png "$dest"
175 cp $prefix/src/dcpomatic/graphics/osx/preferences/identifiers.png "$dest"
176 cp $prefix/src/dcpomatic/graphics/osx/preferences/identifiers@2x.png "$dest"
177 cp $prefix/src/dcpomatic/graphics/osx/preferences/general.png "$dest"
178 cp $prefix/src/dcpomatic/graphics/osx/preferences/general@2x.png "$dest"
179 cp $prefix/src/dcpomatic/graphics/osx/preferences/advanced.png "$dest"
180 cp $prefix/src/dcpomatic/graphics/osx/preferences/advanced@2x.png "$dest"
181 cp $prefix/src/dcpomatic/graphics/osx/preferences/locations.png "$dest"
182 cp $prefix/src/dcpomatic/graphics/osx/preferences/locations@2x.png "$dest"
183 cp $prefix/src/dcpomatic/fonts/LiberationSans-Regular.ttf "$dest"
184 cp $prefix/src/dcpomatic/fonts/LiberationSans-Italic.ttf "$dest"
185 cp $prefix/src/dcpomatic/fonts/LiberationSans-Bold.ttf "$dest"
186 cp $prefix/src/dcpomatic/fonts/fonts.conf.osx "$dest"/fonts.conf
187 cp $prefix/src/dcpomatic/graphics/splash.png "$dest"
188 cp $prefix/src/dcpomatic/graphics/zoom.png "$dest"
189 cp $prefix/src/dcpomatic/graphics/zoom_all.png "$dest"
190 cp $prefix/src/dcpomatic/graphics/select.png "$dest"
191 cp $prefix/src/dcpomatic/graphics/snap.png "$dest"
192 cp $prefix/src/dcpomatic/graphics/sequence.png "$dest"
193 cp $prefix/src/dcpomatic/graphics/me.jpg "$dest"
194 cp $prefix/src/dcpomatic/graphics/link.png "$dest"
195 cp $prefix/src/dcpomatic/graphics/tick.png "$dest"
196 cp $prefix/src/dcpomatic/graphics/no_tick.png "$dest"
197 cp -r $prefix/share/libdcp/xsd "$dest"
198 cp -r $prefix/share/libdcp/tags "$dest"
200 # i18n: DCP-o-matic .mo files
201 for lang in de_DE es_ES fr_FR it_IT sv_SE nl_NL ru_RU pl_PL da_DK pt_PT pt_BR sk_SK cs_CZ uk_UA zh_CN tr_TR; do
202 mkdir -p "$dest/$lang/LC_MESSAGES"
203 cp $prefix/src/dcpomatic/build/src/lib/mo/$lang/*.mo "$dest/$lang/LC_MESSAGES"
204 cp $prefix/src/dcpomatic/build/src/wx/mo/$lang/*.mo "$dest/$lang/LC_MESSAGES"
205 cp $prefix/src/dcpomatic/build/src/tools/mo/$lang/*.mo "$dest/$lang/LC_MESSAGES"
208 # i18n: wxWidgets .mo files
209 for lang in de es fr it sv nl ru pl da cs; do
211 cp $ENV/x86_64/share/locale/$lang/LC_MESSAGES/wxstd.mo "$dest/$lang"
215 # param $1 list of things that link to other things
216 function relink_relative {
217 to_relink=`echo $to_relink | sed -e "s/\+//g"`
220 for obj in "${linkers[@]}"; do
221 for arch in x86_64 arm64; do
222 deps=`otool -arch $arch -L "$obj" | awk '{print $1}' | egrep "($to_relink)" | egrep "($ENV|$ROOT|boost|libicu|libssh)"`
226 changes="$changes -change $dep @executable_path/../Frameworks/$base"
228 if test "x$changes" != "x"; then
229 install_name_tool $changes -id `basename "$obj"` "$obj"
235 # param $1 directory things should be relinked into
236 # $2 list of things that link to other things
237 function relink_absolute {
238 to_relink=`echo $to_relink | sed -e "s/\+//g"`
243 for obj in "${linkers[@]}"; do
244 for arch in x86_64 arm64; do
245 deps=`otool -arch $arch -L "$obj" | awk '{print $1}' | egrep "($to_relink)" | egrep "($ENV|$ROOT|boost|libicu|libssh)"`
248 install_name_tool -change "$dep" "$target"/$base -id `basename "$obj"` "$obj"
255 codesign --deep --force --verify --verbose --options runtime --entitlements entitlements.plist --sign "Developer ID Application: Carl Hetherington (R82DXSR997)" "$1"
256 if [ "$?" != "0" ]; then
257 echo "Failed to sign $1"
263 # @param #1 .app directory
264 # @param #2 .pkg or ""
265 # @param #3 full name e.g. DCP-o-matic Batch Converter
270 tmp_dmg=dcpomatic_tmp.dmg
271 dmg="$full_name $version.dmg"
272 vol_name=DCP-o-matic-$version
276 if [ "$pkg" != "" ]; then
277 productsign --sign "Developer ID Installer: Carl Hetherington (R82DXSR997)" "$pkg" "signed_temp.pkg"
278 if [ "$?" != "0" ]; then
279 echo "Failed to sign .pkg"
282 mv signed_temp.pkg "$pkg"
286 cp -a "$appdir" $vol_name
287 if [ "$pkg" != "" ]; then
288 cp -a "$pkg" $vol_name
290 ln -s /Applications "$vol_name/Applications"
291 cat<<EOF > "$vol_name/READ ME.txt"
292 Welcome to DCP-o-matic! The first time you run the program there may be
293 a long (several-minute) delay while OS X checks the code for viruses and
294 other malware. Please be patient!
296 cat<<EOF > "$vol_name/READ ME.de_DE.txt"
297 Beim erstmaligen Start der DCP-o-matic Anwendungen kann ein längerer
298 Verifikationsvorgang auftreten. Dies ist von der OS X Sicherheitsumgebung
299 'Gatekeeper' verursacht. Dieser je nach Rechner teils minutenlange
300 Verifikationsvorgang ist gegenwärtig normal und nicht zu umgehen,
301 es ist kein Programmfehler. Warten sie die Verifikation für jede der
302 DCP-o-matic Anwendungen ab, bei weiteren Programmstarts wird sie nicht
306 if [ "$pkg" != "" ]; then
307 cat<<EOF > "$vol_name/READ ME.txt"
309 To run this software successfully you must install $pkg before running
314 if [ "$pkg" != "" ]; then
315 cat<<EOF > "$vol_name/READ ME.de_DE.txt"
317 To run this software successfully you must install $pkg before running
322 rm -f $tmp_dmg "$dmg"
323 hdiutil create -srcfolder $vol_name -volname $vol_name -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW -size $DMG_SIZE $tmp_dmg
324 attach=$(hdiutil attach -readwrite -noverify -noautoopen $tmp_dmg)
325 device=`echo $attach | egrep '^/dev/' | sed 1q | awk '{print $5}'`
329 tell application "Finder"
330 tell disk "'$vol_name'"
332 set current view of container window to icon view
333 set toolbar visible of container window to false
334 set statusbar visible of container window to false
335 set the bounds of container window to {400, 200, 1160, 600}
336 set the bounds of container window to {400, 200, 1160, 600}
337 set the bounds of container window to {400, 200, 1160, 600}
338 set theViewOptions to the icon view options of container window
339 set arrangement of theViewOptions to not arranged
340 set icon size of theViewOptions to 64
341 set position of item "'$appdir'" of container window to {90, 80}
342 set position of item "Applications" of container window to {265, 80}
343 set position of item "READ ME.txt" of container window to {430, 80}
344 set position of item "READ ME.de_DE.txt" of container window to {595, 80}
345 set position of item "DCP-o-matic Disk Writer.pkg" of container window to {90, 255}
348 update without registering applications
354 chmod -Rf go-w /Volumes/"$vol_name"/"$appdir"
357 hdiutil eject $device
358 hdiutil convert -format UDZO $tmp_dmg -imagekey zlib-level=9 -o "$dmg"
359 sips -i "$appdir/Contents/Resources/dcpomatic2.icns"
360 DeRez -only icns "$appdir/Contents/Resources/dcpomatic2.icns" > "$appdir/Contents/Resources/DCP-o-matic.rsrc"
361 Rez -append "$appdir/Contents/Resources/DCP-o-matic.rsrc" -o "$dmg"
366 codesign --verify --verbose --options runtime --entitlements entitlements.plist --sign "Developer ID Application: Carl Hetherington (R82DXSR997)" "$dmg"
376 approot="$appdir/Contents"
378 mkdir -p "$approot/MacOS"
379 mkdir -p "$approot/Frameworks"
380 mkdir -p "$approot/Resources"
382 to_relink="dcpomatic"
383 copy_libs "$approot/Frameworks"
384 copy_resources "$approot/Resources"
387 function copy_verify {
388 copy $ROOT src/libdcp/build/tools/dcpverify "$approot/MacOS"
389 mv "$approot/MacOS/dcpverify" "$approot/MacOS/dcpomatic2_verify"
390 rl=("$approot/MacOS/dcpomatic2_verify" "$approot/Frameworks/"*.dylib)
391 relink_relative "${rl[@]}"
397 setup "DCP-o-matic 2.app"
398 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2 "$approot/MacOS"
399 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_cli "$approot/MacOS"
400 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_create "$approot/MacOS"
401 copy $ROOT bin/ffprobe "$approot/MacOS"
402 copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
404 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2.Info.plist "$approot/Info.plist"
405 rl=("$approot/MacOS/dcpomatic2" "$approot/MacOS/dcpomatic2_cli" "$approot/MacOS/dcpomatic2_create" "$approot/MacOS/ffprobe" "$approot/Frameworks/"*.dylib)
406 relink_relative "${rl[@]}"
407 make_dmg "$appdir" "" "DCP-o-matic"
409 # DCP-o-matic KDM Creator
410 setup "DCP-o-matic 2 KDM Creator.app"
411 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_kdm "$approot/MacOS"
412 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_kdm_cli "$approot/MacOS"
413 copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
415 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_kdm.Info.plist "$approot/Info.plist"
416 rl=("$approot/MacOS/dcpomatic2_kdm" "$approot/MacOS/dcpomatic2_kdm_cli" "$approot/Frameworks/"*.dylib)
417 relink_relative "${rl[@]}"
418 make_dmg "$appdir" "" "DCP-o-matic KDM Creator"
420 # DCP-o-matic Encode Server
421 setup "DCP-o-matic 2 Encode Server.app"
422 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_server "$approot/MacOS"
423 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_server_cli "$approot/MacOS"
424 copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
426 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_server.Info.plist "$approot/Info.plist"
427 rl=("$approot/MacOS/dcpomatic2_server" "$approot/MacOS/dcpomatic2_server_cli" "$approot/Frameworks/"*.dylib)
428 relink_relative "${rl[@]}"
429 make_dmg "$appdir" "" "DCP-o-matic Encode Server"
431 # DCP-o-matic Batch Converter
432 setup "DCP-o-matic 2 Batch converter.app"
433 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_batch "$approot/MacOS"
434 copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
436 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_batch.Info.plist "$approot/Info.plist"
437 rl=("$approot/MacOS/dcpomatic2_batch" "$approot/Frameworks/"*.dylib)
438 relink_relative "${rl[@]}"
439 make_dmg "$appdir" "" "DCP-o-matic Batch Converter"
442 setup "DCP-o-matic 2 Player.app"
443 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_player "$approot/MacOS"
444 copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
446 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_player.Info.plist "$approot/Info.plist"
447 rl=("$approot/MacOS/dcpomatic2_player" "$approot/Frameworks/"*.dylib)
448 relink_relative "${rl[@]}"
449 make_dmg "$appdir" "" "DCP-o-matic Player"
451 # DCP-o-matic Playlist Editor
452 setup "DCP-o-matic 2 Playlist Editor.app"
453 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_playlist "$approot/MacOS"
454 copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
456 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_playlist.Info.plist "$approot/Info.plist"
457 rl=("$approot/MacOS/dcpomatic2_playlist" "$approot/Frameworks/"*.dylib)
458 relink_relative "${rl[@]}"
459 make_dmg "$appdir" "" "DCP-o-matic Playlist Editor"
461 # DCP-o-matic Combiner
462 setup "DCP-o-matic 2 Combiner.app"
463 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_combiner "$approot/MacOS"
464 copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
466 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_combiner.Info.plist "$approot/Info.plist"
467 rl=("$approot/MacOS/dcpomatic2_combiner" "$approot/Frameworks/"*.dylib)
468 relink_relative "${rl[@]}"
469 make_dmg "$appdir" "" "DCP-o-matic Combiner"
471 # DCP-o-matic Disk Writer .app
472 setup "DCP-o-matic 2 Disk Writer.app"
473 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_disk "$approot/MacOS"
474 copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
476 cp $prefix/src/dcpomatic/platform/osx/uninstall_disk.applescript "$approot/Resources"
477 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_disk.Info.plist "$approot/Info.plist"
478 rl=("$approot/MacOS/dcpomatic2_disk" "$approot/Frameworks/"*.dylib)
479 relink_relative "${rl[@]}"
481 # DCP-o-matic Disk Writer daemon .pkg
483 pkgbase=tmp-disk-writer
487 pkgroot=$pkgbase/root
489 mkdir -p $pkgroot/Library/LaunchDaemons
490 cat > $pkgroot/Library/LaunchDaemons/com.dcpomatic.disk.writer.plist <<EOF
491 <?xml version="1.0" encoding="UTF-8"?>
492 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
493 <plist version="1.0">
496 <string>com.dcpomatic.disk.writer</string>
497 <key>ProgramArguments</key>
499 <string>/Library/Application Support/com.dcpomatic/dcpomatic2_disk_writer</string>
501 <key>EnvironmentVariables</key>
503 <key>DYLD_LIBRARY_PATH</key>
504 <string><![CDATA[/Library/Application Support/com.dcpomatic]]></string>
506 <key>StandardOutPath</key>
507 <string>/var/log/dcpomatic_disk_writer_out.log</string>
508 <key>StandardErrorPath</key>
509 <string>/var/log/dcpomatic_disk_writer_err.log</string>
510 <key>LaunchEvents</key>
512 <key>com.apple.notifyd.matching</key>
514 <key>com.dcpomatic.disk.writer.start</key>
516 <key>Notification</key>
517 <string>com.dcpomatic.disk.writer.start</string>
525 # Get the binaries together in $pkgbin then move them to the
526 # place with spaces in the filename to avoid some of the pain of escaping
529 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_disk_writer "$pkgbin"
532 rl=("$pkgbin/dcpomatic2_disk_writer" "$pkgbin/"*.dylib)
533 relink_absolute "/Library/Application Support/com.dcpomatic" "${rl[@]}"
535 mkdir $pkgbase/scripts
536 cat > $pkgbase/scripts/postinstall <<EOF
538 /bin/launchctl unload "/Library/LaunchDaemons/com.dcpomatic.disk.writer.plist"
539 /bin/launchctl load "/Library/LaunchDaemons/com.dcpomatic.disk.writer.plist"
542 chmod gou+x $pkgbase/scripts/postinstall
544 find "$pkgbin" -iname "*.dylib" -print0 | while IFS= read -r -d '' f; do
547 sign "$pkgbin/dcpomatic2_disk_writer"
549 mkdir -p "$pkgroot/Library/Application Support/com.dcpomatic"
550 mv $pkgbin/* "$pkgroot/Library/Application Support/com.dcpomatic/"
551 pkgbuild --root $pkgroot --identifier com.dcpomatic.disk.writer --scripts $pkgbase/scripts "DCP-o-matic Disk Writer.pkg"
553 make_dmg "$appdir" "DCP-o-matic Disk Writer.pkg" "DCP-o-matic Disk Writer"