Commit Graph

60 Commits

Author SHA1 Message Date
Gerald Combs e1db561aa2 macOS: Fixup our signature identifiers
Pass a prefix to `codesign` so that our signature identifier is
"org.wireshark.foo" instead of "foo" for our command line utilities,
libraries, and ChmodBPF.
2023-02-07 01:43:13 +00:00
Gerald Combs 75742c81b6 macOS: Copy our top-level .pkgs instead of symlinking them
Make copies of our top-level packages instead of symlinking them. Blind
attempt at fixing #18830.

Switch to UDZO for our application disk images as recommended in
https://developer.apple.com/forums/thread/128166

[skip ci]
2023-01-29 18:54:50 +00:00
Gerald Combs d44c4193e0 macOS packaging: Clarify an issue with libbrotli. 2022-12-11 20:31:46 +00:00
Gerald Combs 308d9d1856 macOS: Make sure we rpathify QtNetwork.
QtNetwork might be linked with brotli, so make sure we fix up its rpath.
2022-08-18 12:19:54 -07:00
Gerald Combs bf6f2068ab macOS: Try to make sure we can find brotli.
libbrotlidec and libbrotlicommon show up in `otool -L` without any path
information on the macOS builders, similar to what's described at

https://github.com/google/brotli/issues/934

Try to work around this in osx-app.sh.
2022-08-18 11:11:14 -07:00
Gerald Combs 75efbb1ac4 Rename Logwolf to Logray
Switch to the name "Logray" for the log analyzer. Rays are biological
cousins of sharks and more people like the name "Logray" in a completely
unscientific survey here. Apologies for any inconvenience this might
cause.
2022-07-06 15:04:25 +00:00
Gerald Combs c2fd505516 macOS: Even more Sparkle 2 signing fixes.
Sparkle's XPC services are only needed if we're sandboxing, so remove
them.

[skip ci]
2022-04-20 14:28:17 -07:00
Gerald Combs d024502c8b macOS: More Sparkle 2 signing fixes.
Sign our XPCs. Add another Brotli fixup.
2022-04-20 12:50:29 -07:00
Gerald Combs 486fd46fe9 macOS: Update our app bundle for Sparkle 2.
Update our application bundle script to handle Sparkle 2 and its assets.
2022-04-20 11:23:24 -07:00
Gerald Combs 167d44ea6d CMake+packaging: Create our macOS Frameworks directory in osx-app.sh. 2022-04-04 09:39:27 -07:00
Gerald Combs 211353c873 CMake+packaging: Add a logwolf_app_bundle target.
Add a logwolf_app_bundle target and update osx-app.sh to handle
different application bundle names.
2022-04-04 09:39:27 -07:00
Gerald Combs 93d9b799b7 macOS: Fix our dSYM bundle name. 2022-03-05 15:49:01 -08:00
Gerald Combs 1677e0a8f9 Packaging: Ship macOS dSYMs in their own .dmg.
Create a Wireshark.dSYM bundle for our debugging symbols. Create a
separate .dmg for the dSYM bundle, similar to what we do for Windows.
`dwarfdump --uuid run/Wireshark.dSYM` returns what app

This reduces the size of the application bundle and .dmg quite a bit
(sizes measured with `du -sm`):

51	Wireshark 3.7.0 Intel 64.dmg
81	Wireshark dSYM 3.7.0 Intel 64.dmg
182	Wireshark.app
262	Wireshark.dSYM
2022-03-05 14:32:53 -08:00
Gerald Combs 64275ff196 macOS: Update some comments in osx-app.sh. 2021-11-15 09:26:20 -08:00
Gerald Combs e3159ae631 macOS: Add a workaround for libpcre2.
Work around an issue with libpcre2 similar to what we do for libsnappy
and libssh.
2021-11-14 17:06:38 -08:00
Gerald Combs bf45e8c3f1 macOS: Add a workaround for libsnappy.
Work around an issue with libsnappy similar to what we do with libssh.
2020-12-16 21:31:29 +00:00
Gerald Combs 574aa22870 macOS: Fix a sanity check.
Change-Id: I1ae61bcc70f5994661b88d6a3c1a93e038b6b6cf
Reviewed-on: https://code.wireshark.org/review/36199
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2020-02-26 21:52:21 +00:00
Gerald Combs 47bd34873b macOS: Add a sanity check.
Check the file permissions in our application bundle.

