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
1.3.2. Linux
1.3.3. 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. Mailing Lists
1.7.6. Bug database (Bugzilla)
1.7.7. Q&A Site
1.7.8. Reporting Problems
1.7.9. Reporting Crashes on UNIX/Linux 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 PowerShell
2.2.2. Optional: Install Chocolatey
2.2.3. Install Microsoft C compiler and SDK
2.2.4. Install Qt
2.2.5. Install Cygwin
2.2.6. Install Python
2.2.7. Install Git
2.2.8. Install and Prepare Sources
2.2.9. Open a Visual Studio Command Prompt
2.2.10. Verify installed tools
2.2.11. Install Libraries
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. Win32 native
3.6. Run generated Wireshark
3.6.1. Unix/Linux
3.6.2. Win32 native
3.7. Debug your generated Wireshark
3.7.1. Unix/Linux
3.7.2. Win32 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. Mac OS X: .dmg packages
3.11.4. Win32: NSIS .exe installer
3.11.5. Win32: PortableApps .paf.exe package
4. Tool Reference
4.1. Introduction
4.2. Windows PowerShell
4.3. Chocolatey
4.4. Windows: Cygwin
4.4.1. Installing Cygwin using the Cygwin installer
4.4.2. Add/Update/Remove Cygwin Packages
4.4.3. Installing Cygwin using Chocolatey
4.5. GNU compiler toolchain (UNIX 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.6. Microsoft compiler toolchain (Windows native)
4.6.1. Toolchain Package Alternatives
4.6.2. cl.exe (C Compiler)
4.6.3. nmake.exe (Make)
4.6.4. link.exe (Linker)
4.6.5. C-Runtime "Redistributable" Files
4.6.6. Windows (Platform) SDK
4.6.7. HTML Help
4.6.8. Debugger
4.7. bash
4.7.1. UNIX and Cygwin: GNU bash
4.7.2. Windows native:
4.8. Python
4.9. Perl
4.9.1. UNIX and Cygwin: Perl
4.9.2. Windows native: Perl
4.10. sed
4.10.1. UNIX and Cygwin: sed
4.10.2. Windows native: sed
4.11. Bison
4.11.1. UNIX or Cygwin: bison
4.11.2. Windows Native: Win flex-bison and bison
4.12. Flex
4.12.1. UNIX or Cygwin: flex
4.12.2. Windows Native: Win flex-bison and flex
4.13. Git client
4.13.1. UNIX or Cygwin: 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 Cygwin: patch
4.16.2. Windows native: patch
4.17. Windows: GNU wget (optional)
4.18. Windows: GNU unzip (optional)
4.19. Windows: NSIS (optional)
4.20. Windows: PortableApps (optional)
5. Library Reference
5.1. Introduction
5.2. Binary library formats
5.2.1. Unix
5.2.2. Win32: MSVC
5.2.3. Win32: cygwin gcc
5.3. Win32: Automated library download
5.3.1. Initial download
5.3.2. Update of a previous download
5.4. GTK+ / GLib / GDK / Pango / ATK / GNU gettext / GNU libiconv
5.4.1. Unix
5.4.2. Win32 MSVC
5.5. SMI (optional)
5.5.1. Unix
5.5.2. Win32 MSVC
5.6. c-ares (optional)
5.6.1. Unix
5.6.2. Win32 MSVC
5.7. zlib (optional)
5.7.1. Unix
5.7.2. Win32 MSVC
5.8. libpcap/WinPcap (optional)
5.8.1. Unix: libpcap
5.8.2. Win32 MSVC: WinPcap
5.9. GnuTLS (optional)
5.9.1. Unix
5.9.2. Win32 MSVC
5.10. Gcrypt (optional)
5.10.1. Unix
5.10.2. Win32 MSVC
5.11. Kerberos (optional)
5.11.1. Unix
5.11.2. Win32 MSVC
5.12. LUA (optional)
5.12.1. Unix
5.12.2. Win32 MSVC
5.13. PortAudio (optional)
5.13.1. Unix
5.13.2. Win32 MSVC
5.14. GeoIP (optional)
5.14.1. Unix
5.14.2. Win32 MSVC