Tool ReferenceIntroductionThis chapter will provide you with information about the
various tools needed for Wireshark development.None of the tools mentioned in this chapter are needed to
run Wireshark; they are only needed to build it.Most of these tools have their roots on UNIX like
platforms, but Win32 ports are also available. Therefore the
tools are available in different "flavours":
UNIX (or Win32 Cygwin): the tools should be commonly
available on the supported UNIX platforms, and for Win32
platforms by using the Cygwin UNIX emulationWin32 native: some tools are available as native
Win32 tools, no special emulation is requiredWarning!Unless you know exactly what you are doing, you
should strictly follow the recommendations given in!The following sections give a very brief description of
what a particular tool is doing, how it is used in the
Wireshark project and how it can be installed and
tested.Don't expect a lot of documentation regarding these tools
in this document. If you need further documentation of a
specific tool, you should find lot's of useful information on
the web, as these tools are commonly used. You can also try to
get help for the UNIX based tools with
toolname --help or read the manpage
man toolname.You will find explanations of the tool usage for some of
the specific development tasks in
.Win32: CygwinCygwin provides a lot of UNIX based tools on the Win32
platform. It uses a UNIX emulation layer which might be a bit
slower compared to the native Win32 tools, but at an acceptable
level. The installation and update is pretty easy and done
through a single (web based) setup.exe.The native Win32 tools will typically be a bit faster,
but more complicated to install, as you would have to download
the tools from different webpages, and install them in
different ways, tweaking the PATH and alike.Note!As there's no Win32 native bash version available, at
least a basic installation of cygwin is required in any
case.Although Cygwin consists of several separate packages,
the installation and update is done through a single setup.exe,
which acts similar to other web based installers. All tools
will be installed into one base folder, the default is
C:\cygwin.You will find this network based setup.exe at:
. Click on one of the
"Install Cygwin now" appearances to download the
setup.exe. After the download completed,
start this
setup.exe on your machine.The setup will ask you for some settings, the defaults
should usually work well for a first start. At the "Select
Packages" page, you'll need to select some additional packages,
which are not installed by default. Navigate to the required
Category/Package row and click on the "Skip" item in the "New"
column so it shows a version number for the required
packageAfter clicking the Next button several times, the setup
will then download and install the selected packages (this may
take a while, depending on the package size).Under: "Start→Programs→Cygwin→Cygwin
Bash Shell" you should now be able to start a new Cygwin bash
shell, which is similar to the command line
(command.com/cmd.exe) in Win32, but much more powerful.Add/Update/Remove Cygwin PackagesIf you want to add additional, update installed or
remove packages later, you have to start the setup.exe again.
At the "Select Packages" page, the entry in the "New" column
will control what is done (or not) with the package. If a new
version of a package is available, the new version number
will be displayed, so it will be automatically updated. You
can change the current setting by simply clicking at it, it
will change between:
a specific version number - this different package
version will be installedSkip - not installed, no changesKeep - already installed, no changesUninstall - uninstall this packageReinstall - reinstall this packageGNU compiler toolchain (UNIX or Win32 Cygwin)gcc (GNU compiler collection)Win32: Warn!Using Cygwin gcc to compile Wireshark is "EXPERT
ONLY" and therefore NOT recommended. If you really want to
try it anyway, see:
for
some details!The GCC C compiler is available for most of the
UNIX-like platforms and as the Devel/gcc package from the
Cygwin setup.If GCC isn't already installed or available
as a package for your platform, you can get it at:
.After correct installation, typing at the
bash command line prompt:$gcc --versionshould result in something like:
However, the version string may vary.gdb (GNU project debugger)GDB is the debugger for the GCC compiler. It is
available for many (if not all) UNIX-like platforms and as
the Devel/gdb package from the
Cygwin setupIf you don't like debugging using the command line,
there are some GUI frontends for it available, most notably
GNU DDD.If gdb isn't already installed or available
as a package for your platform, you can get it at:
.After correct installation:$gdb --versionshould result in something like:
However, the version string may vary.ddd (GNU Data Display Debugger)The GNU Data Display Debugger is a good GUI frontend
for GDB (and a lot of other command line debuggers), so you
have to install GDB first. It is available for many UNIX-like
platforms and as the ddd package from the
Cygwin setup.If GNU DDD isn't already installed or
available as a package for your platform, you can get it at:
.make (GNU Make)Win32 Note!Although some effort is made to use make from the
Cygwin environment, the mainline is still using Microsoft
Visual Studio's nmake.GNU Make is available for most of the UNIX-like
platforms and also as the Devel/make package from the
Cygwin setup.If GNU Make isn't already installed or
available as a package for your platform, you can get it at:
.After correct installation:$make --versionshould result in something like:
However, the version string may vary.Microsoft compiler toolchain (Win32 native)To compile Wireshark on Windows using the Microsoft C/C++
compiler, you'll need:C compiler (cl.exe)Assembler (ml.exe for 32-bit targets
and ml64.exe for 64-bit targets)Linker (link.exe)Make (nmake.exe)C runtime headers and libraries (e.g. stdio.h,
msvcrt.lib)Windows platform headers and libraries (e.g.
windows.h, WSock32.lib)HTML help headers and libraries (htmlhelp.h,
htmlhelp.lib)Toolchain Package Alternatives
The official Wireshark 1.8.x releases are compiled using
Microsoft Visual C++ 2010 SP1.
The official 1.2, 1.4, and 1.6 releases are and were compiled using
Microsoft Visual C++ 2008 SP1.
Other past releases, including the 1.0 branch,
were compiled using Microsoft Visual C++ 6.0. Using the release
compilers is recommended for Wireshark development work. "Express
Edition" compilers such as Visual C++ 2010 Express Edition SP1 can be
used but any PortableApps or U3 packages you create with them
will require the installation of a separate Visual C++
Redistributable package on any machine on which the PortableApps
or U3 package is to be used. See
below for more details.
However, you might already have a different Microsoft C++ compiler
installed. It should be possible to use any of the following with the considerations listed:
Compiler PackageIDE / Debugger?Publicly available?SDK required?config.nmake:MSVC_VARIANT32-bit/64-bitset compiler PATH and alike settings
with:RemarksVisual Studio 2005YesCommercial
1No
2MSVC200532-bit onlyMicrosoft Visual Studio
8\VC\bin\vcvars32.bat-Visual C++ 2005 Express EditionYes
Free Download (link disappeared)
Free Download (link disappeared)
MSVC2005EE32-bit onlyMicrosoft Visual Studio
8\VC\bin\vcvars32.batvcredist_x86.exe4Visual Studio 2008YesCommercialNo
2MSVC200832-bit only?Microsoft Visual Studio
9.0\VC\bin\vcvars32.bat-Visual C++ 2008 Express Edition SP1Yes
Free DownloadNo
2MSVC2008EE32-bit only?Microsoft Visual Studio
9.0\VC\bin\vcvars32.batvcredist_x86.exe4Visual Studio 2010YesCommercialNo
2MSVC201032-bitMicrosoft Visual Studio
10.0\VC\vcvarsall.bat x86-64-bitMicrosoft Visual Studio
10.0\VC\vcvarsall.bat x64Visual C++ 2010 Express Edition(recommended)Yes
Free DownloadNo
2MSVC2010EE32-bitMicrosoft Visual Studio
10.0\VC\vcvarsall.bat x86vcredist_x86.exe4Yes
364-bitMicrosoft Visual Studio
10.0\VC\vcvarsall.bat x64vcredist_x64.exe4.NET Framework 2.0 SDK
5No
Free Download (link disappeared)
Free Download (link disappeared)
DOTNET2032-bit only?Microsoft.NET\SDK\v2.0\Bin\sdkvars.batvcredist_x86.exe41no longer officially available,
might still be available through the MSDN
subscriptions
2as the SDK is already
integrated in the package, you obviously don't need to
install it and don't even need to call a separate environment
setting batch file for the SDK!
3the Express Edition does not include
compilers or assemblers that can generate 64-bit code; those are
only included in the SDK
4vcredist_x86.exe
(3MB free download) is required to build
Wireshark-win32-&WiresharkCurrentVersion;.x.exe,
and vcredist_x64.exe is required to build
Wireshark-win64-&WiresharkCurrentVersion;.x.exe,
The version of vcredist_x86.exe or
vcredist_x64.exemust
match the version for your compiler, including any service packs
installed for the compiler.
5MSDN remarks that the
corresponding .NET runtime is required. It's currently
unclear if the runtime needs to be installed for the C
compiler to work - or is this only needed to compile / run
.NET programs?!?
Legal issues with MSVC > V6?Please note: The following is not legal advice - ask
your preferred lawyer instead! It's the authors view, but
this view might be wrong!The myriad of
Win32 support lib port projects all seem to believe
there are legal issues involved in using newer versions of
Visual Studio. This FUD essentially stems from two
misconceptions:Unfortunately, it is believed by many that the
Microsoft Visual Studio 2003 EULA explicitly forbids
linking with GPL'ed programs. This belief is probably due
to an improper interpretation of the
Visual Studio 2003 Toolkit EULA, which places
redistribution restrictions only on SOURCE CODE SAMPLES
which accompany the toolkit.Other maintainers believe that the GPL itself
forbids using Visual Studio 2003, since one of the
required support libraries (MSVCR71.DLL) does not ship
with the Windows operating system. This is also a
wrongful interpretation, and the
GPL FAQ explicitly addresses this issue.Similar applies to Visual Studio 2005 and
alike.So in effect it should be perfectly legal to compile
Wireshark and distribute / run it if it was compiled with any
MSVC version > V6!cl.exe (C Compiler)The following table gives an overview of the possible
Microsoft toolchain variants and their specific C compiler
versions "ordered by release date":Compiler Packagecl.exe_MSC_VERCRT DLLVisual Studio 20058.01400msvcr80.dllVisual C++ 2005 Express Edition.NET Framework 2.0 SDKWindows SDK for Windows Vista and
.NET Framework 3.0 Runtime ComponentsVisual Studio 20089.01500msvcr90.dllVisual Studio 2008 Express EditionVisual Studio 201010.01600msvcr100.dllVisual Studio 2010 Express EditionAfter correct installation of the toolchain, typing
at the command line prompt (cmd.exe):>clshould result in something like:
However, the version string may vary.nmake.exe (Make)nmake is part of the toolchain packages described
above.Instead of using the workspace (.dsw) and projects
(.dsp) files, the traditional nmake makefiles are used. This
has one main reason: it makes it much easier to maintain
changes simultaneously with the GCC toolchain makefile.am files
as both file formats are similar. However, as no Visual
Studio workspace/project files are available, this makes it
hard to use the Visual Studio IDE e.g. for using the
integrated debugging feature.After correct installation, typing at the command
line prompt (cmd.exe):>nmakeshould result in something like:
However, the version string may vary.Documentation on nmake can be found at
Microsoft MSDNlink.exe (Linker)XXX - add info hereC-Runtime "Redistributable" FilesPlease note: The following is not legal advice - ask
your preferred lawyer instead! It's the authors view, but
this view might be wrong!Depending on the Microsoft compiler version you use,
some binary files coming from Microsoft might
be required to be installed on Windows machine to run
Wireshark. On a developer machine, the compiler setup
installs these files so they are available - but they might
not be available on a user machine!This is especially true for the C runtime DLL
(msvcr*.dll), which contains the implementation of ANSI and
alike functions, e.g.: fopen(), malloc(). The DLL is named
like: msvcr<version>.dll, an abbreviation for
"MicroSoft Visual C Runtime". For Wireshark to work, this DLL
must be available on the users machine.Starting with MSVC7, it is necessary to ship the C
runtime DLL (msvcr<version>.dll) together with the
application installer somehow, as that DLL is possibly not
available on the target system.Note!The files to redistribute must be mentioned in the
redist.txt file of the compiler package - otherwise it
can't be legally redistributed by third parties like
us!The following MSDN links are recommended for the
interested reader:
"Redistributing Visual C++ Files"
"How to: Deploy using XCopy"
"Redistribution of the shared C runtime component
in Visual C++ 2005 and in Visual C++ .NET"
In all cases where vcredist_x86.exe or
vcredist_x64.exe is downloaded, it should
be downloaded to the directory into which the support libraries
for Wireshark have been downloaded and installed. This directory
is specified by the WIRESHARK_LIB_DIR setting in the
config.nmake file; by default it is
C:\wireshark-win32-libs. It need not, and
should not, be run after being downloaded.
msvcr80.dll / vcredist_x86.exe - Version 8.0
(2005)There are three redistribution methods that MSDN
mentions for MSVC 8 (see:
"Choosing a Deployment Method"):
"Using Visual C++ Redistributable Merge Modules"
(kind of loadable modules for building msi installers -
not suitable for Wireshark's NSIS based installer)"Using Visual C++ Redistributable Package", wherein
the Microsoft libraries are installed by copying
vcredist_x86.exe,
vcredist_x64.exe, or
vcredist_ia64.exe to the target
machine and executing it on that machine (MSDN recommends
this for applications built with Visual Studio 2005
Express Edition)
"Install a particular Visual C++ assembly as a
private assembly for the application", wherein the
Microsoft libraries are installed by copying the folder
content of Microsoft.VC80.CRT to
the target directory (e.g. C:\Program
Files\Wireshark)
To save installer size, and to make a "portable"
version of Wireshark (which must be completely self-contained,
on a medium such as a flash drive, and not require that an
installer be run to install anything on the target machine)
possible, when building 32-bit Wireshark with MSVC2005, method
3 (copying the content of Microsoft.VC80.CRT)
is used (this produces the smallest package).
As MSVC2005EE and DOTNET20 don't provide the folder
Microsoft.VC80.CRT, when 32-bit Wireshark
is built with either of them method 2 is used.
You'll have to download the appropriate version of
vcredist_x86.exe from Microsoft for your
compiler version.
A portable version of 64-bit Wireshark is not built, so method
3 is used for all 64-bit builds. You'll have to download the
appropriate version of vcredist_x64.exe
or vcredist_ia64.exe from Microsoft
for your target processor and compiler version.
For 32-bit builds using Microsoft Visual C++ 2005
Express Edition without Service Pack 1, you need
8.0.50608.0,
from: "Microsoft Visual C++ 2005 Redistributable Package (x86)":
.
For 64-bit x86 (x64) builds using Microsoft Visual C++
2005, any edition, without Service Pack 1, you need
{fill this in},
from: "Microsoft Visual C++ 2005 Redistributable Package (x64)":
.
For IA-64 builds using Microsoft Visual C++ 2005, any
edition, without Service Pack 1, you need
{fill this in},
from: "Microsoft Visual C++ 2005 Redistributable Package (IA64)":
.
For 32-bit builds using Microsoft Visual C++ 2005
Express Edition with Service Pack 1, you need
8.0.50727.762, from: "Microsoft
Visual C++ 2005 SP1 Redistributable Package (x86)":
.
For 64-bit x86 builds using Microsoft Visual C++ 2005,
any edition, with Service Pack 1, you need
{fill this in}, from: "Microsoft
Visual C++ 2005 SP1 Redistributable Package (x64)":
.
Please report to the developer mailing list, if you
find a different version number!
msvcr90.dll / vcredist_x86.exe / vcredist_x64.exe - Version 9.0 (2008)There are three redistribution methods that MSDN
mentions for MSVC 9 (see:
"Choosing a Deployment Method"):
"Using Visual C++ Redistributable Merge Modules"
(kind of loadable modules for building msi installers -
not suitable for Wireshark's NSIS based installer)"Using Visual C++ Redistributable Package", wherein
the Microsoft libraries are installed by copying
vcredist_x86.exe or
vcredist_x64.exe to the target
machine and executing it on that machine (MSDN recommends
this for applications built with Visual Studio 2008
Express Edition)
"Install a particular Visual C++ assembly as a
private assembly for the application", wherein the
Microsoft libraries are installed by copying the folder
content of Microsoft.VC90.CRT to
the target directory (e.g. C:\Program
Files\Wireshark)
To save installer size, and to make a "portable"
version of Wireshark (which must be completely self-contained,
on a medium such as a flash drive, and not require that an
installer be run to install anything on the target machine)
possible, when building 32-bit Wireshark with MSVC2008, method
3 (copying the content of Microsoft.VC90.CRT)
is used (this produces the smallest package).
As MSVC2008EE doesn't provide the folder
Microsoft.VC90.CRT,
when 32-bit Wireshark is built with it method 2 is used.
You'll have to download the appropriate version of
vcredist_x86.exe from Microsoft for your
compiler version.
A portable version of 64-bit Wireshark is not built, so method
2 is used for all 64-bit builds. You'll have to download the
appropriate version of vcredist_x64.exe
from Microsoft for your compiler version.
For 32-bit builds using Microsoft Visual C++ 2008
Express Edition without Service Pack 1, you need
9.0.21022.8, from:
"Microsoft Visual C++ 2008 Redistributable Package (x86)":
.
For 64-bit builds using Microsoft Visual C++ 2008,
any edition, without Service Pack 1, you need
9.0.21022.8, from:
"Microsoft Visual C++ 2008 Redistributable Package (x64)":
.
For 32-bit builds with Microsoft Visual C++ 2008
Express Edition with Service Pack 1, you need
9.0.30729.17, from:
"Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)":
.
For 64-bit builds with Microsoft Visual C++ 2008,
any edition, with Service Pack 1, you need
9.0.30729.17, from:
"Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)":
.
Please report to the developer mailing list, if you
find a different version number!
msvcr100.dll / vcredist_x86.exe / vcredist_x64.exe - Version 10.0 (2010)There are three redistribution methods that MSDN
mentions for MSVC 10 (see:
"Choosing a Deployment Method"):
"Using Visual C++ Redistributable Package", wherein
the Microsoft libraries are installed by copying
vcredist_x86.exe or
vcredist_x64.exe to the target
machine and executing it on that machine (MSDN recommends
this for applications built with Visual Studio 2010,
both Express Edition and non-Express editions)
"Using Visual C++ Redistributable Merge Modules"
(kind of loadable modules for building msi installers -
not suitable for Wireshark's NSIS based installer)"Install a particular Visual C++ assembly as a
private assembly for the application", wherein the
Microsoft libraries are installed by copying the folder
content of Microsoft.VC100.CRT to
the target directory (e.g. C:\Program
Files\Wireshark)
To save installer size, and to make a "portable"
version of Wireshark (which must be completely self-contained,
on a medium such as a flash drive, and not require that an
installer be run to install anything on the target machine)
possible, when building 32-bit Wireshark with MSVC2010, method
3 (copying the content of Microsoft.VC100.CRT)
is used (this produces the smallest package).
As MSVC20010EE doesn't provide the folder
Microsoft.VC100.CRT,
when 32-bit Wireshark is built with it method 1 is used.
You'll have to download the appropriate version of
vcredist_x86.exe from Microsoft that
corresponds to your compiler version.
A portable version of 64-bit Wireshark is not built, so method
1 is used for all 64-bit builds. You'll have to download the
appropriate version of vcredist_x64.exe
from Microsoft for your compiler version.
For 32-bit builds using Microsoft Visual C++ 2010
Express Edition without Service Pack 1, you need
10.0.30319.1, from: "Microsoft Visual
C++ 2010 Redistributable Package (x86)":
.
For 64-bit builds using Microsoft Visual C++ 2010,
any edition, without Service Pack 1, you need
10.0.30319.1, from: "Microsoft Visual
C++ 2010 Redistributable Package (x64)":
.
For 32-bit builds using Microsoft Visual C++ 2010
Express Edition with Service Pack 1, you need
10.0.40219.1, from: "Microsoft Visual
C++ 2010 SP1 Redistributable Package (x86)":
.
For 64-bit builds using Microsoft Visual C++ 2010,
any edition, with Service Pack 1, you need
10.0.40219.1, from: "Microsoft Visual
C++ 2010 SP1 Redistributable Package (x64)":
.
Please report to the developer mailing list, if you
find a different version number!
Windows (Platform) SDKThe Windows Platform SDK (PSDK) or Windows SDK is a free
(as in beer) download and contains platform specific headers and
libraries (e.g. windows.h, WSock32.lib, ...). As new Windows
features evolve in time, updated SDK's become available that
include new and updated API's.When you purchase a commercial Visual Studio, it will
include an SDK. The free (as in beer) downloadable C compiler
versions (VC++ 2005 Express, .NET Framework, ...) do not
contain an SDK - you'll need to download a PSDK in order to
have the required C header files and libraries.Older versions of the SDK should also work. However, the
command to set the environment settings will be different, try
search for SetEnv.* in the SDK directory.Prior to Windows Vista, the name "Platform SDK" was used;
starting with Vista, the name was changed just to "Windows
Software Development Kit" or "Windows SDK". The full names of the
SDKs can be misleading; for example, the SDK for Vista was called
the "Microsoft Windows Software Development Kit for Windows Vista
and .NET Framework 3.0 Runtime Components", which really means the
Windows SDK for Windows Vista and Platforms (like WinXP) that have
the .NET 3.0 runtime installed.HTML HelpThe HTML Help is used to create the User's and
Developer's Guide in .chm format and to show the User's Guide
as the Wireshark "Online Help".Both features are currently optional, but might be
mandatory in future versions.HTML Help Compiler (hhc.exe)This compiler is used to generate a .chm file
from a bunch of HTML files - in our case to generate
the User's and Developer's Guide in .chm format.The compiler is only available as the free (as in
beer) "HTML Help Workshop" download. If you want to compile
the guides yourself, you need to download and install this.
If you don't install it into the default directory, you may
also have a look at the HHC_DIR setting in the file
docbook/Makefile.HTML Help Build Files (htmlhelp.c /
htmlhelp.lib)The files htmlhelp.c and htmlhelp.lib are required to
be able to open .chm files from Wireshark - to show the
"online help".Both files are part of the SDK (standalone (P)SDK or MSVC
since 2002). If you still use MSVC 6, you can get them from the
"HTML Help Workshop" mentioned above.The related settings in config.nmake depend on the
MSVC variant you use:MSVC 6: if the "HTML Help Workshop" is
installed, set HHC_DIR to its directory> MSVC 6: set HHC_DIR to use it (the actual
value doesn't matter in this case)DebuggerWell, using a good debugger can save you a lot of
development time.The debugger you use must match the C compiler
Wireshark was compiled with, otherwise the debugger will
simply fail or you will only see a lot of garbage.Visual Studio integrated debuggerYou can use the integrated debugger of Visual Studio
- only available in some of the toolchain packages.However, setting up the environment is a bit tricky,
as the Win32 build process is using makefiles instead of
the .dsp/.dsw files usually used.XXX - add instructions how to do it.Debugging Tools for WindowsYou could also use the Microsoft Debugging Tools for Windows toolkit,
which is a standalone GUI debugger. Although it's not that
comfortable compared to debugging with the Visual Studio
integrated debugger, it can be helpful if you have to debug
on a machine where an integrated debugger is not
available.You can get it free of charge at:
(as
links to Microsoft pages change from time to time, search
for "Debugging Tools" at their page if this link should be
outdated).bashThe bash shell is needed to run several shell
scripts.UNIX or Win32 Cygwin: GNU bashThe bash shell is available for most of the UNIX-like
platforms and as the bash package from the
Cygwin setup.If bash isn't already installed or
available as a package for your platform, you can get it at:
.After correct installation, typing at the bash command line prompt:$bash --versionshould result in something like:
However, the version string may vary.Win32 native: -The authors don't know of any working Win32 native bash
implementation.pythonPython is an interpreter based programming language. The
homepage of the python project is:
. Python is used to generate
some source files. Python 2.4 to 2.7 should work fine.
UNIX or Win32 Cygwin: pythonPython is available for most of the UNIX-like platforms
and as the python package from the
Cygwin setupIf Python isn't already installed or
available as a package for your platform, you can get it at:
.After correct installation, typing at the
bash command line prompt:$ python -Vshould result in something like:Python 2.4.3However, the version string may vary.Win32 native: pythonGet Python 2.7, 2.6, 2.5, or 2.4 from
.
You can download an installation package there, which
will install the Python system in the top level of your
C: drive by default, e.g.
C:\Python27.You can check for a successful installation from a command prompt (cmd.exe):C:\>cd python27C:\Python27>python -VThe output should look something like:
However, the version string may vary.perlPerl is an interpreter based programming language. The
homepage of the perl project is:
. Perl is used to convert
various text files into usable source code. Perl version 5.6
and above should be working fine.UNIX or Win32 Cygwin: perlPerl is available for most of the UNIX-like platforms
and as the perl package from the
Cygwin setup.If perl isn't already installed or available
as a package for your platform, you can get it at:
.After correct installation, typing at the
bash command line prompt:$perl --versionshould result in something like:
However, the version string may vary.Win32 native: perlA native Win32 perl package can be obtained from
. The installation
should be straightforward.After correct installation, typing at the command
line prompt (cmd.exe):>perl -vshould result in something like:
However, the version string may vary.sedSed it the streaming editor. It makes it easy for example
to replace specially marked texts inside a source code file.
The Wireshark build process uses this to stamp version strings
into various places.UNIX or Win32 Cygwin: sedSed is available for most of the UNIX-like platforms
and as the sed package from the
Cygwin setup.If sed isn't already installed or available
as a package for your platform, you can get it at:
After correct installation, typing at the
bash command line prompt:$sed --versionshould result in something like:
However, the version string may vary.Win32 native: sedA native Win32 sed package can be obtained from
. The
installation should be straightforward.yacc (bison)Bison is a free implementation of yacc.UNIX or Win32 Cygwin: bisonBison is available for most of the UNIX-like platforms
and as the bison package from the
Cygwin setup.If GNU Bison isn't already installed or
available as a package for your platform, you can get it at:
.After correct installation, typing at the
bash command line prompt:$bison --versionshould result in something like:
However, the version string may vary.Win32 native: bisonA native Win32 yacc/bison package can be obtained from
. The
installation should be straightforward.flexFlex is a free implementation of lexx.UNIX or Win32 Cygwin: flexFlex is available for most of the UNIX-like platforms
and as the flex package from the
Cygwin setup.If GNU flex isn't already installed or
available as a package for your platform, you can get it at:
.After correct installation, typing at the
bash command line prompt:$flex --versionshould result in something like:
However, the version string may vary.Win32 native: flexA native Win32 lexx/flex package can be obtained from
. The
installation should be straightforward.Subversion (SVN) client (optional)The Wireshark project uses its own Subversion (or short
SVN) server to keep track of all the changes done to the source
code. Details about the usage of Subversion in the Wireshark
project can be found in
.If you want to work with the source code and are planning to
commit your changes back to the Wireshark community, it is
recommended to use a SVN client to get the latest source files.
For detailed information about the different ways to obtain the
Wireshark sources, see
.You will find more instructions in
on how to use the Subversion
client.UNIX or Win32 Cygwin: svnSVN is available for most of the UNIX-like platforms
and as the Subversion package from the
Cygwin setupIf Subversion isn't already installed or
available as a package for your platform, you can get it at:
(together with
the server software).After correct installation, typing at the
bash command line prompt:$svn --versionshould result in something like:
However, the version string may vary.Win32 native: svnThe Subversion command line tools for Win32 can be
found at:
. This will come
with both client and server software - only the client
software will be used.After correct installation, typing at the command
line prompt (cmd.exe):>svn --versionshould result in something like:
However, the version string may vary.Subversion (SVN) GUI client (optional)Along with the traditional command-line client, several
GUI clients are available for a number of platforms, see
.Keep Subversion program versions in sync!If you are working with both command line and GUI
clients, keep the Subversion program versions in sync, at
least the major/minor versions (e.g. 1.4).UNIX or Win32 Cygwin: rapidSVN, subcommanderRapidSVN is a cross platform Subversion frontend based
on wxWidgets. It can be found at:
. Subcommander is
another cross platform Subversion frontend. It can be found
at:
.Cygwin doesn't provide any GUI client for
Subversion.Win32 native: TortoiseSVNA good Subversion client for Win32 can be found at:
. It will
nicely integrate into the Windows Explorer window.diff (optional)Diff is used to get a file of all differences between two
source files/trees (sometimes called a patch). The diff tool
isn't needed for building Wireshark, but it's needed if you are
going to commit your changes back to the Wireshark
community.Note!The recommended way to build patches is using the
Subversion client, see
for details.You will find more instructions in
on how to use the diff tool.UNIX or Win32 Cygwin: GNU diffDiff is available for most of the UNIX-like platforms
and as the diffutils package from the
Cygwin setup.If GNU diff isn't already installed or
available as a package for your platform, you can get it at:
.After correct installation, typing at the
bash command line prompt:$diff --versionshould result in something like:
However, the version string may vary.Win32 native: diffA native Win32 diff package can be obtained from
. The
installation should be straightforward.The Subversion client TortoiseSVN has a built-in diff
feature, see
. It is currently unknown
if this tool can be used to
create diff files in the required format, so other persons
can use them.patch (optional)The patch utility is used to merge a diff file into your
own source tree. This tool is only needed, if you want to apply
a patch (diff file) from someone else (probably from the
developer mailing list) to try out in your own private source
tree.Tip!Unless you are in the rare case needing to apply a
patch to your private source tree, you won't need the patch
tool installed.You will find more instructions in
on how to use the patch
tool.UNIX or Win32 Cygwin: patchPatch is available for most of the UNIX-like platforms
and as the patch package from the
Cygwin setup.If GNU patch isn't already installed or
available as a package for your platform, you can get it at:
.After correct installation, typing at the
bash command line prompt:$patch --versionshould result in something like:
However, the version string may vary.Win32 native: patchA native Win32 patch package can be obtained from
. The
installation should be straightforward.The Subversion client TortoiseSVN has a built-in patch
feature, see
. The last time tested
(Version 1.1.0), this feature failed to apply patches known
to be ok.Win32: GNU wget (optional)GNU wget is used to download files from the internet
using the command line.GNU wget is available for most of the UNIX-like platforms
and as the wget package from the
Cygwin setup.You will only need wget, if you want to use the Win32
automated library download, see
for details.If GNU wget isn't already installed or
available as a package for your platform (well, for Win32 it is
available as a Cygwin package), you can get it at:
.If wget is trying to download files but fails to do so,
your Internet connection might use an HTTP proxy. Some Internet
providers use such a proxy and it is common in many company
networks today. Wireshark's setup script will try to discover
your proxy settings automatically, but you may need to set
the environment variable HTTP_PROXY by hand before using wget.
For example, if you are behind proxy.com which is listening on
port 8080, you have to set it to something like:set HTTP_PROXY=http://proxy.com:8080/If you are unsure about the settings, you might ask your
system administrator.Win32: GNU unzip (optional)GNU unzip is used to, well, unzip the zip files
downloaded using the wget tool.GNU unzip is available for most of the UNIX-like platforms
and as the unzip package from the
Cygwin setup.You will only need unzip, if you want to use the Win32
automated library download, see
for details.If GNU unzip isn't already installed or
available as a package for your platform (well, for Win32 it is
available as a Cygwin package), you can get it at:
.Win32: NSIS (optional)The NSIS (Nullsoft Scriptable Install System) is used to
generate wireshark-win32-&WiresharkCurrentVersion;.x.exe
from all the files needed to be installed, including all required DLL's and
such.To install it, simply download the latest released
version (currently: 2.45) from
and start the
downloaded installer. You will need NSIS version 2 final or
higher.You will find more instructions in
on how to use the NSIS tool.