Updates to reflect revision 4 of ethereal-win32-libs.
[obnox/wireshark/wip.git] / README.win32
index 370ce37a2e7cd680925d984e4dab2828aaf8e98a..691751c4d7d43cc29265aeb0a0ca49993423d65c 100644 (file)
-$Id: README.win32,v 1.22 2001/04/09 06:12:51 guy Exp $
+$Id$
 
-Running Ethereal, Tethereal, and Editcap on Win32
-=================================================
-You need the glib and gtk libraries for running Ethereal. 
+Installing Ethereal, Tethereal, and Editcap on Win32
+====================================================
+These are the instructions for installing Ethereal
+from the installation executable that is provided on
+the Ethereal website at:
 
-These packages for win32 can be found at:
+http://www.ethereal.com/distribution/win32
 
-       http://www.ethereal.com/distribution/win32
+and any of its mirrors.
 
-and at the home page for the GTK+ for Win32 project:
+The installation package allows you to install:
 
-       http://www.gimp.org/~tml/gimp/win32
+       o Ethereal - the GUI version
+       o Tethereal - the console, line-mode version
+       o Editcap - a console, line-mode utility to convert
+         capture files from one format to another.
+         (The same functions are available in Ethereal)
+       o Text2Pcap - a console, line-mode utility to generate 
+         a capture file from an ASCII hexdump of packets
+       o Mergecap - a console, line-mode utility to merge two 
+         capture files into one
 
-or
-       http://www.iki.fi/tml/gimp/win32/
+Additionally, the installation package contains a "plugins"
+option, which installs some additional dissector plugins
+for use with Ethereal and Tethereal.
 
-(the mirror nearer to you may be faster).
-
-Plugins (gryphon.dll and mgcp.dll) can go in:
-       C:\Program Files\Ethereal\plugins\<version>
-       C:\Ethereal\plugins\<version>
+All binaries in Ethereal package are now built with debugging
+information embedded. If you are experiencing a crash when running
+Ethereal or other binaries, Dr. Watson or your debugger
+can use the information embedded in the binary to provide useful 
+information to the Ethereal developers that will help them pinpoint 
+the problem. 
 
-Where <version> is the version number, without brackets.
-For example, C:\Ethereal\plugins\0.8.16
+In the past, two versions of Ethereal binaries were published -- a
+version that could capture packets and a version which could not.
+The latter is useful if you're only reading files produced by
+another product (e.g., a sniffer, firewall, or intrustion detection system)
+and did not wish to install WinPcap, the library Ethereal uses
+to capture packets on Win32 platforms.
 
-Yes, the location of plugins needs to be more flexible.
+As of WinPcap 2.1, all the WinPcap libraries have been released as DLLs. 
+This means that Ethereal can detect the presence of WinPcap at run time,
+which means that only one version of the Ethereal binaries needs to be
+shipped.
 
-Make sure the glib and gtk DLL's are in your path - i.e., that your path
-includes the directory (folder) or directories (folders) in which those
-DLLs are found - when you run Ethereal.  This includes gtk-*.dll,
-glib-*.dll, gmodule-*.dll, gdk-*.dll, and gnu-intl.dll.  As of the
-20000805 GTK+/GLIB distribution, gthread-*.dll is no longer needed.
+If you don't want to capture packets, just install the Ethereal
+package. If you do want to capture packets, install Ethereal *and*
+install the latest non-beta version of WinPcap, available from:
 
-The Win32 Binary distribution, available from
+       http://winpcap.polito.it/
 
-       http://www.ethereal.com/distribution/win32
+and mirrored at
 
-used different version of the GTK+/GLIB libraries at different points
-in time:
+       http://winpcap.mirror.ethereal.com/
 
-Ethereal Version               GTK+/GLIB version
-----------------               -----------------
-0.8.16 and after               20001226
-0.8.11 - 0.8.15                        20000805
-0.8.9 - 0.8.10                 20000416
-0.8.8 and before               19990828
+and
 
+       http://www.mirrors.wiretapped.net/security/packet-capture/winpcap/
 
