Commit Graph

62 Commits

Author SHA1 Message Date
Gerald Combs cf3d279e04 CMake: OS X packaging updates.
Add a dmg_package_prep target as an alias to app_bundle. Rename the
osx-dmg target to dmg_package. This matches the Windows packaging
target names.

In osx-app.sh, make sure we rpathify the bundle plugin directory.

Change-Id: If41195c9d405ad6bff865625500a8227b77e8092
Reviewed-on: https://code.wireshark.org/review/10734
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-10-01 21:04:26 +00:00
Gerald Combs 7199fc7cab OS X: Integrate CMake and osx-dmg.sh
Change-Id: Ide608f5e73ecd40c67a6b1c0e16f11233cd49c9d
Reviewed-on: https://code.wireshark.org/review/10694
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-10-01 16:26:25 +00:00
Guy Harris bed3163725 Crank down the log level for macdeployqt.
Adding the additional rpath in the build process appears to have fixed
the problem I was trying to debug.

Change-Id: I518deea67837f7e084e503b8e5ae7c3f188df3c8
Reviewed-on: https://code.wireshark.org/review/9628
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 18:54:37 +00:00
Guy Harris 5c2a98bf57 Don't treat Qt frameworks as dependencies.
macdeployqt will stuff them into the bundle for us; exclude anything in
the Qt frameworks directory from the lists of dependencies for us to
copy or munge.  (We don't copy them correctly - that results in the
underlying binary being copied to the Frameworks directory - and we
leave it up to macdeployqt to do the munging.)

Change-Id: I10cfb8dcb2abadde9d5c52252979267912710f80
Reviewed-on: https://code.wireshark.org/review/9627
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 18:53:01 +00:00
Guy Harris 9f03aa131e On OS X, add an rpath for the Qt frameworks, and remove it in the app bundle.
Qt 5.5 and later have @rpath-based install names for the frameworks,
which means that, if they're not installed in some frameworks directory
searched by default (such as /Library/Frameworks) - which is the default
case with the Qt installer - they won't be found by default.

Add the directory in which the frameworks exist as an rpath in the
Wireshark binary, so that they'll be found, and then remove it from the
Wireshark binary in the app bundle, as the directory in which the
frameworks exist on the machine on which Wireshark was built is
irrelevant to the machines on which it's being deployed - the frameworks
are included in the bundle, and we already add an rpath to find them
there.

Change-Id: I54e033743e7b17eab26976064dcd7cd000f97c78
Reviewed-on: https://code.wireshark.org/review/9625
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 17:35:15 +00:00
Guy Harris 7b9b3d4693 Go back to using macdeployqt for now.
I have some other hammers to try it hit it with to get it to actually
work with Qt 5.5.

Change-Id: Ie20ccbcee62fa48f768ba22478d07b9dc18d0139
Reviewed-on: https://code.wireshark.org/review/9623
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 15:58:22 +00:00
Guy Harris 3a78901935 Rpathify references to Qt frameworks separately from references to libraries.
We need to preserve the full path of the framework binary.

Change-Id: I3a13eaffc07028a26fbd970db02cc1cce3fdcd5d
Reviewed-on: https://code.wireshark.org/review/9621
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 07:54:46 +00:00
Guy Harris eeccdf3fe4 Copy over the entire framework and then clean it up.
That's easier than trying to carefully copy the relevant bits.

Change-Id: I2f174a735bf91f6434929c25ca33aced03e19597
Reviewed-on: https://code.wireshark.org/review/9620
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 04:35:42 +00:00
Guy Harris a8f3b3d3d9 Don't copy the entire framework.
Copy only the stuff needed at run time; don't bother with all the
headers, etc..

Change-Id: Id9d2ec916b6742a6cb6e2ec3c0f7ed1a65a8a93c
Reviewed-on: https://code.wireshark.org/review/9617
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 04:22:22 +00:00
Guy Harris a9d4f20daf Remove unintended removal of a / in a pathname.
Change-Id: Ibc951e418c497e915e4391258677366a077e5531
Reviewed-on: https://code.wireshark.org/review/9616
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 03:58:17 +00:00
Guy Harris 7cf25a5c1f Handle Qt 4 when looking for the Qt frameworks directory.
Do it in a loop, so we can change it to handle Qt 6 if, as, and when it
comes out (assuming they label its packages as Qt6Package).

Change-Id: I1d33d3e9726981b1940fb4409184c486628cb31b
Reviewed-on: https://code.wireshark.org/review/9615
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 03:30:22 +00:00
Guy Harris 0571d849df Handle both @rpath/ and absolute paths in Qt framework install names.
When looking for Qt framework dependencies, look for dependencies that
begin either with @rpath or with the Qt framework directory.

