1 <!-- EDG Chapter Tools -->
4 <chapter id="ChapterTools">
6 <section id="ChToolsIntro">
7 <title>Introduction</title>
9 This chapter will provide you with information how to install
10 the various tools needed for Ethereal development.
13 None of the tools mentioned in this chapter is needed to run Ethereal,
14 they are only needed to build it.
18 their roots on unix like platforms, but win32 ports are also
19 available. Therefore the tools are available in different "flavours":
23 Unix: as described above, the tools should be commonly available on the
24 supported unix platforms, and for win32 platforms by the cygwin unix
30 Win32 native: some tools are available as native Win32 tools, no
37 The following sections will only do a very brief description of
38 what the particular tool is doing, how it is used in the Ethereal project
39 and how it can be installed and tested.
42 Don't expect a lot of documentation regarding these tools in this
43 document. If you need further documentation of a specific tool, you
44 should find lot's of useful information on the web, as these tools are
45 commonly used. As all of the tools are command line tools, you can try
46 to get help with <userinput>toolname --help</userinput> or read
47 the manpage <userinput>man toolname</userinput>.
50 You will find explanations of the tool usage for some of the specific
51 development tasks in <xref linkend="ChapterSources"/>.
54 Some recommendations are given for the
55 easiest way to get a win32 development platform up and running, see
56 <xref linkend="ChToolsWin32Recommended"/>.
60 <section id="ChToolsInstall">
61 <title>Installation</title>
63 The installation of the tools depend on the platform you use:
66 <section id="ChToolsInstallUnix">
69 All the tools required are usually installed on a unix developer machine.
72 If a tool is not already installed on your system, you will typically use
73 the installation package from your distribution.
76 If an install package is not available, or you have a reason not to use
77 it (maybe because it's simply too old), you can install that tool
78 from source code, the following sections will provide you with the webpage
79 addresses where you can get these sources.
83 <section id="ChToolsInstallWin32Native">
84 <title>Win32 Native</title>
86 The native tools will typically be a bit faster, but more complicated to
87 install. You will have to download a lot of tools from different webpages,
88 and install them in the ways they have to be installed. The default
89 installation location will typically not be the
90 <filename>c:\program files</filename> folder. Have a look at
91 <xref linkend="ChToolsWin32Recommended"/> for an overview of the
96 <section id="ChToolsInstallCygwin">
97 <title>Win32 Cygwin</title>
99 Installation of the cygwin tools is very simple. As cygwin uses an
100 unix emulation layer,
101 it might be a bit slower compared to the native tools, but at an
102 acceptable level. All tools will be installed into one base folder, the
103 default is <filename>c:\cygwin</filename>.
106 Cygwin provides a unix emulation layer with a lot of unix based tools
107 on the win32 platform. Although cygwin consists of several
108 seperate packages, the installation and update is done through only a
109 single setup.exe, which acts similar like other web based installers.
112 You will find this network based setup.exe at: <ulink
113 url="http://www.cygwin.com/"/> click on one
114 of the "Install Cygwin now" appearances, this will start the download
118 After the download completed, start this setup.exe on your machine. It
119 will ask you for some
120 settings, the defaults should usually work well. The setup will
121 then download and install a basic set of packages.
124 Under: "Start -> Programs -> Cygwin -> Cygwin Bash Shell" you
125 should now be able to start a new cygwin bash shell, which is similar to
126 the command line (command.exe/cmd.exe) in win32, but much more powerful.
129 If you want to add additional, update installed or remove packages, you
130 should start the setup.exe again. At the "Select Packages" page, the
131 entry in the "New" column will control what is done (or not) with the
132 package. If a new version of a package is available, the new version
133 number will be displayed, so it will be automatically updated. You can
134 change the current setting by simply clicking at it, it will change
139 a specific version number - this different package version will be
145 Skip - not installed, no changes
150 Keep - already installed, no changes
155 Uninstall - uninstall this package
160 Reinstall - reinstall this package
166 You will find a list of required / recommended packages needed to develop
167 Ethereal in <xref linkend="ChToolsWin32Recommended"/>.
173 <section id="ChToolsWin32Recommended">
174 <title>Win32: Recommended tools</title>
176 As there are different forms of the Win32 tools available, the following
177 will give an overview of the recommended tools (which are highlighted in
180 <table frame='all'><title>The mandatory tools</title>
181 <tgroup cols='3' align='left' colsep='1' rowsep='1'>
182 <colspec colname='c1'/>
183 <colspec colname='c2'/>
184 <colspec colname='c3'/>
188 <entry><link linkend="ChToolsInstallCygwin">Cygwin</link> packet</entry>
189 <entry>Win32 native</entry>
194 <entry><xref linkend="ChToolsBash"/></entry>
195 <entry><command>bash</command></entry>
199 <entry><xref linkend="ChToolsCompiler"/></entry>
201 <entry><command>cl.exe (MSVC)</command></entry>
204 <entry><xref linkend="ChToolsDebugger"/></entry>
206 <entry><command>integrated debugger (MSVC)</command></entry>
209 <entry><xref linkend="ChToolsMake"/></entry>
211 <entry><command>nmake.exe (MSVC)</command></entry>
214 <entry><xref linkend="ChToolsPython"/></entry>
215 <entry><command>python</command></entry>
216 <entry><ulink url="http://python.org/download/"/></entry>
219 <entry><xref linkend="ChToolsPerl"/></entry>
220 <entry><command>perl</command></entry>
221 <entry><ulink url="http://www.ActiveState.com"/></entry>
224 <entry><xref linkend="ChToolsSed"/></entry>
225 <entry><command>sed</command></entry>
229 <entry><xref linkend="ChToolsYacc"/></entry>
230 <entry><command>yacc</command></entry>
234 <entry><xref linkend="ChToolsLexx"/></entry>
235 <entry><command>lexx</command></entry>
242 <table frame='all'><title>The optional tools</title>
243 <tgroup cols='3' align='left' colsep='1' rowsep='1'>
244 <colspec colname='c1'/>
245 <colspec colname='c2'/>
246 <colspec colname='c3'/>
250 <entry><link linkend="ChToolsInstallCygwin">Cygwin</link> packet</entry>
251 <entry>Win32 native</entry>
256 <entry><xref linkend="ChToolsSubversion"/></entry>
258 <entry><command><ulink url="http://tortoisesvn.tigris.org/">TortoiseSVN</ulink></command></entry>
261 <entry><xref linkend="ChToolsDiff"/></entry>
262 <entry><command>diff</command></entry>
266 <entry><xref linkend="ChToolsPatch"/></entry>
267 <entry><command>patch</command></entry>
271 <entry><xref linkend="ChToolsWget"/></entry>
272 <entry><command>wget</command></entry>
276 <entry><xref linkend="ChToolsNSIS"/></entry>
279 <command><ulink url="http://nsis.sourceforge.net">NSIS</ulink></command>
285 XXX - mark, which cygwin packages are installed by default.
289 <section id="ChToolsBash">
292 The bash shell is needed to run several shell scripts.
295 <section id="ChToolsGNUBash">
296 <title>Unix: GNU bash</title>
298 The bash is available for most of the unix-like platforms and as the
299 <application>bash</application> package from the <link
300 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
303 If the bash isn't already installed and also not available as a package
304 for your platform, you can get it at:
305 <ulink url="http://www.gnu.org/software/bash/bash.html"/>.
308 After correct installation, typing inside any shell:
311 <prompt>$</prompt> <userinput>bash --version</userinput>
314 should result in something like:
316 <![CDATA[GNU bash, version 2.05b.0(1)-release (i686-pc-cygwin)
317 Copyright (C) 2002 Free Software Foundation, Inc.]]>
319 However, the version string may vary.
323 <section id="ChToolsWin32Bash">
324 <title>Win32 native: -</title>
326 The authors don't know of any working win32 native bash implementation.
332 <section id="ChToolsCompiler">
333 <title>C compiler</title>
335 <section id="ChToolsGCC">
336 <title>Unix: GCC (GNU compiler collection)</title>
337 <note><title>Win32 Note!</title>
339 Although some effort is currently made to use gcc from the cygwin
340 environment, the mainline for several reasons is still using Microsoft
341 Visual Studio's C compiler.
345 The gcc C compiler is available for most of the unix-like platforms and
346 as the <application>gcc</application> package from the <link
347 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
350 If gcc isn't already installed and also not available as a package
351 for your platform, you can get it at:
352 <ulink url="http://gcc.gnu.org/"/>.
355 After correct installation, typing inside the bash:
358 <prompt>$</prompt> <userinput>gcc --version</userinput>
361 should result in something like:
363 <![CDATA[gcc (GCC) 3.3.3 (cygwin special)
364 Copyright (C) 2003 Free Software Foundation, Inc.
365 This is free software; see the source for copying conditions. There is NO
366 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.]]>
368 However, the version string may vary.
372 <section id="ChToolsMSVC6">
373 <title>Win32 native: Microsoft Visual Studio version 6 C compiler</title>
375 <note><title>Note!</title>
377 The Microsoft Visual Studio is not free software.
378 This is a tool you have to buy before you use it!
383 The mainline for generating Ethereal on the windows platform, is using
384 the compiler cl.exe from the Microsoft Visual Studio version 6 (and it's
385 nmake, as described below).
388 After correct installation, typing inside the command line (cmd.exe):
391 <prompt>></prompt> <userinput>cl</userinput>
394 should result in something like:
396 <![CDATA[Optimierender Microsoft (R) 32-Bit C/C++-Compiler, Version 12.00.8804, fuer x86
397 Copyright (C) Microsoft Corp 1984-1998. Alle Rechte vorbehalten.
399 Verwendung: cl [ Option... ] Dateiname... [ /link Linker-Option... ]]]>
401 However, the version string may vary.
405 <section id="ChToolsMSVC7">
406 <title>Win32 native: Microsoft Visual Studio .NET (and alike) C compilers
409 <warning><title>Warning!</title>
411 The recent "Microsoft Visual Studio .NET" C compiler(s) currently cannot
412 be used to compile Ethereal!!!
417 The following is a problem summary for:
420 Microsoft Visual Studio .NET
423 Microsoft Visual C++ .NET
426 Microsoft Visual C++ Toolkit 2003, freely available at: <ulink url="http://msdn.microsoft.com/visualc/vctoolkit2003/"/>
429 All containing version 7 or later of Microsoft's C compiler.
432 It is reported that this compiler requires to ship a MSVCRT70.dll together
433 with the compiled exe, which contains the C runtime library. This
434 conflicts, as all required libraries currently compiled with (and uses)
435 MSVCRT.dll (the older version 6 one).
438 Example why this hurts: A dependant library might try to open a file using
439 functions in MSVCRT.dll which creates an internal file handle and keeps
440 information about that file. When Ethereal tries to read data from that
441 file, it uses the functions from MSVCRT70.dll, which doesn't know anything
442 about that previously opened file and returns an error code.
445 There where also attempts to bring the compiler to use only the old
446 MSVCRT.dll but they seemed to fail :-(
449 It's also still unsure, if shipping the MSVCRT70.dll together with Ethereal
450 is compatible with the GPL license at all.
452 <note><title>Note!</title>
454 This isn't an Ethereal specific problem. Any software project trying to use
455 the version 7 C compiler will have the problems described above!
459 XXX - what about the legal issue, as the MSVCRT70.dll had to be shipped
466 <section id="ChToolsDebugger">
467 <title>Debugger</title>
469 Well, using a good debugger can save you a lot of development time. However
470 some people still think it's use is optional.
473 The debugger you use must match the C compiler Ethereal was compiled with,
474 otherwise the debugger will simply fail or you will only see a lot of
478 <section id="ChToolsGDB">
479 <title>Unix: GNU gdb</title>
481 gdb is the debugger for the gcc compiler. It is available for many (if
482 not all) unix-like platforms and as the <application>gdb</application>
483 package from the <link
484 linkend="ChToolsInstallCygwin">Cygwin setup</link>
487 If you don't like debugging using the command line, there are some GUI
488 frontends for it available, most notably GNU DDD.
491 If gdb isn't already installed and also not available as a package for
492 your platform, you can get it at:
493 <ulink url="http://www.gnu.org/software/gdb/gdb.html"/>.
496 After correct installation, typing inside the bash:
499 <prompt>$</prompt> <userinput>gdb --version</userinput>
502 should result in something like:
505 GNU gdb 2003-09-20-cvs (cygwin-special)
506 Copyright 2003 Free Software Foundation, Inc.
507 GDB is free software, covered by the GNU General Public License, and you are
508 welcome to change it and/or distribute copies of it under certain conditions.
509 Type "show copying" to see the conditions.
510 There is absolutely no warranty for GDB. Type "show warranty" for details.
511 This GDB was configured as "i686-pc-cygwin".]]>
513 However, the version string may vary.
517 <section id="ChToolsDDD">
518 <title>Unix: GNU DDD</title>
520 The GNU Data Display Debugger is a good GUI frontend for gdb (and a lot of
521 other command line debuggers), so you have to install gdb first. It is
522 available for many unix-like platforms and as the
523 <application>ddd</application> package from the <link
524 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
527 If GNU DDD isn't already installed and also not available as a package for
528 your platform, you can get it at:
529 <ulink url="http://www.gnu.org/software/ddd/"/>.
533 <section id="ChToolsMSVCDebugger">
534 <title>Win32 native: Microsoft Visual Studio debugger</title>
536 You can use the integrated debugger of Visual Studio.
540 the environment is a bit tricky, as the win32 build process is using
541 makefiles instead of the .dsp/.dsw files usually used.
542 XXX - add instructions how to do it.
546 <section id="ChToolsMSDebuggingTools">
547 <title>Win32 native: Microsoft Debugging Tools for Windows</title>
549 You could also use the Microsoft debugging tools, which is a GUI debugger.
550 As it's not that comfortable compared to debugging in visual studio, it
551 can be helpful if you have to debug on a different machine.
554 You can get it free of charge at: <ulink
555 url="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"/> (as
556 links to microsoft pages changes from time to time, search for
557 "Debugging Tools" at their page if this link should be outdated).
563 <section id="ChToolsMake">
566 <section id="ChToolsGNUmake">
567 <title>Unix: GNU make</title>
568 <note><title>Win32 Note!</title>
570 Although some effort is made to use make from the cygwin environment,
571 the mainline is still using Microsoft Visual Studio's nmake.
575 GNU make is available for most of the unix-like platforms and
576 also as the <application>make</application> package from the <link
577 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
580 If GNU make isn't already installed and also not available as a package
581 for your platform, you can get it at:
582 <ulink url="http://www.gnu.org/software/make/"/>.
585 After correct installation, typing inside the bash:
588 <prompt>$</prompt> <userinput>make --version</userinput>
591 should result in something like:
593 <![CDATA[GNU Make 3.80
594 Copyright (C) 2002 Free Software Foundation, Inc.
595 This is free software; see the source for copying conditions.
596 There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
597 PARTICULAR PURPOSE.]]>
599 However, the version string may vary.
603 <section id="ChToolsNmake">
604 <title>Win32 native: nmake from MSVC</title>
606 nmake is part of the Microsoft Visual Studio suite, see comment above.
609 Instead of using the the workspace (.dsw) and projects (.dsp) files,
610 the traditional nmake makefiles are used. This has one main reason: it
611 makes it much easier to maintain changes simultaneous with the gcc
612 toolchain makefile.am files as both file formats are similar. However, as
613 no Visual Studio workspace/project files are available, this makes it
614 hard to use the Visual Studio IDE e.g. for using the integrated
618 After correct installation, typing inside the command line (cmd.exe):
621 <prompt>></prompt> <userinput>nmake</userinput>
624 should result in something like:
626 <![CDATA[Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.9782.0
627 Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.
629 NMAKE : fatal error U1064: MAKEFILE nicht gefunden und kein Ziel angegeben
632 However, the version string may vary.
636 <section id="ChToolsNmake15">
637 <title>Win32 native: nmake from microsoft.com</title>
638 <warning><title>Warning!</title>
640 It is recommended to use the Microsoft Visual Studio version 6 to compile
641 Ethereal for Win32, see <xref linkend="ChToolsCompiler"/>. Don't follow the
642 instructions in this section, until you now what you are doing.
646 NMAKE 1.5 can be downloaded from Microsoft.com if you search for
647 "KB132084". Unpack the archive by running it, and drop the 3 extracted
648 files in the MSVC++ Toolkit "bin" directory.
651 You will also need <filename>win32.mak</filename>, which you can get from
652 the MS Win Platform SDK by browsing to <ulink
653 url="http://www.microsoft.com/msdownload/platformsdk/sdkupdate/"/>
654 where you select the "Core SDK" and only tick the "Build Environment"
655 (31MB) option. After a while, this SDK will be installed.
658 From the start menu, choose "Programs"
659 -> "Microsoft Platform SDK February 2003"
660 -> "Open build environment window"
661 -> (choose your OS Win2K/WinXP/Win2003)
668 <section id="ChToolsPython">
669 <title>python</title>
671 Python is an interpreter based programming language. The homepage of
672 the python project is: <ulink url="http://python.org/"/>.
673 Python is used to XXX. Python version 2.2 and above should be working
677 <section id="ChToolsUnixPython">
678 <title>Unix: python</title>
680 Python is available for most of the unix-like platforms and as the
681 <application>python</application> package from the <link
682 linkend="ChToolsInstallCygwin">Cygwin setup</link>
685 If Python isn't already installed and also not available as a package
686 for your platform, you can get it at:
687 <ulink url="http://www.python.org/"/>.
690 After correct installation, typing inside the bash:
693 <userinput>$ python -V</userinput>
696 should result in something like:
699 <computeroutput>Python 2.3.3</computeroutput>
702 However, the version string may vary.
706 <section id="ChToolsWin32Python">
707 <title>Win32 native: python</title>
709 Have a look at <ulink url="http://python.org/download/"/>
710 to download the latest stable release. You can download a setup there,
711 which will install the python system typically into:
712 C:\python23 or similiar.
719 <section id="ChToolsPerl">
722 Perl is an interpreter based programming language. The homepage of the
723 perl project is: <ulink url="http://www.perl.com"/>.
724 Perl is used to XXX. Perl version XXX and above should be working fine.
727 <section id="ChToolsUnixPerl">
728 <title>Unix: perl</title>
730 Perl is available for most of the unix-like platforms and as the
731 <application>perl</application> package from the <link
732 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
735 If Perl isn't already installed and also not available as a package
736 for your platform, you can get it at:
737 <ulink url="http://www.perl.com/"/>.
740 After correct installation, typing inside the bash:
743 <prompt>$</prompt> <userinput>perl --version</userinput>
746 should result in something like:
748 <![CDATA[This is perl, v5.8.5 built for cygwin-thread-multi-64int
750 Copyright 1987-2004, Larry Wall
752 Perl may be copied only under the terms of either the Artistic License or the
753 GNU General Public License, which may be found in the Perl 5 source kit.
755 Complete documentation for Perl, including FAQ lists, should be found on
756 this system using `man perl' or `perldoc perl'. If you have access to the
757 Internet, point your browser at http://www.perl.com/, the Perl Home Page.]]>
759 However, the version string may vary.
764 <section id="ChToolsWin32Perl">
765 <title>Win32 native: perl</title>
767 A native Win32 perl package can be obtained from
768 <ulink url="http://www.ActiveState.com"/>. The
769 installation should be straightforward.
772 After correct installation, typing inside the command line (cmd.exe):
775 <prompt>></prompt> <userinput>perl -v</userinput>
778 should result in something like:
780 <![CDATA[This is perl, v5.8.0 built for MSWin32-x86-multi-thread
781 (with 1 registered patch, see perl -V for more detail)
783 Copyright 1987-2002, Larry Wall
785 Binary build 805 provided by ActiveState Corp. http://www.ActiveState.com
786 Built 18:08:02 Feb 4 2003
790 However, the version string may vary.
796 <section id="ChToolsSed">
799 Sed it the streaming editor. It makes it easy for example to replace
800 specially marked texts inside a source code file. The Ethereal build
801 process uses this to stamp version strings into various places.
804 <section id="ChToolsUnixSed">
805 <title>Unix: sed</title>
807 Sed is available for most of the unix-like platforms and as the
808 <application>sed</application> package from the <link
809 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
812 If Sed isn't already installed and also not available as a package
813 for your platform, you can get it at:
814 <ulink url="http://sed.sourceforge.net/"/>
815 (XXX - is this the official home?).
818 After correct installation, typing inside the bash:
821 <prompt>$</prompt> <userinput>sed --version</userinput>
824 should result in something like:
826 <![CDATA[GNU sed version 4.0.9
827 Copyright (C) 2003 Free Software Foundation, Inc.
828 This is free software; see the source for copying conditions. There is NO
829 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
830 to the extent permitted by law.]]>
832 However, the version string may vary.
836 <section id="ChToolsWin32Sed">
837 <title>Win32 native: -</title>
839 The authors don't know of any working win32 native sed implementation.
845 <section id="ChToolsYacc">
846 <title>yacc (bison)</title>
848 Bison is a free implementation of yacc.
851 <section id="ChToolsUnixYacc">
852 <title>Unix: bison</title>
854 Bison is available for most of the unix-like platforms and as the
855 <application>bison</application> package from the <link
856 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
859 If GNU Bison isn't already installed and also not available as a package
860 for your platform, you can get it at:
861 <ulink url="http://www.gnu.org/software/bison/bison.html"/>.
864 After correct installation, typing inside the bash:
867 <prompt>$</prompt> <userinput>bison --version</userinput>
870 should result in something like:
872 <![CDATA[bison (GNU Bison) 1.875b
873 Written by Robert Corbett and Richard Stallman.
875 Copyright (C) 2003 Free Software Foundation, Inc.
876 This is free software; see the source for copying conditions. There is NO
877 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.]]>
879 However, the version string may vary.
883 <section id="ChToolsWin32Yacc">
884 <title>Win32 native: -</title>
886 The authors don't know of any working win32 native yacc/bison
893 <section id="ChToolsLexx">
894 <title>lexx (flex)</title>
896 Flex is a free implementation of lexx.
899 <section id="ChToolsUnixLexx">
900 <title>Unix: flex</title>
902 Flex is available for most of the unix-like platforms and as the
903 <application>flex</application> package from the <link
904 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
907 If GNU Flex isn't already installed and also not available as a package
908 for your platform, you can get it at:
909 <ulink url="http://www.gnu.org/software/flex/"/>.
912 After correct installation, typing inside the bash:
915 <prompt>$</prompt> <userinput>flexx --version</userinput>
918 should result in something like:
920 <![CDATA[flex version 2.5.4]]>
922 However, the version string may vary.
926 <section id="ChToolsWin32Lexx">
927 <title>Win32 native: -</title>
929 The authors don't know of any working win32 native lexx/flex
936 <section id="ChToolsSubversion">
937 <title>Subversion (SVN) client (optional)</title>
939 The Ethereal project uses it's own subversion (or short SVN) server to keep
940 track of all the changes done to the source code. Details about the usage
941 of subversion in the Ethereal project can be found in <xref
942 linkend="ChSrcSVNServer"/>.
945 If you want to work with the source code and planning to commit your
946 changes back to the Ethereal community, it is recommended to use a SVN
947 client to get the latest source files. For detailed information about the
948 different ways to obtain the Ethereal sources, see
949 <xref linkend="ChSrcObtain"/>.
952 Along with the traditional command-line client, several GUI clients are
953 available for a number of platforms, see
954 <ulink url="http://subversion.tigris.org/project_links.html"/>.
957 You will find more instructions in <xref linkend="ChSrcAnon"/> how to
958 use the subversion client.
961 <section id="ChToolsUnixSVN">
962 <title>Unix: svn</title>
964 SVN is available for most of the unix-like platforms and as the
965 <application>SVN</application> package from the <link
966 linkend="ChToolsInstallCygwin">Cygwin setup</link>
969 If Subversion isn't already installed and also not available as a package
970 for your platform, you can get it at:
971 <ulink url="http://subversion.tigris.org/"/> (together with the server
975 After correct installation, typing inside the bash:
978 <prompt>$</prompt> <userinput>svn --version</userinput>
981 should result in something like:
983 <![CDATA[svn, version 1.0.5 (r9954)
984 compiled Jun 20 2004, 23:28:30
986 Copyright (C) 2000-2004 CollabNet.
987 Subversion is open source software, see http://subversion.tigris.org/
988 This product includes software developed by CollabNet (http://www.Collab.Net/).
992 However, the version string may vary.
996 <section id="ChToolsTortoiseSVN">
997 <title>Win32 native: TortoiseSVN</title>
999 A good subversion client for Win32 can be found at:
1000 <ulink url="http://tortoisesvn.tigris.org/"/>. It will nicely integrate
1001 into the windows Explorer window.
1007 <section id="ChToolsDiff">
1008 <title>diff (optional)</title>
1010 Diff is used to get a file of all differences between two source
1011 files/trees (sometimes called a patch). The diff tool isn't needed for
1012 building ethereal, but it's needed if you are going to commit your changes
1013 back to the ethereal community.
1015 <note><title>Note!</title>
1017 The recommended way to build patches is using the subversion client,
1018 see <xref linkend="ChToolsSubversion"/> for details.
1022 You will find more instructions in <xref linkend="ChSrcDiff"/> how to
1026 <section id="ChToolsGNUDiff">
1027 <title>Unix: GNU diff</title>
1029 Diff is available for most of the unix-like platforms and as the
1030 <application>diffutils</application> package from the <link
1031 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
1034 If GNU diff isn't already installed and also not available as a package
1035 for your platform, you can get it at:
1036 <ulink url="http://www.gnu.org/software/diffutils/diffutils.html"/>.
1039 After correct installation, typing inside the bash:
1042 <prompt>$</prompt> <userinput>diff --version</userinput>
1045 should result in something like:
1047 <![CDATA[diff (GNU diffutils) 2.8.7
1048 Written by Paul Eggert, Mike Haertel, David Hayes,
1049 Richard Stallman, and Len Tower.
1051 Copyright (C) 2004 Free Software Foundation, Inc.
1052 This is free software; see the source for copying conditions. There is NO
1053 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.]]>
1055 However, the version string may vary.
1059 <section id="ChToolsWin32Diff">
1060 <title>Win32 native: -</title>
1062 The authors don't know of any working win32 native diff implementation.
1069 <section id="ChToolsPatch">
1070 <title>patch (optional)</title>
1072 The patch utility is used to merge a diff file into your own source
1073 tree. This tool is only needed, if you want to apply a patch (diff file)
1074 from someone else (probably from the developer mailing list) to try out
1075 in your own private source tree.
1077 <tip><title>Tip!</title>
1079 Unless you are in the rare case needing to apply a patch to your private
1080 source tree, you won't need the patch tool installed.
1084 You will find more instructions in <xref linkend="ChSrcPatchApply"/> how
1085 to use the patch tool.
1088 <section id="ChToolsUnixPatch">
1089 <title>Unix: patch</title>
1091 Patch is available for most of the unix-like platforms and as the
1092 <application>patch</application> package from the <link
1093 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
1096 If GNU patch isn't already installed and also not available as a package
1097 for your platform, you can get it at:
1098 <ulink url="http://www.gnu.org/software/patch/patch.html"/>.
1101 After correct installation, typing inside the bash:
1104 <prompt>$</prompt> <userinput>patch --version</userinput>
1107 should result in something like:
1109 <![CDATA[patch 2.5.8
1110 Copyright (C) 1988 Larry Wall
1111 Copyright (C) 2002 Free Software Foundation, Inc.
1113 This program comes with NO WARRANTY, to the extent permitted by law.
1114 You may redistribute copies of this program
1115 under the terms of the GNU General Public License.
1116 For more information about these matters, see the file named COPYING.
1118 written by Larry Wall and Paul Eggert]]>
1120 However, the version string may vary.
1124 <section id="ChToolsWin32Patch">
1125 <title>Win32 native: -</title>
1127 The authors don't know of any working win32 native patch implementation.
1134 <section id="ChToolsWget">
1135 <title>Win32: GNU wget (optional)</title>
1137 GNU wget is used to download files from the internet using the command line.
1140 GNU wget is available for most of the unix-like platforms and as the
1141 <application>wget</application> package from the <link
1142 linkend="ChToolsInstallCygwin">Cygwin setup</link>.
1145 You will only need wget, if you want to use the win32 automated library
1146 download, see <xref linkend="ChLibsSetup"/> for details.
1149 If GNU wget isn't already installed and also not available as a package
1150 for your platform (well, for win32 it is available as a cygwin package),
1152 <ulink url="http://www.gnu.org/software/wget/wget.html"/>.
1155 If wget is trying to download files but fails to do so, your internet
1156 connection might use a HTTP proxy. Some internet providers using such a
1157 proxy and it is common for company networks today. In this case, you
1158 must set the environment variable
1159 http_proxy before using wget. For example, if you are behind proxy.com
1160 which is listening on port 8080, you have to set it to something like:
1163 <programlisting>set HTTP_PROXY=http://proxy.com:8080/</programlisting>
1166 If you are unsure about the settings, you might ask your system
1172 <section id="ChToolsNSIS">
1173 <title>Win32: NSIS (optional)</title>
1175 The NSIS (Nullsoft Scriptable Install System) is used to generate a
1176 setup.exe from all the files needed to be installed, including all
1177 required DLL's and such.
1180 To install it, simply download the latest released version (currently: 2.0
1181 final) from <ulink url="http://nsis.sourceforge.net"/>
1182 and start the downloaded installer. You will need NSIS version 2 final
1186 You will find more instructions in <xref linkend="ChSrcNSIS"/> how to
1192 <section id="ChToolsCVS">
1193 <title>Obsolete: CVS client</title>
1195 Some time ago, the Ethereal project was using CVS to keep track of all
1196 the source code changes. As now subversion (SVN) is used, a CVS client
1197 is no longer helpful, see <xref linkend="ChToolsSubversion"/> for details
1198 about subversion clients.
1203 <section id="ChToolsWin32Verify">
1204 <title>Win32: Verify installed tools</title>
1206 After you've installed the Ethereal sources (see <xref
1207 linkend="ChSrcObtain"/>), you can check the correct installation of
1208 all tools by using the verify_tools target of the
1209 <filename>Makefile.nmake</filename> from the source package.
1211 <warning><title>Warning!</title>
1213 You will need the Ethereal sources and some tools (nmake, bash) installed,
1214 before this verification is able to work.
1218 Enter at the command line:
1221 <prompt>></prompt>
1222 <userinput>nmake -f Makefile.nmake verify_tools</userinput>
1225 This will check for the various tools needed to build Ethereal:
1229 <![CDATA[Checking for required applications:
1231 bison: /usr/bin/bison
1236 python: /usr/bin/python
1238 unzip: /usr/bin/unzip
1239 wget: /usr/bin/wget]]>
1245 <!-- End of EUG Chapter Tools -->