X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=README.macos;h=cac66f37769e65e3543fa49d6fb7e4947e8c8cdd;hb=4741168106105851cb8614eeb89dfd71934b46c7;hp=ea0b1aef7c8193256c7be0797696d8130b3d44c0;hpb=1c5db4d638c32771f5870dd902f8047755cc078d;p=metze%2Fwireshark%2Fwip.git diff --git a/README.macos b/README.macos index ea0b1aef7c..cac66f3776 100644 --- a/README.macos +++ b/README.macos @@ -1,87 +1,148 @@ -$Id$ - -This file tries to help building Wireshark for Mac OS X (Wireshark does -not work on earlier versions of Mac OS). - -In order to build Wireshark, you must have X11 and the X11 developer -headers and libraries installed; otherwise, you will not be able to -build or install GTK+, and will only be able to build TShark. The X11 -and X11 SDK that come with Mac OS X Panther and Tiger are sufficient to -build and run Wireshark. - -The changes to enable libwiretap and libwireshark being built as shared -libraries have broken shared gtk1 builds on Mac OS X. The GLib 1.x and -GTK+ 1.x release tarballs were built with an older version of libtool -that didn't support shared libraries on Mac OS X, so you can't build and -install them as shared libraries, but the shared-library build of -Wireshark requires GLib and GTK+, on Mac OS X, to be shared libraries. -The alternative to build Wireshark as one big statically linked binary -isn't working either (and may never have worked on this OS). - -The way out of this situation is to use gtk2 and associated libraries -which is known to work in this constellation: - - GLib 2.4.0 - Pango 1.4.0 - GTK+ 2.4.0 - ATK 1.6.0 - -and the corresponding dependency, which you can download from the -"dependencies" subdirectory of the GTK+ download directory on the GTK+ -FTP site: - - pkg-config - -as well as GNU gettext, which isn't included in the directory of -dependencies on the GTK+ FTP site. - -GTK+ can also be configured to include code to load various sorts of -images. To do so, you would also need the following dependencies, also -available from the "dependencies" subdirectory of the GTK+ download -directory: - - jpegsrc - libpng - tiff - -However, on Tiger, it appears that the libraries built and installed by -those packages collide with libraries that come with the OS, so you -might have to configure GTK+ not to support loading those images -(Wireshark doesn't use the ability to load JPEG, PNG, or TIFF images), by -using the "--without-libpng", "--without-libjpeg", and -"---without-libtiff" flags when running "configure" in the GTK+ source +This file tries to help building Wireshark for macOS (The Operating +System Formerly Known As Mac OS X And Then OS X) (Wireshark does not +work on the classic Mac OS). + +You must have the developer tools (called Xcode) installed. For +versions of macOS up to and including Snow Leopard, Xcode 3 should be +available on the install DVD; Xcode 4 is available for download from +developer.apple.com and, for Lion and later releases, from the Mac App +Store. See + + http://guide.macports.org/chunked/installing.xcode.html + +for details. For Xcode 4, you will need to install the command-line +tools; select Preferences from the Xcode menu, select Downloads in the +Preferences window, and install Command Line Tools. + +You must also have GLib and, if you want to build Wireshark as well as +TShark, you must have also Qt installed. You can download precompiled +Qt packages and source code from + + https://www.qt.io/download-open-source/ + +or use the tools/macos-setup.sh script described below. + +You should have CMake installed; you can download binary distributions +for macOS from + + https://cmake.org/download/ + +The tools/macos-setup.sh script can be used to download, patch as +necessary, build as necessary, and install those libraries and the +libraries on which they depend, along with tools such as CMake; it will, +by default, also install other libraries that can be used by Wireshark +and TShark. The versions of libraries and tools to download are +specified by variables set early in the script; you can comment out the +settings of optional libraries if you don't want them downloaded and +installed. Before running the tools/macos-setup.sh script, and before +attempting to build Wireshark, make sure your PKG_CONFIG_PATH +environment variable's setting includes /usr/local/lib/pkgconfig. + +The tools/macos-setup.sh script must be run from the top-level source directory. -NOTE: you must set the PKG_CONFIG_PATH environment variable to include -"/usr/X11R6/lib/pkgconfig" (unless you've already set it, set it to -"/usr/X11R6/lib/pkgconfig") before running the Pango configuration -script, so that it can be configured to use the version of fontconfig -that comes with Mac OS X's X11. This is also needed for the GTK+ -configuration. - -NOTE: you must install the pkg-config dependency first; unless it is -installed, you cannot configure GLib or GTK+. After that, you must -install GNU gettext; only after both of those have been built and -installed will you be able to configure GLib. After configuring and -installing GLib, configure, build, and install Pango, ATK, jpegsrc, -libpng, tiff, and GTK+, in order. (The exact order might not be -important, but you must configure, build, and install Pango and ATK -before configuring GTK+ and, if you want GTK+ to be able to use the -capabilities from the other libraries, you must configure, build, and -install them before configuring GTK+.) - -You will need to do "make install-lib" for the JPEG library to install -its libraries - "make install" does not suffice. You will also have to -do "sudo ranlib /usr/local/lib/libjpeg.a" after "make install-lib". - -For libpng, use scripts/makefile.darwin, not scripts/makefile.macosx. - -Finally run the configure script. By default it will use -the Glib2 and GTK+2 libraries. If you run Wireshark's configure script -with the "--disable-gtk2" argument it'll try to configure with GLib -1.2[.x] and GTK+ 1.2[.x], in which case: - - if they're not installed, the configure script will fail; - - if they are installed, the configure script will configure - Wireshark to build with them. +After you have installed those libraries: + + 1. If you have installed Qt into some non-standard place, as is + distinctly possible with the build included with + macos-setup.sh, you must inform cmake by either including its + "bin" directory as part of the PATH environment variable or + setting CMAKE_PREFIX_PATH to the directory above Qt's "lib" + directory. For Qt 5.8 installed into one's home directory, + for instance: + + % export CMAKE_PREFIX_PATH=~/Qt5.8.0/5.8/clang_64 + + This step is unnecessary if you've used a recent version of + Homebrew, as the CMake build scripts will find Qt. + + 2. Make a directory in which Wireshark is to be built, separate + from the top-level source directory for Wireshark - it can be a + subdirectory of that top-level source directory; + + 3. cd to that directory, and run CMake, with an argument that is a + path to the top-level source directory; + + 4. When CMake finishes, run make to build Wireshark. + +For example, to build Wireshark in a subdirectory of the top-level +source directory, named "build", do, from the top-level source +directory; + + mkdir build + cd build + cmake .. + make + +It is also possible to use the Xcode IDE to build and debug Wireshark +using cmake's Xcode generator. Create a separate build directory, as +described above and run cmake with the "-G Xcode" argument to create +a Xcode project file in the current directory. + + cmake -G Xcode .. + + 1. Double click Wireshark.xcodeproj + + 2. Choose to create schemes manually + + 3. Create a scheme for the ALL_BUILD target + + 4. Edit the scheme, go to the run configuration and select Wireshark.app + as executable + +If you upgrade the major release of macOS on which you are building +Wireshark, we advise that, before you do any builds after the upgrade, +you remove the build directory and all its subdiretories, and repeat the +above process, re-running CMake and rebuilding from scratch. + +On Snow Leopard (10.6) and later releases, if you are building on a +machine with a 64-bit processor (with the exception of the early Intel +Core Duo and Intel Core Solo machines, all Apple machines with Intel +processors have 64-bit processors), the C/C++/Objective-C compiler will +build 64-bit by default. + +This means that you will, by default, get a 64-bit version of Wireshark. + +One consequence of this is that, if you built and installed any required +or optional libraries for Wireshark on an earlier release of macOS, those +are probably 32-bit versions of the libraries, and you will need to +un-install them and rebuild them on your current version of macOS, to get +64-bit versions. + +Some required and optional libraries require special attention if you +install them by building from source code on Snow Leopard and later +releases; the tools/macos-setup.sh script will handle that for you. + +GLib - the GLib configuration script determines whether the system's +libiconv is GNU iconv or not by checking whether it has libiconv_open(), +and the compile will fail if that test doesn't correctly indicate +whether libiconv is GNU iconv. In macOS, libiconv is GNU iconv, but the +64-bit version doesn't have libiconv_open(); a workaround for this is to +replace all occurrences of "libiconv_open" with "iconv_open" in the +configure script before running the script. The tools/macos-setup.sh +setup script will patch GLib to work around this. + +libgcrypt - the libgcrypt configuration script attempts to determine +which flavor of assembler-language routines to use based on the platform +type determined by standard autoconf code. That code uses uname to +determine the processor type; however, in macOS, uname always reports +"i386" as the processor type on Intel machines, even Intel machines with +64-bit processors, so it will attempt to assemble the 32-bit x86 +assembler-language routines, which will fail. The workaround for this +is to run the configure script with the --disable-asm argument, so that +the assembler-language routines are not used. The tools/macos-setup.sh +will configure libgcrypt with that option. + +If you want to build Wireshark installer packages on a system that +doesn't include Xcode 3.x or earlier, you will need to install some +additional tools. From the Xcode menu, select the Open Developer Tool +menu, and then select More Developer Tools... from that menu. That will +open up a page on the Apple Developer Connection Web site; you may need +a developer account to download the additional tools. Download the +Auxiliary Tools for Xcode package; when the dmg opens, drag all its +contents to the Contents/Applications subdirectory of the Xcode.app +directory (normally /Applications/Xcode.app/Contents/Applications); then +copy .../Contents/Applications/PackageMaker.app/Contents/MacOS/PackageMaker +to /usr/bin/packagemaker (the PackageMaker app, when run from the +command line rather than as a double-clicked app, is the packagemaker +command).