macOS: Fix signing issues with notarization

Notarization requires signing with hardened runtime, but this added
requirements to the additional plugins we copy into Qt Creator for the
commercial package.

This patch fixes an issue with an absolute RPATH still being left in
extra plugins, and avoids copying plugins into an already signed
application by not signing the 7zips, but only the contents in the open
source disk image (and the installers are signed by the installer jobs
anyhow).

Change-Id: I8c945a0ad9df610b20a8ee110320875f255c65b4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Eike Ziller
2020-02-13 14:50:15 +01:00
parent e85d6b363b
commit cde9f31068
3 changed files with 40 additions and 29 deletions

View File

@@ -28,7 +28,6 @@
import argparse
import os
import subprocess
import sys
import common
@@ -45,10 +44,16 @@ def parse_arguments():
if __name__ == "__main__":
arguments = parse_arguments()
qt_install_info = common.get_qt_install_info(arguments.qmake_binary)
if common.is_linux_platform():
qt_install_info = common.get_qt_install_info(arguments.qmake_binary)
common.fix_rpaths(arguments.source_directory,
os.path.join(arguments.source_directory, 'lib', 'Qt', 'lib'),
qt_install_info)
if common.is_mac_platform():
# remove Qt rpath
lib_path = qt_install_info['QT_INSTALL_LIBS']
common.os_walk(arguments.source_directory,
lambda fp: fp.endswith('.dylib'),
lambda fp: subprocess.call(['install_name_tool', '-delete_rpath', lib_path, fp]))
subprocess.check_call([arguments.sevenzip, 'a', '-mx9', arguments.target_file,
os.path.join(arguments.source_directory, '*')])