<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code (SGML DocBook) must retain the above
copyright notice, this list of conditions and the following
disclaimer as the first lines of this file unmodified.
2. Redistributions in compiled form (transformed to other DTDs,
converted to PDF, PostScript, RTF and other formats) must reproduce
the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
$FreeBSD$
-->
<chapter id="overview">
<title>Overview</title>
<para>Welcome to the FreeBSD Documentation Project. Good quality
documentation is very important to the success of FreeBSD, and the
FreeBSD Documentation Project (FDP) is how a lot of that documentation
is produced. Your contributions are very valuable.</para>
<para>This document's main purpose is to clearly explain <emphasis>how
the FDP is organized</emphasis>, <emphasis>how to write and submit
documentation to the FDP</emphasis>, and <emphasis>how to
effectively use the tools available to you when writing
documentation</emphasis>.</para>
<para><indexterm>
<primary>Membership</primary>
</indexterm>
Everyone is welcome to join the FDP. There is no minimum
membership requirement, no quota of documentation you need to
produce per month. All you need to do is subscribe to the
&a.doc;.</para>
<para>After you have finished reading this document you should:</para>
<itemizedlist>
<listitem>
<para>Know which documentation is maintained by the FDP.</para>
</listitem>
<listitem>
<para>Be able to read and understand the SGML source code for the
documentation maintained by the FDP.</para>
</listitem>
<listitem>
<para>Be able to make changes to the documentation.</para>
</listitem>
<listitem>
<para>Be able to submit your changes back for review and eventual
inclusion in the FreeBSD documentation.</para>
</listitem>
</itemizedlist>
<sect1 id="overview-doc">
<title>The FreeBSD Documentation Set</title>
<para>The FDP is responsible for four categories of FreeBSD
documentation.</para>
<variablelist>
<varlistentry>
<term>Manual pages</term>
<listitem>
<para>The English language system manual pages are not written by
the FDP, as they are part of the base system. However, the FDP can
(and has) re-worded parts of existing manual pages to make them
clearer, or to correct inaccuracies.</para>
<para>The translation teams are responsible for translating the
system manual pages into different languages. These translations
are kept within the FDP.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>FAQ</term>
<listitem>
<para>The FAQ aims to address (in short question and answer format)
questions that are asked, or should be asked, on the various
mailing lists and newsgroups devoted to FreeBSD. The format does
not permit long and comprehensive answers.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Handbook</term>
<listitem>
<para>The Handbook aims to be the comprehensive on-line resource and
reference for FreeBSD users.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Web site</term>
<listitem>
<para>This is the main FreeBSD presence on the World Wide Web,
visible at <ulink
url="&url.base;/index.html">http://www.FreeBSD.org/</ulink>
and many mirrors around the world. The web site is many people's
first exposure to FreeBSD.</para>
</listitem>
</varlistentry>
</variablelist>
<para>These four groups of documentation are all available in the
FreeBSD CVS tree. This means that the logs of changes to these
files are visible to anyone, and anyone can use a program such as
<application>CVSup</application> or
<application>CTM</application> to keep local copies of
this documentation.</para>
<para>In addition, many people have written tutorials or other web
sites relating to FreeBSD. Some of these are stored in the CVS
repository as well (where the author has agreed to this). In
other cases the author has decided to keep his documentation
separate from the main FreeBSD repository. The FDP endeavors to
provide links to as much of this documentation as
possible.</para>
</sect1>
<sect1 id="overview-before">
<title>Before you start</title>
<para>This document assumes that you already know:</para>
<itemizedlist>
<listitem>
<para>How to maintain an up-to-date local copy of the FreeBSD
documentation by maintaining a local copy of the
FreeBSD CVS repository (using <application>CVS</application>
and either <application>CVSup</application> or
<application>CTM</application>) or by using
<application>CVSup</application> to download just a
<emphasis>checked-out</emphasis> copy.</para>
</listitem>
<listitem>
<para>How to download and install new software using either the
FreeBSD Ports system or &man.pkg.add.1;.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="overview-quick-start">
<title>Quick Start</title>
<para>If you just want to get going, and feel confident you can pick
things up as you go along, follow these instructions.</para>
<procedure>
<step>
<para>Install the <filename role="package">textproc/docproj</filename>
meta-port.</para>
<screen>&prompt.root; <userinput>cd /usr/ports/textproc/docproj</userinput>
&prompt.root; <userinput>make JADETEX=no install</userinput></screen>
</step>
<step>
<para>Get a local copy of the FreeBSD <filename>doc</filename> tree.
Either use CVSup in <literal>checkout</literal> mode to do this, or
get a full copy of the CVS repository locally.</para>
<para>If you have the CVS repository locally then as a minimum you
will need to checkout the <filename>doc/share</filename>, and
<filename>doc/en_US.ISO8859-1/share</filename>
directories.</para>
<screen>&prompt.user; <userinput>cvs checkout doc/share</userinput>
&prompt.user; <userinput>cvs checkout doc/en_US.ISO8859-1/share</userinput></screen>
<para>If you have plenty of disk space then you could check out
everything.</para>
<screen>&prompt.user; <userinput>cvs checkout doc</userinput></screen>
</step>
<step>
<para>If you are preparing a change to an existing book or article,
check it out of the repository as necessary. If you are planning on
contributing a new book or article then use an existing one as a
guide.</para>
<para>For example, if you want to contribute a new article about
setting up a VPN between FreeBSD and Windows 2000 you might do the
following.</para>
<procedure>
<step>
<para>Check out the <filename>articles</filename>
directory.</para>
<screen>&prompt.user; <userinput>cvs checkout doc/en_US.ISO8859-1/articles</userinput></screen>
</step>
<step>
<para>Copy an existing article to use as a template. In this
case, you have decided that your new article belongs in a
directory called <filename>vpn-w2k</filename>.</para>
<screen>&prompt.user; <userinput>cd doc/en_US.ISO8859-1/articles</userinput>
&prompt.user; <userinput>cp -R committers-guide vpn-w2k</userinput></screen>
</step>
</procedure>
<para>If you wanted to edit an existing document, such as the FAQ,
which is in <filename>doc/en_US.ISO8859-1/books/faq</filename> you
would check it out of the repository like this.</para>
<screen>&prompt.user; <userinput>cvs checkout doc/en_US.ISO8859-1/books/faq</userinput></screen>
</step>
<step>
<para>Edit the <filename>.sgml</filename> files using your editor of
choice.</para>
</step>
<step>
<para>Test the markup using the <maketarget>lint</maketarget>
target. This will quickly find any errors in the document
without actually performing the time-consuming
transformation.</para>
<screen>&prompt.user; <userinput>make lint</userinput></screen>
<para>When you are ready to actually build the document, you
may specify a single format or a list of formats in the
<varname>FORMATS</varname> variable. Currently,
<literal>html</literal>, <literal>html-split</literal>,
<literal>txt</literal>, <literal>ps</literal>,
<literal>pdf</literal>, and <literal>rtf</literal> are
supported. The most up to date list of supported formats is
listed at the top of the
<filename>doc/share/mk/doc.docbook.mk</filename> file. Make
sure to use quotes around the list of formats when you build
more than one format with a single command.</para>
<para>For example, to convert the document to
<literal>html</literal> only, you would use:</para>
<screen>&prompt.user; <userinput>make FORMATS=html</userinput></screen>
<para>But when you want to convert the document to both
<literal>html</literal> and <literal>txt</literal> format,
you could use either two separate &man.make.1; runs,
with:</para>
<screen>&prompt.user; <userinput>make FORMATS=html</userinput>
&prompt.user; <userinput>make FORMATS=txt</userinput></screen>
<para>or, you can do it in one command:</para>
<screen>&prompt.user; <userinput>make FORMATS="html txt"</userinput></screen>
</step>
<step>
<para>Submit your changes using &man.send-pr.1;.</para>
</step>
</procedure>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->