diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-10-21 17:25:16 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-10-21 17:25:16 +0200 |
| commit | dfd42d2a546d14c32057a34002543877ea2f99cb (patch) | |
| tree | ccaf3c3edd37c9022bd39f8e263b7f025d550011 | |
| parent | 48b82de5b6e8e07330a2f72dbddd8d9830fe047e (diff) | |
| parent | 74d4cd23df7460cf1d0e91fd7a37fa3333741887 (diff) | |
Merge branch 'v2.15.x' of ssh://localhost:2222/home/carl/git/dcpomatic into v2.15.x
| -rw-r--r-- | cscript | 4 | ||||
| -rw-r--r-- | platform/osx/make_dmg.sh | 50 | ||||
| -rw-r--r-- | src/lib/checker.cc | 2 | ||||
| -rw-r--r-- | src/lib/cross.cc | 2 | ||||
| -rw-r--r-- | src/lib/cross.h | 2 | ||||
| -rw-r--r-- | src/lib/util.cc | 2 | ||||
| -rw-r--r-- | src/tools/dcpomatic.cc | 2 | ||||
| -rw-r--r-- | src/tools/dcpomatic_cli.cc | 4 | ||||
| -rw-r--r-- | src/tools/dcpomatic_create.cc | 2 | ||||
| -rw-r--r-- | src/tools/dcpomatic_ecinema.cc | 2 | ||||
| -rw-r--r-- | src/wx/content_view.cc | 2 | ||||
| -rw-r--r-- | src/wx/wx_util.cc | 2 | ||||
| -rw-r--r-- | test/client_server_test.cc | 6 | ||||
| -rw-r--r-- | test/interrupt_encoder_test.cc | 2 | ||||
| -rw-r--r-- | test/job_test.cc | 4 | ||||
| -rw-r--r-- | test/player_test.cc | 4 | ||||
| -rw-r--r-- | test/test.cc | 2 | ||||
| -rw-r--r-- | test/threed_test.cc | 2 |
18 files changed, 59 insertions, 37 deletions
@@ -640,10 +640,10 @@ def package(target, version, options): elif target.distro == 'centos' or target.distro == 'fedora' or target.distro == 'mageia': return package_rpm(target, cpu, version, options) elif target.platform == 'osx' and target.bits is None: - target.command('bash platform/osx/make_dmg.sh %s universal' % target.directory) + target.command('bash platform/osx/make_dmg.sh %s %s universal %s %s' % (target.environment_prefix, target.directory, target.apple_id, target.apple_password)) return [os.path.abspath(x) for x in glob.glob('build/platform/osx/DCP-o-matic*.dmg')] elif target.platform == 'osx' and target.bits == 64: - target.command('bash platform/osx/make_dmg.sh %s thin' % target.directory) + target.command('bash platform/osx/make_dmg.sh %s %s thin %s %s' % (target.environment_prefix, target.directory, target.apple_id, target.apple_password)) return [os.path.abspath(x) for x in glob.glob('build/platform/osx/DCP-o-matic*.dmg')] elif target.platform == 'docker': shutil.copyfile(target.deb, 'build/platform/docker') diff --git a/platform/osx/make_dmg.sh b/platform/osx/make_dmg.sh index 9b1dd0e0e..93cbd077f 100644 --- a/platform/osx/make_dmg.sh +++ b/platform/osx/make_dmg.sh @@ -1,9 +1,9 @@ #!/bin/bash # -# Syntax: make_dmg.sh <builddir> <type> +# Syntax: make_dmg.sh <environment> <builddir> <type> <apple-id> <apple-password> # where <type> is universal or thin # -# e.g. make_dmg.sh /Users/carl/cdist +# e.g. make_dmg.sh /Users/carl/osx-environment /Users/carl/cdist universal foo@bar.net opensesame # Don't set -e here as egrep (used a few times) returns 1 if no matches # were found. @@ -12,9 +12,11 @@ version=`git describe --tags --abbrev=0 | sed -e "s/v//"` # DMG size in megabytes DMG_SIZE=256 -ENV=/Users/carl/Environments/dcpomatic -ROOT=$1 -TYPE=$2 +ENV=$1 +ROOT=$2 +TYPE=$3 +APPLE_ID=$4 +APPLE_PASSWORD=$5 if [ "$TYPE" != "universal" -a "$TYPE" != "thin" ]; then echo "Syntax: $0 <builddir> <type>" @@ -247,9 +249,11 @@ function relink { # @param #1 .app directory # @param #2 full name e.g. DCP-o-matic Batch Converter +# @param #3 bundle id e.g. com.dcpomatic.batch function make_dmg { local appdir="$1" local full_name="$2" + local bundle_id="$3" tmp_dmg=dcpomatic_tmp.dmg dmg="$full_name $version.dmg" vol_name=DCP-o-matic-$version @@ -310,6 +314,7 @@ EOF chmod -Rf go-w /Volumes/"$vol_name"/"$appdir" sync + set -e hdiutil eject $device hdiutil convert -format UDZO $tmp_dmg -imagekey zlib-level=9 -o "$dmg" sips -i "$appdir/Contents/Resources/dcpomatic2.icns" @@ -318,10 +323,27 @@ EOF 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 + + id=$(xcrun altool --notarize-app -t osx -f "$dmg" --primary-bundle-id $bundle_id -u $APPLE_ID -p $APPLE_PASSWORD --output-format xml | grep -C1 RequestUUID | tail -n 1 | sed -e "s/<string>//g" | sed -e "s/<\/string>//g") + N=0 + while [ 1 ]; do + echo "Checking up on $id" + status=$(xcrun altool --notarization-info $id -u $APPLE_ID -p $APPLE_PASSWORD --output-format xml | grep -C1 "<key>Status</key>" | tail -n 1 | sed -e "s/ .//g") + echo "Got $status" + if [ "$status" == "<string>success</string>" ]; then + break + fi + sleep 30 + N=$((N+1)) + if [ "$N" == "10" ]; then + echo "Timed out waiting for notarization" + exit 1 + fi + done + + xcrun stapler staple "$dmg" + set +e + rm $tmp_dmg rm -rf $vol_name } @@ -358,7 +380,7 @@ copy $ROOT bin/ffprobe "$approot/MacOS" cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2.Info.plist "$approot/Info.plist" 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" +make_dmg "$appdir" "DCP-o-matic" com.dcpomatic # DCP-o-matic KDM Creator setup "DCP-o-matic 2 KDM Creator.app" @@ -367,7 +389,7 @@ copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_kdm_cli "$approot/MacOS" cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_kdm.Info.plist "$approot/Info.plist" rl=("$approot/MacOS/dcpomatic2_kdm" "$approot/MacOS/dcpomatic2_kdm_cli" "$approot/Frameworks/"*.dylib) relink "${rl[@]}" -make_dmg "$appdir" "DCP-o-matic KDM Creator" +make_dmg "$appdir" "DCP-o-matic KDM Creator" com.dcpomatic.kdm # DCP-o-matic Encode Server setup "DCP-o-matic 2 Encode Server.app" @@ -376,7 +398,7 @@ copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_server_cli "$approot/MacOS" cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_server.Info.plist "$approot/Info.plist" rl=("$approot/MacOS/dcpomatic2_server" "$approot/MacOS/dcpomatic2_server_cli" "$approot/Frameworks/"*.dylib) relink "${rl[@]}" -make_dmg "$appdir" "DCP-o-matic Encode Server" +make_dmg "$appdir" "DCP-o-matic Encode Server" com.dcpomatic.server # DCP-o-matic Batch Converter setup "DCP-o-matic 2 Batch converter.app" @@ -384,7 +406,7 @@ copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_batch "$approot/MacOS" cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_batch.Info.plist "$approot/Info.plist" rl=("$approot/MacOS/dcpomatic2_batch" "$approot/Frameworks/"*.dylib) relink "${rl[@]}" -make_dmg "$appdir" "DCP-o-matic Batch Converter" +make_dmg "$appdir" "DCP-o-matic Batch Converter" com.dcpomatic.batch # DCP-o-matic Player setup "DCP-o-matic 2 Player.app" @@ -392,4 +414,4 @@ copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_player "$approot/MacOS" cp $prefix/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" +make_dmg "$appdir" "DCP-o-matic Player" com.dcpomatic.player diff --git a/src/lib/checker.cc b/src/lib/checker.cc index 13d9aacee..2d15dd3f1 100644 --- a/src/lib/checker.cc +++ b/src/lib/checker.cc @@ -81,7 +81,7 @@ Checker::thread () } lm.unlock (); - dcpomatic_sleep (_period); + dcpomatic_sleep_seconds (_period); } } diff --git a/src/lib/cross.cc b/src/lib/cross.cc index a7fb298cb..1b83bad7c 100644 --- a/src/lib/cross.cc +++ b/src/lib/cross.cc @@ -65,7 +65,7 @@ using boost::shared_ptr; /** @param s Number of seconds to sleep for */ void -dcpomatic_sleep (int s) +dcpomatic_sleep_seconds (int s) { #ifdef DCPOMATIC_POSIX sleep (s); diff --git a/src/lib/cross.h b/src/lib/cross.h index 2e8b8e429..4067631bc 100644 --- a/src/lib/cross.h +++ b/src/lib/cross.h @@ -37,7 +37,7 @@ class Log; struct AVIOContext; -void dcpomatic_sleep (int); +void dcpomatic_sleep_seconds (int); extern std::string cpu_info (); extern void run_ffprobe (boost::filesystem::path, boost::filesystem::path); extern std::list<std::pair<std::string, std::string> > mount_info (); diff --git a/src/lib/util.cc b/src/lib/util.cc index 234c22246..bbb444367 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -967,7 +967,7 @@ show_jobs_on_console (bool progress) bool error = false; while (true) { - dcpomatic_sleep (5); + dcpomatic_sleep_seconds (5); list<shared_ptr<Job> > jobs = JobManager::instance()->get(); diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index d207953ce..e4d2f5c82 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -811,7 +811,7 @@ private: start (wx_to_std (wxStandardPaths::Get().GetExecutablePath())); } - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); } return true; diff --git a/src/tools/dcpomatic_cli.cc b/src/tools/dcpomatic_cli.cc index ca6c79cb8..6a243e126 100644 --- a/src/tools/dcpomatic_cli.cc +++ b/src/tools/dcpomatic_cli.cc @@ -176,7 +176,7 @@ list_servers () } } - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); for (int i = 0; i < N; ++i) { cout << "\033[1A\033[2K"; @@ -360,7 +360,7 @@ main (int argc, char* argv[]) if (keep_going) { while (true) { - dcpomatic_sleep (3600); + dcpomatic_sleep_seconds (3600); } } diff --git a/src/tools/dcpomatic_create.cc b/src/tools/dcpomatic_create.cc index f1df658c3..87626283c 100644 --- a/src/tools/dcpomatic_create.cc +++ b/src/tools/dcpomatic_create.cc @@ -124,7 +124,7 @@ main (int argc, char* argv[]) } while (jm->work_to_do ()) { - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); } while (signal_manager->ui_idle() > 0) {} diff --git a/src/tools/dcpomatic_ecinema.cc b/src/tools/dcpomatic_ecinema.cc index 96b633fdf..152194c48 100644 --- a/src/tools/dcpomatic_ecinema.cc +++ b/src/tools/dcpomatic_ecinema.cc @@ -290,7 +290,7 @@ convert_dcp ( JobManager* jm = JobManager::instance (); while (jm->work_to_do ()) { while (signal_manager->ui_idle ()) {} - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); } DCPOMATIC_ASSERT (!jm->errors()); diff --git a/src/wx/content_view.cc b/src/wx/content_view.cc index d4ef39cb9..1cdfbc00f 100644 --- a/src/wx/content_view.cc +++ b/src/wx/content_view.cc @@ -109,7 +109,7 @@ ContentView::update () } return; } - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); } /* Add content from successful jobs and report errors */ diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc index 045712bcb..28f79431a 100644 --- a/src/wx/wx_util.cc +++ b/src/wx/wx_util.cc @@ -517,7 +517,7 @@ display_progress (wxString title, wxString task) bool ok = true; while (jm->work_to_do()) { - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); if (!progress.Pulse()) { /* user pressed cancel */ BOOST_FOREACH (shared_ptr<Job> i, jm->get()) { diff --git a/test/client_server_test.cc b/test/client_server_test.cc index 29f901d34..df854f9f3 100644 --- a/test/client_server_test.cc +++ b/test/client_server_test.cc @@ -122,7 +122,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_rgb) thread* server_thread = new thread (boost::bind (&EncodeServer::run, server)); /* Let the server get itself ready */ - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); /* "localhost" rather than "127.0.0.1" here fails on docker; go figure */ EncodeServerDescription description ("127.0.0.1", 1, SERVER_LINK_VERSION); @@ -207,7 +207,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_yuv) thread* server_thread = new thread (boost::bind (&EncodeServer::run, server)); /* Let the server get itself ready */ - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); /* "localhost" rather than "127.0.0.1" here fails on docker; go figure */ EncodeServerDescription description ("127.0.0.1", 2, SERVER_LINK_VERSION); @@ -305,7 +305,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_j2k) thread* server_thread = new thread (boost::bind (&EncodeServer::run, server)); /* Let the server get itself ready */ - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); /* "localhost" rather than "127.0.0.1" here fails on docker; go figure */ EncodeServerDescription description ("127.0.0.1", 2, SERVER_LINK_VERSION); diff --git a/test/interrupt_encoder_test.cc b/test/interrupt_encoder_test.cc index c6145d861..ed988a65b 100644 --- a/test/interrupt_encoder_test.cc +++ b/test/interrupt_encoder_test.cc @@ -51,7 +51,7 @@ BOOST_AUTO_TEST_CASE (interrupt_encoder_test) film->make_dcp (); - dcpomatic_sleep (10); + dcpomatic_sleep_seconds (10); JobManager::drop (); } diff --git a/test/job_test.cc b/test/job_test.cc index fa4890470..d93b4a082 100644 --- a/test/job_test.cc +++ b/test/job_test.cc @@ -74,9 +74,9 @@ BOOST_AUTO_TEST_CASE (job_manager_test) shared_ptr<TestJob> a (new TestJob (film)); JobManager::instance()->add (a); - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); BOOST_CHECK_EQUAL (a->running (), true); a->set_finished_ok (); - dcpomatic_sleep (2); + dcpomatic_sleep_seconds (2); BOOST_CHECK_EQUAL (a->finished_ok(), true); } diff --git a/test/player_test.cc b/test/player_test.cc index af40002de..a7e944cd4 100644 --- a/test/player_test.cc +++ b/test/player_test.cc @@ -333,14 +333,14 @@ BOOST_AUTO_TEST_CASE (player_trim_crash) shared_ptr<Butler> butler (new Butler(player, AudioMapping(), 6, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true)); /* Wait for the butler to fill */ - dcpomatic_sleep (5); + dcpomatic_sleep_seconds (5); boon->set_trim_start (ContentTime::from_seconds(5)); butler->seek (DCPTime(), true); /* Wait for the butler to refill */ - dcpomatic_sleep (5); + dcpomatic_sleep_seconds (5); butler->rethrow (); } diff --git a/test/test.cc b/test/test.cc index 50770a687..c5bc417f3 100644 --- a/test/test.cc +++ b/test/test.cc @@ -385,7 +385,7 @@ wait_for_jobs () JobManager* jm = JobManager::instance (); while (jm->work_to_do ()) { while (signal_manager->ui_idle ()) {} - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); } if (jm->errors ()) { diff --git a/test/threed_test.cc b/test/threed_test.cc index 2ff09c127..c87356171 100644 --- a/test/threed_test.cc +++ b/test/threed_test.cc @@ -188,7 +188,7 @@ BOOST_AUTO_TEST_CASE (threed_test7) JobManager* jm = JobManager::instance (); while (jm->work_to_do ()) { while (signal_manager->ui_idle()) {} - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); } while (signal_manager->ui_idle ()) {} |
