forked from osmocom/wireshark
![Graham Bloice](/assets/img/avatar_default.png)
Drop references to long obsolete compilers. Added Chocolatey installer instructions for some packages. Change-Id: I416d4091b6acaa1ed0d5e586f0427708c4b2d646 Reviewed-on: https://code.wireshark.org/review/5986 Reviewed-by: Graham Bloice <graham.bloice@trihedral.com> Petri-Dish: Graham Bloice <graham.bloice@trihedral.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
417 lines
11 KiB
Text
417 lines
11 KiB
Text
++++++++++++++++++++++++++++++++++++++
|
|
<!-- 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
|
|
http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[] and
|
|
http://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
|
|
|
|
[[ChLibsSetupInitial]]
|
|
|
|
|
|
==== Initial download
|
|
|
|
You can download and install all required libraries by using the `setup` target
|
|
of 'Makefile.nmake' from the source package.
|
|
|
|
[TIP]
|
|
.Use the setup target
|
|
====
|
|
It's a really good idea to use the Win32 automated library download to
|
|
install the required libraries as it makes this download very easy.
|
|
|
|
Before you start the download, you must have installed both the required tools
|
|
(see <<ChapterTools>>) and the Wireshark sources (see <<ChSrcObtain>>).
|
|
====
|
|
|
|
By default the libraries will be downloaded and installed into
|
|
'C:\wireshark-win32-libs' for x86 builds and 'C:\wireshark-win64-libs' for x86_64 builds.
|
|
You can change this to any other location by editing
|
|
'config.nmake' and changing the line containing
|
|
WIRESHARK_LIB_DIR to your favourite place. You must use an absolute path.
|
|
|
|
Then run the command
|
|
|
|
----
|
|
> nmake -f Makefile.nmake setup
|
|
----
|
|
|
|
This will first check for all the various tools needed to build Wireshark
|
|
as described in <<ChToolsWin32Verify>>.
|
|
|
|
Then it will download the zipped libraries (together around 45MB for x86 and 52MB for x64) from the
|
|
server location at
|
|
http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[] into the
|
|
directory specified by WIRESHARK_LIB_DIR and install (unzip) all required
|
|
library files there.
|
|
|
|
If you have problems downloading the library files, you might be connected to
|
|
the internet through a proxy. In this case see the wget proxy comment in
|
|
<<ChToolsWget>>.
|
|
|
|
[[ChLibsSetupUpdate]]
|
|
|
|
==== Update of a previous download
|
|
|
|
As new versions of the libraries become available, maybe with bugfixes or
|
|
some new functionality, your libraries get outdated.
|
|
|
|
You could simply remove everything in the WIRESHARK_LIB_DIR dir and call the
|
|
`setup` target again, but that would require a download of every file again,
|
|
which isn't necessary.
|
|
|
|
The following will bring your libraries up to date:
|
|
|
|
* Update your Wireshark sources to the latest SVN files (see <<ChSrcObtain>>), so the zip filenames in the setup target
|
|
of Makefile.nmake are in sync with the library zip files on the server.
|
|
|
|
* Execute the library setup command as described above.
|
|
+
|
|
--
|
|
----
|
|
> nmake -f Makefile.nmake setup
|
|
----
|
|
|
|
Note that this command will automatically do a `clean-setup` which will
|
|
remove all files previously unzipped from the downloaded files in your
|
|
WIRESHARK_LIB_DIR library path (all the subdirs, e.g.
|
|
'$$c:\wireshark-win32-libs\gtk+$$'),
|
|
except for the zip files located at the toplevel, which are the files
|
|
downloaded the last time(s).
|
|
|
|
Also note that as wget will download only the
|
|
missing (updated) files, existing zip files in the WIRESHARK_LIB_DIR dir won't be
|
|
downloaded again. Remaining (outdated) zip files shouldn't do any harm.
|
|
--
|
|
|
|
[[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 Wireshark's 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
|
|
http://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
|
|
http://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
|
|
http://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 http://www.tcpdump.org/[].
|
|
|
|
[[ChLibsWinpPcap]]
|
|
|
|
==== Win32 MSVC: WinPcap
|
|
|
|
You can get the "Windows packet capture library" at:
|
|
http://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
|
|
http://www.gnu.org/software/gnutls/download.html[].
|
|
|
|
[[ChLibsWin32GNUTLS]]
|
|
|
|
==== Win32 MSVC
|
|
|
|
We provide a package cross-compiled using MinGW32 at
|
|
http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
|
|
|
|
[[ChLibsGcrypt]]
|
|
|
|
=== Gcrypt (optional)
|
|
|
|
The Gcrypt Library is a low-level encryption library that provides
|
|
support for many ciphers, such as DES, 3DES, AES, Blowfish, and others..
|
|
|
|
[[ChLibsUnixGcrypt]]
|
|
|
|
==== Unix
|
|
|
|
If this library isn't already installed or available as a
|
|
package for your platform, you can get it at
|
|
http://directory.fsf.org/security/libgcrypt.html[].
|
|
|
|
[[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
|
|
http://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
|
|
http://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
|
|
http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[] and compiled
|
|
locally.
|
|
|
|
[[ChLibsGeoIP]]
|
|
|
|
=== GeoIP (optional)
|
|
|
|
MaxMind Inc. publishes a GeoIP database for use in open source software.
|
|
It can be used to map IP addresses to geographical locations.
|
|
|
|
[[ChLibsUnixGeoIP]]
|
|
|
|
==== Unix
|
|
|
|
If this library isn't already installed or available as a
|
|
package for your platform, you can get it at
|
|
http://www.maxmind.com/app/c[].
|
|
|
|
[[ChLibsWin32GeoIP]]
|
|
|
|
==== Win32 MSVC
|
|
|
|
We provide a package cross-compiled using MinGW32 at
|
|
http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/[].
|
|
|
|
++++++++++++++++++++++++++++++++++++++
|
|
<!-- End of WSDG Chapter Libraries -->
|
|
++++++++++++++++++++++++++++++++++++++
|
|
|