-Capturing Packets
------------------
-Remember, if using the the Win32 Binary distribution, available from
+If you already have an earlier version of WinPcap installed, you need to
+un-install it and install the latest version.  If the older version is
+WinPcap 2.0 or 2.02, and you have other applications that use the older
+version , you will have to decide which applications to keep, since
+WinPcap 2.0/2.02 and later versions cannot be installed on the same
+system at the same time.
 
-       http://www.ethereal.com/distribution/win32
+If Ethereal is not capturing packets and you have WinPcap installed, you
+can test your WinPcap installation by installing WinDump (tcpdump for
+Windows) ported by the same folks who make WinPcap.  It's at:
 
-there are two separate packages, one with non-capturing tools, and
-one with capturing tools. Install the appropriate package. The
-capturing version requires WinPcap 2.1, the non-capturing version does not.
+       http://windump.polito.it/
 
-In order to capture with Win32, you need to install the NDIS
-packet capture driver for your particular Win32 OS; drivers for Windows
-9x, Windows NT 4.0, and Windows 2000 can be downloaded from the
-WinPcap home page:
+and mirrored at
 
-       http://netgroup-serv.polito.it/winpcap/
+       http://windump.mirror.ethereal.com/
 
-If Ethereal is not capturing packets, you can test your WinPcap
-installation by installing WinDump (TCPdump for Windows) ported by the
-same folks who make WinPcap. It's at:
+and
 
-       http://netgroup-serv.polito.it/windump/
+       http://www.mirrors.wiretapped.net/security/packet-capture/windump/
 
 They also make Analyzer, a GUI sniffer for Win32:
 
-       http://netgroup-serv.polito.it/analyzer/
+       http://analyzer.polito.it/
+
+The rest of this documentation is only interesting if
+you want to compile Ethereal yourself.
 
 
 Compiling the Ethereal distribution from source
 ===============================================
-You'll need the development package for GLIB, GTK+, and WinPcap.
-Those versions are available from the respctive home pages for
-each project (the same URLs as listed above). The development
-packages contain header files and stub libaries to link against.
 
-The use of an SNMP library has not been made to work yet in
-Ethereal/Win32, but a binary distribution of the UCD SNMP package,
-including header files and a DLL of the UCD SNMP library, can be had
-from:
+Compilers
+---------
+MS Visual C++ Version 6
+This is the common compiler used for building Ethereal on win32.
+
+MS Visual C++ Version 7 / VC.NET
+Currently unsupported for two reasons:
+-the licence agreement does NOT allow you to compile GPL code.
+-there are serious problems in using DLL's compiled with MS VC6.
+See section "Problems with MS Visual C++ Version 7 / VC.NET" below.
+
+Cygwin GCC
+Ethereal can entirely be built with cygwin GCC. However the built binaries will
+only run in a cygwin environment, so they are not standalone Win32 applications.
+It is however not excluded that native Win32 code can be compiled on cygwin GCC
+but you then have to use -mms-bitfields as a strict minimum and probably
+-mno-cygwin or a similar compiler flag too.
+See section below for instructions.
+
+
+Automated library download
+--------------------------
+Before using the automated download, be sure to edit the config.nmake file 
+to suit your needs. Especially have a look at the ETHEREAL_LIBS setting.
+However, the defaults should be working well for a first start.
+
+If you've installed Microsoft Visual C++ (MSVC), you can run:
+
+nmake -f makefile.nmake setup 
+
+This will first check the availability of all required tools and then uses 
+the tool wget to download each package file (together around 30MB!) from the 
+server location at:
+
+       http://anonsvn.ethereal.com/ethereal-win32-libs/trunk/packages/
+
+and unpack it in the $ETHEREAL_LIBS directory. 
+
+If you have problems downloading the files, you might be connected to the 
+internet through a proxy/firewall. In this case see the wget documentation 
+to configure wget accordingly.
+
+
+Required libraries
+------------------
+If the automated library download finished sucessfully, you should have all
+libraries on your machine at the right places. So you don't have to read this,
+unless you are interested which libraries are used.
+
+You'll need the development packages for GLIB, GTK+, iconv, gettext,
+WinPcap, Net-SNMP, and optionally ADNS, PCRE and zlib. The development 
+packages contain header files and stub libraries to link against.  
+
+PRECOMPILED VERSIONS OF ALL OF THESE PACKAGES ARE AVAILABLE AT:
+
+       http://anonsvn.ethereal.com/ethereal-win32-libs/trunk/packages/
+
+
+The GLIB, GTK+, iconv, gettext packages for win32 can be found at the home 
+page for the GTK+ for Win32 project:
+
+       http://www.gimp.org/~tml/gimp/win32 or the mirror
+       http://www.iki.fi/tml/gimp/win32/
+
+The Net-SNMP package for win32 is available at its homepage:
+
+       http://
+
+The WinPcap package is available at its homepage:
+
+       http://winpcap.polito.it/ or the mirror
+       http://www.wiretapped.net/security/packet-capture/winpcap/default.htm
+
+The optional ADNS package for win32 is available at its homepage:
 