Then, first transform @rpath/ to a path relative to the Qt framework
directory, and then strip off everything past the framework directory,
to get the absolute path of the framework directory (not of the
framework binary - we want to copy the whole framework).

In the loop looking for dependencies on things *other* than Qt
frameworks, exclude Qt framework references with absolute paths from the
dependencies we find; they get processed later.  (We already excluded
those with @rpath paths.)

Change-Id: I1e345a5fb82c758d5c1541693b46cb36d2677fab
Reviewed-on: https://code.wireshark.org/review/9614
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 03:21:54 +00:00
Guy Harris 494457d3b5 Make OS X .app bundling work with Qt 5.5.
macdeployqt doesn't actually seem to deploy any of Qt into the app
bundle, probably because we're using it in a fashion they didn't intend
(i.e., not doing everything with *their* build tools), so we just extend
our dependency-binding stuff to handle the Qt libraries, and copy over
the Qt plugins ourselves.

We also add the rpaths to the executables and libraries as part of the
app bundle building process; I thought it'd fix macdeployqt's problem,
but it didn't, however, it's probably cleaner to do it there anyway.

Change-Id: I134c2b1a32e168e82de67f0b674d17167481d69a
Reviewed-on: https://code.wireshark.org/review/9612
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-07-13 02:12:33 +00:00
Gerald Combs 3d7b728173 Make androiddump loadable on OS X.
Make sure the target location for extcap executables and extcap_dir
match on OS X.

Set the extcap directory to Contents/MacOS/extcap. The Mac Developer
Library documentation doesn't explicitly define "Resources", but
examples include data files and not executables. It does state that
executables shouldn't go into PlugIns.

Make sure we rpathify androiddump.

Change-Id: If36c762e2a1991c26e5c01a870deaf191bcf9f94
Reviewed-on: https://code.wireshark.org/review/8093
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-04-17 18:08:36 +00:00
Guy Harris 502eef945b Fix the path for androiddump.
The androiddump binary ends up in the top-level source directory, not
the extcap subdirectory.

Change-Id: Ia306b35211b885b817802a6a22ed9dbbe07f2532
Reviewed-on: https://code.wireshark.org/review/8037
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-04-12 21:57:14 +00:00
Michal Labedzki 56470cc801 Add missing androiddump stuff
Add missing androiddump stuff like:
- release notes
- documentation
- Windows nmake support
- running androiddump as a windows application instead of console on Windows
- addition of androiddump to the Windows installer

Change-Id: I3bc6cc70e4dc96c0cd776f3d965dd2aa0309995d
Reviewed-on: https://code.wireshark.org/review/7981
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Michal Labedzki <michal.labedzki@tieto.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>
2015-04-12 16:34:46 +00:00
Gerald Combs 2e3147524e Add a missing backslash.
Change-Id: Iac79c885fe10805b61512ed2c02cd652f1c3fd7a
Reviewed-on: https://code.wireshark.org/review/5010
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2014-10-30 21:36:35 +00:00
Gerald Combs 7665ac5fab OS X: Don't add libtool control files to the app bundle.
According to https://developer.apple.com/library/mac/technotes/tn2206
the Contents/PlugIns directory should *only* contain executable files.
Only copy .so (and in case we need them) .dylib files.

Change-Id: I01f077735018733926db92e7576f6f4fecb68862
Reviewed-on: https://code.wireshark.org/review/5008
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2014-10-30 20:54:40 +00:00
Gerald Combs d2bb61a3a9 OS X: Integrate CMake and osx-app.sh
Add a -cb/--create-bundle option to osx-app.sh which builds the
application bundle. Use it in Autotools. (CMake does this by default.)

Copy over linker flags from configure.ac to CMakeLists.txt to support
rpathification and code signing.

Add an osx-app custom target to CMake.

Change-Id: I6c20a1c27f8954aaea62904b7425b9312d994803
Reviewed-on: https://code.wireshark.org/review/4918
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2014-10-23 15:52:53 +00:00
Gerald Combs e5d967bbb4 osx-app.sh: Add verbosity.
Change-Id: I3cd1c49909af34badd0d5c5f29bfcddb753ef2bf
Reviewed-on: https://code.wireshark.org/review/4902
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2014-10-21 23:31:43 +00:00
Gerald Combs 86386243cd Make the "-qt" option the default in the OS X packaging scripts.
Change-Id: I1e404c342d06381be71735ff6fbc47e9b2b13899
Reviewed-on: https://code.wireshark.org/review/4895
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2014-10-21 16:16:56 +00:00
Gerald Combs cf3218df81 OS X packaging fix.
Change-Id: I82936bb1dcfa3a7ca1aea8a3ded388015aa37531
Reviewed-on: https://code.wireshark.org/review/3966
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2014-09-03 01:05:49 +00:00
Gerald Combs aee3de9688 OS X packaging fix: wireshark-qt → wireshark.
Change-Id: Ie95c28ca47baf453335abab23eb7baba63d52f47
Reviewed-on: https://code.wireshark.org/review/3963
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2014-09-02 23:58:26 +00:00
Guy Harris 8241b8760c Get rid of the Python stuff, as we've gotten rid of Python plugin support.
Also, update a comment to more accurately describe what a loop is doing,
and get rid of an unused variable.

