freebsd-dev/share/doc/handbook/submitters.sgml
1996-01-03 02:22:03 +00:00

337 lines
15 KiB
Plaintext

<!-- $Id: submitters.sgml,v 1.10 1995/12/10 09:09:49 jkh Exp $ -->
<!-- The FreeBSD Documentation Project -->
<chapt><heading>Contributing to FreeBSD<label id="submitters"></heading>
<p><em>Contributed by &a.jkh;.</em>
<p>So you want to contribute something to FreeBSD? That's great!
We can always use the help, and FreeBSD is one of those systems
that <em>relies</em> on the contributions of its user base in order
to survive. Your contributions are not only appreciated, they're
vital to FreeBSD's continued growth!
<p>Contrary to what some people might also have you believe, you don't
need to be a hot-shot programmer or a close personal friend of the
FreeBSD core team in order to have your contributions accepted. The
FreeBSD Project's development is done by a large and growing number of
international contributors who's ages and areas of technical expertise
vary greatly, and there is always more work to be done than there are
people available to do it.
<p>Since the FreeBSD project is responsible for an entire operating
system environment (and its installation) rather than just a kernel or
a few scattered utilities, our "TODO" list also spans a very wide
range of tasks, from documentation, beta testing and presentation to
highly specialized types of kernel development. No matter what your
skill level, there's almost certainly something you can do to help the
project!
<p>Commmercial entities engaged in FreeBSD-related enterprises are
also encouraged to contact us. Need a special extention to make your
product work? You'll find us receptive to your requests, given that
they aren't too outlandish. Working on a value-added product? Please
let us know! We may be able to work cooperatively on some aspect of
it. The free software world is challenging a lot of existing
assumptions about how software is developed, sold, and maintained
throughout its life cycle, and we urge you to at least give it a
second look.
<sect><heading>What's needed</heading>
<p>The following list of tasks and sub-projects represents something
of an amalgam of the various core team TODO lists and user requests
we've collected over the last couple of months. Where possible, tasks
have been ranked by degree of urgency. If you're interested in
working on one of the tasks you see here, send mail to the coordinator
listed by clicking on their names. If no coordinator has been
appointed, maybe you'd like to volunteer?
<sect1><heading>Urgently needed</heading>
<p>The following tasks are considered to be urgent, usually because
they represent something that is badly broken:
<enum>
<item>Fix the DOS file system. Coordinator: <tt><htmlurl
url="mailto:hackers@freebsd.org" name="Hackers (no coordinator)"></tt>.
<item>Fix the union file system. Coordinator: <tt><htmlurl
url="mailto:dyson@freebsd.org" name="John Dyson"></tt>
</enum>
<sect1><heading>Not urgently needed</heading>
<p>The following tasks need to be done, but not with any particular
urgency:
<enum>
<item>Put something here.
</enum>
<sect1><heading>Would be nice to have</heading>
<p>The following tasks are purely cosmetic or represent such an
investment or work that it's not likely that anyone will get them done
anytime soon:
<enum>
<item>Put something here too.
</enum>
<sect><heading>How to contribute</heading>
<p>Contributions to the system generally fall into one or more of
the following 6 categories:
<sect1><heading>Bug reports and general commentary</heading>
<p>If you have a bug to report or a suggestion to make:
<itemize>
<item>An idea or suggestion of general technical interest should be
mailed to <tt><htmlurl url="mailto:hackers@freebsd.org"
name="&lt;hackers@freebsd.org&gt;"></tt>.
Likewise, people with an interest
in such things (and a tolerance for a <em>high</em>
volume of mail!) may
subscribe to the hackers mailing list by sending mail to
<tt><htmlurl url="mailto:majordomo@freebsd.org"
name="&lt;majordomo@freebsd.org&gt;"></tt>.
See <ref id="eresources:mail" name="mailing lists">
for more information about this and other mailing lists.
<item>An actual bug report should be filed by using the
<tt>send-pr(1)</tt> program. This will prompt
you for various fields to fill in. Simply go to the fields
surrounded by <tt>&lt;&gt;</tt>'s and fill in your own
information in place of
what's suggested there. You should receive confirmation of your
bug report and a tracking number. Keep this tracking number and use
it in any subsequent correspondence.
If you do not receive confirmation in a timely fashion (3 days to
a week, depending on your email connection) or are, for some
reason, unable to use the <tt>send-pr(1)</tt> command,
then you may also file a bug report by sending mail to
<tt><htmlurl url="mailto:bugs@freebsd.org"
name="&lt;bugs@freebsd.org&gt;"></tt>.
</itemize>
<sect1><heading>Changes to the documentation</heading>
<p>Changes to the documentation are overseen by the FreeBSD Documentation
Project, which can be reached at <tt><htmlurl url="mailto:doc@freebsd.org"
name="&lt;doc@freebsd.org&gt;"></tt>. This does not generally include
changes to manual pages, which should be considered under the category
of "changes to existing source code."
<sect1><heading>Changes to existing source code</heading>
<p>An addition or change to the existing source code is a somewhat trickier
affair and depends a lot on how far out of date you are with the current
state of the core FreeBSD development. There is a special on-going release
of FreeBSD known as ``FreeBSD-current'' which is made available in
a variety of ways for the convenience of developers working
actively on the system. See <ref id="current" name="Staying
current with FreeBSD"> for more information about getting and using
FreeBSD-current.
Working from older sources unfortunately means that your changes may
sometimes be too obsolete or too divergent for easy re-integration into
FreeBSD. Chances of this can be minimized somewhat by subscribing to the
<tt>&lt;announce@freebsd.org&gt;</tt> and
<tt>&lt;current@freebsd.org&gt;</tt> mailing lists, where discussions
on the current state of the system take place.
Assuming that you can manage to secure fairly up-to-date sources to base
your changes on, the next step is to produce a set of diffs to send to the
FreeBSD maintainers. This is done with the <tt>diff(1)</tt> command,
with the `context diff' form being preferred. For example:
<tscreen><verb>
diff -c oldfile newfile
</verb></tscreen>
or
<tscreen><verb>
diff -c -r olddir newdir
</verb></tscreen>
would generate such a set of context diffs for the given source file
or directory hierarchy. See the man page for <tt>diff(1)</tt> for more
details.
Once you have a set of diffs (which you may test with the
<tt>patch(1)</tt> command), you should bundle them up in an
email message and send it, along with a brief description of
what the diffs are for, to
<tt><htmlurl url="mailto:hackers@freebsd.org"
name="&lt;hackers@freebsd.org&gt;"></tt>. Someone will very
likely get back in touch with you in 24 hours or less,
assuming of course that your diffs are interesting! :-)
If your changes don't express themselves well as diffs alone
(e.g. you've perhaps added, deleted or renamed files as well)
then you may be better off bundling any new files, diffs and
instructions for deleting/renaming others into a <tt>tar</tt>
file and running the <tt>uuencode(1)</tt> program on it before
sending the output of that to <tt><htmlurl url="mailto:hackers@freebsd.org"
name="&lt;hackers@freebsd.org&gt;"></tt>.
See the man pages on <tt>tar(1)</tt> and <tt>uuencode(1)</tt> for more
information on bundling files this way.
If your change is of a potentially sensitive nature, e.g.
you're unsure of copyright issues governing its further distribution
or you're simply not ready to release it without a tighter review first,
then you should send it to <tt><htmlurl url="mailto:core@freebsd.org"
name="&lt;core@freebsd.org&gt;"></tt> rather than
<tt>&lt;hackers@freebsd.org&gt;</tt>. The core mailing list
reaches a much smaller group of people who do much of the
day-to-day work on FreeBSD. Note that this group is also
<em>very busy</em> and so you should only send mail to them
in cases where mailing to hackers is truly impractical.
<sect1><heading>Contributions of new code</heading>
<p>In the case of a significant contribution of a large body
work, or the addition of an important new feature to FreeBSD,
it becomes almost always necessary to either send changes as
uuencoded tar files or upload them to our ftp site <url
url="ftp://ftp.freebsd.org/pub/FreeBSD/incoming">.
When working with large amounts of code, the touchy subject of
copyrights also invariably comes up. Acceptable copyrights
for code included in FreeBSD are:
<enum>
<item>The BSD copyright. This copyright is most preferred
due to its ``no strings attached'' nature and general
attractiveness to commercial enterprises. Far from
discouraging such commercial use, the FreeBSD Project
actively encourages such participation by commercial interests
who might eventually be inclined to invest something of their own
into FreeBSD.
<item>The GNU Public License, or ``GPL''. This license isn't quite
as popular with us due to the amount of extra effort demanded
of anyone using the code for commercial purposes, but given
the sheer quantity of GPL'd code we currently require (compiler,
assembler, text formatter, etc) it would be silly to refuse
additional contributions under this license. Code under the GPL
also goes into a different part of the tree, that being
<tt>/sys/gnu</tt> or <tt>/usr/src/gnu</tt>, and is therefore
easily identifiable to anyone for whom the GPL presents a problem.
</enum>
<p>Contributions coming under any other type of copyright must be
carefully reviewed before their inclusion into FreeBSD will
be considered. Contributions for which particularly restrictive
commercial copyrights apply are generally rejected, though the
authors are always encouraged to make such changes available
through their own channels.
To place a ``BSD-style'' copyright on your work, include the following
text at the very beginning of every source code file you wish
to protect, replacing the text between the `<tt>%%</tt>' with
the appropriate information.
<tscreen><verb>
Copyright (c) %%proper_years_here%%
%%your_name_here%%, %%your_state%% %%your_zip%%. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code 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 binary form 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.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgment:
This product includes software developed by %%your_name_here%%.
4. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``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 %%your_name_here%% 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 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
$Id: submitters.sgml,v 1.10 1995/12/10 09:09:49 jkh Exp $
</verb></tscreen>
For your convenience, a copy of this text can be found in
<tt>/usr/share/examples/etc/bsd-style-copyright</tt>.
&porting;
<sect1><heading>Contributions of money, hardware or Internet access</heading>
<p>We're always very happy to accept donations to further the cause of
the FreeBSD Project and, in a volunteer effort like ours, a little can go
a long way! Donations of hardware are also very important to expanding
our list of supported peripherals since we generally lack the funds to
buy such items ourselves.
<sect2><heading>Donating funds</heading>
<p>While the FreeBSD Project is not a 501(C3) (non-profit) corporation and
hence cannot offer special tax incentives for any donations made, any such
donations will be gratefully accepted on behalf of the project by
FreeBSD, Inc.
<p>FreeBSD, Inc. was founded in early 1995 by &a.jkh and &a.davidg with the
goal of furthering the aims of the FreeBSD Project and giving it a minimal
corporate presence. Any and all funds donated (as well as any profits
that may eventually be realized by FreeBSD, Inc.) will be used exclusively
to further the project's goals.
Please make any checks payable to FreeBSD, Inc., sent in care of the
following address:
<tscreen><verb>
FreeBSD, Inc.
246 Park St.
Clyde CA, 94520
</verb></tscreen>
Wire transfers may also be sent directly to:
<tscreen><verb>
Bank Of America
Concord Main Office
P.O. Box 37176
San Francisco CA, 94137-5176
Routing #: 121-000-358
Account #: 01411-07441 (FreeBSD, Inc.)
</verb></tscreen>
If you do not wish to be listed in our `donors' section, please specify
this in a note accompanying your donation. Thanks!
<sect2><heading>Donating hardware</heading>
<p>Donations of hardware in any of the 3 following catagories are also gladly
accepted by the FreeBSD Project:
<itemize>
<item>General purpose hardware such as disk drives, memory or complete
systems should be sent to the FreeBSD, Inc. address listed in the
<em>donating funds</em> section.
<item>Hardware for which ongoing compliance testing is desired.
We are currently trying to put together a testing lab of all components
that FreeBSD supports so that proper regression testing can be done with
each new release. We are still lacking many important pieces (network cards,
motherboards, etc) and if you'd like to make such a donation, please contact
&a.davidg for information on which items are still required.
<item>Hardware currently unsupported by FreeBSD for which you'd like to
see such support added. Please contact the <htmlurl
url="mailto:core@freebsd.org" name="FreeBSD Core Team"> before sending
such items as we'll need to find a developer willing to take on the task
before we can accept delivery of them.
</itemize>
<sect2><heading>Donating internet access</heading>
<p>We can always use new mirror sites for FTP, WWW or sup.
If you'd like to be such a mirror, please contact
<htmlurl url="mailto:admin@freebsd.org" name="the FreeBSD project
administrators"> for more information.