-       ftp://ftp.revelstone.com/snmp/binaries/
+       http://adns.jgaa.com/
 
-The file will probably be called "ucd-snmp-X.X-x86-win32.zip", where
-"X.X" is the version number of the UCD SNMP library.
+The optional PCRE package (Perl Compatible Regular Expressions) for win32 is 
+available at its homepage:
+
+       http://gnuwin32.sourceforge.net/packages/pcre.htm
+
+The optional zlib package for win32 is available at its homepage:
+
+       http://www.gzip.org/zlib/
+
+
+By default, the build process looks for these packages in
+C:\ethereal-win32-libs.  You can place them in a different directory, but
+you must update the ETHEREAL_LIBS variable in config.nmake accordingly.
+
+The following lists the packages needed to compile Ethereal and the default
+locations where to unpack them, when the above method isn't used.
+
+    Package                               Default Location
+    -------                               ----------------
+    glib-2.2.3-20040116.zip               C:\ethereal-win32-libs\glib
+    glib-dev-2.2.3-20040116.zip           C:\ethereal-win32-libs\glib
+    gtk+-1.3.0-20030717.zip               C:\ethereal-win32-libs\gtk+
+    gtk+-dev-1.3.0-20030115.zip           C:\ethereal-win32-libs\gtk+
+    libiconv-1.9.1.bin.woe32.zip          C:\ethereal-win32-libs\libiconv-1.9.1.bin.woe32
+    gettext-runtime-0.13.1.zip            C:\ethereal-win32-libs\gettext-runtime-0.13.1
+    net-snmp-5.1.zip                      C:\ethereal-win32-libs
+    wpdpack_3_0.zip                       C:\ethereal-win32-libs
+
+and optional:
+
+    adns-1.0-win32-03.zip                 C:\ethereal-win32-libs
+    pcre-4.4.zip                          C:\ethereal-win32-libs
+    zlib121-dll.zip                       C:\ethereal-win32-libs\zlib121-dll
+
+(to use the default locations, the directories in question should be
+created, and each zip file should be unpacked into the corresponding
+directory).  If you only want to change the C:\ethereal-win32-libs
+part, you just change the setting of ETHEREAL_LIBS in config.nmake; if
+you want to change subdirectories, you'll have to change the individual
+item for a package.  (Note that some zip files create the subdirectory -
+those zip files just have C:\ethereal-win32-libs in the list above - so
+if you don't want the package to be in that subdirectory, you'd have to
+rename the directory.)
+
+The gettext runtime package provides intl.dll, which is needed by
+GLib 2.2.3.
+
+
+Compiling the Ethereal distribution using GTK+2
+-----------------------------------------------
+
+The more recent version 2 of the GTK+ can be used to compile 
+Ethereal with, but is still considered beta.
+
+GTK+2 will look better in various ways, especially for WIN32 users.
+
+You can get the required libraries from:
+
+http://www.ethereal.com/distribution/win32/development/gtk2
+
+or (like the GTK+1 libraries from the GTK+ for Win32 project):
+
+http://www.gimp.org/~tml/gimp/win32/downloads.html
+
+If you want to try a build with GTK+2.x these Extra libraries are needed 
+
+    Package                               Default Location
+    -------                               ----------------
+    gtk+-2.2.4-20040124.zip               C:\ethereal-win32-libs\gtk2
+    gtk+-dev-2.2.4-20040124.zip                  C:\ethereal-win32-libs\gtk2
+    pango-1.2.5-20040124.zip              C:\ethereal-win32-libs\gtk2  
+    pango-dev-1.2.5-20040124.zip          C:\ethereal-win32-libs\gtk2
+    atk-1.4.0.zip                         C:\ethereal-win32-libs\gtk2  
+    atk-dev-1.4.0.zip                     C:\ethereal-win32-libs\gtk2
+
+and optional:
+
+    gtk-wimp-0.5.3-bin.zip                C:\ethereal-win32-libs\gtk-wimp
+
+Be sure to set GTK2_DIR in config.nmake correct, to be able to compile.
+
+Running your freshly compiled Ethereal
+--------------------------------------
+
+Make sure the glib and gtk DLL's are in your path or you use a directory 
+where all required DLL's and the exe files reside.- i.e., that your
+path includes the directory (folder) or directories (folders) in which
+those DLLs are found - when you run Ethereal.
+
+Note the wiretap*.dll must be in your path as well and if wiretap is changed
+be sure to put the new one in your path.
+
+Plugins (gryphon.dll and mgcp.dll) can go in:
+       <Ethereal installation directory>\plugins\<version>
 