Change-Id: I948fc4ad758152b483450bf74f653087c892ad3a
Reviewed-on: https://code.wireshark.org/review/2360
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-06-18 03:22:46 +00:00
Guy Harris 93b5a313ad When building an OS X package for GTK+, put the libraries in lib.
This reverts to the way we did it prior to the switch to Qt; with GTK+,
Contents/MacOS/Wireshark is just a launcher, and the Wireshark binary is
in Contents/Resources/bin/wireshark-bin, and the appropriate rpath entry
would be @executable_path/../lib - @executable_path/../Frameworks, which
works for the Qt version, in which Contents/MacOS/Wireshark is the
actual executable, doesn't work for the GTK+ version.

This should fix bug 10185.

Change-Id: I4e50a4ead8f29a742c97a9001c821aabe1fa5e65
Reviewed-on: https://code.wireshark.org/review/2347
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-06-17 22:06:12 +00:00
Guy Harris 63dc1299ae Get rid of some stuff left over from the days of drag-install.
We're not using the Utilities directory; don't create it and don't fill
it in.

Change-Id: I7ba66b415a2e5a6aff77d4bdb57b2ca176bcd789
Reviewed-on: https://code.wireshark.org/review/2009
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-06-06 21:40:40 +00:00
Alexis La Goutte 757aa33220 Continue to remove $Id$ from top of file
(Using sed : sed -i '/^\# \$Id\$/,+1 d') (start with dash)

Change-Id: Ia4b5a6c2302f6a531f6a86c1ec3a2f8205c8c2dd
Reviewed-on: https://code.wireshark.org/review/881
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-03-31 18:48:06 +00:00
Alexis La Goutte eb2fb39ff7 The 1.11.x installer puts the global plugins in the wrong place [Mac OS X]
Issue found by rols

The installer puts the normal included plugins (e.g. mate, wimax) in
/Applications/Wireshark.app/Contents/Frameworks/wireshark/plugins,
however the global plugins directory is set to
/Applications/Wireshark.app/Contents/Resources/lib/wireshark/plugins
(as it was in previous versions) so no plugins load at startup.
In order to make them load you have to create this directory and
copy the plugins there, or put them in your personal directory.

From remark of Gerald, use recommandation of Bundle Programming Guide (use Contents/PlugIns for plugin)

https://developer.apple.com/library/mac/documentation/corefoundation/conceptual/cfbundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW19

Change-Id: Ib1ae7da48a8fa94f7037912cd44c05532a238b71
Closed-bug: 9854
Reviewed-on: https://code.wireshark.org/review/602
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2014-03-19 11:19:37 +00:00
Gerald Combs 30bdf66b1f Fix permissions for installed OS X files and directories.
Add a cli-preinstall script that creates missing parts of the
installation path and sets their permissions. Simply copy
"utility-launcher" to "wireshark" instead of renaming it at install
time. Explicitly set its ownership and permissions. Pretty-print some of
the PackageMaker XML files via `xmllint --format --recover`.

svn path=/trunk/; revision=53281
2013-11-12 20:38:58 +00:00
Gerald Combs 04a7231d91 More packaging updates.
Specify "Application" or "Installer" code signing identities as needed.
Switch back to productbuild for the package. That seems to be the
correct utility to use. Give the package an ID. Package signing is still
broken but this appears to be closer to being correct.

svn path=/trunk/; revision=53211
2013-11-10 01:31:25 +00:00
Gerald Combs 3f385b31ab Print LC_VERSION_MIN_MACOSX for each executable and library.
svn path=/trunk/; revision=53145
2013-11-07 17:55:46 +00:00
Gerald Combs 31db0135f4 Add some verbosity.
svn path=/trunk/; revision=52929
2013-10-28 19:09:58 +00:00
Gerald Combs 7a3febacac Exit if we're building with Qt and we can't find macdeployqt.
svn path=/trunk/; revision=52853
2013-10-25 21:37:30 +00:00
Gerald Combs 2dd3a651e6 Code signing updates.
Sign executables, libraries, frameworks, plugins, and bundles as per the
Code Signing Guide. Check our work with spctl. Use "bundle" to
differentiate what we're doing with the package script.