Ping-Bug: 16407
Change-Id: I41c9dc903f764ea74b6f34a21ecb99d44bd1658f
Reviewed-on: https://code.wireshark.org/review/36193
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2020-02-26 21:03:08 +00:00
Gerald Combs 9266a27264 macOS: Remove a version check from osx-app.sh.
In osx-app.sh, $VERSION used to hold the minor version of the OS. We no
longer set it and it's probably safe to assume that we're building on
Lion or later, so remove it.

Change-Id: I8e85cd7c2fe2162019c7c436b7865be95d4a33e2
Reviewed-on: https://code.wireshark.org/review/36039
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2020-02-06 17:52:32 +00:00
Gerald Combs 9a5eb26b28 macOS: Force-sign Sparkle's AutoUpdate.app.
Sparkle's AutoUpdate.app has its own signature, which fails Apple's
notarization requirements.

Change-Id: I5fc5490a3e7ef63dd84fe59369ddd8cf42ddeff6
Reviewed-on: https://code.wireshark.org/review/35813
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2020-01-14 21:26:08 +00:00
Gerald Combs 56ed5d49f4 macOS: Use the correct path when building our app bundle.
Use the correct path to the Wireshark executable when finding
dependencies and adding debugging symbols.

Change-Id: Iefafa9d453ce60e77853f2d125769826b4d702c0
Reviewed-on: https://code.wireshark.org/review/35202
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-11-25 02:10:02 +00:00
Gerald Combs 7cc5f4c45f CMake: Work correctly without Sparkle.
Set or clear SPARKLE_LIBRARIES and SPARKLE_INCLUDE_DIRS in
FindSparkle.cmake, similar to what we do in other modules. Use them
instead of SPARKLE_LIBRARY and SPARKLE_INCLUDE_DIR.

Change-Id: I023c711edd6a44421aadf85413da3207d9b08e64
Reviewed-on: https://code.wireshark.org/review/35097
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-11-15 22:34:06 +00:00
Gerald Combs 1cc5b68ac9 macOS: Application bundle fixes.
Copy Sparkle.framework correctly. Force signing so that we replace
Sparkle's signature with ours.

In osx-app.sh, don't sign a file or framework if it's already signed.

Fix the osx-dmg.sh usage message while we're here.

Change-Id: I697073d234958e1d8386650935a132237ad88f64
Reviewed-on: https://code.wireshark.org/review/35095
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-11-15 20:14:36 +00:00
Gerald Combs 02057200fd macOS: Add support for automatic updates using Sparkle.
Add support for automatic updates using the Sparkle framework. Add
FindSparkle.cmake and associated CMake plumbing. Add a public key and
other info to Info.plist.in. Add ui/macosx/sparkle_bridge.{h,m}, which
wraps the Sparkle API. Make code that's specific to WinSparkle
Windows-only.

Add Sparkle installation steps to the macos-setup scripts. Sparkle
prints a warning if your bundle is unsigned (which is the case during
development) so disable installing it by default.

Updating here takes a long time. We might be able to fix that by
shipping our DSYMs separately.

Change-Id: I6cc6671db5657dadc514bda6bf6e1c8bbc9468a5
Reviewed-on: https://code.wireshark.org/review/35090
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-11-15 18:39:04 +00:00
Gerald Combs 5acf14d5c0 macOS: Remove an exit code check.
Change-Id: I2b9d576bf6d5c49dcfa716abb00f80ea067328db
Reviewed-on: https://code.wireshark.org/review/34953
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-11-04 13:48:07 +00:00
Gerald Combs 89890097bd macOS: Properly sign our extra packages.
Use productsign to sign product archives.

Change-Id: I40fd329e6f2b0abc49f1b4b0247eae380de8101b
Reviewed-on: https://code.wireshark.org/review/34951
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-11-04 13:33:53 +00:00
Gerald Combs 75dc0933c6 macOS: Sign our extra packages.
Change-Id: If2e28e4708f1d71fa4e7b549a2ba021557711d4e
Reviewed-on: https://code.wireshark.org/review/34627
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-09-25 23:20:01 +00:00
Gerald Combs e5230a5d10 macOS: Make sure we bundle our plugin dependencies.
Add our plugins to the bundle binary list.

Copy libraries using `install` in order to ensure that we can doctor
them up.

Bug: 15867
Change-Id: I864455f6ef7312938e89493015fd55874ab0a0c3
Reviewed-on: https://code.wireshark.org/review/33744
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-06-26 16:13:57 +00:00
Gerald Combs 867a13d9e6 Fix a couple of shellcheck issues.
Change-Id: Iaebbe5227ffcc581e794a3be1f8b9020fd600f68
Reviewed-on: https://code.wireshark.org/review/33739
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-06-25 15:13:51 +00:00
Gerald Combs 64a56cf7a6 macOS: Add a workaround for libbrotli.
When gathering our dependencies, work around an issue with libbrotli's
install name similar to what we do with libssh.

