forked from osmocom/wireshark
385 lines
10 KiB
Plaintext
385 lines
10 KiB
Plaintext
// WSDG Chapter Libraries
|
||
|
||
[[ChapterLibraries]]
|
||
|
||
== Library Reference
|
||
|
||
[[ChLibIntro]]
|
||
|
||
=== Introduction
|
||
|
||
Several libraries are needed to build and run Wireshark. Most of them
|
||
are split into three packages:
|
||
|
||
. _Runtime_. System and third party libraries such as _MSVCR110.dll_ and _libglib-2.0-0.dll_.
|
||
|
||
. _Developer_. Documentation, header files, import libraries, and other files needed for compilation.
|
||
|
||
. _Source_. Library sources, which are usually not required to
|
||
build Wireshark.
|
||
|
||
[TIP]
|
||
.Our libraries are freely available
|
||
====
|
||
All libraries required to build Wireshark on Windows are available for download at
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[] and
|
||
https://anonsvn.wireshark.org/wireshark-win64-libs/trunk/packages/[].
|
||
See <<ChLibsSetup>> for an easier way to install them.
|
||
====
|
||
|
||
[[ChLibsFormat]]
|
||
|
||
=== Binary library formats
|
||
|
||
Binary libraries are available in different formats, depending on the C
|
||
compiler used to build it and of course the platform they were built for.
|
||
|
||
|
||
[[ChLibsFormatUnix]]
|
||
|
||
|
||
==== Unix
|
||
|
||
If you have installed unix binary libraries on your system, they will
|
||
match the C compiler. If not already installed, the libraries should be
|
||
available as a package from the platform installer, or you can download
|
||
and compile the source and then install the binaries.
|
||
|
||
|
||
[[ChLibsFormatWin32]]
|
||
|
||
|
||
==== Win32: MSVC
|
||
|
||
Most of the Win32 binary libraries you will find on the web are in this
|
||
format. You will recognize MSVC libraries by the .lib/.dll file extension.
|
||
|
||
|
||
[[ChLibsFormatWin32Cygwin]]
|
||
|
||
|
||
==== Win32: cygwin gcc
|
||
|
||
Cygwin provides most of the required libraries (with file extension .a or .lib)
|
||
for Wireshark suitable for cygwin’s gcc compiler.
|
||
|
||
|
||
[[ChLibsSetup]]
|
||
|
||
|
||
=== Win32: Automated library download
|
||
|
||
The required libraries (apart from Qt) are automatically downloaded as part of
|
||
the CMake generation step, and subsequently as required when libraries are updated.
|
||
|
||
The libraries are downloaded into the directory indicated by the environment
|
||
variable WIRESHARK_BASE_DIR, this must be set appropriately for your environment.
|
||
The libraries are downloaded and extracted into WIRESHARK_BASE_DIR\wireshark-win32-libs
|
||
and WIRESHARK_BASE_DIR\wireshark-win64-libs for 32 and 64 bit builds respectively.
|
||
|
||
You may also directly set the library directory with the environment variable
|
||
WIRESHARK_LIB_DIR, but if you switch between 32 bit and 64 bit builds, the value of this
|
||
must be set appropriately.
|
||
|
||
[[ChLibsQt]]
|
||
|
||
=== Qt
|
||
|
||
The Qt library is used to build the UI for Wireshark and is used to provide a
|
||
platform independent UI. Wireshark can be built with Qt 4.7.0 or later, but we
|
||
recommend using Qt5.
|
||
|
||
For more information on the Qt libraries, see <<ChUIQt>>.
|
||
|
||
[[ChLibsUnixQt]]
|
||
|
||
==== Unix
|
||
|
||
Most Linux distributions provide Qt and its development libraries as standard packages.
|
||
The required libraries and tools will likely be split across several packages. For example,
|
||
building on Ubuntu requires _qttools5-dev_, _qttools5-dev-tools_, _libqt5svg5-dev_,
|
||
_qtmultimedia5-dev_, and possibly others.
|
||
|
||
The Qt Project provides an installation tool for macOS, similar to Windows.
|
||
It is available at https://www.qt.io/download-open-source/#section-2[].
|
||
|
||
[[ChLibsWin32Qt]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
Qt5 must be installed manually, from the Qt installers page
|
||
https://www.qt.io/download-open-source/#section-2[], using the version of Qt
|
||
appropriate for your compiler. Note that separate installations (into different directories) of Qt
|
||
are required for 32 bit and 64 bit builds. The environment variable QT5_BASE_DIR should be
|
||
set as appropriate for your environment and should point to the Qt directory that contains the
|
||
bin directory, e.g. C:\Qt\Qt5.6.2\5.6\msvc2013
|
||
|
||
[[ChLibsGtk]]
|
||
|
||
=== GTK+ / GLib / GDK / Pango / ATK / GNU gettext / GNU libiconv
|
||
|
||
The Glib library is used as a basic platform abstraction library, it’s
|
||
not related to graphical user interface (GUI) things. For a detailed
|
||
description about GLib, see <<ChCodeGLib>>.
|
||
|
||
The GTK and its dependent libraries are used to build the older, deprecated, Wireshark GUI.
|
||
For a detailed description of the GTK libraries, see <<ChUIGTK>>.
|
||
|
||
All other libraries are dependent on the two libraries mentioned above,
|
||
you will typically not come in touch with these while doing Wireshark
|
||
development.
|
||
|
||
As the requirements for the GLib/GTK libraries have increased in the past,
|
||
the required additional libraries depend on the GLib/GTK versions you have.
|
||
The 2.x versions require all mentioned libs.
|
||
|
||
[[ChLibsUnixGTK]]
|
||
|
||
==== Unix
|
||
|
||
The GLib/GTK+ libraries are available for many unix-like platforms and
|
||
Cygwin.
|
||
|
||
If these libraries aren't already installed and also aren't available as a
|
||
package for your platform, you can get them at
|
||
http://www.gtk.org/download.html[].
|
||
|
||
[[ChLibsWin32GTK]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
You can get the latest version at http://www.gtk.org/download.html[].
|
||
|
||
[[ChLibsSMI]]
|
||
|
||
=== SMI (optional)
|
||
|
||
LibSMI is used for MIB and PIB parsing and for OID resolution.
|
||
|
||
[[ChLibsUnixSMI]]
|
||
|
||
==== Unix
|
||
|
||
If this library isn't already installed or available as a
|
||
package for your platform, you can get it at
|
||
http://www.ibr.cs.tu-bs.de/projects/libsmi/[].
|
||
|
||
[[ChLibsWin32SMI]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
Wireshark uses the source libSMI distribution at
|
||
http://www.ibr.cs.tu-bs.de/projects/libsmi/[].
|
||
LibSMI is cross-compiled using MinGW32. It’s stored in the libsmi zip archive at
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
|
||
|
||
[[ChLibsCares]]
|
||
|
||
=== c-ares (optional)
|
||
|
||
C-Ares is used for asynchronous DNS resolution. This is the primary name
|
||
resolution library in Wireshark.
|
||
|
||
[[ChLibsUnixCares]]
|
||
|
||
==== Unix
|
||
|
||
If this library isn't already installed or available as a package for your
|
||
platform, you can get it at http://c-ares.haxx.se/[].
|
||
|
||
[[ChLibsWin32Cares]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
C-Ares is cross-compiled using MinGW32 and is available at
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
|
||
|
||
[[ChLibsZlib]]
|
||
|
||
=== zlib (optional)
|
||
|
||
[quote, The zlib web site, http://www.zlib.net/]
|
||
____
|
||
zlib is designed to be a
|
||
http://www.gzip.org/zlib/zlib_license.html[free],
|
||
general-purpose, legally unencumbered -- that is, not covered by any
|
||
patents -- lossless data-compression library for use on virtually any computer
|
||
hardware and operating system.
|
||
____
|
||
|
||
[[ChLibsUnixZlib]]
|
||
|
||
==== Unix
|
||
|
||
This library is almost certain to be installed on your system. If it isn't or
|
||
you don't want to use the default library you can download it from
|
||
http://www.zlib.net/[].
|
||
|
||
[[ChLibsWin32Zlib]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
The zlib sources are downloaded from
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[] and compiled
|
||
locally.
|
||
|
||
[[ChLibsPcap]]
|
||
|
||
=== libpcap/WinPcap (optional)
|
||
|
||
Libpcap and WinPcap provide that packet capture capabilities that are central
|
||
to Wireshark’s core functionality.
|
||
|
||
[[ChLibsLibpcap]]
|
||
|
||
==== Unix: libpcap
|
||
|
||
If this library isn't already installed or available as a package for your
|
||
platform, you can get it at {tcpdump-main-url}.
|
||
|
||
[[ChLibsWinpPcap]]
|
||
|
||
==== Win32 MSVC: WinPcap
|
||
|
||
You can get the ``Windows packet capture library'' at:
|
||
https://www.winpcap.org/install/[]
|
||
|
||
[[ChLibsGNUTLS]]
|
||
|
||
=== GnuTLS (optional)
|
||
|
||
The GNU Transport Layer Security Library is used to dissect SSL and TLS
|
||
protocols (aka: HTTPS).
|
||
|
||
[[ChLibsUnixGNUTLS]]
|
||
|
||
==== Unix
|
||
|
||
If this library isn't already installed or available as a
|
||
package for your platform, you can get it at
|
||
https://www.gnu.org/software/gnutls/download.html[].
|
||
|
||
[[ChLibsWin32GNUTLS]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
We provide a package cross-compiled using MinGW32 at
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
|
||
|
||
[[ChLibsGcrypt]]
|
||
|
||
=== Gcrypt
|
||
|
||
The Gcrypt Library is a low-level cryptographic library that provides
|
||
support for many ciphers and message authentication codes, such as DES, 3DES,
|
||
AES, Blowfish, SHA-1, SHA-256, and others.
|
||
|
||
[[ChLibsUnixGcrypt]]
|
||
|
||
==== Unix
|
||
|
||
If this library isn't already installed or available as a
|
||
package for your platform, you can get it at
|
||
https://directory.fsf.org/wiki/Libgcrypt[].
|
||
|
||
[[ChLibsWin32Gcrypt]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
Part of our GnuTLS package.
|
||
|
||
[[ChLibsKerberos]]
|
||
|
||
=== Kerberos (optional)
|
||
|
||
The Kerberos library is used to dissect Kerberos, sealed DCERPC and
|
||
secureLDAP protocols.
|
||
|
||
[[ChLibsUnixKerberos]]
|
||
|
||
==== Unix
|
||
|
||
If this library isn't already installed or available as a
|
||
package for your platform, you can get it at
|
||
http://web.mit.edu/Kerberos/dist/[].
|
||
|
||
[[ChLibsWin32Kerberos]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
We provide a package at
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
|
||
|
||
[[ChLibsLua]]
|
||
|
||
=== LUA (optional)
|
||
|
||
The LUA library is used to add scripting support to Wireshark.
|
||
|
||
[[ChLibsUnixLua]]
|
||
|
||
==== Unix
|
||
|
||
If this library isn't already installed or available as a
|
||
package for your platform, you can get it at
|
||
http://www.lua.org/download.html[].
|
||
|
||
[[ChLibsWin32Lua]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
We provide a copy of the official package at
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
|
||
|
||
[[ChLibsPortAudio]]
|
||
|
||
=== PortAudio (optional)
|
||
|
||
The PortAudio library enables audio output for RTP streams.
|
||
|
||
[[ChLibsUnixPortAudio]]
|
||
|
||
==== Unix
|
||
|
||
If this library isn't already installed or available as a
|
||
package for your platform, you can get it at
|
||
http://www.portaudio.com/download.html[].
|
||
|
||
[[ChLibsWin32PortAudio]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
The PortAudio sources are downloaded from
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[] and compiled
|
||
locally.
|
||
|
||
[[ChLibsMaxMindDB]]
|
||
|
||
=== MaxMindDB (optional)
|
||
|
||
MaxMind Inc. publishes a set of IP geolocation databases and related
|
||
open source libraries. They can be used to map IP addresses to
|
||
geographical locations and other information.
|
||
|
||
If libmaxminddb library isn't already installed or available as a
|
||
package for your platform, you can get it at
|
||
https://github.com/maxmind/libmaxminddb[].
|
||
|
||
We provide a package for Windows at
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
|
||
|
||
[[ChLibsWinSparkle]]
|
||
|
||
=== WinSparkle (optional)
|
||
|
||
WinSparkle is an easy-to-use software update library for Windows developers.
|
||
|
||
[[ChLibsWin32WinSparkle]]
|
||
|
||
==== Win32 MSVC
|
||
|
||
We provide a copy of the WinSparkle package at
|
||
https://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
|
||
|
||
// End of WSDG Chapter Libraries
|