renamed dirs dg-src and ug-src to match output dirnames
[obnox/wireshark/wip.git] / docbook / edg_src / EDG_chapter_env_intro.xml
diff --git a/docbook/edg_src/EDG_chapter_env_intro.xml b/docbook/edg_src/EDG_chapter_env_intro.xml
new file mode 100644 (file)
index 0000000..a57792c
--- /dev/null
@@ -0,0 +1,536 @@
+<!-- EDG Chapter Introduction -->
+<!-- $Id$ -->
+
+<chapter id="ChapterIntroduction">
+  <title>Introduction</title>
+
+  <section id="ChIntroIntro">
+    <title>Introduction</title>
+    <para>
+       This chapter will provide you with information about Ethereal 
+       development in general. 
+    </para>
+  </section>
+
+  <section id="ChIntroWhatIs">
+    <title>What is <application>Ethereal?</application></title>
+    <para>
+       Well, if you want to start Ethereal development, you might already 
+       know what Ethereal is doing. If not, please have a look at the 
+       <ulink url="&EtherealUsersGuidePage;">Ethereal User's Guide</ulink>, 
+       which will provide a lot of general information about it.
+    </para>
+               
+  </section>
+  
+  <section id="ChIntroPlatforms">
+    <title>Platforms Ethereal runs on</title>
+    <para>
+      Ethereal currently runs on most UNIX platforms and various Windows 
+      platforms. It requires GTK+, GLib, libpcap and some other libraries in 
+         order to run.
+    </para>
+    <para>
+       As Ethereal is developed in a platform independant way and uses libraries 
+       which are available for a lot of different platforms (such as the GTK+ 
+       GUI library), it's available on a such a wide variety of platforms.
+    </para>
+    <para>
+      If a binary package is not available for your platform, you should 
+      download the source and try to build it. Please report your experiences
+         to <ulink url="mailto:&EtherealDevMailList;">&EtherealDevMailList;</ulink>.
+    </para>
+    <para>
+      Binary packages are available for at least the following platforms:
+    </para>
+
+       <section><title>Unix</title>
+       <para>
+       <itemizedlist>
+       <listitem><para>Apple Mac OS X</para></listitem>
+       <listitem><para>BeOS</para></listitem>
+       <listitem><para>FreeBSD</para></listitem>
+       <listitem><para>HP-UX</para></listitem>
+       <listitem><para>IBM AIX</para></listitem>
+       <listitem><para>NetBSD</para></listitem>
+       <listitem><para>OpenBSD</para></listitem>
+       <listitem><para>SCO UnixWare/OpenUnix</para></listitem>
+       <listitem><para>SGI Irix</para></listitem>
+       <listitem><para>Sun Solaris/Intel</para></listitem>
+       <listitem><para>Sun Solaris/Sparc</para></listitem>
+       <listitem><para>Tru64 UNIX (formerly Digital UNIX)</para></listitem>
+       </itemizedlist>
+       </para>
+       </section>
+       
+       <section><title>Linux</title>
+       <para>
+       <itemizedlist>
+       <listitem><para>Debian GNU/Linux</para></listitem>
+       <listitem><para>Gentoo Linux</para></listitem>
+       <listitem><para>IBM S/390 Linux (Red Hat)</para></listitem>
+       <listitem><para>Mandrake Linux</para></listitem>
+       <listitem><para>PLD Linux</para></listitem>
+       <listitem><para>Red Hat Linux</para></listitem>
+       <listitem><para>Rock Linux</para></listitem>
+       <listitem><para>Slackware Linux</para></listitem>
+       <listitem><para>Suse Linux</para></listitem>
+       </itemizedlist>
+       </para>
+       </section>
+       
+       <section><title>Microsoft Windows</title>
+    <para>
+       Thanks to the Win32 API, development on all windows platforms will be 
+       done in a very similar way. However some differences between the platforms 
+       are existing (especially between the NT and 95 based platforms), the 
+       differences will be notified where appropriate. All Windows platforms will 
+       be referred as Win32, Win or Windows might be used with the same meaning.
+       As Windows CE differs a lot compared to the other windows platforms 
+       mentioned, Ethereal will not run on Windows CE and there are no plans to 
+       support it.
+       <itemizedlist>
+       <listitem><para>Windows Me / 98 / 95</para></listitem>
+       <listitem><para>Windows Server 2003 / XP / 2000 / NT 4.0</para></listitem>
+       </itemizedlist>
+    </para>
+       </section>
+       
+  </section>
+  
+  <section id="ChIntroDevelopment">
+    <title>
+      Development and maintenance of <application>Ethereal</application>
+    </title>
+    <para>
+      Ethereal was initially developed by Gerald Combs. Ongoing development 
+      and maintenance of Ethereal is handled by the Ethereal team, a loose 
+      group of individuals who fix bugs and provide new functionality.  
+    </para>
+    <para>
+      There have also been a large number of people who have contributed 
+      protocol dissectors to Ethereal, and it is expected that this will 
+      continue.  You can find a list of the people who have contributed 
+      code to Ethereal by checking the about dialog box of Ethereal, or have 
+         a look at the <ulink url="&EtherealAuthorsPage;"/> page on the Ethereal 
+         web site.
+    </para>
+    <para>
+       The 
+       communication between the developers is usually done trough the developer 
+       mailing list, which can be joined by anyone interested in the development 
+       process. At the time writing of this document, more than 500 persons are 
+       subscribed to this mailing list! 
+    </para>
+    <para>
+       It is strongly recommended to join the developer mailing list, if you 
+       are going to do any Ethereal development. See 
+       <xref linkend="ChIntroMailingLists"/> about the different Ethereal 
+       mailing lists available.
+    </para>
+       
+       <section><title>Programming language(s) used</title>
+    <para>
+       Almost any part of Ethereal is implemented in plain ANSI C. 
+    </para>
+    <para>
+       The typical task for a new Ethereal developer is to extend an existing, 
+       or write a new dissector for a specific network protocol. As (almost) any 
+       dissector is written in plain old ANSI C, a good knowledge about ANSI C 
+       will be sufficient for Ethereal development in almost any case.
+    </para>
+    <para>
+       So unless you are going to change the development process of Ethereal 
+       itself, you won't come in touch with any other programming language than 
+       ANSI C (such as perl or python, which are used only in the Ethereal build 
+       process).
+    </para>
+    <para>
+       Beside the usual tools for developing a program in C (compiler, make, ...), 
+       the build process uses some additional helper tools (Perl, Python, Sed, 
+       ...), which are needed for the build process and in the case Ethereal 
+       should be installed from the released source packages. If Ethereal is 
+       installed from a binary package, none of these helper tools are needed on 
+       the target system.
+       </para>
+       </section>
+       
+       
+       <section><title>Open Source Software</title>
+    <para>
+      Ethereal is an open source software project, and is released under 
+      the <ulink url="&GPLWebsite;">GNU General Public Licence</ulink> (GPL). 
+         You can freely use Ethereal on any number of computers you like, without 
+         worrying about license keys or fees or such. In addition, all source 
+         code is freely available under the GPL. Because of that, it is very easy 
+         for people to add new protocols to Ethereal, either as plugins, or built 
+         into the source, and they often do!
+    </para>
+    <para>
+         You are welcome to 
+      modify Ethereal to suit your own needs, and it would be appreciated 
+      if you contribute your improvements back to the Ethereal team.
+    </para>
+    <para>
+      You gain three benefits by contributing your improvements back to the 
+      community:
+      <itemizedlist>
+       <listitem>
+         <para>
+           Other people who find your contributions useful will appreciate 
+           them, and you will know that you have helped people in the 
+           same way that the developers of Ethereal have helped people.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           The developers of Ethereal might improve your changes even more,
+               as there's always room for improvements. Or they may implement some 
+               advanced things on top of your code, which can be useful for yourself
+               too.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           The maintainers and developers of Ethereal will maintain your 
+           code as well, fixing it when API changes or other changes are 
+           made, and generally keeping it in tune with what is happening 
+           with Ethereal. So if Ethereal is updated (which is done often),
+               you can get a new Ethereal version from the website and your changes 
+               will already be included without any effort for you.
+         </para>
+       </listitem>
+      </itemizedlist>
+    </para>
+    <para>
+      The Ethereal source code and binary kits for some platforms are all 
+      available on the download page of the Ethereal website: 
+      <ulink url="&EtherealDownloadPage;">&EtherealDownloadPage;</ulink>.
+    </para>
+       
+       </section>
+       
+  </section>
+  
+  <section id="ChIntroReleases">
+    <title>Releases and distributions</title>
+    <para>
+       The officially released files can be found at: <ulink 
+       url="&EtherealDownloadPage;"/>. A new Ethereal version is released, after 
+       significant changes compared to the last release were completed or a 
+       serious security issue was encountered. The typical release schedule is
+       about every 4-8 weeks (although this may vary).
+    </para>
+    <para>
+       There are two kinds of distributions: binary and source, both have their 
+       advantages and disadvantages. 
+    </para>
+
+       <section id="ChIntroReleaseBinary">
+    <title>Binary distributions</title>
+    <para>
+       Binary distributions are usually easy to install (as simply starting
+       the appropriate file is usually the only thing to do). They are available 
+       for the following systems:
+       <itemizedlist>
+       <listitem>
+    <para>
+       Win32 (.exe file). The typical windows end user is used to get an setup 
+       .exe file, which will install all the required things for him.
+    </para>
+       </listitem>
+       <listitem>
+    <para>
+       Debian (.deb file)
+    </para>
+       </listitem>
+       <listitem>
+    <para>
+       RedHat (.rpm file)
+    </para>
+       </listitem>
+       </itemizedlist>
+       However, if you want to start developing with Ethereal, the binary
+       distributions won't be much helpful, as you need the source files, of
+       course.
+    </para>
+    <para>
+       For details about how to build these binary distributions yourself, 
+       e.g. if you need a distribution for a special audience, see 
+       <xref linkend="ChSrcBinary"/>.
+    </para>
+       </section>
+
+       <section id="ChIntroReleaseSource">
+       <title>Source code distributions</title>
+    <para>
+       It's still common for unix developers to give the end user a source 
+       tarball and let the user compile it on their target machine (configure, 
+       make, make install). However, for different unix (linux) distributions 
+       it's becoming more common to release binary packages (e.g. .deb or .rpm 
+       files) these days.
+    </para>
+    <para>
+       You should use the released sources if you want to build Ethereal from
+       source on your platform for productive use. However, if you going to 
+       develop changes to the Ethereal sources, it might be better to use the 
+       latest SVN sources. For details about the different ways to get the 
+       Ethereal source code see <xref linkend="ChSrcObtain"/>.
+    </para>
+    <para>
+       Before building Ethereal from a source distribution, make sure you have
+       all the tools and libraries required to build. The following chapters will
+       describe the required tools and libraries in detail.
+    </para>
+       </section>
+  </section>
+  
+  <section id="ChIntroHelp">
+    <title>Reporting problems and getting help</title>
+       <para>
+      If you have problems, or need help with Ethereal, there are several 
+      places that may be of interest to you (well, beside this guide of 
+         course).
+       </para>
+       
+       <section id="ChIntroFAQ"><title>FAQ</title>
+    <para>
+       The "Frequently Asked Questions" will list often asked questions and 
+       the corresponding answers.
+       <note><title>Read the FAQ!</title>
+       <para>
+       Before sending any mail to the mailing lists below, be sure to read the 
+       FAQ, as it will often answer the question(s) you might have. This will save 
+       yourself and others a lot of time (keep in mind that a lot of people are 
+       subscribed to the mailing lists). 
+    </para>
+    </note>
+       You will find the FAQ inside Ethereal by clicking the menu item 
+       Help/Contents and selecting the FAQ page in the upcoming dialog. 
+    </para>
+    <para>
+       An online version is available at the ethereal website:
+       <ulink url="&EtherealFAQPage;">&EtherealFAQPage;</ulink>. You might 
+       prefer this online version, as it's typically more up to date and the HTML 
+       format is easier to use.
+    </para>
+       </section>
+       
+       <section id="ChIntroMailingLists"><title>Mailing Lists</title>
+    <para>
+      There are several mailing lists of specific Ethereal topics available:
+      <variablelist>
+       <varlistentry><term><command>ethereal-announce</command></term>
+         <listitem>
+           <para>
+             This mailing list will inform you about new program 
+                 releases, which usually appear about every 4-8 weeks.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry><term><command>ethereal-users</command></term>
+         <listitem>
+           <para>
+             This list is for users of Ethereal. People post 
+             questions about building and using Ethereal, others (hopefully) 
+                 provide answers. 
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry><term><command>ethereal-dev</command></term>
+         <listitem>
+           <para>
+             This list is for Ethereal developers. People post questions about 
+                 the development of Ethereal, others (hopefully) provide answers. 
+                 If you want to start developing a protocol dissector, join this list.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry><term><command>ethereal-cvs</command></term>
+         <listitem>
+           <para>
+             This list is for Ethereal developers. Everytime a change to the SVN 
+                 repository is checked in, a mail to this mailing list is generated.
+                 If you want to be notified about all the changes to the SVN 
+                 repository, join this list. Details about the SVN repository can be 
+                 found in <xref linkend="ChSrcSVNServer"/>.
+           </para>
+         </listitem>
+       </varlistentry>
+      </variablelist>
+      You can subscribe to each of these lists from the Ethereal web site: 
+      <ulink url="&EtherealWebSite;">&EtherealWebSite;</ulink>.  Simply 
+      select the <command>mailing lists</command> link on the left hand 
+      side of the site. The lists are archived at the Ethereal web site 
+      as well.
+       <tip><title>Tip!</title>
+       <para>
+       You can search in the list archives to see if someone asked the same 
+       question some time before and maybe already got an answer. That way you 
+       don't have to wait until someone answers your question.
+       </para>
+       </tip>
+    </para>
+       </section>
+       
+       <section id="ChIntroReportProblems"><title>Reporting Problems</title>
+       <note><title>Note!</title>
+       <para>
+       Before reporting any problems, please make sure you have installed the 
+       latest version of Ethereal.
+       </para>
+       </note>
+    <para>
+       If you report problems, provide as much 
+       information as possible. In general, just think about what 
+       you would need to find that problem, if someone else sends you such a 
+       problem report. Also keep in mind, that people uses a lot of different 
+       platforms to compile/run Ethereal on. 
+    </para>
+    <para>
+      When reporting problems with Ethereal, it is helpful if you supply the 
+      following information:
+      <orderedlist>
+       <listitem>
+         <para>
+           The version number of Ethereal and the dependent libraries linked with 
+               it, eg GTK+, etc. You can obtain this with the command 
+           <command>ethereal -v</command>.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           Information about the platform you run Ethereal on.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           A detailed description of your problem.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+               If you get an error/warning message, copy the text of that message (and 
+               also a few lines before and after it, if there are some), so others may 
+               find the build step where things go wrong. 
+               Please don't give something like: "I get a warning when comiling x" 
+               as this won't give any direction to look at.
+         </para>
+       </listitem>
+      </orderedlist>
+    </para>
+       <note><title>Don't send large files!</title>
+       <para>
+       Do not send large files (>100KB) to the mailing lists, just place a note 
+       that further data is available on request. Large files will only annoy a 
+       lot of people on the list who are not interested in your specific problem. 
+       If required, you will be asked for further data by the persons who really 
+       can help you.
+       </para>
+       </note>
+       <note><title>Don't send confidential information!</title>
+       <para>
+       If you send captured data to the mailing lists, be sure they don't contain 
+       any sensitive or confidential information like passwords or such.
+       </para>
+       </note>
+  </section>
+  
+  <section><title>Reporting Crashes on UNIX/Linux platforms</title>
+    <para>
+      When reporting crashes with Ethereal, it is helpful if you supply the 
+      traceback information (besides the information mentioned in 
+         <xref linkend="ChIntroReportProblems"/>).
+    </para>
+         <para>
+           You can obtain this traceback information with the following commands:
+           <programlisting>
+<![CDATA[
+$ gdb `whereis ethereal | cut -f2 -d: | cut -d' ' -f2` core >& bt.txt
+backtrace
+^D
+$
+]]>
+               </programlisting>
+           <note>
+             <para>
+               Type the characters in the first line verbatim! Those are 
+               back-tics there!
+             </para>
+           </note>
+           <note>
+             <para>
+               backtrace is a <command>gdb</command> command. You should 
+               enter it verbatim after the first line shown above, but it will not be 
+               echoed. The ^D 
+               (Control-D, that is, press the Control key and the D key 
+               together) will cause <command>gdb</command> to exit. This will 
+               leave you with a file called 
+               <filename>bt.txt</filename> in the current directory. 
+               Include the file with your bug report.
+             </para>
+           </note>
+           <note>
+             <para>
+               If you do not have <command>gdb</command> available, you 
+               will have to check out your operating system's debugger.  
+             </para>
+           </note>
+         </para>
+         <para>
+           You should mail the traceback to the 
+               <ulink url="mailto:&EtherealDevMailList;">&EtherealDevMailList;</ulink>
+           mailing list.
+         </para>
+  </section>
+  
+  <section><title>Reporting Crashes on Windows platforms</title>
+    <para>
+       The Windows distributions don't contain the symbol files (.pdb), because 
+       they are very large. For this reason it's not possible to create 
+       a meaningful backtrace file from it. You should report your crash just
+       like other problems, using the mechanism from
+       <xref linkend="ChIntroReportProblems"/>.
+    </para>
+  </section>
+  </section>
+
+  <section id="ChIntroOtherSources"><title>Other sources of developer information
+  </title>
+    <para>
+       If you don't find the information you need inside this book, there are 
+       various other sources of information:
+       <itemizedlist>
+       <listitem>
+       <para>
+    have a look at the Ethereal source code
+       </para>
+       </listitem>
+       <listitem>
+       <para>
+    there are various documentation files on different topics inside the 
+       source code, see all the README.xxx files
+       </para>
+       </listitem>
+       <listitem>
+       <para>
+    tool documentation of the various tools used 
+       (e.g. manpages of sed, gcc, ...)
+       </para>
+       </listitem>
+       <listitem>
+       <para>
+    the different mailing lists <xref linkend="ChIntroMailingLists"/>
+       </para>
+       </listitem>
+       <listitem>
+       <para>
+    ...
+       </para>
+       </listitem>
+       </itemizedlist>
+    </para>
+  </section>
+
+</chapter>
+<!-- End of EUG Chapter 1 -->