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. Recommended: Install Chocolatey
2.2.2. Install Microsoft Visual Studio
2.2.3. Install Qt
2.2.4. Install Python
2.2.5. Install Perl
2.2.6. Install Git
2.2.7. Install CMake
2.2.8. Install Asciidoctor, Xsltproc, And DocBook
2.2.9. Install winflexbison
2.2.10. Install and Prepare Sources
2.2.11. Open a Visual Studio Command Prompt
2.2.12. Generate the build files
2.2.13. Build Wireshark
2.2.14. Debug Environment Setup
2.2.15. Optional: Create User’s and Developer’s Guide
2.2.16. 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.2.2. Git Naming Conventions
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. Writing a Good Commit Message
3.9.3. Code Requirements
3.9.4. Uploading your changes
3.9.5. Backporting a change
3.10. Apply a patch from someone else
3.10.1. Using patch
3.11. Binary Packaging
3.11.1. Packaging Guidelines
3.11.2. Debian: .deb Packages
3.11.3. Red Hat: .rpm Packages
3.11.4. macOS: .dmg Packages
3.11.5. Windows: NSIS .exe Installer
3.11.6. Windows: PortableApps .paf.exe Package
3.12. Mime Types
3.12.1. Display Filter
3.12.2. Coloring Rules
3.12.3. Filter List
3.12.4. Column List
4. Tool Reference
4.1. Introduction
4.2. Chocolatey
4.3. CMake
4.4. GNU Compiler Toolchain (UNIX And UNIX-like Platforms)
4.4.1. gcc (GNU Compiler Collection)
4.4.2. gdb (GNU Project Debugger)
4.4.3. make (GNU Make)
4.4.4. Ninja
4.5. Microsoft compiler toolchain (Windows native)
4.5.1. Official Toolchain Packages And Alternatives
4.5.2. cl.exe (C Compiler)
4.5.3. link.exe (Linker)
4.5.4. Visual C++ Runtime “Redistributable” Files
4.5.5. Windows Platform SDK
4.6. Documentation Toolchain
4.6.1. Asciidoctor
4.6.2. Xsltproc And DocBook
4.6.3. HTML Help
4.6.4. Debugger
4.7. bash
4.8. Python
4.9. Perl
4.10. Bison
4.11. Flex
4.12. Git client
4.13. Git Powershell Extensions (Optional)
4.14. Git GUI Client (Optional)
4.15. patch (Optional)
4.16. Windows: NSIS (Optional)
4.17. Windows: WiX Toolset (Optional)
4.18. Windows: PortableApps (Optional)
5. Library Reference
5.1. Introduction
5.2. Binary Library Formats
5.3. Windows Automated Library Download
5.4. Qt
5.5. GLib And Supporting Libraries
5.6. SMI (Optional)
5.7. c-ares (Optional)
5.8. zlib (Optional)
5.9. libpcap or Npcap (Optional, But Strongly Recommended)
5.10. GnuTLS (Optional)
5.11. Gcrypt
5.12. Kerberos (Optional)
5.13. LUA (Optional)
5.14. MaxMindDB (Optional)
5.15. WinSparkle (Optional)