-Instructions for MS Visual C
+Where <version> is the version number, without brackets.  For example,
+if you have Ethereal 0.9.8 installed in the default location, plugins
+will reside in C:\Program Files\Ethereal\plugins\0.9.8
+
+Yes, the location of plugins needs to be more flexible.
+
+Instructions for MS Visual C++
 ----------------------------
-Modify the config.nmake file in the top directory of the Ethereal
-source tree to work for your local configuration. You should not
-have to modify any other Makefile.
+Modify the config.nmake file in the top directory of the Ethereal source
+tree to work for your local configuration; if you don't have Python,
+comment out the line that defines PYTHON, otherwise set it to refer to
+the pathname of your Python interpreter executable.  You should not have
+to modify any other Makefile.
+
+Note that perl is needed to build the documentation, the lines in config.nmake
 
-In order to compile, at least with the default settings, you
-also need zlib, which is provided as an archive library, not
-a DLL. The pre-compiled zlib which comes with the "extralibs"
-package from Gimp/Win32 is faulty; a working version can be
-downloaded from:
+POD2MAN=$(SH) pod2man
+POD2HTML=$(SH) pod2html
 
-       http://www.ethereal.com/distribution/win32/zlib-1.1.3-fixed.zip
+requires Cygwin bash and perl to work.
+
+Many of the file and directory names used in the build process go past
+the old 8.3 naming limitations.  As a result, at least on Windows NT 4.0,
+Windows 2000, Windows XP, and Windows .NET Server, you should use the
+newer "cmd.exe" command interpreter instead of the old "command.com",
+as the "command.com" on Windows 2000, at least, can't handle non-8.3
+directory names.  (It may be that the "command.com" in Windows 95, Windows
+98, and Windows Me, as it's the only command interpreter in those systems,
+can handle those directories.  If not, it may not be possible to build
+Ethereal from the command line on those versions of Windows.)
 
 Be sure that your command-line environment is set up to compile
-and link with MSVC. When installing MSVC, you can have your
+and link with MSVC++. When installing MSVC++, you can have your
 system's environment set up to always allow compiling from the
-command line, or you can invoke the vcvars32.bat script.
+command line, or you can invoke the vcvars32.bat script, which can
+usually be found in the "VC98\Bin" subdirectory of the directory in
+which Visual Studio was installed.
+
+The first time you build Ethereal, run the script "cleanbld.bat" in the
+top-level Ethereal source directory to make sure that the "config.h"
+files will be reconstructed from the "config.h.win32" files.  (If, for
+example, you have "config.h" files left over from a Unix build, a
+Windows build will fail.)
 
 In the ethereal directory, type "nmake -f makefile.nmake". It will
 recurse into the subdirectories as appropriate.
 
 Some generated source is created by traditionally "Unix-ish" tools.
+
 If you are building from an official distribution, these files are
