macdeploy: combine appname & -zip arguments
What changed, and why it matters
This is a small build-script cleanup for macOS packaging. It merges two command-line arguments into one so the script that creates the Bitcoin Core .zip file for Mac is slightly simpler. There is no security-relevant change.
No security action needed; routine build-system refactor.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit refactors contrib/macdeploy/macdeployqtplus and its CMake invocation. Previously the script took a positional ‘appname’ argument used only when creating a zip archive, plus a separate ‘-zip’ flag. The patch removes the positional ‘appname’ argument and changes ‘-zip’ to accept the archive name (‘-zip=
Changed components
contrib/macdeploy/macdeployqtpluscmake/module/Maintenance.cmakeInspect captured patch +10 / −10
diff --git a/cmake/module/Maintenance.cmake b/cmake/module/Maintenance.cmake
index 5f4b1d8a..57c3a794 100644
--- a/cmake/module/Maintenance.cmake
+++ b/cmake/module/Maintenance.cmake
@@ -100,7 +100,7 @@ function(add_macos_deploy_target)
if(CMAKE_HOST_APPLE)
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/${osx_volname}.zip
- COMMAND Python3::Interpreter ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR} -zip
+ COMMAND Python3::Interpreter ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} -translations-dir=${QT_TRANSLATIONS_DIR} -zip=${osx_volname}
DEPENDS ${PROJECT_BINARY_DIR}/${macos_app}/Contents/MacOS/Bitcoin-Qt
VERBATIM
)
@@ -113,7 +113,7 @@ function(add_macos_deploy_target)
else()
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/dist/${macos_app}/Contents/MacOS/Bitcoin-Qt
- COMMAND ${CMAKE_COMMAND} -E env OBJDUMP=${CMAKE_OBJDUMP} $<TARGET_FILE:Python3::Interpreter> ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR}
+ COMMAND ${CMAKE_COMMAND} -E env OBJDUMP=${CMAKE_OBJDUMP} $<TARGET_FILE:Python3::Interpreter> ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} -translations-dir=${QT_TRANSLATIONS_DIR}
DEPENDS ${PROJECT_BINARY_DIR}/${macos_app}/Contents/MacOS/Bitcoin-Qt
VERBATIM
)
diff --git a/contrib/macdeploy/macdeployqtplus b/contrib/macdeploy/macdeployqtplus
index ba532d77..571485e5 100755
--- a/contrib/macdeploy/macdeployqtplus
+++ b/contrib/macdeploy/macdeployqtplus
@@ -390,12 +390,11 @@ Note, that the "dist" folder will be deleted before deploying on each run.
Optionally, Qt translation files (.qm) can be added to the bundle.""")
ap.add_argument("app_bundle", nargs=1, metavar="app-bundle", help="application bundle to be deployed")
-ap.add_argument("appname", nargs=1, metavar="appname", help="name of the app being deployed")
ap.add_argument("-verbose", nargs="?", const=True, help="Output additional debugging information")
ap.add_argument("-no-plugins", dest="plugins", action="store_false", default=True, help="skip plugin deployment")
ap.add_argument("-no-strip", dest="strip", action="store_false", default=True, help="don't run 'strip' on the binaries")
ap.add_argument("-translations-dir", nargs=1, metavar="path", default=None, help="Path to Qt's translations. Base translations will automatically be added to the bundle's resources.")
-ap.add_argument("-zip", nargs="?", const="", metavar="zip", help="create a .zip containing the app bundle")
+ap.add_argument("-zip", nargs=1, metavar="zip", help="create a .zip containing the app bundle")
config = ap.parse_args()
@@ -404,7 +403,6 @@ verbose = config.verbose
# ------------------------------------------------
app_bundle = config.app_bundle[0]
-appname = config.appname[0]
if not os.path.exists(app_bundle):
sys.stderr.write(f"Error: Could not find app bundle \"{app_bundle}\"\n")
@@ -416,10 +414,6 @@ if os.path.exists("dist"):
print("+ Removing existing dist folder +")
shutil.rmtree("dist")
-if os.path.exists(appname + ".zip"):
- print("+ Removing existing .zip +")
- os.unlink(appname + ".zip")
-
# ------------------------------------------------
target = os.path.join("dist", "Bitcoin-Qt.app")
@@ -499,7 +493,13 @@ if platform.system() == "Darwin":
# ------------------------------------------------
if config.zip is not None:
- shutil.make_archive('{}'.format(appname), format='zip', root_dir='dist', base_dir='Bitcoin-Qt.app')
+ name = config.zip[0]
+
+ if os.path.exists(name + ".zip"):
+ print("+ Removing existing .zip +")
+ os.unlink(name + ".zip")
+
+ shutil.make_archive('{}'.format(name), format='zip', root_dir='dist', base_dir='Bitcoin-Qt.app')
# ------------------------------------------------
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.