Ethereal Build Environment

Part I. Ethereal Build Environment

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

Part II. Ethereal Development

The second part describes how the Ethereal sources are structured and how to change the sources (e.g. adding a new dissector).

Table of Contents

1. Introduction
1.1. Introduction
1.2. What is Ethereal?
1.3. Platforms Ethereal runs on
1.3.1. Unix
1.3.2. Linux
1.3.3. Microsoft Windows
1.4. Development and maintenance of Ethereal
1.4.1. Programming language(s) 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. Reporting problems and getting help
1.6.1. Website
1.6.2. Wiki
1.6.3. FAQ
1.6.4. Mailing Lists
1.6.5. Bug database
1.6.6. Reporting Problems
1.6.7. Reporting Crashes on UNIX/Linux platforms
1.6.8. Reporting Crashes on Windows platforms
1.7. Other sources of developer information
2. Tools
2.1. Introduction
2.2. UNIX: Installation
2.3. Win32: Installation
2.3.1. Recommendations (Cygwin vs. Win32 native)
2.3.2. Install Microsoft Visual Studio Version 6
2.3.3. Install Cygwin
2.3.4. Install Additional Tools
2.3.5. Verify installed tools
2.4. C compiler
2.4.1. UNIX or Win32 Cygwin: GCC (GNU compiler collection)
2.4.2. Win32 native: Microsoft Visual Studio version 6 C compiler
2.4.3. Win32 native: Microsoft Visual Studio .NET (and alike) C compilers
2.5. Debugger
2.5.1. UNIX or Win32 Cygwin: GDB (GNU project debugger)
2.5.2. UNIX: DDD (GNU Data Display Debugger)
2.5.3. Win32 native: Microsoft Visual Studio debugger
2.5.4. Win32 native: Microsoft Debugging Tools for Windows
2.6. make
2.6.1. UNIX or Win32 Cygwin: GNU Make
2.6.2. Win32 native: nmake from MSVC
2.6.3. Win32 native: nmake from microsoft.com
2.7. bash
2.7.1. UNIX or Win32 Cygwin: GNU bash
2.7.2. Win32 native: -
2.8. python
2.8.1. UNIX or Win32 Cygwin: python
2.8.2. Win32 native: python
2.9. perl
2.9.1. UNIX or Win32 Cygwin: perl
2.9.2. Win32 native: perl
2.10. sed
2.10.1. UNIX or Win32 Cygwin: sed
2.10.2. Win32 native: sed
2.11. yacc (bison)
2.11.1. UNIX or Win32 Cygwin: bison
2.11.2. Win32 native: bison
2.12. lexx (flex)
2.12.1. UNIX or Win32 Cygwin: flex
2.12.2. Win32 native: flex
2.13. Subversion (SVN) client (optional)
2.13.1. UNIX or Win32 Cygwin: svn (subversion)
2.13.2. Win32 native: TortoiseSVN
2.14. diff (optional)
2.14.1. UNIX or Win32 Cygwin: GNU diff
2.14.2. Win32 native: diff
2.15. patch (optional)
2.15.1. UNIX or Win32 Cygwin: patch
2.15.2. Win32 native: patch
2.16. Win32: GNU wget (optional)
2.17. Win32: GNU unzip (optional)
2.18. Win32: NSIS (optional)
2.19. Obsolete: CVS client
3. Libraries
3.1. Introduction
3.2. Binary library formats
3.2.1. Unix
3.2.2. Win32: MSVC V6
3.2.3. Win32: MSVC 2003
3.2.4. Win32: cygwin gcc
3.3. Win32: Automated library download
3.3.1. Update of a previous download
3.4. GTK+ / GLib / GDK / Pango / ATK / GNU gettext / GNU libiconv
3.4.1. Unix
3.4.2. Win32 MSVC
3.5. Net SNMP (previously known as "ucd-snmp")
3.5.1. Unix
3.5.2. Win32 MSVC
3.6. GNU ADNS (optional)
3.6.1. Unix
3.6.2. Win32 MSVC
3.7. PCRE(optional)
3.7.1. Unix
3.7.2. Win32 MSVC
3.8. zlib (optional)
3.8.1. Unix
3.8.2. Win32 MSVC
3.9. libpcap/WinPcap (optional)
3.9.1. Unix: libpcap
3.9.2. Win32 MSVC: WinPcap
3.10. Win32: GTK WIMP (optional) for GTK 2.x only
4. Work with the Ethereal sources
4.1. Introduction
4.2. The Ethereal Subversion repository
4.3. The web interface to the Subversion repository
4.4. Obtain the Ethereal sources
4.4.1. Anonymous Subversion access
4.4.2. Anonymous Subversion web interface
4.4.3. Buildbot Snapshots
4.4.4. Released sources
4.5. Update the Ethereal sources
4.5.1. ... with Anonymous Subversion access
4.5.2. ... from zip files
4.6. Build Ethereal for the first time
4.6.1. Unix
4.6.2. Win32 native
4.7. Run generated Ethereal for the first time
4.8. Debug your generated Ethereal
4.8.1. Win32 native
4.9. Make changes to the Ethereal sources
4.10. Commit changed sources
4.10.1. What is a diff file (a patch)?
4.10.2. Generate a patch
4.10.3. Some tips for a good patch
4.10.4. Code Requirements
4.10.5. Sending your patch to the developer mailing list
4.11. Apply a patch from someone else
4.12. Add a new file to the Subversion repository
4.13. Binary packaging
4.13.1. Debian: .deb packages
4.13.2. Red Hat: .rpm packages
4.13.3. Win32: NSIS .exe installer