Part I. Wireshark Build Environment

Wireshark Build Environment

The first part describes how to set up the tools, libraries and source needed to generate Wireshark and how to do some typical development tasks.

Table of Contents

1. Introduction
1.1. Introduction
1.2. What is Wireshark?
1.3. Supported Platforms
1.3.1. Unix and Unix-like platforms
1.3.2. Microsoft Windows
1.4. Development and maintenance of Wireshark
1.4.1. Programming languages used
1.4.2. Open Source Software
1.5. Releases and distributions
1.5.1. Binary distributions
1.5.2. Source code distributions
1.6. Automated Builds (Buildbot)
1.6.1. Advantages
1.6.2. What does the Buildbot do?
1.7. Reporting problems and getting help
1.7.1. Website
1.7.2. Wiki
1.7.3. FAQ
1.7.4. Other sources
1.7.5. Q&A Site
1.7.6. Mailing Lists
1.7.7. Bug database (Bugzilla)
1.7.8. Reporting Problems
1.7.9. Reporting Crashes on UNIX-like platforms
1.7.10. Reporting Crashes on Windows platforms
2. Quick Setup
2.1. UNIX: Installation
2.2. Win32/64: Step-by-Step Guide
2.2.1. Install Microsoft C compiler and SDK
2.2.2. Install Qt
2.2.3. Recommended: Install Chocolatey
2.2.4. Optional: Install Cygwin
2.2.5. Install Python
2.2.6. Install Git
2.2.7. Install CMake
2.2.8. Install Asciidoctor, Xsltproc, And DocBook
2.2.9. Install and Prepare Sources
2.2.10. Open a Visual Studio Command Prompt
2.2.11. Generate the build files
2.2.12. Build Wireshark
2.2.13. Debug Environment Setup
2.2.14. Optional: Create User’s and Developer’s Guide
2.2.15. Optional: Create a Wireshark Installer
3. Work with the Wireshark sources
3.1. Introduction
3.2. The Wireshark Git repository
3.2.1. The web interface to the Git repository
3.3. Obtain the Wireshark sources
3.3.1. Git over SSH or HTTPS
3.3.2. Git web interface
3.3.3. Buildbot Snapshots
3.3.4. Released sources
3.4. Update the Wireshark sources
3.4.1. Update Using Git
3.4.2. Update Using Source Archives
3.5. Build Wireshark
3.5.1. Building on Unix
3.5.2. Windows native
3.6. Run generated Wireshark
3.6.1. Unix-like platforms
3.6.2. Windows native
3.7. Debug Your Generated Wireshark
3.7.1. Unix-like platforms
3.7.2. Windows native
3.8. Make changes to the Wireshark sources
3.9. Contribute your changes
3.9.1. Some tips for a good patch
3.9.2. Code Requirements
3.9.3. Uploading your changes
3.9.4. Backporting a change
3.10. Apply a patch from someone else
3.10.1. Using patch
3.11. Binary packaging
3.11.1. Debian: .deb packages
3.11.2. Red Hat: .rpm packages
3.11.3. macOS: .dmg packages
3.11.4. Windows: NSIS .exe installer
3.11.5. Windows: PortableApps .paf.exe package
4. Tool Reference
4.1. Introduction
4.2. Chocolatey
4.3. Windows: Cygwin
4.4. CMake
4.5. GNU compiler toolchain (UNIX and UNIX-like platforms only)
4.5.1. gcc (GNU compiler collection)
4.5.2. gdb (GNU project debugger)
4.5.3. ddd (GNU Data Display Debugger)
4.5.4. make (GNU Make)
4.5.5. Ninja
4.6. Microsoft compiler toolchain (Windows native)
4.6.1. Official Toolchain Packages And Alternatives
4.6.2. cl.exe (C Compiler)
4.6.3. link.exe (Linker)
4.6.4. C-Runtime "Redistributable" Files
4.6.5. Windows (Platform) SDK
4.7. Documentation Toolchain
4.7.1. Asciidoctor
4.7.2. Xsltproc And DocBook
4.7.3. HTML Help
4.7.4. Debugger
4.8. bash
4.8.1. UNIX and UNIX-like platforms: GNU Bash
4.9. Python
4.10. Perl
4.10.1. UNIX and UNIX-like platforms: Perl
4.10.2. Windows native: Perl
4.11. Bison
4.11.1. UNIX and UNIX-like platforms: Bison
4.11.2. Windows native: Win flex-bison and bison
4.12. Flex
4.12.1. UNIX and UNIX-like platforms: flex
4.12.2. Windows native: Win flex-bison and flex
4.13. Git client
4.13.1. UNIX and UNIX-like platforms: git
4.13.2. Windows native: git
4.14. Git Powershell Extensions (optional)
4.15. Git GUI client (optional)
4.16. patch (optional)
4.16.1. UNIX and UNIX-like platforms: patch
4.16.2. Windows native: patch
4.17. Windows: NSIS (optional)
4.18. Windows: PortableApps (optional)
5. Library Reference
5.1. Introduction
5.2. Binary library formats
5.2.1. Unix
5.2.2. Win32: MSVC
5.3. Win32: Automated Library Download
5.4. Qt
5.4.1. Unix
5.4.2. Win32 MSVC
5.5. GLib And Supporting Libraries
5.5.1. Unix
5.5.2. Win32 MSVC
5.6. SMI (optional)
5.6.1. Unix
5.6.2. Win32 MSVC
5.7. c-ares (optional)
5.7.1. Unix
5.7.2. Win32 MSVC
5.8. zlib (optional)
5.8.1. Unix
5.8.2. Win32 MSVC
5.9. libpcap/WinPcap (optional)
5.9.1. Unix: libpcap
5.9.2. Win32 MSVC: WinPcap
5.10. GnuTLS (optional)
5.10.1. Unix
5.10.2. Win32 MSVC
5.11. Gcrypt
5.11.1. Unix
5.11.2. Win32 MSVC
5.12. Kerberos (optional)
5.12.1. Unix
5.12.2. Win32 MSVC
5.13. LUA (optional)
5.13.1. Unix
5.13.2. Win32 MSVC
5.14. MaxMindDB (optional)
5.15. WinSparkle (optional)
5.15.1. Win32 MSVC