svn path=/trunk/; revision=52746
2013-10-21 20:06:14 +00:00
Gerald Combs 98f3bb5f15 Sign all of the executables.
svn path=/trunk/; revision=52663
2013-10-17 22:34:38 +00:00
Gerald Combs c4dcd0ca24 If CODE_SIGN_IDENTITY is set use it to sign the app bundle and the
installer package. Add commented-out code to sign the .dmg as well in
case Apple supports that in the future.

svn path=/trunk/; revision=52633
2013-10-15 23:03:48 +00:00
Gerald Combs 7a1a387d51 Fixes for the utility-launcher script.
If we don't find Wireshark.app in WIRESHARK_APP_DIR or
/Applications/Wireshark.app, look for it using its bundle ID. Add a
description of this process to the Read Me First files. Look for
executables in the right subdirectory depending on our UI flavor.

Make sure we don't add GTK+-specific items to the app bundle if we're
using Qt.

svn path=/trunk/; revision=52502
2013-10-10 17:30:56 +00:00
Gerald Combs 6a8ceca13a Sometimes we need to @rpathify libraries from more than one directory.
Instead of trying to match libraries from $LIBPREFIX, exclude libraries
that aren't in well-known system paths and which haven't previously been
@rpathified.

svn path=/trunk/; revision=52479
2013-10-09 20:49:12 +00:00
Gerald Combs 9f45bac313 Try to fix building the GTK flavor OS X app.
svn path=/trunk/; revision=52442
2013-10-07 19:37:22 +00:00
Gerald Combs 4c1696960b Add Wireshark back to the GTK+ package.
svn path=/trunk/; revision=52323
2013-10-01 21:43:51 +00:00
Gerald Combs 2d1b16fb26 The Qt executables shouldn't need any wrappers. Just copy them over
as-is.

svn path=/trunk/; revision=52303
2013-09-30 17:33:59 +00:00
Gerald Combs 5687b33b4e Make sure we copy Wireshark's libraries to Frameworks. Use top_builddir
instead of top_srcdir. It shouldn't make any difference in our case but
it's more correct.

svn path=/trunk/; revision=52302
2013-09-30 17:19:48 +00:00
Gerald Combs 097feb5a64 Be a little more verbose.
svn path=/trunk/; revision=52297
2013-09-30 15:37:11 +00:00
Gerald Combs 2211ab0fba Use macdeployqt to add the Qt bits to our bundle. Put our libraries in
Contents/Frameworks since that's what macdeployqt expects. Have
osx-dmg.sh look at the correct executable.

svn path=/trunk/; revision=52295
2013-09-30 13:12:28 +00:00
Gerald Combs 2468b33cce More Qt app bundle migration. Still doesn't work quite right.
svn path=/trunk/; revision=52293
2013-09-30 11:29:58 +00:00
Gerald Combs 0a75c9d872 Start migrating the OS X app bundle to Qt. This will likely break the
installers.

svn path=/trunk/; revision=52292
2013-09-30 10:20:43 +00:00
Guy Harris bc239a7286 On OS X, set the rpath for executables to include
@executable_path/../lib as well as /usr/local/lib, so we can use @rpath
in the install names in the executables and libraries in the application
bundle.

Have the osx-app.sh script tweak all references to libraries from
/usr/local/lib in all executables, libraries, and plugins in the app
bundle to use @rpath.  (The "all" is important; it fixes the GTK+ crash
mentioned in the comment in osx-app.sh.  The notion of doing all of them
came from the osx-app.sh script in a newer version of Inkscape.)

This renders the setting of DYLD_LIBRARY_PATH in the wrapper scripts in
the bundle unnecessary; remove it.  (Ideally, we should try to get rid
of the wrapper scripts entirely, but that might have to wait for us to
switch to using Qt.)

svn path=/trunk/; revision=50560
2013-07-13 22:43:35 +00:00
Guy Harris 94c182486c Suggest why the rpathification of the libraries might not be sufficient.
Don't rpathify system libraries.

Rpathify with @rpath, not @executable_path.

Use the right path for the binaries and libraries.

svn path=/trunk/; revision=50547
2013-07-13 01:16:14 +00:00
Guy Harris 519c5affa2 Add a --enable-osx-deploy-target option to set the deployment target
when building for OS X; that causes the MACOSX_DEPLOYMENT_TARGET
environment variable to be set when building (so that, for example, we
don't use linker features available on the version on which we're
building but not on the minimum OS version for which we're building),
and causes the SDK for that version to be used (so that, for example, we
don't link with libraries with later version numbers than the ones
provided with the OS version for which we're building).

svn path=/trunk/; revision=50410
2013-07-06 16:42:30 +00:00
Guy Harris 2b3849b3d8 Default to LIBPREFIX being /usr/local, as that's where macosx-setup.sh
puts them.  If you choose to use MacPorts versions of the library, edit
the script or run it with -l.

Update the usage message and fix a typo.

svn path=/trunk/; revision=46955
2013-01-05 23:11:38 +00:00