First stab at notarization
The distribution will be signed and notarized during an "install" build and is handled by mac/scripts/build_dist.sh. The wrapper scripts, mac/Audacity.sh, is no longer needed as it's function has been integrated into AudacityApp.cpp/main(). Initially, all "hardened entitlements" have been enabled since we don't know which ones plug-ins will need. On Mac and Windows, system sleep will be disabled when recording starts and re-enabled when it ends.
This commit is contained in:
parent
b53b5e54fe
commit
5fe89c6498
|
@ -84,7 +84,9 @@ memory requested or calls longjmp, so callers don't have to check.
|
|||
#define YES 1
|
||||
#define BOOL int
|
||||
|
||||
#if !defined(MAXPATHLEN)
|
||||
#define MAXPATHLEN 256
|
||||
#endif
|
||||
|
||||
/* there are 2 levels of error logging/printing:
|
||||
* BPLIST_LOG and BPLIST_LOG_VERBOSE
|
||||
|
|
|
@ -2,11 +2,31 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.automation.apple-events</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.debugger</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-executable-page-protection</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.audio-input</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.camera</key>
|
||||
<true/>
|
||||
<key>com.apple.security.personal-information.addressbook</key>
|
||||
<true/>
|
||||
<key>com.apple.security.personal-information.calendars</key>
|
||||
<true/>
|
||||
<key>com.apple.security.personal-information.location</key>
|
||||
<true/>
|
||||
<key>com.apple.security.personal-information.photos-library</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -887,7 +887,6 @@
|
|||
28BD8AB1101DF4C700686679 /* BatchEvalCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28BD8AA9101DF4C600686679 /* BatchEvalCommand.cpp */; };
|
||||
28BD8AB2101DF4C700686679 /* CommandDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28BD8AAA101DF4C600686679 /* CommandDirectory.cpp */; };
|
||||
28C3946D1818356800FDDAC9 /* AudacityLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28C3946B1818356800FDDAC9 /* AudacityLogger.cpp */; };
|
||||
28C816BA131255790035BB10 /* Audacity.sh in Install wrapper */ = {isa = PBXBuildFile; fileRef = 28C816B81312555B0035BB10 /* Audacity.sh */; };
|
||||
28C8211D1B5C661E00B53328 /* ViewInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28C8211C1B5C661E00B53328 /* ViewInfo.cpp */; };
|
||||
28CA9E6B1AE60C53005C0BFE /* dBTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 82FF184D13CF01A600C1B664 /* dBTable.cpp */; };
|
||||
28CA9E6C1AE60C53005C0BFE /* dBTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 82FF184E13CF01A600C1B664 /* dBTable.h */; };
|
||||
|
@ -1477,7 +1476,7 @@
|
|||
outputFiles = (
|
||||
"$(DERIVED_FILES_DIR)/$(INPUT_FILE_BASE).mo",
|
||||
);
|
||||
script = "# Always make sure there's an empty English folder. Otherwise, some menu items will be translated to the next language listed\n# in System Preferences/Language & Text\n\nOD=\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/en.lproj\"\nif [ ! -d \"${OD}\" ]\nthen\n mkdir -p \"${OD}\"\n chmod -RH \"${INSTALL_MODE_FLAG}\" \"${OD}\"\n chown -RH \"${INSTALL_OWNER}:${INSTALL_GROUP}\" \"${OD}\"\nfi\n\nif [ -n \"`which msgfmt`\" ]\nthen\n msgfmt -c -v -o \"${SCRIPT_OUTPUT_FILE_0}\" \"${SCRIPT_INPUT_FILE}\"\n\n OD=\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/${INPUT_FILE_BASE}.lproj\"\n if [ ! -d \"${OD}\" ]\n then\n mkdir -p \"${OD}\"\n chmod -RH \"${INSTALL_MODE_FLAG}\" \"${OD}\"\n chown -RH \"${INSTALL_OWNER}:${INSTALL_GROUP}\" \"${OD}\"\n fi\n\n cp \"${SCRIPT_OUTPUT_FILE_0}\" \"${OD}/audacity.mo\"\n chmod \"${INSTALL_MODE_FLAG}\" \"${OD}/audacity.mo\"\n chown \"${INSTALL_OWNER}:${INSTALL_GROUP}\" \"${OD}/audacity.mo\"\n\n case \"${INPUT_FILE_BASE}\" in\n gl)\n\t\tINPUT_FILE_BASE=gl_ES\n ;;\n ko)\n INPUT_FILE_BASE=ko_KR\n ;;\n pt_PT)\n INPUT_FILE_BASE=pt\n ;;\n eu_ES)\n INPUT_FILE_BASE=eu\n ;;\n esac\n\n if [ -e \"${WX_PREFIX}/share/locale/${INPUT_FILE_BASE}/LC_MESSAGES/wxstd.mo\" ]\n then\n cp \"${WX_PREFIX}/share/locale/${INPUT_FILE_BASE}/LC_MESSAGES/wxstd.mo\" \"${OD}/wxstd.mo\"\n chmod \"${INSTALL_MODE_FLAG}\" \"${OD}/wxstd.mo\"\n chown \"${INSTALL_OWNER}:${INSTALL_GROUP}\" \"${OD}/wxstd.mo\"\n fi\n \nelse\n echo \"msgfmt not available\"\n touch \"${SCRIPT_OUTPUT_FILE_0}\"\nfi";
|
||||
script = "# Always make sure there's an empty English folder. Otherwise, some menu items will be translated to the next language listed\n# in System Preferences/Language & Text\n\nOD=\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/en.lproj\"\nif [ ! -d \"${OD}\" ]\nthen\n mkdir -p \"${OD}\"\n chmod -RH \"${INSTALL_MODE_FLAG}\" \"${OD}\"\n chown -RH \"${INSTALL_OWNER}:${INSTALL_GROUP}\" \"${OD}\"\nfi\n\nif [ -n \"`which msgfmt`\" ]\nthen\n msgfmt -c -v -o \"${SCRIPT_OUTPUT_FILE_0}\" \"${SCRIPT_INPUT_FILE}\"\n\n OD=\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/${INPUT_FILE_BASE}.lproj\"\n if [ ! -d \"${OD}\" ]\n then\n mkdir -p \"${OD}\"\n chmod -RH \"${INSTALL_MODE_FLAG}\" \"${OD}\"\n chown -RH \"${INSTALL_OWNER}:${INSTALL_GROUP}\" \"${OD}\"\n fi\n\n cp \"${SCRIPT_OUTPUT_FILE_0}\" \"${OD}/audacity.mo\"\n chmod \"${INSTALL_MODE_FLAG}\" \"${OD}/audacity.mo\"\n chown \"${INSTALL_OWNER}:${INSTALL_GROUP}\" \"${OD}/audacity.mo\"\n\n case \"${INPUT_FILE_BASE}\" in\n gl)\n\t\tINPUT_FILE_BASE=gl_ES\n ;;\n ko)\n INPUT_FILE_BASE=ko_KR\n ;;\n pt_PT)\n INPUT_FILE_BASE=pt\n ;;\n eu_ES)\n INPUT_FILE_BASE=eu\n ;;\n esac\n\n if [ -e \"${WX_PREFIX}/share/locale/${INPUT_FILE_BASE}/LC_MESSAGES/wxstd.mo\" ]\n then\n cp \"${WX_PREFIX}/share/locale/${INPUT_FILE_BASE}/LC_MESSAGES/wxstd.mo\" \"${OD}/wxstd.mo\"\n chmod \"${INSTALL_MODE_FLAG}\" \"${OD}/wxstd.mo\"\n chown \"${INSTALL_OWNER}:${INSTALL_GROUP}\" \"${OD}/wxstd.mo\"\n fi\n \nelse\n echo \"msgfmt not available\"\n touch \"${SCRIPT_OUTPUT_FILE_0}\"\nfi\n";
|
||||
};
|
||||
/* End PBXBuildRule section */
|
||||
|
||||
|
@ -1659,17 +1658,6 @@
|
|||
name = "Install miscellany";
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
};
|
||||
28C816B7131255550035BB10 /* Install wrapper */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 12;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 6;
|
||||
files = (
|
||||
28C816BA131255790035BB10 /* Audacity.sh in Install wrapper */,
|
||||
);
|
||||
name = "Install wrapper";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
ED95519E195D956F0027176E /* Install background image */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 8;
|
||||
|
@ -2845,7 +2833,6 @@
|
|||
28BD8AB0101DF4C600686679 /* Validators.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = Validators.h; sourceTree = "<group>"; tabWidth = 3; };
|
||||
28C3946B1818356800FDDAC9 /* AudacityLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudacityLogger.cpp; sourceTree = "<group>"; };
|
||||
28C3946C1818356800FDDAC9 /* AudacityLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudacityLogger.h; sourceTree = "<group>"; };
|
||||
28C816B81312555B0035BB10 /* Audacity.sh */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.script.sh; name = Audacity.sh; path = mac/Audacity.sh; sourceTree = "<group>"; };
|
||||
28C8211C1B5C661E00B53328 /* ViewInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ViewInfo.cpp; sourceTree = "<group>"; };
|
||||
28CC03A01AD386CF00826380 /* phasevocoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = phasevocoder.c; sourceTree = "<group>"; };
|
||||
28CC03A11AD386CF00826380 /* phasevocoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = phasevocoder.h; sourceTree = "<group>"; };
|
||||
|
@ -3620,7 +3607,6 @@
|
|||
ED64C821124567ED007CF2FC /* ScoreAlignDialog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = ScoreAlignDialog.cpp; sourceTree = "<group>"; tabWidth = 3; };
|
||||
ED64C822124567ED007CF2FC /* ScoreAlignDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = ScoreAlignDialog.h; sourceTree = "<group>"; tabWidth = 3; };
|
||||
ED85B3CF16A46DDA006DA21D /* hr.po */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = hr.po; path = ../locale/hr.po; sourceTree = SOURCE_ROOT; };
|
||||
ED85B5BA16A47353006DA21D /* Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info copy.plist"; path = "mac/Info copy.plist"; sourceTree = "<group>"; };
|
||||
ED87F4F619863DF500AC520B /* ta.po */ = {isa = PBXFileReference; explicitFileType = sourcecode; fileEncoding = 4; name = ta.po; path = ../locale/ta.po; sourceTree = SOURCE_ROOT; };
|
||||
ED90976B116CAD49002F7479 /* ExtImportPrefs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = ExtImportPrefs.cpp; sourceTree = "<group>"; tabWidth = 3; };
|
||||
ED90976C116CAD49002F7479 /* ExtImportPrefs.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = ExtImportPrefs.h; sourceTree = "<group>"; tabWidth = 3; };
|
||||
|
@ -4329,11 +4315,9 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
174F73C8098D516D009CD6E0 /* Resources */,
|
||||
28C816B81312555B0035BB10 /* Audacity.sh */,
|
||||
28006FFA132C167600BD34D7 /* Install.txt */,
|
||||
178CF4FF0989541C0056CE58 /* configmac.h */,
|
||||
174F73D7098D51AA009CD6E0 /* Info.plist */,
|
||||
ED85B5BA16A47353006DA21D /* Info copy.plist */,
|
||||
);
|
||||
name = mac;
|
||||
path = ..;
|
||||
|
@ -7525,7 +7509,6 @@
|
|||
28708D631B17C3C400496FEB /* Copy wxWidgets libs */,
|
||||
288F0980131A400F0008E860 /* Install manual */,
|
||||
282413DA131D52CE009FD931 /* Install plugins */,
|
||||
28C816B7131255550035BB10 /* Install wrapper */,
|
||||
2892CE28131AFB1900E1E17D /* Install miscellany */,
|
||||
ED95519E195D956F0027176E /* Install background image */,
|
||||
282413D8131D51FC009FD931 /* Create dist */,
|
||||
|
@ -7783,24 +7766,100 @@
|
|||
attributes = {
|
||||
LastUpgradeCheck = 0630;
|
||||
TargetAttributes = {
|
||||
17073EE70988DBDD008541CC = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
17073F610988E121008541CC = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
17073FC30988E561008541CC = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
17073FFD0988EA60008541CC = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
1707401D0988EEAA008541CC = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
170740790988F1BB008541CC = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
170740950988F2F7008541CC = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
170740D30988F820008541CC = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
176A1A5A098B7B8D00DC73B4 = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
176EEBE909A2F16200188F3B = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
176EEC1D09A2F2DD00188F3B = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
1790AFAF09883B6D008A330A = {
|
||||
ProvisioningStyle = Manual;
|
||||
SystemCapabilities = {
|
||||
com.apple.HardenedRuntime = {
|
||||
enabled = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
2800FE060FF322D4005CA9E5 = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
2840CECB0AEB803C00F49FC3 = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
28501EAF0CEED1F00029ABAA = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
2862299E181CE4B600E1AD1A = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
2880527D0DEA694100671EA4 = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
28D489241B5F052C00A2E4DF = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
28E236F40E515D1D00281398 = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
28E67F510A3A160D0021D89F = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
28FADDCA1833C3C500BA4141 = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
65326E6C2253D2BE00844F28 = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
65326E9F2253D68900844F28 = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
ED15212F163C227C00451B5F = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
ED2706F30EF9C3C6007D4FFD = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
EDBFAD07177E5399004CC1C1 = {
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 1790ABE409883346008A330A /* Build configuration list for PBXProject "Audacity" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
ja,
|
||||
fr,
|
||||
de,
|
||||
en,
|
||||
);
|
||||
mainGroup = 1790ABE109883346008A330A;
|
||||
productRefGroup = 1790AFB109883B6D008A330A /* Products */;
|
||||
|
@ -7905,7 +7964,7 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PROJECT_DIR}/scripts/build_dist.sh\"";
|
||||
shellScript = "\"${PROJECT_DIR}/scripts/build_dist.sh\"\n";
|
||||
};
|
||||
282413DA131D52CE009FD931 /* Install plugins */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
|
@ -9299,11 +9358,14 @@
|
|||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||
"CLANG_CXX_LIBRARY[sdk=macosx10.7]" = "libc++";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CODE_SIGN_ENTITLEMENTS = Audacity.entitlements;
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CONFIG_DEBUG = yes;
|
||||
CONFIG_FLAGS = "";
|
||||
CONFIG_STATIC = no;
|
||||
CONFIG_UNICODE = yes;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
FFMPEG_CFLAGS = "-I../lib-src/ffmpeg -D__STDC_CONSTANT_MACROS";
|
||||
FFMPEG_CXXFLAGS = "$(FFMPEG_CFLAGS)";
|
||||
FFMPEG_PREFIX = /usr/local;
|
||||
|
@ -9314,17 +9376,18 @@
|
|||
INFOPLIST_PREFIX_HEADER = build/Info.plist.h;
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
KEEP_PRIVATE_EXTERNS = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
ONLY_LINK_ESSENTIAL_SYMBOLS = YES;
|
||||
ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "";
|
||||
OTHER_LDFLAGS = (
|
||||
"-Xlinker",
|
||||
"-headerpad_max_install_names",
|
||||
);
|
||||
SDKROOT = macosx10.7;
|
||||
SDKROOT = macosx10.9;
|
||||
SSE_CPPFLAGS = "-Xarch_i386 -DAPPLE_I386";
|
||||
TOPLEVEL = ..;
|
||||
USE_HEADERMAP = NO;
|
||||
WARNING_CFLAGS = "";
|
||||
WARNING_CFLAGS = "-Wno-nonnull";
|
||||
WX_CFLAGS = "-I$(WX_PREFIX)/lib/wx/include/osx_cocoa-unicode-$(WX_VER)-$(WX_FLAVOR) -I$(WX_PREFIX)/include/wx-$(WX_VER)-$(WX_FLAVOR) -D_FILE_OFFSET_BITS=64 -DwxDEBUG_LEVEL=1 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__";
|
||||
WX_CONFIG = "$(WX_PREFIX)/bin/wx-config";
|
||||
WX_CXXFLAGS = "$(WX_CFLAGS)";
|
||||
|
@ -9340,7 +9403,6 @@
|
|||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 2812A5B90DF63FF000576305 /* Debug.xcconfig */;
|
||||
buildSettings = {
|
||||
CODE_SIGN_ENTITLEMENTS = Audacity.entitlements;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
|
@ -9632,11 +9694,14 @@
|
|||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||
"CLANG_CXX_LIBRARY[sdk=macosx10.7]" = "libc++";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CODE_SIGN_ENTITLEMENTS = Audacity.entitlements;
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CONFIG_DEBUG = no;
|
||||
CONFIG_FLAGS = "";
|
||||
CONFIG_STATIC = no;
|
||||
CONFIG_UNICODE = yes;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
FFMPEG_CFLAGS = "-I../lib-src/ffmpeg -D__STDC_CONSTANT_MACROS";
|
||||
FFMPEG_CXXFLAGS = "$(FFMPEG_CFLAGS)";
|
||||
FFMPEG_PREFIX = /usr/local;
|
||||
|
@ -9647,17 +9712,18 @@
|
|||
INFOPLIST_PREFIX_HEADER = build/Info.plist.h;
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
KEEP_PRIVATE_EXTERNS = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
ONLY_LINK_ESSENTIAL_SYMBOLS = YES;
|
||||
ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "";
|
||||
OTHER_LDFLAGS = (
|
||||
"-Xlinker",
|
||||
"-headerpad_max_install_names",
|
||||
);
|
||||
SDKROOT = macosx10.7;
|
||||
SDKROOT = macosx10.9;
|
||||
SSE_CPPFLAGS = "-Xarch_i386 -DAPPLE_I386";
|
||||
TOPLEVEL = ..;
|
||||
USE_HEADERMAP = NO;
|
||||
WARNING_CFLAGS = "";
|
||||
WARNING_CFLAGS = "-Wno-nonnull";
|
||||
WX_CFLAGS = "-I$(WX_PREFIX)/lib/wx/include/osx_cocoa-unicode-$(WX_VER)-$(WX_FLAVOR) -I$(WX_PREFIX)/include/wx-$(WX_VER)-$(WX_FLAVOR) -D_FILE_OFFSET_BITS=64 -DwxDEBUG_LEVEL=0 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__";
|
||||
WX_CONFIG = "$(WX_PREFIX)/bin/wx-config";
|
||||
WX_CXXFLAGS = "$(WX_CFLAGS)";
|
||||
|
@ -9673,7 +9739,6 @@
|
|||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 2812A5BD0DF6400E00576305 /* Release.xcconfig */;
|
||||
buildSettings = {
|
||||
CODE_SIGN_ENTITLEMENTS = Audacity.entitlements;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
|
@ -10025,12 +10090,15 @@
|
|||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||
"CLANG_CXX_LIBRARY[sdk=macosx10.7]" = "libc++";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||
CODE_SIGN_ENTITLEMENTS = Audacity.entitlements;
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CONFIG_DEBUG = yes;
|
||||
CONFIG_FLAGS = "";
|
||||
CONFIG_STATIC = no;
|
||||
CONFIG_UNICODE = yes;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
FFMPEG_CFLAGS = "-I../lib-src/ffmpeg -D__STDC_CONSTANT_MACROS";
|
||||
FFMPEG_CXXFLAGS = "$(FFMPEG_CFLAGS)";
|
||||
FFMPEG_PREFIX = /usr/local;
|
||||
|
@ -10041,17 +10109,18 @@
|
|||
INFOPLIST_PREFIX_HEADER = build/Info.plist.h;
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
KEEP_PRIVATE_EXTERNS = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
ONLY_LINK_ESSENTIAL_SYMBOLS = YES;
|
||||
ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "";
|
||||
OTHER_LDFLAGS = (
|
||||
"-Xlinker",
|
||||
"-headerpad_max_install_names",
|
||||
);
|
||||
SDKROOT = macosx10.7;
|
||||
SDKROOT = macosx10.9;
|
||||
SSE_CPPFLAGS = "";
|
||||
TOPLEVEL = ..;
|
||||
USE_HEADERMAP = NO;
|
||||
WARNING_CFLAGS = "";
|
||||
WARNING_CFLAGS = "-Wno-nonnull";
|
||||
WX_CFLAGS = "-I$(WX_PREFIX)/lib/wx/include/osx_cocoa-unicode-$(WX_VER)-$(WX_FLAVOR) -I$(WX_PREFIX)/include/wx-$(WX_VER)-$(WX_FLAVOR) -D_FILE_OFFSET_BITS=64 -DwxDEBUG_LEVEL=1 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__";
|
||||
WX_CONFIG = "$(WX_PREFIX)/bin/wx-config";
|
||||
WX_CXXFLAGS = "$(WX_CFLAGS)";
|
||||
|
@ -10067,7 +10136,6 @@
|
|||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 2812A5B90DF63FF000576305 /* Debug.xcconfig */;
|
||||
buildSettings = {
|
||||
CODE_SIGN_ENTITLEMENTS = Audacity.entitlements;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
|
@ -10101,8 +10169,6 @@
|
|||
"-framework",
|
||||
OpenGL,
|
||||
"-framework",
|
||||
QuickTime,
|
||||
"-framework",
|
||||
IOKit,
|
||||
"-framework",
|
||||
Carbon,
|
||||
|
@ -10485,12 +10551,15 @@
|
|||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||
"CLANG_CXX_LIBRARY[sdk=macosx10.7]" = "libc++";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||
CODE_SIGN_ENTITLEMENTS = Audacity.entitlements;
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CONFIG_DEBUG = no;
|
||||
CONFIG_FLAGS = "";
|
||||
CONFIG_STATIC = no;
|
||||
CONFIG_UNICODE = yes;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
FFMPEG_CFLAGS = "-I../lib-src/ffmpeg -D__STDC_CONSTANT_MACROS";
|
||||
FFMPEG_CXXFLAGS = "$(FFMPEG_CFLAGS)";
|
||||
FFMPEG_PREFIX = /usr/local;
|
||||
|
@ -10501,17 +10570,18 @@
|
|||
INFOPLIST_PREFIX_HEADER = build/Info.plist.h;
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
KEEP_PRIVATE_EXTERNS = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
ONLY_LINK_ESSENTIAL_SYMBOLS = YES;
|
||||
ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS = "";
|
||||
OTHER_LDFLAGS = (
|
||||
"-Xlinker",
|
||||
"-headerpad_max_install_names",
|
||||
);
|
||||
SDKROOT = macosx10.7;
|
||||
SDKROOT = macosx10.9;
|
||||
SSE_CPPFLAGS = "";
|
||||
TOPLEVEL = ..;
|
||||
USE_HEADERMAP = NO;
|
||||
WARNING_CFLAGS = "";
|
||||
WARNING_CFLAGS = "-Wno-nonnull";
|
||||
WX_CFLAGS = "-I$(WX_PREFIX)/lib/wx/include/osx_cocoa-unicode-$(WX_VER)-$(WX_FLAVOR) -I$(WX_PREFIX)/include/wx-$(WX_VER)-$(WX_FLAVOR) -D_FILE_OFFSET_BITS=64 -DwxDEBUG_LEVEL=0 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__";
|
||||
WX_CONFIG = "$(WX_PREFIX)/bin/wx-config";
|
||||
WX_CXXFLAGS = "$(WX_CFLAGS)";
|
||||
|
@ -10527,7 +10597,6 @@
|
|||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 2812A5BD0DF6400E00576305 /* Release.xcconfig */;
|
||||
buildSettings = {
|
||||
CODE_SIGN_ENTITLEMENTS = Audacity.entitlements;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
|
@ -10563,8 +10632,6 @@
|
|||
"-framework",
|
||||
OpenGL,
|
||||
"-framework",
|
||||
QuickTime,
|
||||
"-framework",
|
||||
IOKit,
|
||||
"-framework",
|
||||
Carbon,
|
||||
|
@ -11186,7 +11253,7 @@
|
|||
5EC18ACD219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
17073F890988E15A008541CC /* Build configuration list for PBXNativeTarget "libid3tag" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11197,7 +11264,7 @@
|
|||
5EC18ABF219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
17073FDD0988E584008541CC /* Build configuration list for PBXNativeTarget "libmad" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11208,7 +11275,7 @@
|
|||
5EC18AC0219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
170740050988EA90008541CC /* Build configuration list for PBXNativeTarget "libogg" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11219,7 +11286,7 @@
|
|||
5EC18AC3219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
1707406B0988EEC0008541CC /* Build configuration list for PBXNativeTarget "libsndfile" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11230,7 +11297,7 @@
|
|||
5EC18AC4219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
1707408D0988F1FC008541CC /* Build configuration list for PBXNativeTarget "soundtouch" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11241,7 +11308,7 @@
|
|||
5EC18ACE219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
1707409A0988F30D008541CC /* Build configuration list for PBXNativeTarget "portmixer" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11252,7 +11319,7 @@
|
|||
5EC18ACC219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
170741160988F83B008541CC /* Build configuration list for PBXNativeTarget "libvorbis" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11263,7 +11330,7 @@
|
|||
5EC18AC2219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
176A1B65098B7BDC00DC73B4 /* Build configuration list for PBXNativeTarget "libnyquist" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11274,7 +11341,7 @@
|
|||
5EC18AC1219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
176EEBEB09A2F1D600188F3B /* Build configuration list for PBXNativeTarget "libFLAC" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11285,7 +11352,7 @@
|
|||
5EC18ABD219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
176EEC3E09A2F33100188F3B /* Build configuration list for PBXNativeTarget "libFLAC++" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11296,7 +11363,7 @@
|
|||
5EC18ABE219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
1790ABE409883346008A330A /* Build configuration list for PBXProject "Audacity" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11307,7 +11374,7 @@
|
|||
5EC18AB9219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
1790AFB409883B6E008A330A /* Build configuration list for PBXNativeTarget "Audacity" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11318,7 +11385,7 @@
|
|||
5EC18ABA219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
2800FE1D0FF32326005CA9E5 /* Build configuration list for PBXNativeTarget "portmidi" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11329,7 +11396,7 @@
|
|||
5EC18ACB219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
2840CF1D0AEB803C00F49FC3 /* Build configuration list for PBXNativeTarget "twolame" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11340,7 +11407,7 @@
|
|||
5EC18ACF219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
28501F010CEED1F00029ABAA /* Build configuration list for PBXNativeTarget "libvamp" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11351,7 +11418,7 @@
|
|||
5EC18AC6219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
286229AB181CE4B600E1AD1A /* Build configuration list for PBXNativeTarget "lv2" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11362,7 +11429,7 @@
|
|||
5EC18AC7219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
288052830DEA698A00671EA4 /* Build configuration list for PBXNativeTarget "mod-script-pipe" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11373,7 +11440,7 @@
|
|||
5EC18AC9219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
28D489251B5F052C00A2E4DF /* Build configuration list for PBXLegacyTarget "Create Info Header" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11384,7 +11451,7 @@
|
|||
5EC18ABB219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
28E237030E515D1D00281398 /* Build configuration list for PBXNativeTarget "libscorealign" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11395,7 +11462,7 @@
|
|||
5EC18AD0219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
28E67F5B0A3A160D0021D89F /* Build configuration list for PBXNativeTarget "portaudio-v19" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11406,7 +11473,7 @@
|
|||
5EC18ACA219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
28FADDEA1833C3C500BA4141 /* Build configuration list for PBXNativeTarget "expat" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11417,7 +11484,7 @@
|
|||
5EC18ABC219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
65326E992253D2BE00844F28 /* Build configuration list for PBXNativeTarget "libmp3lame" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11428,7 +11495,7 @@
|
|||
65326E9D2253D2BE00844F28 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
65326EA22253D68900844F28 /* Build configuration list for PBXNativeTarget "libmpg123" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11439,7 +11506,7 @@
|
|||
65326EA62253D68900844F28 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
ED152148163C22A700451B5F /* Build configuration list for PBXNativeTarget "libsoxr" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11450,7 +11517,7 @@
|
|||
5EC18AC5219B5B01000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
ED2706F90EF9C3E4007D4FFD /* Build configuration list for PBXNativeTarget "sbsms" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11461,7 +11528,7 @@
|
|||
5EC18AD1219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
EDBFAD0E177E5399004CC1C1 /* Build configuration list for PBXNativeTarget "mod-nyq-bench" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
@ -11472,7 +11539,7 @@
|
|||
5EC18AC8219B5B02000EFBF9 /* Release64 */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
defaultConfigurationName = Debug64;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
|
|
|
@ -224,10 +224,14 @@
|
|||
<string>auDy</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>AUDACITY_INFO_VERSION</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.music</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<true/>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Audacity version AUDACITY_INFO_VERSION</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>Audacity requires access to the microphone only if you intend to record from it.</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
</dict>
|
||||
|
|
|
@ -1,22 +1,125 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
|
||||
# Function to retrieve a value from a plist
|
||||
function plist
|
||||
{
|
||||
/usr/libexec/PlistBuddy -c "Print ${2}" "${1}"
|
||||
}
|
||||
|
||||
# Function to notarize a file (APP or DMG)
|
||||
function notarize
|
||||
{
|
||||
# Bail if not signing
|
||||
if [ -z "${SIGNING}" ]
|
||||
then
|
||||
return
|
||||
fi
|
||||
|
||||
# Create temporary output file
|
||||
OUTPUT=$(mktemp /tmp/notarization-XXXX)
|
||||
trap "cat '${OUTPUT}' ; rm '${OUTPUT}'" EXIT
|
||||
|
||||
# Send the app off for notarization
|
||||
xcrun altool --notarize-app \
|
||||
--primary-bundle-id "${IDENT}" \
|
||||
--file "${1}" \
|
||||
--username "${NOTARIZE_USERNAME}" \
|
||||
--password "${NOTARIZE_PASSWORD}" \
|
||||
--output-format xml \
|
||||
>"${OUTPUT}"
|
||||
|
||||
# Bail if notarization failed
|
||||
if [ ${?} -ne 0 ]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract the request UUID from the output plist
|
||||
REQ=$(plist "${OUTPUT}" "notarization-upload:RequestUUID")
|
||||
|
||||
# Poll until the request is complete
|
||||
for ((;;))
|
||||
do
|
||||
# Sleep a bit
|
||||
sleep 15s
|
||||
|
||||
# Ask for request status
|
||||
xcrun altool --notarization-info "${REQ}" \
|
||||
--username "${NOTARIZE_USERNAME}" \
|
||||
--password "${NOTARIZE_PASSWORD}" \
|
||||
--output-format xml \
|
||||
>"${OUTPUT}"
|
||||
if [ ${?} -ne 0 ]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract the current status and stop polling if it's no longer in progress
|
||||
STATUS=$(plist "${OUTPUT}" "notarization-info:Status")
|
||||
if [ "${STATUS}" != "in progress" ]
|
||||
then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Bail if the notarization wasn't successful
|
||||
if [ "${STATUS}" != "success" ]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
trap EXIT
|
||||
rm "${OUTPUT}"
|
||||
}
|
||||
|
||||
# Setup
|
||||
VERSION=`awk '/^#define+ AUDACITY_VERSION / {print $3}' build/Info.plist.h`
|
||||
RELEASE=`awk '/^#define+ AUDACITY_RELEASE / {print $3}' build/Info.plist.h`
|
||||
REVISION=`awk '/^#define+ AUDACITY_REVISION / {print $3}' build/Info.plist.h`
|
||||
VERSION=$VERSION.$RELEASE.$REVISION
|
||||
IDENT=$(plist "${INSTALL_ROOT}/Audacity.app/Contents/Info.plist" "CFBundleIdentifier")
|
||||
|
||||
cd "${DSTROOT}"
|
||||
chmod -RH "${INSTALL_MODE_FLAG}" "${TARGET_BUILD_DIR}"
|
||||
chown -RH "${INSTALL_OWNER}:${INSTALL_GROUP}" "${TARGET_BUILD_DIR}"
|
||||
|
||||
echo "Audacity has been installed to: ${DSTROOT}"
|
||||
|
||||
cd ..
|
||||
#
|
||||
# This depends on a file in the builders HOME directory called ".audacity_signing" that
|
||||
# contains the following four lines with the appropriate values specified. If the file
|
||||
# doesn't exist or one of the values is missing the distribution will be built unsigned
|
||||
# and unnotarized.
|
||||
#
|
||||
# CODESIGN_APP_IDENTITY="Developer ID Application:"
|
||||
# CODESIGN_DMG_IDENTITY="Developer ID Installer:"
|
||||
# NOTARIZE_USERNAME="specify your Apple developer email address"
|
||||
# NOTARIZE_PASSWORD="@keychain:APP_PASSWORD"
|
||||
#
|
||||
# For information on how to create that APP_PASSWORD in your keychain, refer to:
|
||||
#
|
||||
# https://support.apple.com/guide/keychain-access/add-a-password-to-a-keychain-kyca1120/mac
|
||||
#
|
||||
# You generate the app-specific password in your Apple developer account and you must specify
|
||||
# "org.audacityteam.audacity" as the application identifier.
|
||||
#
|
||||
SIGNING=
|
||||
if [ -r ~/.audacity_signing ]
|
||||
then
|
||||
source ~/.audacity_signing
|
||||
if [ -n "${CODESIGN_APP_IDENTITY}" -a -n "${CODESIGN_DMG_IDENTITY}" -a -n "${NOTARIZE_USERNAME}" -a -n "${NOTARIZE_PASSWORD}" ]
|
||||
then
|
||||
SIGNING="y"
|
||||
fi
|
||||
fi
|
||||
|
||||
VOL="Audacity $VERSION"
|
||||
DMG="audacity-macos-$VERSION"
|
||||
|
||||
echo "Audacity has been installed to: ${DSTROOT}"
|
||||
cd "${DSTROOT}/.."
|
||||
|
||||
# Make sure we have consistent ownership and permissions
|
||||
chmod -RH "${INSTALL_MODE_FLAG}" "${TARGET_BUILD_DIR}"
|
||||
chown -RH "${INSTALL_OWNER}:${INSTALL_GROUP}" "${TARGET_BUILD_DIR}"
|
||||
|
||||
# Preclean
|
||||
rm -rf "$DMG" "$DMG.dmg" TMP.dmg
|
||||
|
||||
|
@ -24,6 +127,34 @@ rm -rf "$DMG" "$DMG.dmg" TMP.dmg
|
|||
mkdir "$DMG"
|
||||
cp -pR "${DSTROOT}/" "${DMG}"
|
||||
|
||||
# Sign and notarize the app
|
||||
if [ -n "${SIGNING}" ]
|
||||
then
|
||||
xcrun codesign --force \
|
||||
--deep \
|
||||
--verbose \
|
||||
--timestamp \
|
||||
--identifier "${IDENT}" \
|
||||
--options runtime \
|
||||
--entitlements "${SRCROOT}/${CODE_SIGN_ENTITLEMENTS}" \
|
||||
--sign "${CODESIGN_APP_IDENTITY}" \
|
||||
"${DMG}/Audacity.app"
|
||||
|
||||
# Create the ZIP archive for notarization
|
||||
xcrun ditto -c -k --keepParent "${DMG}" "${DMG}.zip"
|
||||
|
||||
# Send it off for notarization
|
||||
notarize "${DMG}.zip"
|
||||
|
||||
# Remove the zip file
|
||||
rm "${DMG}.zip"
|
||||
|
||||
# Staple the app
|
||||
stapler staple "${DMG}/Audacity.app"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
#Add a custom icon for the DMG
|
||||
#cp -p mac/Resources/Audacity.icns "${DMG}"/.VolumeIcon.icns
|
||||
|
||||
|
@ -60,10 +191,7 @@ osascript <<EOF
|
|||
end tell
|
||||
EOF
|
||||
|
||||
#Set the custom icon flag
|
||||
#SetFile -a C /Volumes/"$TITLE"
|
||||
|
||||
#Make our DMG look pretty and install the custom background image
|
||||
# Make our DMG look pretty and install the custom background image
|
||||
echo '
|
||||
tell application "Finder"
|
||||
tell disk "'$TITLE'"
|
||||
|
@ -91,6 +219,18 @@ echo '
|
|||
# Compress and prepare for Internet delivery
|
||||
hdiutil convert TMP.dmg -format UDZO -imagekey zlib-level=9 -o "$DMG.dmg"
|
||||
|
||||
# Sign, notarize and staple the DMG
|
||||
if [ -n "${SIGNING}" ]
|
||||
then
|
||||
xcrun codesign --verbose \
|
||||
--timestamp \
|
||||
--identifier "${IDENT}" \
|
||||
--sign "${CODESIGN_DMG_IDENTITY}" \
|
||||
"${DMG}.dmg"
|
||||
notarize "${DMG}.dmg"
|
||||
stapler staple "${DMG}.dmg"
|
||||
fi
|
||||
|
||||
# Create zip version
|
||||
rm -rf "${DMG}/.background"
|
||||
rm -rf "${DMG}/Audacity.app/help/"
|
||||
|
@ -98,3 +238,6 @@ zip -r9 "${DMG}.zip" "${DMG}"
|
|||
|
||||
# Cleanup
|
||||
rm -rf ${DMG} TMP.dmg
|
||||
|
||||
exit 0
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ case $CONFIGURATION in
|
|||
Debug|Debug64)
|
||||
AUDACITY_EXECUTABLE=Audacity;;
|
||||
*)
|
||||
AUDACITY_EXECUTABLE=Audacity.sh;;
|
||||
AUDACITY_EXECUTABLE=Audacity;;
|
||||
esac
|
||||
cat >mac/build/Info.plist.h <<EOF
|
||||
#define AUDACITY_EXECUTABLE ${AUDACITY_EXECUTABLE}
|
||||
|
|
|
@ -76,7 +76,7 @@ function buildAction
|
|||
if [ ! -e "${swhpath}" ]
|
||||
then
|
||||
echo "Retrieving plugins"
|
||||
ftp -o '|tar xf -' "${swhdist}"
|
||||
curl "${swhdist}" | tar xf -
|
||||
fi
|
||||
|
||||
# Get to where we need to be
|
||||
|
|
|
@ -769,6 +769,43 @@ IMPLEMENT_WX_THEME_SUPPORT
|
|||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Give the user more control over where libraries such as FFmpeg get loaded from.
|
||||
//
|
||||
// Since absolute pathnames are used when loading these libraries, the normal search
|
||||
// path would be DYLD_LIBRARY_PATH, absolute path, DYLD_FALLBACK_LIBRARY_PATH. This
|
||||
// means that DYLD_LIBRARY_PATH can override what the user actually wants.
|
||||
//
|
||||
// So, we move DYLD_LIBRARY_PATH values to the beginning of DYLD_FALLBACK_LIBRARY_PATH
|
||||
// and clear DYLD_LIBRARY_PATH, allowing the users choice to be the first one tried.
|
||||
extern char **environ;
|
||||
|
||||
char *dyld_library_path = getenv("DYLD_LIBRARY_PATH");
|
||||
if (dyld_library_path)
|
||||
{
|
||||
size_t len = strlen(dyld_library_path);
|
||||
if (len)
|
||||
{
|
||||
std::string fallback(dyld_library_path);
|
||||
|
||||
char *dyld_fallback_library_path = getenv("DYLD_FALLBACK_LIBRARY_PATH");
|
||||
if (dyld_fallback_library_path)
|
||||
{
|
||||
size_t fallback_len = strlen(dyld_fallback_library_path);
|
||||
if (fallback_len)
|
||||
{
|
||||
fallback.push_back(':');
|
||||
fallback.append(dyld_fallback_library_path);
|
||||
}
|
||||
}
|
||||
|
||||
fallback.append(":/usr/local/lib:/usr/lib");
|
||||
|
||||
setenv("DYLD_FALLBACK_LIBRARY_PATH", &fallback.front(), 1);
|
||||
unsetenv("DYLD_LIBRARY_PATH");
|
||||
execve(argv[0], argv, environ);
|
||||
}
|
||||
}
|
||||
|
||||
wxDISABLE_DEBUG_SUPPORT();
|
||||
|
||||
return wxEntry(argc, argv);
|
||||
|
|
|
@ -16,6 +16,10 @@ Paul Licameli split from ProjectManager.cpp
|
|||
#include <wx/frame.h>
|
||||
#include <wx/statusbr.h>
|
||||
|
||||
#if defined(__WXMAC__) || defined(__WXMSW__)
|
||||
#include <wx/power.h>
|
||||
#endif
|
||||
|
||||
#include "AudioIO.h"
|
||||
#include "AutoRecovery.h"
|
||||
#include "CommonCommandFlags.h"
|
||||
|
@ -806,6 +810,11 @@ void ProjectAudioManager::OnAudioIORate(int rate)
|
|||
|
||||
void ProjectAudioManager::OnAudioIOStartRecording()
|
||||
{
|
||||
#if defined(__WXMAC__) || defined(__WXMSW__)
|
||||
// Don't want the system to sleep while recording
|
||||
wxPowerResource::Acquire(wxPOWER_RESOURCE_SCREEN, _("Audacity recording"));
|
||||
#endif
|
||||
|
||||
auto &projectFileIO = ProjectFileIO::Get( mProject );
|
||||
// Before recording is started, auto-save the file. The file will have
|
||||
// empty tracks at the bottom where the recording will be put into
|
||||
|
@ -815,6 +824,11 @@ void ProjectAudioManager::OnAudioIOStartRecording()
|
|||
// This is called after recording has stopped and all tracks have flushed.
|
||||
void ProjectAudioManager::OnAudioIOStopRecording()
|
||||
{
|
||||
#if defined(__WXMAC__) || defined(__WXMSW__)
|
||||
// Done recording, so allow sleeping again
|
||||
wxPowerResource::Release(wxPOWER_RESOURCE_SCREEN);
|
||||
#endif
|
||||
|
||||
auto &project = mProject;
|
||||
auto &dirManager = DirManager::Get( project );
|
||||
auto &projectAudioIO = ProjectAudioIO::Get( project );
|
||||
|
|
Loading…
Reference in New Issue