Wireshark Developer's Guide 26808 for Wireshark 1.0.0
Total Page:16
File Type:pdf, Size:1020Kb
Wireshark Developer's Guide 26808 for Wireshark 1.0.0 Ulf Lamping, Wireshark Developer's Guide: 26808 for Wireshark 1.0.0 by Ulf Lamping Copyright © 2004-2008 Ulf Lamping Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation. All logos and trademarks in this document are property of their respective owner. Table of Contents Preface ............................................................................................................. viii 1. Foreword .............................................................................................. viii 2. Who should read this document? ................................................................. ix 3. Acknowledgements .................................................................................... x 4. About this document ................................................................................. xi 5. Where to get the latest copy of this document? .............................................. xii 6. Providing feedback about this document ..................................................... xiii I. Wireshark Build Environment ............................................................................... 1 1. Introduction .............................................................................................. 2 1.1. Introduction ................................................................................... 2 1.2. What is Wireshark? ......................................................................... 3 1.3. Platforms Wireshark runs on ............................................................. 4 1.3.1. Unix ................................................................................... 4 1.3.2. Linux ................................................................................. 4 1.3.3. Microsoft Windows ............................................................... 5 1.4. Development and maintenance of Wireshark ........................................ 6 1.4.1. Programming language(s) used ................................................ 6 1.4.2. Open Source Software ........................................................... 6 1.5. Releases and distributions ................................................................. 8 1.5.1. Binary distributions ............................................................... 8 1.5.2. Source code distributions ....................................................... 8 1.6. Automated Builds (Buildbot) ............................................................. 9 1.6.1. Advantages .......................................................................... 9 1.6.2. What does the Buildbot do? .................................................... 9 1.7. Reporting problems and getting help ..................................................10 1.7.1. Website .............................................................................10 1.7.2. Wiki ..................................................................................10 1.7.3. FAQ ..................................................................................10 1.7.4. Other sources ......................................................................10 1.7.5. Mailing Lists ......................................................................10 1.7.6. Bug database (Bugzilla) ........................................................11 1.7.7. Reporting Problems ..............................................................11 1.7.8. Reporting Crashes on UNIX/Linux platforms ............................12 1.7.9. Reporting Crashes on Windows platforms ................................12 2. Quick Setup .............................................................................................14 2.1. UNIX: Installation ..........................................................................14 2.2. Win32: Step-by-Step Guide ..............................................................15 2.2.1. Install Microsoft C compiler and Platform SDK .........................15 2.2.2. Install Cygwin .....................................................................15 2.2.3. Install Python ......................................................................16 2.2.4. Install Subversion Client .......................................................16 2.2.5. Install and Prepare Sources ....................................................16 2.2.6. Prepare cmd.exe ..................................................................17 2.2.7. Verify installed tools ............................................................18 2.2.8. Install Libraries ...................................................................18 2.2.9. Distclean Sources ................................................................18 2.2.10. Build Wireshark .................................................................19 2.2.11. Debug Environment Setup (XXX) .........................................19 2.2.12. Optional: Create User's and Developer's Guide ........................19 2.2.13. Optional: Create a Wireshark Installer ....................................19 3. Work with the Wireshark sources .................................................................22 3.1. Introduction ..................................................................................22 3.2. The Wireshark Subversion repository .................................................23 3.2.1. The web interface to the Subversion repository ..........................23 3.3. Obtain the Wireshark sources ...........................................................25 3.3.1. Anonymous Subversion access ...............................................25 3.3.2. Anonymous Subversion web interface .....................................25 iv Wireshark Developer's Guide 3.3.3. Buildbot Snapshots ..............................................................25 3.3.4. Released sources .................................................................26 3.4. Update the Wireshark sources ...........................................................27 3.4.1. ... with Anonymous Subversion access .....................................27 3.4.2. ... from zip files ...................................................................27 3.5. Build Wireshark .............................................................................28 3.5.1. Unix ..................................................................................28 3.5.2. Win32 native ......................................................................28 3.6. Run generated Wireshark .................................................................30 3.7. Debug your generated Wireshark ......................................................31 3.7.1. Win32 native ......................................................................31 3.8. Make changes to the Wireshark sources ..............................................32 3.9. Contribute your changes ..................................................................33 3.9.1. What is a diff file (a patch)? ...................................................33 3.9.2. Generate a patch ..................................................................34 3.9.3. Some tips for a good patch .....................................................35 3.9.4. Code Requirements ..............................................................35 3.9.5. Sending your patch for inclusion .............................................36 3.10. Apply a patch from someone else ....................................................38 3.10.1. Using patch .......................................................................38 3.10.2. CVS diff (obsolete) ............................................................38 3.11. Add a new file to the Subversion repository .......................................40 3.12. Binary packaging ..........................................................................41 3.12.1. Debian: .deb packages .........................................................41 3.12.2. Red Hat: .rpm packages .......................................................41 3.12.3. Win32: NSIS .exe installer ...................................................41 4. Tool Reference .........................................................................................44 4.1. Introduction ..................................................................................44 4.2. Win32: Cygwin .............................................................................45 4.2.1. Add/Update/Remove Cygwin Packages ...................................45 4.3. GNU compiler toolchain (UNIX or Win32 Cygwin) .............................46 4.3.1. gcc (GNU compiler collection) ...............................................46 4.3.2. gdb (GNU project debugger) ..................................................46 4.3.3. ddd (GNU Data Display Debugger) .........................................46 4.3.4. make (GNU Make) ..............................................................47 4.4. Microsoft compiler toolchain (Win32 native) .......................................48 4.4.1. Toolchain Package Alternatives ..............................................48 4.4.2. Legal issues with MSVC > V6? ..............................................50 4.4.3. cl.exe (C Compiler) ..............................................................51 4.4.4. nmake.exe (Make) ...............................................................52