@@ -9,19 +9,13 @@ MACOS_VERSION_MAJOR=${MACOS_VERSION_MAJOR%.*}
9
9
MACOS_VERSION_MINOR=${MACOS_VERSION#* .}
10
10
MACOS_VERSION_MINOR=${MACOS_VERSION_MINOR% .* }
11
11
12
- echo " Building Picard..."
13
- rm -rf dist build locale
14
- python3 setup.py clean
15
- python3 setup.py build --disable-locales
16
- python3 setup.py build_locales
17
- python3 setup.py build_ext -i
18
- pyinstaller --noconfirm --clean picard.spec
12
+ APP_BUNDLE=" MusicBrainz Picard.app"
19
13
20
14
CODESIGN=0
21
15
NOTARIZE=0
22
16
KEYCHAIN_PATH=picard.keychain
23
17
KEYCHAIN_PASSWORD=$( openssl rand -base64 32)
24
- CERTIFICATE_NAME =" MetaBrainz Foundation Inc."
18
+ CODESIGN_IDENTITY =" MetaBrainz Foundation Inc."
25
19
CERTIFICATE_FILE=scripts/package/appledev.p12
26
20
27
21
if [ -f " $CERTIFICATE_FILE " ] && [ -n " $CODESIGN_MACOS_P12_PASSWORD " ]; then
@@ -37,50 +31,34 @@ if [ -f "$CERTIFICATE_FILE" ] && [ -n "$CODESIGN_MACOS_P12_PASSWORD" ]; then
37
31
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k " $KEYCHAIN_PASSWORD " " $KEYCHAIN_PATH "
38
32
security find-identity -p codesigning # For debugging
39
33
CODESIGN=1
34
+ export CODESIGN_IDENTITY
40
35
fi
41
36
42
- # Submit app for notarization on macOS >= 10.14
43
- if { [ " $MACOS_VERSION_MAJOR " -eq 10 ] && [ " $MACOS_VERSION_MINOR " -ge 14 ]; } || [ " $MACOS_VERSION_MAJOR " -ge 11 ]; then
44
- NOTARIZE=1
45
- fi
37
+ echo " Building Picard..."
38
+ rm -rf dist build locale
39
+ python3 setup.py clean
40
+ python3 setup.py build --disable-locales
41
+ python3 setup.py build_locales
42
+ python3 setup.py build_ext -i
43
+ pyinstaller --noconfirm --clean picard.spec
46
44
47
45
cd dist
48
46
49
- echo " Create and sign app bundle..."
50
- APP_BUNDLE=" MusicBrainz Picard.app"
51
-
52
47
if [ " $CODESIGN " = ' 1' ]; then
53
- echo " Code signing app bundle ${APP_BUNDLE} ..."
54
- if [ " $NOTARIZE " = " 1" ]; then
55
- # Enable hardened runtime if app will get notarized
56
- codesign --verbose --deep --force \
57
- --options runtime \
58
- --entitlements ../scripts/package/entitlements.plist \
59
- --keychain " $KEYCHAIN_PATH " --sign " $CERTIFICATE_NAME " \
60
- " $APP_BUNDLE "
61
- ../scripts/package/macos-notarize-app.sh " $APP_BUNDLE "
62
- echo " Verifying signature and notarization for app bundle ${APP_BUNDLE} ..."
63
- codesign --verify --verbose --deep --strict=symlinks --check-notarization " $APP_BUNDLE "
64
- else
65
- codesign --verbose --deep --force \
66
- --keychain " $KEYCHAIN_PATH " --sign " $CERTIFICATE_NAME " \
67
- " $APP_BUNDLE "
68
- echo " Verifying signature for app bundle ${APP_BUNDLE} ..."
69
- codesign --verify --verbose --deep --strict=all " $APP_BUNDLE "
70
- fi
48
+ ../scripts/package/macos-notarize-app.sh " $APP_BUNDLE "
49
+ echo " Verifying signature and notarization for app bundle ${APP_BUNDLE} ..."
50
+ codesign --verify --verbose --deep --strict=symlinks --check-notarization " $APP_BUNDLE "
71
51
fi
72
52
73
- # Only test the app if it was codesigned, otherwise execution likely fails
74
- if [ " $CODESIGN " = ' 1' ]; then
75
- " $APP_BUNDLE /Contents/MacOS/picard-run" --long-version --no-crash-dialog || echo " Failed running picard-run"
76
- VERSIONS=$( " $APP_BUNDLE /Contents/MacOS/picard-run" --long-version --no-crash-dialog)
77
- echo " $VERSIONS "
78
- ASTRCMP_REGEX=" astrcmp C"
79
- [[ $VERSIONS =~ $ASTRCMP_REGEX ]] || (echo " Failed: Build does not include astrcmp C" && false)
80
- LIBDISCID_REGEX=" libdiscid [0-9]+\.[0-9]+\.[0-9]+"
81
- [[ $VERSIONS =~ $LIBDISCID_REGEX ]] || (echo " Failed: Build does not include libdiscid" && false)
82
- " $APP_BUNDLE /Contents/Frameworks/fpcalc" -version
83
- fi
53
+ echo " Testing executables..."
54
+ " $APP_BUNDLE /Contents/MacOS/picard-run" --long-version --no-crash-dialog || echo " Failed running picard-run"
55
+ VERSIONS=$( " $APP_BUNDLE /Contents/MacOS/picard-run" --long-version --no-crash-dialog)
56
+ echo " $VERSIONS "
57
+ ASTRCMP_REGEX=" astrcmp C"
58
+ [[ $VERSIONS =~ $ASTRCMP_REGEX ]] || (echo " Failed: Build does not include astrcmp C" && false)
59
+ LIBDISCID_REGEX=" libdiscid [0-9]+\.[0-9]+\.[0-9]+"
60
+ [[ $VERSIONS =~ $LIBDISCID_REGEX ]] || (echo " Failed: Build does not include libdiscid" && false)
61
+ " $APP_BUNDLE /Contents/Frameworks/fpcalc" -version
84
62
85
63
echo " Package app bundle into DMG image..."
86
64
DMG=" MusicBrainz-Picard${VERSION: +-$VERSION }${MACOSX_DEPLOYMENT_TARGET: +-macOS-$MACOSX_DEPLOYMENT_TARGET }${TARGET_ARCH: +-$TARGET_ARCH } .dmg"
108
86
set -e
109
87
110
88
[ " $CODESIGN " = ' 1' ] && codesign --verify --verbose \
111
- --keychain " $KEYCHAIN_PATH " --sign " $CERTIFICATE_NAME " " $DMG "
89
+ --keychain " $KEYCHAIN_PATH " --sign " $CODESIGN_IDENTITY " " $DMG "
112
90
md5 -r " $DMG "
113
91
114
92
if [ -n " $MACOS_UPLOAD " ]; then
0 commit comments