wireshark/docbook/wsdg_src/WSDG_chapter_libraries.xml

535 lines
15 KiB
XML

<!-- WSDG Chapter Libraries -->
<!-- $Id$ -->
<chapter id="ChapterLibraries">
<title>Libraries</title>
<section id="ChLibIntro">
<title>Introduction</title>
<para>
Several libraries are needed to build / run Wireshark. Most of the
libraries are splitted into three packages:
<orderedlist>
<listitem>
<para>
Runtime package: binaries (e.g. win32 DLL's) and alike
</para>
</listitem>
<listitem>
<para>
Developer package: documentation, header files and alike
</para>
</listitem>
<listitem>
<para>
Source package: library sources, usually not required to
build Wireshark
</para>
</listitem>
</orderedlist>
<tip><title>Tip!</title>
<para>
Win32: All required libraries for the MSVC
generation are available at:
<ulink url="http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/"/>,
but see <xref linkend="ChLibsSetup"/> for an easier way to install the
libraries.
</para>
</tip>
</para>
</section>
<section id="ChLibsFormat">
<title>Binary library formats</title>
<para>
Binary libraries are available in different formats, depending on the C
compiler (see <xref linkend="ChToolsCompiler"/>) used to build it and of
course the platform they were build for.
</para>
<section id="ChLibsFormatUnix">
<title>Unix</title>
<para>
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 install that binaries then.
</para>
</section>
<section id="ChLibsFormatWin32MSVC6">
<title>Win32: MSVC V6</title>
<para>
Recommended for current Win32 Wireshark releases.
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.
</para>
</section>
<section id="ChLibsFormatWin32MSVC2003">
<title>Win32: MSVC 2003</title>
<para>
Currently not widely available, but the first libraries in that format can
be seen on the web. These libraries have the same .lib/.dll file
extension, but unfortunately they are not completely compatible as they
are linked with different dependant libraries, see <xref
linkend="ChToolsCompiler"/> for some further explanations.
</para>
</section>
<section id="ChLibsFormatWin32Cygwin">
<title>Win32: cygwin gcc</title>
<para>
Cygwin provides most of the required libraries (with file extension .a/.lib)
for Wireshark suitable for cygwin's gcc compiler.
</para>
</section>
</section>
<section id="ChLibsSetup">
<title>Win32: Automated library download</title>
<para>
You can download/install all required libraries by using the setup target
of the <filename>Makefile.nmake</filename> from the source package.
</para>
<tip><title>Tip!</title>
<para>
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.
</para>
</tip>
<note><title>Note!</title>
<para>
Before you start the download, you must have installed both
the required tools (see <xref linkend="ChapterTools"/>) and also the
Wireshark sources (see <xref linkend="ChSrcObtain"/>).
</para>
</note>
<para>
By default the libraries will be downloaded and installed into
<filename>C:\wireshark-win32-libs</filename>.
You can change this to any other location by editing the file
<filename>config.nmake</filename> and changing the line containing
the WIRESHARK_LIBS setting to your favourite place (use an absolute path
here).
</para>
<para>
Then enter at the command line:
</para>
<para>
<prompt>&gt;</prompt> <userinput>nmake -f Makefile.nmake setup</userinput>
</para>
<para>
This will first check for all the various tools needed to build Wireshark,
as described already in <xref linkend="ChToolsWin32Verify"/>.
</para>
<para>
Then it will download the zipped libraries (together around 30MB!) from
the server location at: <ulink
url="http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/"/>
into the directory specified by WIRESHARK_LIBS and install (unzip) all
required library files there.
</para>
<para>
If you have problems downloading the library files, you might be connected
to the internet through a proxy/firewall.
In this case see the wget proxy comment in <xref linkend="ChToolsWget"/>.
</para>
<section id="ChLibsSetupUpdate">
<title>Update of a previous download</title>
<para>
As new versions of the libraries become available, maybe with bugfixes or
some new functionality, your libraries get outdated.
</para>
<para>
You could simply remove everything in the WIRESHARK_LIBS dir and call the
setup target again, but that would require to download every file again,
which isn't necessary.
</para>
<para>
The following will bring your libraries up to date:
</para>
<itemizedlist>
<listitem>
<para>
Update your Wireshark sources to the latest SVN files (see <xref
linkend="ChSrcObtain"/>), so the zip filenames in the setup target
of Makefile.nmake is in sync with the library zip files on the server.
</para>
</listitem>
<listitem>
<para>
Remove all files previously unzipped from the downloaded files in your
WIRESHARK_LIBS library path (all the subdirs, e.g.
<filename>c:\wireshark-win32-libs\gtk+</filename>),
except for the zip files located at the toplevel, which are the files
downloaded the last time(s). You could do this, be entering at the command line:
</para>
<para>
<prompt>&gt;</prompt> <userinput>nmake -f Makefile.nmake clean_setup</userinput>
</para>
</listitem>
<listitem>
<para>
Start the setup target described above. As wget will download only the
missing files, existing zip files in the WIRESHARK_LIBS dir won't be
downloaded again. Remaining (outdated) zip files shouldn't do any harm.
</para>
</listitem>
</itemizedlist>
</section>
</section>
<section id="ChLibsGtk">
<title>GTK+ / GLib / GDK / Pango / ATK / GNU gettext / GNU libiconv</title>
<para>
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 <xref linkend="ChCodeGLib"/>.
</para>
<para>
The GTK and it's dependant libraries are used to build Wireshark's GUI.
For a detailed description of the GTK libraries, see <xref
linkend="ChUIGTK"/>.
</para>
<para>
All other libraries are dependant on the two libraries mentioned above,
you will typically not come in touch with these while doing Wireshark
development.
</para>
<para>
As the requirements for the GLib/GTK libraries increased in the past, it
depends on the GLib/GTK versions you have, which additional libraries are
required. The 1.x versions only needed GLib/GDK/GTK+, while the 2.x
versions require all mentioned libs.
</para>
<section id="ChLibsUnixGTK">
<title>Unix</title>
<para>
The GLib/GTK+ libraries are available for many unix-like platforms and
cygwin.
</para>
<para>
If these libraries aren't already installed and also not available as a
package for your platform, you can get them at:
<ulink url="http://www.gtk.org"/>.
</para>
</section>
<section id="ChLibsWin32GTK">
<title>Win32 MSVC</title>
<para>
You can get the latest version at:
<ulink url="http://www.gimp.org/%7Etml/gimp/win32/downloads.html"/>.
</para>
</section>
</section>
<section id="ChLibsSNMP">
<title>Net SNMP (optional, previously known as "ucd-snmp")</title>
<para>
"Various tools relating to the Simple Network Management Protocol"
</para>
<section id="ChLibsUnixSNMP">
<title>Unix</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://sourceforge.net/projects/net-snmp/"/>.
</para>
</section>
<section id="ChLibsWin32SNMP">
<title>Win32 MSVC</title>
<para>
Wireshark uses the source Net-SNMP distribution at
<ulink url="http://sourceforge.net/projects/net-snmp/"/>.
Then libsnmp is compiled with the "libsnmp - Win32 Release" project
using MSVC++ 6.0. A file called "README.wireshark" has been placed in the
net-snmp zip archive at <ulink
url="http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/"/>
describing the changes in more detail.
</para>
</section>
</section>
<section id="ChLibsADNS">
<title>GNU adns (optional)</title>
<para>
"Advanced, easy to use, asynchronous-capable DNS client library and
utilities."
</para>
<section id="ChLibsUnixADNS">
<title>Unix</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://www.gnu.org/software/adns/"/>.
</para>
</section>
<section id="ChLibsWin32ADNS">
<title>Win32 MSVC</title>
<para>
You can get the latest version at:
<ulink url="http://adns.jgaa.com/"/>
</para>
</section>
</section>
<section id="ChLibsPCRE">
<title>PCRE (optional)</title>
<para>
"Perl compatible regular expressions"
</para>
<section id="ChLibsUnixPCRE">
<title>Unix</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://www.pcre.org/"/>.
</para>
</section>
<section id="ChLibsWin32PCRE">
<title>Win32 MSVC</title>
<para>
You can get the latest version at:
<ulink url="http://gnuwin32.sourceforge.net/packages/pcre.htm"/>
</para>
</section>
</section>
<section id="ChLibsZlib">
<title>zlib (optional)</title>
<para>
"zlib is designed to be a
<ulink url="http://www.gzip.org/zlib/zlib_license.html">free</ulink>,
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."
</para>
<section id="ChLibsUnixZlib">
<title>Unix</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://www.gzip.org/zlib/"/>.
</para>
</section>
<section id="ChLibsWin32Zlib">
<title>Win32 MSVC</title>
<para>
You can get the latest version at:
<ulink url="http://gnuwin32.sourceforge.net/packages/zlib.htm"/>
</para>
<para>
(A version for the MSVC2003 compiler can be found at:
<ulink url="http://www.winimage.com/zLibDll/"/>)
</para>
</section>
</section>
<section id="ChLibsPcap">
<title>libpcap/WinPcap (optional)</title>
<para>
"packet capture library"
</para>
<section id="ChLibsLibpcap">
<title>Unix: libpcap</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://www.tcpdump.org/"/>.
</para>
</section>
<section id="ChLibsWinpPcap">
<title>Win32 MSVC: WinPcap</title>
<para>
You can get the "Windows packet capture library" at:
<ulink url="http://www.winpcap.org/install/default.htm"/>
</para>
</section>
</section>
<section id="ChLibsGNUTLS">
<title>GnuTLS (optional)</title>
<para>
The "GNU Transport Layer Security Library" is used to dissect SSL and TLS
protocols (aka: HTTPS).
</para>
<section id="ChLibsUnixGNUTLS">
<title>Unix</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://www.gnu.org/software/gnutls/download.html"/>.
</para>
</section>
<section id="ChLibsWin32GNUTLS">
<title>Win32 MSVC</title>
<para>
We roll our own version using:
<ulink url="http://josefsson.org/gnutls4win/"/>
</para>
</section>
</section>
<section id="ChLibsGcrypt">
<title>Gcrypt (optional)</title>
<para>
The "Gcrypt Library" is Low-level encryption library and provides
support for many ciphers, such as DES, 3DES, AES, Blowfish, and others..
</para>
<section id="ChLibsUnixGcrypt">
<title>Unix</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://directory.fsf.org/security/libgcrypt.html"/>.
</para>
</section>
<section id="ChLibsWin32Gcrypt">
<title>Win32 MSVC</title>
<para>
Part of our homemade GnuTLS package.
</para>
</section>
</section>
<section id="ChLibsKerberos">
<title>Kerberos (optional)</title>
<para>
The Kerberos library is used to dissect Kerberos, sealed DCERPC and
secureLDAP protocols.
</para>
<section id="ChLibsUnixKerberos">
<title>Unix</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://web.mit.edu/Kerberos/dist/"/>.
</para>
<para>
XXX - Is it supported on *NIX at all?
</para>
</section>
<section id="ChLibsWin32Kerberos">
<title>Win32 MSVC</title>
<para>
You can get the latest version of KfW "Kerberos for Windows" at:
<ulink url="http://web.mit.edu/Kerberos/dist/"/>
</para>
</section>
</section>
<section id="ChLibsLua">
<title>LUA (optional)</title>
<para>
The LUA library is used to add scripting support to Wireshark.
</para>
<section id="ChLibsUnixLua">
<title>Unix</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://www.lua.org/download.html"/>.
</para>
</section>
<section id="ChLibsWin32Lua">
<title>Win32 MSVC</title>
<para>
You can get the latest version at:
<ulink url="http://luaforge.net/frs/?group_id=110"/>
</para>
</section>
</section>
<section id="ChLibsPortAudio">
<title>PortAudio (optional)</title>
<para>
The PortAudio library enables audio output for RTP streams.
</para>
<section id="ChLibsUnixPortAudio">
<title>Unix</title>
<para>
If this library isn't already installed and also not available as a
package for your platform, you can get it at:
<ulink url="http://www.portaudio.com/download.html"/>.
</para>
</section>
<section id="ChLibsWin32PortAudio">
<title>Win32 MSVC</title>
<para>
You can get the latest version at:
<ulink url="http://www.portaudio.com/download.html"/>
</para>
</section>
</section>
<section id="ChLibsWimp">
<title>Win32: GTK WIMP (optional) for GTK 2.x only</title>
<para>
"GTK-Wimp ("Windows impersonator") is a GTK theme that blends well into
the Windows desktop environment."
</para>
<para>
GTK-Wimp can be used to get a native Look-and-Feel on WinXP machines,
especially with the "coloured" WinXP theme. It will only take effect
together with the GTK2 version of Wireshark.
</para>
<para>
No changes to the Wireshark sources are needed, GTK-Wimp simply changes
the way GTK2 displays the widgets (by changing the GTK2 default theme).
</para>
<para>
Wimp is available at:
<ulink url="http://gtk-wimp.sourceforge.net/"/>.
</para>
<para>
Since GTK version 2.8 the GTK Wimp is included in the GTK releases,
so no need to download/install it seperately if these versions used.
</para>
</section>
</chapter>
<!-- End of WSDG Chapter Libraries -->