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. Installation
2.2.1. UNIX
2.2.2. Win32 native
2.2.3. Win32 Cygwin
2.3. Win32: Recommended tools
2.4. bash
2.4.1. UNIX: GNU bash
2.4.2. Win32 native: -
2.5. C compiler
2.5.1. UNIX: GCC (GNU compiler collection)
2.5.2. Win32 native: Microsoft Visual Studio version 6 C compiler
2.5.3. Win32 native: Microsoft Visual Studio .NET (and alike) C compilers
2.6. Debugger
2.6.1. UNIX: GDB (GNU project debugger)
2.6.2. UNIX: DDD (GNU Data Display Debugger)
2.6.3. Win32 native: Microsoft Visual Studio debugger
2.6.4. Win32 native: Microsoft Debugging Tools for Windows
2.7. make
2.7.1. Unix: GNU Make
2.7.2. Win32 native: nmake from MSVC
2.7.3. Win32 native: nmake from microsoft.com
2.8. python
2.8.1. UNIX: python
2.8.2. Win32 native: python
2.9. perl
2.9.1. UNIX: perl
2.9.2. Win32 native: perl
2.10. sed
2.10.1. UNIX: sed
2.10.2. Win32 native: sed
2.11. yacc (bison)
2.11.1. UNIX: bison
2.11.2. Win32 native: bison
2.12. lexx (flex)
2.12.1. UNIX: flex
2.12.2. Win32 native: flex
2.13. Subversion (SVN) client (optional)
2.13.1. UNIX: svn
2.13.2. Win32 native: TortoiseSVN
2.14. diff (optional)
2.14.1. UNIX: GNU diff
2.14.2. Win32 native: diff
2.15. patch (optional)
2.15.1. UNIX: patch
2.15.2. Win32 native: patch
2.16. Win32: GNU wget (optional)
2.17. Win32: NSIS (optional)
2.18. Obsolete: CVS client
2.19. Win32: Verify installed tools
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. Nightly 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. 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