-already generated, so you have nothing to worry about unless you
-modify the source. If building from a CVS image, you'll need the tools
-to generate C source. The "special" files and their requisite tools are:
-
-Source                         Output                  Tool
-------                         ------                  ----
-config.h.in                    config.h                sed
-dfilter-scanner.l              *.c                     Flex
-wiretap/ascend-scanner.l       *.c                     Flex
-wiretap/ascend-grammar.y       *.c,*.h                 Bison/Yacc
-ncp2222.py                     packet-ncp2222.c        Python
-
-make-reg-dotc, packet*.c       register.c              Bash + grep + sed
+already generated, although they were generated on a Unix-compatible
+system.  In most cases, the generated files can be used when building on
+Windows, but the files listed below as being generated by Flex can be
+used when building on Windows only when generated by a Windows version
+of Flex, so you will need a Windows version of Flex to do a Windows
+build.  Those generated files are removed by the "cleanbld.bat" script,
+to make sure that versions left over from a Unix build aren't used.
+
+If you are building from a modified version of an official distribution,
+and you modified any of the source files listed below, you will need the
+tool(s) that generate output from those source files.
+
+If building from a CVS image, you'll need all the tools to generate C
+source.
+
+The "special" files and their requisite tools are:
+
+Source                          Output                  Tool
+------                          ------                  ----
+config.h.win32                  config.h                sed
+epan/config.h.win32             epan/config.h           sed
+image/ethereal.rc.in            image/ethereal.rc       sed
+image/tethereal.rc.in           image/tethereal.rc      sed
+image/editcap.rc.in             image/editcap.rc        sed
+image/mergecap.rc.in            image/mergecap.rc       sed
+image/text2pcap.rc.in           image/text2pcap.rc      sed
+wiretap/config.h.win32          wiretap/config.h        sed
+epan/dfilter/dfilter-scanner.l  epan/dfilter/*.c        Flex
+text2pcap-scanner.l             *.c                     Flex
+wiretap/ascend-scanner.l        *.c                     Flex
+wiretap/ascend-grammar.y        *.c,*.h                 Bison/Yacc
+ncp2222.py                      packet-ncp2222.c        Python
+
+make-reg-dotc, packet*.c        register.c              Bash + grep + sed
 or
-make-reg-dotc.py, packet*.c    register.c              Python
+make-reg-dotc.py, packet*.c     register.c              Python
+
+make-tapreg-dotc, tap-*.c       tethereal-tap-register.c
+                                                        Bash + grep + sed
+make-tapreg-dotc, tap files    gtk/ethereal-tap-register.c
+    in the gtk subdirectory                             Bash + grep + sed
+
+The Makefile.nmake supplied with the Ethereal distribution will, if
+PYTHON is defined in config.nmake, attempt to make register.c with
+Python, since it is much much much faster than the shell version.  The
+reason it is faster is because the shell version launches multiple
+processes (grep, sed) for each source file, multiple times.  The Python
+script is one process.  This matters a lot on Win32.
+
+If you have a Unix system handy, you can first build on Unix to create
+most of the source files that these tools make, then run the build on
+Windows.  That will avoid the need for these tools on your Windows
+computer.  This won't work for the files in the "image" directory,
+however, as those aren't built on Unix - they're only for Windows
+builds.  It also won't work for the "config.h" files; whilst those are
+built for Unix, they're specific to the platform on which you're
+building, and the "config.h" files constructed for a Unix build will not
+work with a Windows build.  In addition, it won't work for the files
+generated by Flex, as, for a Windows build, those have to be generated
+by a Windows version of Flex.
+
+Most of those tools are available for Win32 systems as part of the
+Cygwin package:
+
+       http://sources.redhat.com/cygwin/
 
-The Makefile.nmake supplied with the Ethereal distribution will
-attempt to make register.c with Python, since it is much much much
-faster than the shell version. The reason it is faster is because
-the shell version launches multiple processes (grep, sed) for each
-source file, multiple times. The Python script is one process. This
-matters a lot on Win32. If for some reason you want to build register.c
-with the shell script, uncomment out the action line for the register.c
-target in Makefile.nmake.
+After installing them, you will probably have to modify the config.nmake
+file to specify where the Cygwin binaries are installed.
 
-If you have a Unix system handy, you can first build on Unix
-to create the source files that these tools make, then run the build
-on Windows.  That will avoid the need for these tools on your Windows
-computer.
+Python for Win32 is available from:
 
-If you don't have a Unix system handy, most of those tools are available for
-Win32 systems as part of the Cygwin package:
+       http://www.python.org/
 
-       http://sourceware.cygnus.com/cygwin/
 
-After installing them, you will probably have to modify the config.nmake
-file to specify where the Cygwin binaries are installed.
+Build an (NSIS based) installer
+-------------------------------
 
-Python for Win32 is available from
+If you want to build your own installer, you need to get NSIS from:
 
-       http://www.python.org/
+http://nsis.sourceforge.net/home/
+
+After installing it, you will probably have to modify the config.nmake
+file to specify where the NSIS binaries are installed and wether to use the modern UI or not.
+You will need NSIS version 2 or higher, to build an installer with the modern user interface,
+and for a much smaller installer (using the lzma compression).
+
+In the ethereal directory, type "nmake -f makefile.nmake packaging" to build the installer. 
+Please be patient while the compression is done, it will take some time even on fast machines.
+
+You will hopefully now see something like ethereal-setup-0.10.2.exe in the dir packaging/nsis.
+
+
+Installing GTK-Wimp
+-------------------
+
+GTK-Wimp can be used to get a native Look-and-Feel on WinXP machines, 
+especially with the new "coloured" WinXP theme. It will only take effect
+together with the GTK2 version of Ethereal. 
+
+No changes to the Ethereal sources are needed, GTK-Wimp simply changes the 
+way GTK2 displays the widgets (by changing the GTK2 default theme).
+
+GTK-Wimp might already be installed. In this case, the files mentioned below
+are already existing at the appropriate places.
+
+If GTK-Wimp isn't installed, you can install it yourself: 
+
+1. Go to http://gtk-wimp.sourceforge.net/
+2. Download the ZIP archive containing the library and the theme
+3. Locate the installation directory of Ethereal (C:\Program Files\Ethereal)
+4. Create a subdirectory 'share\themes\Default\gtk-2.0'
+5. Drop the file 'gtkrc' in 'share\themes\Default\gtk-2.0'
+6. Create a subdirectory named 'lib\gtk-2.0\2.2.0\engines'
+7. Drop the 'libwimp.dll' library in 'lib\gtk-2.0\2.2.0\engines'
+
+When you're finished, you should have:
+
+C:\Program Files\Ethereal\lib\gtk-2.0\2.2.0\engines\libwimp.dll
+C:\Program Files\Ethereal\share\themes\Default\gtk-2.0\gtkrc
+
+After (re-)starting Ethereal, you should now see it's widgets in the modern 
+WinXP style on your screen.
+
+
+Problems with MS Visual C++ Version 7 / VC.NET
+----------------------------------------------
+Beside licensing problems with these compilers, there are known problems with DLL's.
+If Ethereal is compiled with MSVC Version 7, there are conflicts in the MSVCRT DLL's,
+The MSVCRT.DLL includes the standard ANSI-C functions like fopen, malloc, etc.. MSVCRT.DLL
+is shipped with the MSVC 6 compiler versions, and dynamically linked to prebuild DLL's like 
+the one's for gtk, glib and such. The MSVC 7 compiler now uses and ships MSVCRT71.DLL with 
+it, which is incompatible with MSVCRT.DLL. So when using the MSVC 7 compiler, some parts of
+the Ethereal code uses MSVCRT71.DLL, and some others (indirectly from e.g. the gtk DLL) will
+use MSVCRT.DLL. This will result in incorrect file handles and such.
+
+The same problem seems to apply on all MSVC compilers after version 6, like the
+"Microsoft Visual C++ Toolkit 2003".
 
 
 Instructions for Cygwin
 -----------------------
-No one has ever compiled Ethereal entirely with Cygwin.  It should not
-be difficult, however.  This spot is reserved for your instructions on
-how to compile Ethereal with Cygwin.
+
+It is possible to build Ethereal under Cygwin using their version
+of XFree86. References:
+ - http://www.ethereal.com/lists/ethereal-dev/200205/msg00107.html
+ - http://www.ethereal.com/lists/ethereal-dev/200302/msg00026.html
+To get it running, execute the following steps:
+
+1. Install the required cygwin packages (compiler, scripting, X, zlib)
+   with the CygWin setup.exe tool (http://www.cygwin.com/).
+   You need the base Xfree86 support plus the X headers package in order
+   to be able to compile the gtk+ package.
+
+2. Download glib-1.2.10 and gtk+-1.2.10 from a mirror of www.gnome.org.
+
+3. Retrieve the patches for glib-1.2.10 and gtk+-1.2.10 from
+   http://homepage.ntlworld.com/steven.obrien2/
+
+ + glib-1.2.10
+   http://homepage.ntlworld.com/steven.obrien2/ (URL cont'd on next line)
+          /libs/patches/glib-1.2.10-cygwin.patch
+
+ + gtk+-1.2.10
+   http://homepage.ntlworld.com/steven.obrien2/ (URL cont'd on next line)
+          /libs/patches/gtk+-1.2.10-cygwin.patch
+
+4. Compile and install both packages after patching (see instructions
+   at the bottom of http://homepage.ntlworld.com/steven.obrien2/):
+
+   Set the path:
+
+     $ PATH=/opt/gnome/bin:/usr/X11R6/bin:$PATH
+
+   For glib-1.2.10:
+   
+     $ cd glib-1.2.10
+     $ patch -p1 < /path/to/glib-1.2.10-cygwin.patch
+     $ CFLAGS=-O2 ./configure --prefix=/opt/gnome --with-threads=posix
+     $ make
+     $ make check
+     $ make install
+
+   For gtk+-1.2.10:
+
+     $ cd gtk+-1.2.10
+     $ patch -p1 < /path/to/gtk+-1.2.10-cygwin.patch
+     $ CFLAGS=-O2 ./configure --prefix=/opt/gnome
+     $ make
+     $ make check
+     $ make install
+
+5. Patch Makefile.am in <ethereal-src>/gtk/Makefile.am by
+   removing "ethclist.c" from the dependencies.
+
+   This patch is required since the private GTK+ clist widget
+   (was required for earlier versions of GTK+ but prevents Ethereal
+   from running with cygwin).
+
+6. Configure and make Ethereal:
+
+   Set the path (if this has not yet been done earlier)
+
+     $ PATH=/opt/gnome/bin:$PATH
+
+     $ ./autogen.sh
+     $ ./configure --config-cache --without-pcap
+     $ make
+
+7. Start X
+
+     $ sh /usr/X11R6/bin/startxwin.sh
+
+    Or you can start it from C:\cygwin\usr\X11R6\bin\startxwin.bat 
+
+8. Run ethereal (add /opt/gnome/bin to $PATH if this is not yet done)
+
+     $ <ethereal-src>/ethereal
+
+    And voila! Behold the mighty sniffer in all its glory!
+
+    Note that the plugin dissectors must be installed (make install) if you
+    want to use them. Note also that running "make install" produces lots of
+    output to the console; this is normal.
+
+Note: Compiling Ethereal under cygwin takes a lot of time, because the
+generation of 'register.c' takes ages. If you only edit one dissector and
+you know what you're doing, it is acceptable to uncomment the generation
+of the file 'register.c' in Makefile. Look for the 'register.c' target:
+
+    register.c: $(DISSECTOR_SRC) $(srcdir)/make-reg-dotc
+        @echo Making register.c
+        # @$(srcdir)/make-reg-dotc register.c $(srcdir) $(DISSECTOR_SRC)
+       @echo Skipping generation of register.c
+
+Of course, you need to generate the 'register.c' file at least once.
+
+Note: You can also capture packets on a cygwin built Ethereal. You then have
+to unpack the WinPCap development package, install the files in lib/ and
+include/ in say /usr/lib and /usr/include (they must be in the search path of
+the compiler and linker, otherwise you have to specify the configure option
+--with-pcap=/location/to/pcap so the packet capture functionality can be used.
+In order to run Ethereal, you have to add the .dll files in a directory in the
+PATH (e.g., /bin).
+Should you want packet capturing enabled in the cygwin build, then you have to
+remove --without-pcap from step 6.