Revert "CMake: Replace our wrapper scripts with symlinks"

Revert 9864a877ce, since it causes problems with Sparkle:

    error	13:09:41.018537-0700	Wireshark	Error: the bundle being updated at NSBundle </path/to/wireshark/build/run> (loaded) has no CFBundleIdentifier! This will cause preference read/write to not work properly.
    error	13:09:41.019087-0700	Wireshark	Error: the bundle being updated at NSBundle </path/to/wireshark/build/run> (loaded) has no CFBundleIdentifier! This will cause preference read/write to not work properly.
    error	13:09:41.019165-0700	Wireshark	Error: the bundle being updated at NSBundle </path/to/wireshark/build/run> (loaded) has no CFBundleIdentifier! This will cause preference read/write to not work properly.
    error	13:09:41.019216-0700	Wireshark	Error: the bundle being updated at NSBundle </path/to/wireshark/build/run> (loaded) has no CFBundleIdentifier! This will cause preference read/write to not work properly.
    error	13:09:41.019303-0700	Wireshark	This host (/path/to/wireshark/build/run) has no CFBundleVersion! This attribute is required.
    error	13:09:41.019628-0700	Wireshark	Fatal updater error (6): Sparkle cannot target a bundle that does not have a valid bundle identifier for run.

Update the comments in CMakeLists.txt to note this.
This commit is contained in:
Gerald Combs 2023-04-06 10:31:08 -07:00
parent 1fdf7429c0
commit 9f22be9701
2 changed files with 24 additions and 18 deletions

View File

@ -2675,14 +2675,17 @@ if(BUILD_wireshark AND QT_FOUND)
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_BINARY_DIR}/packaging/macosx/WiresharkInfo.plist
)
if(CMAKE_CFG_INTDIR STREQUAL ".")
# Create a convenience link from run/wireshark to its respective
# target in the application bundle.
add_custom_target(wireshark-symlink
COMMAND ln -s -f
Wireshark.app/Contents/MacOS/Wireshark
${CMAKE_BINARY_DIR}/run/wireshark
)
add_dependencies(wireshark wireshark-symlink)
# Add a wrapper script which opens the bundle. This is more convenient
# and lets Sparkle find our CFBundleIdentifier, but means that you have
# to pass the full path to run/Wireshark.app/Contents/MacOS/Wireshark
# to your debugger.
# It is not created if using Xcode
file(REMOVE ${CMAKE_BINARY_DIR}/run/wireshark)
file(WRITE ${CMAKE_BINARY_DIR}/run/wireshark "#!/bin/sh\n")
file(APPEND ${CMAKE_BINARY_DIR}/run/wireshark "# Generated by ${CMAKE_CURRENT_LIST_FILE}\n")
file(APPEND ${CMAKE_BINARY_DIR}/run/wireshark "# Wrapper script which ensures that we're properly activated via Launch Services\n")
file(APPEND ${CMAKE_BINARY_DIR}/run/wireshark "exec ${CMAKE_BINARY_DIR}/run/Wireshark.app/Contents/MacOS/Wireshark \"\$\@\"\n")
execute_process(COMMAND chmod a+x ${CMAKE_BINARY_DIR}/run/wireshark)
endif()
endif()
@ -2775,14 +2778,17 @@ if(BUILD_logray AND QT_FOUND)
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_BINARY_DIR}/packaging/macosx/LograyInfo.plist
)
if(CMAKE_CFG_INTDIR STREQUAL ".")
# Create a convenience link from run/logray to its respective
# target in the application bundle.
add_custom_target(logray-symlink
COMMAND ln -s -f
Logray.app/Contents/MacOS/Logray
${CMAKE_BINARY_DIR}/run/logray
)
add_dependencies(logray logray-symlink)
# Add a wrapper script which opens the bundle. This is more convenient
# and lets Sparkle find our CFBundleIdentifier, but means that you have
# to pass the full path to run/Wireshark.app/Contents/MacOS/Logray
# to your debugger.
# It is not created if using Xcode
file(REMOVE ${CMAKE_BINARY_DIR}/run/logray)
file(WRITE ${CMAKE_BINARY_DIR}/run/logray "#!/bin/sh\n")
file(APPEND ${CMAKE_BINARY_DIR}/run/logray "# Generated by ${CMAKE_CURRENT_LIST_FILE}\n")
file(APPEND ${CMAKE_BINARY_DIR}/run/logray "# Wrapper script which ensures that we're properly activated via Launch Services\n")
file(APPEND ${CMAKE_BINARY_DIR}/run/logray "exec ${CMAKE_BINARY_DIR}/run/Logray.app/Contents/MacOS/Logray \"\$\@\"\n")
execute_process(COMMAND chmod a+x ${CMAKE_BINARY_DIR}/run/logray)
endif()
endif()

View File

@ -295,8 +295,8 @@ Running Wireshark this way can be helpful since debugging output will be display
You can also change Wiresharks behavior by setting various environment variables.
See the {wireshark-man-page-url}wireshark.html#ENVIRONMENT-VARIABLES[ENVIRONMENT VARIABLES] section of the Wireshark man page for more details.
On macOS, Wireshark is built as an application bundle (_run/Wireshark.app_) by default, and _run/wireshark_ will be a symbolic link to the Wireshark executable.
Along with running `run/wireshark` as shown above you can run `open run/Wireshark.app`.
On macOS, Wireshark is built as an application bundle (_run/Wireshark.app_) by default, and _run/wireshark_ will be a wrapper script that runs _Wireshark.app/Contents/MacOS/Wireshark_.
Along with running `./run/wireshark` as shown above you can also run it on the command line with `open run/Wireshark.app`.
[#ChSrcRunFirstTimeWindows]
==== Windows Native