X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=platform%2Fosx%2Fmake_dmg.sh;h=5b9f187f1a9cb9eb5568999602e801d500391607;hp=b5d6d5bc09969e9d63e0f87527bb66a82ece2ff4;hb=c701c9276b25ab8267f4cefe21a4303a3a54a372;hpb=c2272ccbe468874d58a957bdc2807c998f658d22 diff --git a/platform/osx/make_dmg.sh b/platform/osx/make_dmg.sh index b5d6d5bc0..5b9f187f1 100644 --- a/platform/osx/make_dmg.sh +++ b/platform/osx/make_dmg.sh @@ -7,11 +7,11 @@ # Don't set -e here as egrep (used a few times) returns 1 if no matches # were found. -version=`cat wscript | egrep ^VERSION | awk '{print $3}' | sed -e "s/'//g"` +version=`git describe --tags --abbrev=0 | sed -e "s/v//"` # DMG size in megabytes DMG_SIZE=256 -ENV=/Users/carl/Environments/osx/10.6 +ENV=/Users/carl/Environments/dcpomatic ROOT=$1 # This is our work area for making up the .dmgs @@ -79,9 +79,6 @@ function copy_libs { universal_copy_lib $ENV libglib-2 "$dest" universal_copy_lib $ENV libintl "$dest" universal_copy_lib $ENV libsndfile "$dest" - universal_copy_lib $ENV libMagick++ "$dest" - universal_copy_lib $ENV libMagickCore "$dest" - universal_copy_lib $ENV libMagickWand "$dest" universal_copy_lib $ENV libssh "$dest" universal_copy_lib $ENV libwx "$dest" universal_copy_lib $ENV libfontconfig "$dest" @@ -89,7 +86,6 @@ function copy_libs { universal_copy_lib $ENV libexpat "$dest" universal_copy_lib $ENV libltdl "$dest" universal_copy_lib $ENV libxmlsec1 "$dest" - universal_copy_lib $ENV libzip "$dest" universal_copy_lib $ENV libcurl "$dest" universal_copy_lib $ENV libffi "$dest" universal_copy_lib $ENV libpango "$dest" @@ -113,24 +109,37 @@ function copy_libs { # @param #1 directory to copy to function copy_resources { local dest="$1" + cp $ROOT/32/src/dcpomatic/graphics/osx/dcpomatic_small.png "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/dcpomatic2.icns "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/dcpomatic2_kdm.icns "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/dcpomatic2_server.icns "$dest" + cp $ROOT/32/src/dcpomatic/graphics/osx/dcpomatic2_player.icns "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/dcpomatic2_batch.icns "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/colour_conversions.png "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/defaults.png "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/kdm_email.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/email.png "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/servers.png "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/tms.png "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/keys.png "$dest" cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/cover_sheet.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/notifications.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/accounts.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/osx/preferences/locations.png "$dest" cp $ROOT/32/src/dcpomatic/fonts/LiberationSans-Regular.ttf "$dest" cp $ROOT/32/src/dcpomatic/fonts/LiberationSans-Italic.ttf "$dest" cp $ROOT/32/src/dcpomatic/fonts/LiberationSans-Bold.ttf "$dest" + cp $ROOT/32/src/dcpomatic/fonts/fonts.conf.osx "$dest"/fonts.conf cp $ROOT/32/src/dcpomatic/graphics/splash.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/zoom.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/zoom_all.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/select.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/snap.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/sequence.png "$dest" + cp $ROOT/32/src/dcpomatic/graphics/me.jpg "$dest" # i18n: DCP-o-matic .mo files - 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; do + 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 mkdir -p "$dest/$lang/LC_MESSAGES" cp $ROOT/32/src/dcpomatic/build/src/lib/mo/$lang/*.mo "$dest/$lang/LC_MESSAGES" cp $ROOT/32/src/dcpomatic/build/src/wx/mo/$lang/*.mo "$dest/$lang/LC_MESSAGES" @@ -156,10 +165,10 @@ function relink { base=`basename $dep` # $dep will be a path within 64/; make a 32/ path too dep32=`echo $dep | sed -e "s/\/64\//\/32\//g"` - changes="$changes -change $dep @executable_path/../lib/$base -change $dep32 @executable_path/../lib/$base" + changes="$changes -change $dep @executable_path/../Frameworks/$base -change $dep32 @executable_path/../Frameworks/$base" done if test "x$changes" != "x"; then - install_name_tool $changes "$obj" + install_name_tool $changes -id `basename "$obj"` "$obj" fi done } @@ -173,9 +182,29 @@ function make_dmg { dmg="$full_name $version.dmg" vol_name=DCP-o-matic-$version + codesign --deep --force --verify --verbose --sign "Developer ID Application: Carl Hetherington (R82DXSR997)" "$appdir" + if [ "$?" != "0" ]; then + echo "Failed to sign .app" + exit 1 + fi + mkdir -p $vol_name cp -a "$appdir" $vol_name ln -s /Applications "$vol_name/Applications" + cat< "$vol_name/READ ME.txt" +Welcome to DCP-o-matic! The first time you run the program there may be +a long (several-minute) delay while OS X checks the code for viruses and +other malware. Please be patient! +EOF + cat< "$vol_name/READ ME.de_DE.txt" +Beim erstmaligen Start der DCP-o-matic Anwendungen kann ein längerer +Verifikationsvorgang auftreten. Dies ist von der OS X Sicherheitsumgebung +'Gatekeeper' verursacht. Dieser je nach Rechner teils minutenlange +Verifikationsvorgang ist gegenwärtig normal und nicht zu umgehen, +es ist kein Programmfehler. Warten sie die Verifikation für jede der +DCP-o-matic Anwendungen ab, bei weiteren Programmstarts wird sie nicht +mehr auftreten. +EOF rm -f $tmp_dmg "$dmg" 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 @@ -190,12 +219,14 @@ function make_dmg { set current view of container window to icon view set toolbar visible of container window to false set statusbar visible of container window to false - set the bounds of container window to {400, 200, 650, 370} + set the bounds of container window to {400, 200, 940, 300} set theViewOptions to the icon view options of container window set arrangement of theViewOptions to not arranged set icon size of theViewOptions to 64 set position of item "'$appdir'" of container window to {90, 80} - set position of item "Applications" of container window to {220, 80} + set position of item "Applications" of container window to {265, 80} + set position of item "READ ME.txt" of container window to {430, 80} + set position of item "READ ME.de_DE.txt" of container window to {595, 80} close open update without registering applications @@ -213,6 +244,12 @@ function make_dmg { DeRez -only icns "$appdir/Contents/Resources/dcpomatic2.icns" > "$appdir/Contents/Resources/DCP-o-matic.rsrc" Rez -append "$appdir/Contents/Resources/DCP-o-matic.rsrc" -o "$dmg" SetFile -a C "$dmg" + xattr -c "$dmg" + codesign --verify --verbose --sign "Developer ID Application: Carl Hetherington (R82DXSR997)" "$dmg" + if [ "$?" != "0" ]; then + echo "Failed to sign .dmg" + exit 1 + fi rm $tmp_dmg rm -rf $vol_name } @@ -223,11 +260,11 @@ function setup { approot="$appdir/Contents" rm -rf "$appdir" mkdir -p "$approot/MacOS" - mkdir -p "$approot/lib" + mkdir -p "$approot/Frameworks" mkdir -p "$approot/Resources" to_relink="dcpomatic" - copy_libs "$approot/lib" + copy_libs "$approot/Frameworks" copy_resources "$approot/Resources" } @@ -238,15 +275,16 @@ universal_copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_cli "$approot/MacO universal_copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_create "$approot/MacOS" universal_copy $ROOT bin/ffprobe "$approot/MacOS" cp $ROOT/32/src/dcpomatic/build/platform/osx/dcpomatic2.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2" "$approot/MacOS/dcpomatic2_cli" "$approot/MacOS/ffprobe" "$approot/lib/"*.dylib) +rl=("$approot/MacOS/dcpomatic2" "$approot/MacOS/dcpomatic2_cli" "$approot/MacOS/dcpomatic2_create" "$approot/MacOS/ffprobe" "$approot/Frameworks/"*.dylib) relink "${rl[@]}" make_dmg "$appdir" "DCP-o-matic" # DCP-o-matic KDM Creator setup "DCP-o-matic 2 KDM Creator.app" universal_copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_kdm "$approot/MacOS" +universal_copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_kdm_cli "$approot/MacOS" cp $ROOT/32/src/dcpomatic/build/platform/osx/dcpomatic2_kdm.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_kdm" "$approot/lib/"*.dylib) +rl=("$approot/MacOS/dcpomatic2_kdm" "$approot/MacOS/dcpomatic2_kdm_cli" "$approot/Frameworks/"*.dylib) relink "${rl[@]}" make_dmg "$appdir" "DCP-o-matic KDM Creator" @@ -255,7 +293,7 @@ setup "DCP-o-matic 2 Encode Server.app" universal_copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_server "$approot/MacOS" universal_copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_server_cli "$approot/MacOS" cp $ROOT/32/src/dcpomatic/build/platform/osx/dcpomatic2_server.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_server" "$approot/MacOS/dcpomatic2_server_cli" "$approot/lib/"*.dylib) +rl=("$approot/MacOS/dcpomatic2_server" "$approot/MacOS/dcpomatic2_server_cli" "$approot/Frameworks/"*.dylib) relink "${rl[@]}" make_dmg "$appdir" "DCP-o-matic Encode Server" @@ -263,6 +301,14 @@ make_dmg "$appdir" "DCP-o-matic Encode Server" setup "DCP-o-matic 2 Batch converter.app" universal_copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_batch "$approot/MacOS" cp $ROOT/32/src/dcpomatic/build/platform/osx/dcpomatic2_batch.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_batch" "$approot/lib/"*.dylib) +rl=("$approot/MacOS/dcpomatic2_batch" "$approot/Frameworks/"*.dylib) relink "${rl[@]}" make_dmg "$appdir" "DCP-o-matic Batch Converter" + +# DCP-o-matic Player +setup "DCP-o-matic 2 Player.app" +universal_copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_player "$approot/MacOS" +cp $ROOT/32/src/dcpomatic/build/platform/osx/dcpomatic2_player.Info.plist "$approot/Info.plist" +rl=("$approot/MacOS/dcpomatic2_player" "$approot/Frameworks/"*.dylib) +relink "${rl[@]}" +make_dmg "$appdir" "DCP-o-matic Player"