Bug: 15730
Change-Id: I571746848e3343d81c286be66f6fe6510c698d6f
Reviewed-on: https://code.wireshark.org/review/32990
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-04-26 00:30:45 +00:00
Gerald Combs 6fc00612b4 macOS: Update a comment in osx-app.sh.in.
The answer to the question "do we need to add hardened runtime
entitlements or exceptions?" in osx-app.sh is "yes". Update a comment
accordingly.

Change-Id: Icc6f9ed31838aa6342f405a244e726586e9c0c4d
Reviewed-on: https://code.wireshark.org/review/32703
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-04-03 20:31:43 +00:00
Jason Cohen 00e2434a6f osx app bundle: add entitlement to allow loading 3rd party plugns
This adds the entitlement to everything we sign.  I cannot test a more
granular approach without access to an Apple issued codesigning cert/key
pair.

Bug: 15667
Change-Id: I9fe962a06b681d33853b0944765987e21d21be2d
Reviewed-on: https://code.wireshark.org/review/32700
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-04-03 20:24:12 +00:00
Gerald Combs 2172fe93e1 macOS: Fixup our libssh workaround.
On the previous builder, `otool -L /path/to/libssh.4.dylib` returned a
bare "libssh.4.dylib", which required a workaround. On the new builder
it returns "@rpath/libssh.4.dylib". Adjust the workaround accordinly.

Remove a couple of chmods while we're here. Permission issues are better
addressed elsewhere.

Change-Id: If0692219d9558c77b45620e7aad309853012b7e8
Reviewed-on: https://code.wireshark.org/review/32059
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-02-17 16:46:35 +00:00
Gerald Combs 81338f1664 macOS: Packaging and code signing updates.
Sign our bundle as described in Apple's Code Signing Guide. Enable the
Hardened Runtime when signing.

Look for packagemaker in our PATH before checking specific locations.

Switch from zlib to bzip2 compression for our .dmg. Sign our .dmg.

To do: Notarization.

Change-Id: Ia6556e67998ff247dd3d77d6f040773e070f66cc
Reviewed-on: https://code.wireshark.org/review/32032
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-02-14 19:03:17 +00:00
Gerald Combs aedf6fe1c5 macOS: Fix our plugin path.
In CMake we only used PROJECT_RELEASE_VERSION to construct our plugin
path, so rename it to PLUGIN_PATH_ID. Use a dash to separate version
numbers on macOS in order to allow code signing and a period elsewhere.

In the C code we only used VERSION_RELEASE to construct our plugin path,
so rename it to PLUGIN_PATH_ID.

Change-Id: I02abc591d7857269e8d47b414b61df4b28a25f2d
Reviewed-on: https://code.wireshark.org/review/32013
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-02-13 23:55:10 +00:00
Guy Harris aa1f314464 Fix directory containing compiled plugins in macOS.
They weren't getting put in the version-number subdirectory, so the
plugin loader wasn't finding them.

If that causes problems with codesign, then we need to either

	1) figure out how to make it work with codesign

or

	2) for macOS, not put plugins in a version-number subdirectory
	   ***AND*** change the plugin loading process not to look for
	   compiled in a version-number subdirectory.

Change-Id: I58d344b728d05369d35edef4e4e530f10034e930
Reviewed-on: https://code.wireshark.org/review/32000
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-02-13 03:05:11 +00:00
Gerald Combs 80e33fffce MacOS: Fix a path.
Change-Id: Ie964e6294e5351627c6fbc4a6c7f855558bee55c
Reviewed-on: https://code.wireshark.org/review/31998
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-02-12 21:48:26 +00:00
Gerald Combs 6fef7cdc84 MacOS: Bundle and packaging updates
Update the code signing portions of the packaging scripts to match newer
versions of macOS.

Change-Id: I5e03611d8db61416955e797edcadfcff1404cc38
Reviewed-on: https://code.wireshark.org/review/31996
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-02-12 21:04:19 +00:00
Gerald Combs a1ef5f6899 macOS: Make sure we package our own libraries.
As of 25e1e2c848 we no longer set LIBRARY_OUTPUT_DIRECTORY to
Wireshark.app/Contents/Frameworks. As a result we need to copy them into
place during our packaging process.

