diff options
Diffstat (limited to 'docbook/wsdg_src/WSDG_chapter_tools.adoc')
-rw-r--r-- | docbook/wsdg_src/WSDG_chapter_tools.adoc | 1011 |
1 files changed, 0 insertions, 1011 deletions
diff --git a/docbook/wsdg_src/WSDG_chapter_tools.adoc b/docbook/wsdg_src/WSDG_chapter_tools.adoc deleted file mode 100644 index 3af774f5e1..0000000000 --- a/docbook/wsdg_src/WSDG_chapter_tools.adoc +++ /dev/null @@ -1,1011 +0,0 @@ -// WSDG Chapter Tools - -[[ChapterTools]] - -== Tool Reference - -[[ChToolsIntro]] - -=== Introduction - -This 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 or UNIX-like platforms such -as Linux, but Windows ports are also available. Therefore the tools are -available in different "flavours": - -* UNIX and UNIX-like platforms: The tools should be commonly available - on the supported UNIX and UNIX-like platforms. Cygwin is unsupported. -* Windows native: Some tools are available as native Windows tools, no - special emulation is required. Many of these tools can be installed - (and updated) using https://chocolatey.org[Chocolatey], a Windows - package manager similar to the Linux package managers apt-get or yum. - -[WARNING] -.Follow the directions -==== -Unless you know exactly what you are doing, you should strictly follow the recommendations given in <<ChapterSetup>>. -==== - -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. - -Documentation for these tools is outside the scope of this document. If you need -further information on using a specific tool you should find lots of useful -information on the web, as these tools are commonly used. You can also get help -for the UNIX based tools with `**toolname** --help` or the man page via `man -**toolname**`. - -You will find explanations of the tool usage for some of the specific -development tasks in <<ChapterSources>>. - -[[ChToolsChocolatey]] -=== Chocolatey - -Chocolatey is a Windows package manager that can be used to install (and update) -many of the packages required for Wireshark development. Chocolatey can be -obtained from the https://chocolatey.org[website] or from a Command Prompt: - -[source,cmd] ----- -C:\>@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString(_https://chocolatey.org/install.ps1_))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin ----- - -or a Powershell prompt: - -[source,cmd] ----- -PS:\>iex ((new-object net.webclient).DownloadString(_https://chocolatey.org/install.ps1_)) ----- - -Chocolatey sometimes installs packages in unexpected locations. Python -is a notable example. While it's typically installed in a top-level -directory, e.g. _C:\Python37_ or in %PROGRAMFILES%, e.g. _C:\Program -Files\Python37_, Chocolatey tends to install it under -_C:\ProgramData\chocolatey_ or _C:\Tools_. If you want to avoid this -behavior you'll probably want to install Python using the packages from -python.org. - -Other package managers for Windows include the https://docs.microsoft.com/en-us/windows/package-manager/[Windows Package Manager (winget)] and https://scoop.sh/[Scoop]. -As of May 2020 neither option provides all of the packages we require, but that might change in the future. - -[[ChToolsCMake]] - -=== CMake - -Wireshark’s build environment can be configured using CMake on various -UNIX-like platforms, including Linux, macOS, and *BSD, and on Windows. -CMake is designed to support out-of-tree builds - so much so that -in-tree builds do not work properly in all cases. Along with being -cross-platform, CMake supports many build tools and environments -including traditional make, Ninja, and MSBuild. Our Buildbot runs -CMake steps on Ubuntu, Win32, Win64, and macOS. In particular, the -macOS and Windows packages are built using CMake. - -Building with CMake typically includes creating a build directory and -specifying a *generator*, aka a build tool. For example, to build -Wireshark using Ninja in the directory _wireshark-ninja_ you might -run the following commands: - -[source,sh] ----- -# Starting from your Wireshark source directory, create a build directory -# alongside it. -$ cd .. -$ mkdir wireshark-ninja -$ cd wireshark-ninja -# Assumes your source directory is named "wireshark". -$ cmake -G Ninja ../wireshark -$ ninja (or cmake --build .) ----- - -Using CMake on Windows is described further in <<ChWin32Generate>>. - -Along with specifying a generator with the `-G` flag you can set variables -using the `-D` flag. Useful variables and generators include the following: - --DBUILD_wireshark=OFF:: Don't build the Wireshark GUI application. -Each command line utility has its own BUILD_xxx flag as well. For -example, you can use -DBUILD_mmdbresolve=OFF to disable mmdbresolve. - --DENABLE_CAP=OFF:: Disable the POSIX capabilities check - --DCMAKE_BUILD_TYPE=Debug:: Enable debugging symbols - --DCARES_INCLUDE_DIR=/your/custom/cares/include, -DCARES_LIBRARY=/your/custom/cares/lib/libcares.so:: -Let you set the path to a locally-compiled version of c-ares. Most -optional libraries have xxx_INCLUDE_DIR and xxx_LIB flags that let you -control their discovery. - --DCMAKE_OSX_DEPLOYMENT_TARGET=10.12:: -Specify the minimum macOS version for Wireshark and each command line utility. -Note that this doesn’t affect the minimum target for third-party libraries. -For example, if you’re building for macOS 10.12 you’ll need to install https://doc.qt.io/archives/qt-5.13/supported-platforms.html[Qt 5.14 or earlier] and ensure that other libraries support macOS 10.12, for example by running `tools/macos-setup.sh -t 10.12`. - --DENABLE_APPLICATION_BUNDLE=OFF:: Disable building an application bundle (Wireshark.app) on macOS - -You can list all build variables (with help) by running `cmake -LH [options] -../<Name_of_WS_source_dir>`. This lists the cache of build variables -after the cmake run. To only view the current cache, add option `-N`. - -After running cmake, you can always run `make help` to see a list of all possible make targets. - -Note that CMake honors user umask for creating directories as of now. You should set -the umask explicitly before running the `install` target. - -CMake links: - -The home page of the CMake project: https://cmake.org/ - -Official documentation: https://cmake.org/documentation/ - -About CMake in general and why KDE4 uses it: https://lwn.net/Articles/188693/ - -Useful variables: https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/Useful-Variables - -Frequently Asked Questions: https://gitlab.kitware.com/cmake/community/wikis/FAQ - -[[ChToolsGNUChain]] - -=== GNU Compiler Toolchain (UNIX And UNIX-like Platforms) - -[[ChToolsGCC]] - -==== gcc (GNU Compiler Collection) - -The GCC C compiler is available for most UNIX and UNIX-like operating -systems. - -If GCC isn't already installed or available -as a package for your platform, you can get it at: -https://gcc.gnu.org/[]. - -After correct installation, typing at the -bash command line prompt: - -[source,sh] ----- -$ gcc --version ----- - -should result in something like - ----- -gcc (Ubuntu 4.9.1-16ubuntu6) 4.9.1 -Copyright (C) 2014 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ----- - -Your version string may vary, of course. - -[[ChToolsGDB]] - -==== gdb (GNU Project Debugger) - -GDB is the debugger for the GCC compiler. It is -available for many (if not all) UNIX-like platforms. - -If you don't like debugging using the command line, many -https://sourceware.org/gdb/wiki/GDB%20Front%20Ends[GUI frontends for it -available], including Qt Creator, CLion, and Eclipse. - -If gdb isn't already installed or available -as a package for your platform, you can get it at: -https://www.gnu.org/software/gdb/gdb.html[]. - -After correct installation: - -[source,sh] ----- -$ gdb --version ----- - -should result in something like: - ----- -GNU gdb (GDB) 8.3 -Copyright (C) 2019 Free Software Foundation, Inc. -License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> -This is free software: you are free to change and redistribute it. -There is NO WARRANTY, to the extent permitted by law. ----- - -Your version string may vary, of course. - -[[ChToolsGNUmake]] - -==== make (GNU Make) - -[NOTE] -.GNU make isn't supported either for Windows - -GNU Make is available for most of the UNIX-like -platforms. - -If GNU Make isn't already installed or -available as a package for your platform, you can get it at: -https://www.gnu.org/software/make/[]. - -After correct installation: - -[source,sh] ----- -$ make --version ----- - -should result in something like: - ----- -GNU Make 4.0 -Built for x86_64-pc-linux-gnu -Copyright (C) 1988-2013 Free Software Foundation, Inc. -Licence GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> -This is free software: you are free to change and redistribute it. -There is NO WARRANTY, to the extent permitted by law. ----- - -Your version string may vary, of course. - -==== Ninja - -Ninja is an alternative to make, and is available for many of the -UNIX-like platforms. It runs builds faster than make does. - -It is designed to have its build files generated by tools such as CMake; -to generate build files for Ninja, run CMake with the `-G Ninja` flag. - -If Ninja isn't already installed, see the list of suggestions for Ninja -packages at: -https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages. - -If Ninja isn't already installed and isn't -available as a package for your platform, you can get it from: -https://ninja-build.org. You can download the source code or binaries -for Linux, macOS, and Windows (we have not tested Ninja on Windows). - -[[ChToolsMSChain]] - -=== Microsoft compiler toolchain (Windows native) - -To compile Wireshark on Windows using the Microsoft C/{cpp} -compiler (MSVC), you'll need: - -. C compiler (_cl.exe_) - -. Assembler (_ml.exe_ for 32-bit targets and _ml64.exe_ for 64-bit targets) - -. Linker (_link.exe_) - -. Resource Compiler (_rc.exe_) - -. C runtime headers and libraries (e.g. _stdio.h_, _vcruntime140.lib_) - -. Windows platform headers and libraries (e.g. -_windows.h_, _WS2_32.lib_) - -==== Official Toolchain Packages And Alternatives - -Official releases are or were built with the following Visual {cpp} versions: - -* Wireshark 3.4.x: Microsoft Visual {cpp} 2019. -* Wireshark 3.2.x: Microsoft Visual {cpp} 2019. -* Wireshark 3.0.x: Microsoft Visual {cpp} 2017. -* Wireshark 2.6.x: Microsoft Visual {cpp} 2017. -* Wireshark 2.4.x: Microsoft Visual {cpp} 2015. -* Wireshark 2.2.x: Microsoft Visual {cpp} 2013. -* Wireshark 2.0.x: Microsoft Visual {cpp} 2013. -* Wireshark 1.12.x: Microsoft Visual {cpp} 2010 SP1. -* Wireshark 1.10.x: Microsoft Visual {cpp} 2010 SP1. -* Wireshark 1.8.x: Microsoft Visual {cpp} 2010 SP1. -* Wireshark 1.6.x: Microsoft Visual {cpp} 2008 SP1. -* Wireshark 1.4.x: Microsoft Visual {cpp} 2008 SP1. -* Wireshark 1.2.x: Microsoft Visual {cpp} 2008 SP1. -* Wireshark 1.0.x and earlier: Microsoft Visual {cpp} 6.0. - -Using the release compilers is recommended for Wireshark development work. - -“Community” editions of Visual Studio such as “Visual Studio Community -2019” can be used to compile Wireshark but any PortableApps packages you -create with them might require the installation of a separate Visual -{cpp} Redistributable package on any machine on which the PortableApps -package is to be used. See <<msvc-runtime-redistributable>> below for -more details. - -However, you might already have a different Microsoft {cpp} compiler -installed. It should be possible to use any of the following with the -considerations listed. You will need to sign up for a -https://visualstudio.microsoft.com/dev-essentials/[Visual Studio Dev -Essentials] account if you don't have a Visual Studio (MSDN) -subscription. The older versions can be downloaded from -https://visualstudio.microsoft.com/vs/older-downloads/[]. - -.Visual {cpp} 2019 Community Edition - -IDE + Debugger?:: Yes - -SDK required for 64-bit builds?:: No - -CMake Generator: *`Visual Studio 16`* - -You can use Chocolatey to install Visual Studio, e.g: - -[source,cmd] ----- -PS:\> choco install visualstudiocommunity2019 visualstudio2019-workload-nativedesktop ----- - -==== 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 Package|cl.exe|_MSC_VER -|Visual Studio 2019|16.0.0|1920 -|Visual Studio 2019|16.1.2|1921 -|Visual Studio 2019|16.2.3|1922 -|Visual Studio 2019|16.3.2|1923 -|=== - -After correct installation of the toolchain, typing -at the Visual Studio Command line prompt (cmd.exe): - -[source,cmd] ----- -> cl ----- - -should result in something like: - ----- -Microsoft (R) C/C++ Optimizing Compiler Version 19.23.28106.4 for x64 -Copyright (C) Microsoft Corporation. All rights reserved. - -usage: cl [ option... ] filename... [ /link linkoption... ] ----- - -However, the version string may vary. - -Documentation on the compiler can be found at -https://docs.microsoft.com/en-us/cpp/build/reference/compiling-a-c-cpp-program?view=vs-2019[Microsoft Docs] - -==== link.exe (Linker) - -After correct installation, typing at the Visual Studio Command line prompt (cmd.exe): - -[source,cmd] ----- -> link ----- - -should result in something like: - ----- -Microsoft (R) Incremental Linker Version 14.23.28106.4 -Copyright (C) Microsoft Corporation. All rights reserved. - - usage: LINK [options] [files] [@commandfile] - ... ----- - -However, the version string may vary. - -Documentation on the linker can be found at -https://docs.microsoft.com/en-us/cpp/build/reference/linking?view=vs-2019[Microsoft Docs] - -[[msvc-runtime-redistributable]] - -==== Visual {cpp} Runtime “Redistributable” Files - -Please note: The following is not legal advice. Ask your preferred -lawyer instead. It’s the authors view and this view might be wrong. - -Wireshark and its libraries depend on POSIX functions such as fopen() -and malloc(). On Windows, these functions are provided by the Microsoft -Visual {cpp} C Runtime (CRT). There are many different versions of the CRT and -Visual {cpp} 2015 and later use the _Universal CRT_ (UCRT). - -The Universal CRT comes standard with Windows 10 and is installed as part -of Windows Update on earlier versions of Windows. The Wireshark .exe -installers include redistributables (_vcredist_x86.exe_ or -_vcredist_x64.exe_) which ensure that the Universal CRT is installed and -up to date. - -[NOTE] -.Make sure you're allowed to distribute this file -==== -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 Microsoft Docs link is recommended for the -interested reader: - -https://docs.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=vs-2019[Redistributing Visual {cpp} Files] - -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_BASE_DIR` or -`WIRESHARK_LIB_DIR` environment variables. It need not, and should not, -be run after being downloaded. - -==== Windows Platform SDK - -The 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_, etc.). As new Windows -features evolve in time, updated SDKs become available that -include new and updated APIs. - -When you purchase a commercial Visual Studio or use the Community -Edition, it will include an SDK. - -[[ChToolsDocumentationToolchain]] -=== Documentation Toolchain - -Wireshark’s documentation is split across two directories. -The `doc` directory contains man pages written in Asciidoctor markup. -The `docbook` directory contains the User’s Guide, Developer’s Guide, and the release notes, which are also written in Asciidoctor markup. -The split is for historical reasons (described below), and the documentation will likely be consolidated into one directory in the future. - -Our various output formats are generated using the following tools. -Intermediate formats are in _italics_. - -Man page roff:: Asciidoctor -Man page HTML:: Asciidoctor - -Guide HTML:: Asciidoctor → _DocBook XML_ → xsltproc + DocBook XSL -Guide PDF:: Asciidoctor - -Release notes HTML:: Asciidoctor -Release notes text:: Asciidoctor → _HTML_ → html2text.py - -==== Asciidoctor - -https://asciidoctor.org/[Asciidoctor] comes in several flavors: a Ruby gem (Asciidoctor), a Java bundle (AsciidoctorJ), and transpiled JavaScript (Asciidoctor.js). -The Ruby and Java flavors can be used to build Wireshark’s documentation, but the JavaScript flavor doesn’t support all of the features that we require. -// We need docbook5, PDF & EPUB output and macros - -The guides and release notes were originally written in DocBook (hence the directory name). -They were later converted to AsciiDoc and then migrated to Asciidoctor. -The man pages were originally in Perl’s POD (Plain Old Documentation) format and were later converted to Asciidoctor. -We currently use Asciidoctor’s modern (>= 1.5.0) syntax. - -PDF output requires Asciidoctor’s PDF backend. -It is included with AsciidoctorJ but _not_ with Asciidoctor. - -==== DocBook XML and XSL - -Converting from DocBook to HTML requires the DocBook DTD -(http://www.sagehill.net/docbookxsl/ToolsSetup.html) -and DocBook stylesheets -(http://www.sagehill.net/docbookxsl/InstallStylesheets.html). -These are available via installable packages on most Linux distributions, Chocolatey, and Homebrew. - -==== xsltproc - -http://xmlsoft.org/xslt/[xsltproc] converts DocBook XML to various formats based on XSL stylesheets. -It either ships as part of the operating system or is available via an installable package on most Linux distributions, Chocolatey, and Homebrew. - -[[ChToolsDebugger]] - -=== Debugger - -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. - -[[ChToolsMSVCDebugger]] - -==== Visual Studio Integrated Debugger - -You can use the integrated debugger of Visual Studio if your toolchain includes -it. Open the solution in your build directory and build and debug as normal -with a Visual Studio solution. - -To set the correct paths for Visual Studio when running Wireshark under the -debugger, add the build output directory to the path before opening Visual -Studio from the same command prompt, e.g. - -[source,cmd] ----- -C:\Development\wsbuild64>set PATH="%PATH%;C:\Development\wsbuild64\run\RelwithDebInfo" -C:\Development\wsbuild64>wireshark.sln ----- - -for PowerShell use - -[source,cmd] ----- -PS C:\Development\wsbuild64>$env:PATH += ";$(Convert-Path run\RelWithDebInfo)" -PS C:\Development\wsbuild64>wireshark.sln ----- - -When Visual Studio has finished loading the solution, set the executable to -be run in the debugger, e.g. Executables\Wireshark, by right clicking it in -the Solution Explorer window and selecting "Set as StartUp Project". Also -set the Solution Configuration (usually RelWithDebInfo) from the droplist on -the toolbar. - -NOTE: Currently Visual Studio regards a command line build as incomplete, so -will report that some items need to be built when starting the debugger. These -can either be rebuilt or ignored as you wish. - - -The normal build is an optimised release version so debugging can be a bit -difficult as variables are optimised out into registers and the execution -order of statements can jump around. - -If you require a non-optimised version, then build using a debug configuration. - -[[ChToolsMSDebuggingTools]] - -==== Debugging Tools For Windows - -You can 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 from Microsoft in several ways, see the -https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/[Debugging tools for Windows] page. - -You can also use Chocolatey to install WinDbg: - -[source,cmd] ----- -PS:\> choco install windbg ----- - -To debug Wireshark using WinDbg, open the built copy of Wireshark using -the File -> Open Executable... menu, -i.e. C:\Development\wsbuild64\run\RelWithDebInfo\Wireshark.exe. To set a -breakpoint open the required source file using the File -> Open Source File... -menu and then click on the required line and press F9. To run the program, -press F5. - -If you require a non-optimised version, then build using a debug configuration, e.g. -*`msbuild /m /p:Configuration=Debug Wireshark.sln`*. The build products will be found -in C:\Development\wsbuild64\run\Debug\. - -[[ChToolsBash]] - -=== bash - -The bash shell is needed to run several shell scripts. - -[[ChToolsGNUBash]] - -[discrete] -==== Unix - -Bash (the GNU Bourne-Again SHell) is available for most UNIX and -UNIX-like platforms. If it isn't already installed or available as a -package for your platform, you can get it at -https://www.gnu.org/software/bash/bash.html[]. - -After correct installation, typing at the bash command line prompt: - -[source,sh] ----- -$ bash --version ----- - -should result in something like: - ----- -GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu) -Copyright (C) 2016 Free Software Foundation, Inc. ----- - -Your version string will likely vary. - -[[ChToolsPython]] - -=== Python - -https://python.org/[Python] is an interpreted programming language. It is -used to generate some source files, documentation, testing and other tasks. -Python 3.4 and later is required. Python 2.7 is no longer supported. - -Python is either included or available as a package on most UNIX-like platforms. -Windows packages and source are available at https://python.org/download/[]. - -You can also use Chocolatey to install Python: - -[source,cmd] ----- -PS:\> choco install python3 ----- - -Chocolatey installs Python into _C:\Python37_ by -default. You can verify your Python version by running - -[source,sh] ----- -$ python3 --version ----- - -on UNIX-like platforms and - -[source,cmd] ----- -rem Official package -C:> cd python35 -C:Python35> python --version - -rem Chocolatey -C:> cd \tools\python3 -C:\tools\python3> python --version ----- - -on Windows. You should see something like - ----- -Python 3.5.1 ----- - -Your version string may vary of course. - -[[ChToolsPerl]] - -=== Perl - -Perl is an interpreted programming language. The -homepage of the Perl project is -https://www.perl.org[]. Perl is used to convert -various text files into usable source code. Perl version 5.6 -and above should work fine. - -[[ChToolsUnixPerl]] - -[discrete] -==== Unix - -Perl is available for most UNIX and UNIX-like platforms. If perl isn't -already installed or available as a package for your platform, you can -get it at https://www.perl.org/[]. - -After correct installation, typing at the -bash command line prompt: - -[source,sh] ----- -$ perl --version ----- - -should result in something like: - ----- -This is perl 5, version 26, subversion 0 (v5.26.0) built for x86_64-linux-gnu-thread-multi -(with 62 registered patches, see perl -V for more detail) - -Copyright 1987-2017, Larry Wall - -Perl may be copied only under the terms of either the Artistic License or the -GNU General Public License, which may be found in the Perl 5 source kit. - -Complete documentation for Perl, including FAQ lists, should be found on -this system using "man perl" or "perldoc perl". If you have access to the -Internet, point your browser at http://www.perl.org/, the Perl Home Page. ----- - -However, the version string may vary. - -[[ChToolsWindowsPerl]] - -[discrete] -==== Windows - -A native Windows Perl package can be obtained from -http://strawberryperl.com/[Strawberry Perl] or -https://www.activestate.com[Active State]. The installation should be -straightforward. - -You may also use Chocolatey to install either package: - ----- -PS:\> choco install strawberryperl ----- - -or - ----- -PS:\> choco install activeperl ----- - -After correct installation, typing at the command -line prompt (cmd.exe): - ----- -> perl -v ----- - -should result in something like: - ----- -This is perl, v5.8.0 built for MSWin32-x86-multi-thread -(with 1 registered patch, see perl -V for more detail) - -Copyright 1987-2002, Larry Wall - -Binary build 805 provided by ActiveState Corp. http://www.ActiveState.com -Built 18:08:02 Feb 4 2003 -... ----- - -However, the version string may vary. - -[[ChToolsFlex]] - -=== Flex - -Flex is a lexical analyzer generator used for Wireshark’s display filters, some -file formats, and other features. - -[[ChToolsUnixFlex]] - -[discrete] -==== Unix - -Flex is available for most UNIX and UNIX-like platforms. See the next -section for native Windows options. - -If GNU flex isn't already installed or available as a package for your platform -you can get it at https://www.gnu.org/software/flex/[]. - -After correct installation running the following - -[source,sh] ----- -$ flex --version ----- - -should result in something like: - ----- -flex version 2.5.4 ----- - -Your version string may vary. - -[[ChToolsWindowsFlex]] - -[discrete] -==== Windows - -A native Windows version of flex is available in the _winflexbison3_ -https://chocolatey.org/[Chocolatey] package. Note that the executable is named -_win_flex_. - -[source,cmd] ----- -PS:\> choco install winflexbison3 ----- - -Native packages are available from other sources such as -http://gnuwin32.sourceforge.net/packages/flex.htm[GnuWin]. They aren't -officially supported but _should_ work. - -[[ChToolsGit]] - -=== Git client - -The Wireshark project uses its own Git repository to keep track of all -the changes done to the source code. Details about the usage of Git in -the Wireshark project can be found in <<ChSrcGitRepository>>. - -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 Git -client to get the latest source files. For detailed information about -the different ways to obtain the Wireshark sources, see <<ChSrcObtain>>. - -You will find more instructions in <<ChSrcGit>> on how to use the Git -client. - -[[ChToolsUnixGit]] - -[discrete] -==== Unix - -Git is available for most UNIX and UNIX-like platforms. If Git isn't -already installed or available as a package for your platform, you can -get it at: https://git-scm.com/[]. - -After correct installation, typing at the bash command line prompt: - -[source,sh] ----- -$ git --version ----- - -should result in something like: - ----- -git version 2.14.1 ----- - -Your version will likely be different. - -[[ChToolsWindowsGit]] - -[discrete] -==== Windows - -The Git command line tools for Windows can be found at -https://git-scm.com/download/win[] and can also be installed using Chocolatey: - -[source,cmd] ----- -PS:\> choco install git ----- - -After correct installation, typing at the command -line prompt (cmd.exe): - -[source,cmd] ----- -> git --version ----- - -should result in something like: - ----- -git version 2.16.1.windows.1 ----- - -However, the version string may vary. - -[[ChToolsGitPowerShellExtensions]] - -=== Git Powershell Extensions (Optional) - -A useful tool for command line git on Windows is https://github.com/dahlbyk/posh-git[PoshGit]. -Poshgit provides git command completion and alters the prompt to indicate the local working -copy status. You can install it using Chocolatey: - -[source,cmd] ----- -PS:\> choco install poshgit ----- - -[[ChToolsGitGUI]] - -=== Git GUI Client (Optional) - -Along with the traditional command-line client, several -GUI clients are available for a number of platforms. See -https://git-scm.com/downloads/guis[] for details. - -// [[ChToolsUnixGitGUI]] -// XXX Add Gui client section - -[[ChToolsPatch]] - -=== 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. - -It most cases you may not need the patch tool installed. Git should -handle patches for you. - -// You will find more instructions in <<ChSrcPatchApply>>on how to use the patch tool. - -[[ChToolsUnixPatch]] - -[discrete] -==== Unix - -Patch is available for most UNIX and UNIX-like platforms. If GNU patch -isn't already installed or available as a package for your platform, you -can get it at https://www.gnu.org/software/patch/patch.html[]. - -After correct installation, typing at the -bash command line prompt: - -[source,sh] ----- -$ patch --version ----- - -should result in something like: - ----- -patch 2.5.8 -Copyright (C) 1988 Larry Wall -Copyright (C) 2002 Free Software Foundation, Inc. - -This program comes with NO WARRANTY, to the extent permitted by law. -You may redistribute copies of this program -under the terms of the GNU General Public License. -For more information about these matters, see the file named COPYING. - -written by Larry Wall and Paul Eggert ----- - -However, the version string may vary. - -[[ChToolsWindowsPatch]] - -[discrete] -==== Windows - -The Windows native Git tools provide patch. A native Windows patch package can be obtained from -http://gnuwin32.sourceforge.net/[]. The -installation should be straightforward. - -[[ChToolsNSIS]] - -=== Windows: NSIS (Optional) - -The NSIS (Nullsoft Scriptable Install System) is used to generate -_Wireshark-win32-{wireshark-version}.exe_ from all the files -needed to be installed, including all required DLLs, plugins, and supporting -files. - -To install it, download the latest released version from -https://nsis.sourceforge.net[]. NSIS v3 is required. You can also install -it using Chocolatey: - -[source,cmd] ----- -PS$> choco install nsis ----- - -You can find more instructions on using NSIS in <<ChSrcNSIS>>. - -[[ChToolsWiX]] - -=== Windows: WiX Toolset (Optional) - -The Wix Toolset can be used to generate Windows Installer (_.msi_) packages. -You can download it from the link:https://wixtoolset.org/[WiX web site] or install it using Chocolatey: - -[source,cmd] ----- -PS$> choco install wixtoolset ----- - -This also requires the Visual C++ redistributable merge modules, which can be installed by selecting “Individual Components -> {cpp} 2019 Redistributable MSMs” in the Visual Studio installer. - -Wireshark’s .msi packaging is currently experimental and the generated packages may be incomplete. - -[[ChToolsPortableApps]] -=== Windows: PortableApps (Optional) - -The PortableApps.com Installer is used to generate -_WiresharkPortable64-{wireshark-version}.paf.exe_ and -_WiresharkPortable32-{wireshark-version}.paf.exe_ from all the files -needed to be installed, including all required DLLs, plugins, and supporting -files. - -To install it, do the following: - -* Download the latest PortableApps.com Platform release from - https://portableapps.com/[]. - -* Install the following applications in the PortableApps.com environment: - -** PortableApps.com Installer - -** PortableApps.com Launcher - -You can find more instructions on using the PortableApps.com Installer in -<<ChSrcPortableApps>>. - -// End of WSDG Chapter Tools - -// vim: set syntax=asciidoc: |