======================= Contributing to FreeBSD ======================= .. raw:: html .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
Jordan Hubbard ~~~~~~~~~~~~~~ .. raw:: html
.. raw:: html
Sam Lawrance ~~~~~~~~~~~~ .. raw:: html
.. raw:: html
Mark Linimon ~~~~~~~~~~~~ .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
Revision: ` `__ .. raw:: html
.. raw:: html
`Legal Notice `__ .. raw:: html
.. raw:: html
Last modified on by . .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
Abstract .. raw:: html
This article describes the different ways in which an individual or organization may contribute to the FreeBSD Project. .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
[ Split HTML / `Single HTML `__ ] .. raw:: html
-------------- .. raw:: html
.. raw:: html
.. raw:: html
Table of Contents .. raw:: html
`1. What Is Needed `__ `2. How to Contribute `__ `3. Contributing to ports `__ `Index `__ .. raw:: html
So you want to contribute to FreeBSD? That is great! FreeBSD *relies* on the contributions of its user base to survive. Your contributions are not only appreciated, they are vital to FreeBSD's continued growth. A large and growing number of international contributors, of greatly varying ages and areas of technical expertise, develop FreeBSD. There is always more work to be done than there are people available to do it, and more help is always appreciated. As a volunteer, what you do is limited only by what you want to do. However, we do ask that you are aware of what other members of the FreeBSD community will expect of you. You may want to take this into account before deciding to volunteer. The FreeBSD project is responsible for an entire operating system environment, rather than just a kernel or a few scattered utilities. As such, our ``TODO`` lists span a very wide range of tasks: from documentation, beta testing and presentation, to the system installer and highly specialized types of kernel development. People of any skill level, in almost any area, can almost certainly help the project. Commercial entities engaged in FreeBSD-related enterprises are also encouraged to contact us. Do you need a special extension to make your product work? You will find us receptive to your requests, given that they are not too outlandish. Are you 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 many existing assumptions about how software is developed, sold, and maintained, and we urge you to at least give it a second look. .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
1.?What Is Needed ----------------- .. raw:: html
.. raw:: html
.. raw:: html
The following list of tasks and sub-projects represents something of an amalgam of various ``TODO`` lists and user requests. .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
1.1.?Ongoing Non-Programmer Tasks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html
.. raw:: html
.. raw:: html
Many people who are involved in FreeBSD are not programmers. The Project includes documentation writers, Web designers, and support people. All that these people need to contribute is an investment of time and a willingness to learn. .. raw:: html
#. Read through the FAQ and Handbook periodically. If anything is badly explained, out of date or even just completely wrong, let us know. Even better, send us a fix (Docbook is not difficult to learn, but there is no objection to ASCII submissions). #. Help translate FreeBSD documentation into your native language. If documentation already exists for your language, you can help translate additional documents or verify that the translations are up-to-date. First take a look at the `Translations FAQ <../../../../doc/en_US.ISO8859-1/books/fdp-primer/translations.html>`__ in the FreeBSD Documentation Project Primer. You are not committing yourself to translating every single FreeBSD document by doing this — as a volunteer, you can do as much or as little translation as you desire. Once someone begins translating, others almost always join the effort. If you only have the time or energy to translate one part of the documentation, please translate the installation instructions. #. Read the `FreeBSD general questions mailing list `__ occasionally (or even regularly). It can be very satisfying to share your expertise and help people solve their problems; sometimes you may even learn something new yourself! These forums can also be a source of ideas for things to work on. .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
1.2.?Ongoing Programmer Tasks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html
.. raw:: html
.. raw:: html
Most of the tasks listed here require either a considerable investment of time, or an in-depth knowledge of the FreeBSD kernel, or both. However, there are also many useful tasks which are suitable for “weekend hackers”. .. raw:: html
#. If you run FreeBSD-CURRENT and have a good Internet connection, there is a machine ``current.FreeBSD.org`` which builds a full release once a day—every now and again, try to install the latest release from it and report any failures in the process. #. Read the `FreeBSD problem reports mailing list `__. There might be a problem you can comment constructively on or with patches you can test. Or you could even try to fix one of the problems yourself. #. If you know of any bug fixes which have been successfully applied to -CURRENT but have not been merged into -STABLE after a decent interval (normally a couple of weeks), send the committer a polite reminder. #. Move contributed software to ``src/contrib`` in the source tree. #. Make sure code in ``src/contrib`` is up to date. #. Build the source tree (or just part of it) with extra warnings enabled and clean up the warnings. #. Fix warnings for ports which do deprecated things like using ``gets()`` or including ``malloc.h``. #. If you have contributed any ports and you had to make FreeBSD-specific changes, send your patches back to the original authors (this will make your life easier when they bring out the next version). #. Get copies of formal standards like POSIX?. Compare FreeBSD's behavior to that required by the standard. If the behavior differs, particularly in subtle or obscure corners of the specification, send in a PR about it. If you are able, figure out how to fix it and include a patch in the PR. If you think the standard is wrong, ask the standards body to consider the question. #. Suggest further tasks for this list! .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
1.3.?Work through the PR Database ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html
.. raw:: html
.. raw:: html
The `FreeBSD PR list `__ shows all the current active problem reports and requests for enhancement that have been submitted by FreeBSD users. The PR database includes both programmer and non-programmer tasks. Look through the open PRs, and see if anything there takes your interest. Some of these might be very simple tasks that just need an extra pair of eyes to look over them and confirm that the fix in the PR is a good one. Others might be much more complex, or might not even have a fix included at all. Start with the PRs that have not been assigned to anyone else. If a PR is assigned to someone else, but it looks like something you can handle, email the person it is assigned to and ask if you can work on it—they might already have a patch ready to be tested, or further ideas that you can discuss with them. .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
1.4.?Ongoing Ports Tasks ~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html
.. raw:: html
.. raw:: html
The Ports Collection is a perpetual work in progress. We want to provide our users with an easy to use, up to date, high quality repository of third party software. We need people to donate some of their time and effort to help us achieve this goal. Anyone can get involved, and there are lots of different ways to do so. Contributing to ports is an excellent way to help “give?back” something to the project. Whether you are looking for an ongoing role, or a fun challenge for a rainy day, we would love to have your help! There are a number of easy ways you can contribute to keeping the ports tree up to date and in good working order: .. raw:: html
- Find some cool or useful software and `create a port <../../../../doc/en_US.ISO8859-1/books/porters-handbook>`__ for it. - There are a large number of ports that have no maintainer. Become a maintainer and `adopt a port `__. - If you have created or adopted a port, be aware of `what you need to do as a maintainer `__. - When you are looking for a quick challenge you could `fix a bug or a broken port `__. .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html
1.5.?Pick one of the items from the Ideas page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html
.. raw:: html
.. raw:: html
The `FreeBSD list of projects and ideas for volunteers `__ is also available for people willing to contribute to the FreeBSD project. The list is being regularly updated and contains items for both programmers and non-programmers with information about each project. .. raw:: html
.. raw:: html
.. raw:: html
.. raw:: html All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/ | Questions that are not answered by the `documentation `__ may be sent to . | Send questions about this document to .