Change-Id: Idbdea289dce60e9acf9ab317f4151bfe2c993ddd
Reviewed-on: https://code.wireshark.org/review/31160
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-12-21 17:33:14 +00:00
Gerald Combs cea1686495 macOS: Minimize our dsyms.
Pass --minimize to dsymutil, which reduces the size of our dsyms. Print
the name of each file as we dsymify it.

Change-Id: Ic8b14daa2ceaa07c2c9ca3162020e5861d165f6d
Ping-bug: 15361
Reviewed-on: https://code.wireshark.org/review/31150
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-12-21 05:28:07 +00:00
Gerald Combs 17604f15a1 CMake+macOS: Make sure we're using the right Qt tools.
Qt5CoreConfigExtras.cmake sets Qt5::qmake. Use it to find the
corresponding path to macdeployqt and use those in osx-app.sh.

Change-Id: I2e67f0126e272fc95d40476b9bfc83ab38d73cee
Reviewed-on: https://code.wireshark.org/review/28359
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-06-21 03:32:27 +00:00
Gerald Combs 43a88c230f Fixup a couple of shellcheck "fixes".
Change-Id: If3e6acf28c22cbc98a26c7e12c449e27fdc1321e
Reviewed-on: https://code.wireshark.org/review/28164
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-06-08 23:18:57 +00:00
Gerald Combs f76f9a51b8 Fix a comparison.
Change-Id: Ibecdf6be6c6957afc176e6eb97f60f19b090b40c
Reviewed-on: https://code.wireshark.org/review/28091
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-06-07 21:25:39 +00:00
Gerald Combs 4905983845 More shellcheck checks and fixes.
Remove a libtool check while we're here.

Change-Id: I813add2031480f34ce89f268b541f8939016c2c7
Reviewed-on: https://code.wireshark.org/review/28066
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-06-07 18:11:12 +00:00
Guy Harris 1c1498834d Squelch some warning noise when dsymifying.
Change-Id: I1e6c05ce9d2f08abb7e3f86a95cc7b8f8af56ab2
Reviewed-on: https://code.wireshark.org/review/26124
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-26 21:52:35 +00:00
Guy Harris 7b3ce599ec Dsymify binary files.
See if that makes it possible for CrashReporter to fully symbolicate
crash dumps, so the user gets line numbers and the like in crash dumps
from the OS, and we get them if the user sends a crash dump to us.

Change-Id: I8bb48b2d2f6b3e23fea43c1a3bd3a5a9a97a5c2c
Reviewed-on: https://code.wireshark.org/review/26123
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-26 21:20:10 +00:00
Guy Harris eb2e910124 Remove more cruft.
There's no Wireshark.app/Contents/Resources/bin directory; remove the
variable containing its path, and the part of an error message that
refers to it.

Change-Id: Id41cc00a2671925c50b2075dd3e9d0f84d5bd921
Reviewed-on: https://code.wireshark.org/review/26039
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-23 04:55:37 +00:00
Guy Harris dfe22ab861 Get rid of the -sdkroot option; it doesn't affect anything.
Change-Id: I9797eea30594f5e48b21f1c2daede18777e690b1
Reviewed-on: https://code.wireshark.org/review/26036
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-23 04:44:47 +00:00
Guy Harris 316b858d28 Fix stripping of binaries.
Instead of using the never-defined $binpath (undefined going back to at
least Wireshark 1.0.0 - is it a leftover from the Inkscape version?),
use $bundle_binary_list, to strip all the executables with strip -ur.

(Not that we want to strip anything - we don't even want the debugging
symbols stripped! - but for cleanliness.)

Change-Id: I9c3520ffb418bf9dc206d3ccb55d347c208f3be2
Reviewed-on: https://code.wireshark.org/review/26033
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-23 04:39:02 +00:00
Guy Harris 434d1c9759 Remove a bunch of obsolete code.
We no longer have the code to create a bundle, as we rely on CMake
having done so, at least to the extent of populating the bundle with all
the files we've generated.  Get rid of the code that used to support it,
and the command-line options that are no longer necessary now that we no
longer build code bundles.

Don't have explicit lists of CLI or extcap binaries; instead, just look
for all plain files in Wireshark.app/Contents/MacOS that have read and
execute permissions for owner/group/user.  That way, we don't have to
update the script if we add new binaries or new directories of binaries.

Change-Id: I047296a7889bea71165eebde10f34bec6ea96cc5
Reviewed-on: https://code.wireshark.org/review/26032
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-23 04:23:04 +00:00