xref: /freebsd/share/man/man7/development.7 (revision d09cfd2724422ebbbf10e916f296b8f0ce4266c0)
1bdfc6e62SEdward Tomasz Napierala.\" Copyright (c) 2018 Edward Tomasz Napierala <trasz@FreeBSD.org>
2bdfc6e62SEdward Tomasz Napierala.\" All rights reserved.
35ecb12e3SWarner Losh.\"
45ecb12e3SWarner Losh.\" Redistribution and use in source and binary forms, with or without
55ecb12e3SWarner Losh.\" modification, are permitted provided that the following conditions
65ecb12e3SWarner Losh.\" are met:
75ecb12e3SWarner Losh.\" 1. Redistributions of source code must retain the above copyright
85ecb12e3SWarner Losh.\"    notice, this list of conditions and the following disclaimer.
95ecb12e3SWarner Losh.\" 2. Redistributions in binary form must reproduce the above copyright
105ecb12e3SWarner Losh.\"    notice, this list of conditions and the following disclaimer in the
115ecb12e3SWarner Losh.\"    documentation and/or other materials provided with the distribution.
125ecb12e3SWarner Losh.\"
13bdfc6e62SEdward Tomasz Napierala.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
145ecb12e3SWarner Losh.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
155ecb12e3SWarner Losh.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16bdfc6e62SEdward Tomasz Napierala.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
175ecb12e3SWarner Losh.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
185ecb12e3SWarner Losh.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
195ecb12e3SWarner Losh.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
205ecb12e3SWarner Losh.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
215ecb12e3SWarner Losh.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
225ecb12e3SWarner Losh.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
235ecb12e3SWarner Losh.\" SUCH DAMAGE.
246ed033beSMatthew Dillon.\"
256ed033beSMatthew Dillon.\" $FreeBSD$
266ed033beSMatthew Dillon.\"
27bdfc6e62SEdward Tomasz Napierala.Dd March 13, 2018
286ed033beSMatthew Dillon.Dt DEVELOPMENT 7
296ed033beSMatthew Dillon.Os
306ed033beSMatthew Dillon.Sh NAME
316ed033beSMatthew Dillon.Nm development
32bdfc6e62SEdward Tomasz Napierala.Nd introduction to FreeBSD development process
336ed033beSMatthew Dillon.Sh DESCRIPTION
3448096bb3SMatthew Dillon.Fx
35bdfc6e62SEdward Tomasz Napieraladevelopment is split into three major suprojects: doc, ports, and src.
36bdfc6e62SEdward Tomasz NapieralaDoc is the documentation, such as the FreeBSD Handbook.
37bdfc6e62SEdward Tomasz NapieralaTo read more, see:
386ed033beSMatthew Dillon.Pp
39bdfc6e62SEdward Tomasz Napierala.Lk https://www.FreeBSD.org/doc/en/books/fdp-primer/
406ed033beSMatthew Dillon.Pp
41bdfc6e62SEdward Tomasz NapieralaPorts, described further in
42bdfc6e62SEdward Tomasz Napierala.Xr ports 7 ,
43bdfc6e62SEdward Tomasz Napieralaare the way to build, package, and install third party software.
44bdfc6e62SEdward Tomasz NapieralaTo read more, see:
456ed033beSMatthew Dillon.Pp
46bdfc6e62SEdward Tomasz Napierala.Lk https://www.FreeBSD.org/doc/en/books/porters-handbook/
476ed033beSMatthew Dillon.Pp
48bdfc6e62SEdward Tomasz NapieralaThe last one, src, revolves around the source code for the base system,
49bdfc6e62SEdward Tomasz Napieralaconsisting of the kernel, and the libraries and utilities commonly called
50bdfc6e62SEdward Tomasz Napieralathe world.
5148096bb3SMatthew Dillon.Pp
52bdfc6e62SEdward Tomasz NapieralaThe Committer's Guide, describing topics relevant to all committers,
53bdfc6e62SEdward Tomasz Napieralacan be found at:
546ed033beSMatthew Dillon.Pp
55bdfc6e62SEdward Tomasz Napierala.Lk https://www.FreeBSD.org/doc/en/articles/committers-guide/
566ed033beSMatthew Dillon.Pp
57bdfc6e62SEdward Tomasz NapieralaFreeBSD src development takes place in the CURRENT branch in Subversion,
58bdfc6e62SEdward Tomasz Napieralalocated at:
596ed033beSMatthew Dillon.Pp
60bdfc6e62SEdward Tomasz Napierala.Lk http://svn.FreeBSD.org/base/head
616ed033beSMatthew Dillon.Pp
62bdfc6e62SEdward Tomasz NapieralaThere is also a read-only GitHub mirror at:
63bdfc6e62SEdward Tomasz Napierala.Pp
64bdfc6e62SEdward Tomasz Napierala.Lk https://github.com/freebsd/freebsd
65bdfc6e62SEdward Tomasz Napierala.Pp
66bdfc6e62SEdward Tomasz NapieralaChanges are first committed to CURRENT and then usually merged back
67bdfc6e62SEdward Tomasz Napieralato STABLE.
68bdfc6e62SEdward Tomasz NapieralaEvery few years the CURRENT branch is renamed to STABLE, and a new
69bdfc6e62SEdward Tomasz NapieralaCURRENT is branched, with an incremented major version number.
70bdfc6e62SEdward Tomasz NapieralaReleases are then branched off STABLE and numbered with consecutive minor numbers.
71bdfc6e62SEdward Tomasz Napierala.Pp
72bdfc6e62SEdward Tomasz NapieralaLayout of the source tree is described in
73bdfc6e62SEdward Tomasz Napierala.Xr hier 7 .
74*d09cfd27SEdward Tomasz NapieralaBuild instructions can be found in
75bdfc6e62SEdward Tomasz Napierala.Xr build 7
76c201414fSRuslan Ermilovand
77bdfc6e62SEdward Tomasz Napierala.Xr release 7 .
78bdfc6e62SEdward Tomasz NapieralaFor coding conventions, see
79bdfc6e62SEdward Tomasz Napierala.Xr style 9 .
806ed033beSMatthew Dillon.Pp
81bdfc6e62SEdward Tomasz NapieralaTo ask questions regarding development, use the mailing lists,
82bdfc6e62SEdward Tomasz Napieralasuch as freebsd-arch@ and freebsd-hackers@:
836ed033beSMatthew Dillon.Pp
84bdfc6e62SEdward Tomasz Napierala.Lk https://lists.FreeBSD.org/
856ed033beSMatthew Dillon.Pp
86bdfc6e62SEdward Tomasz NapieralaTo get your patches integrated into the main freebsd repository use Phabricator;
87bdfc6e62SEdward Tomasz Napieralait is a code review tool that allows other developers to review the changes,
88bdfc6e62SEdward Tomasz Napieralasuggest improvements, and, eventually, allows them to pick up the change and
89bdfc6e62SEdward Tomasz Napieralacommit it:
906ed033beSMatthew Dillon.Pp
91bdfc6e62SEdward Tomasz Napierala.Lk https://reviews.FreeBSD.org
926ed033beSMatthew Dillon.Pp
93bdfc6e62SEdward Tomasz Napierala.Sh EXAMPLES
94bdfc6e62SEdward Tomasz NapieralaCheck out the CURRENT branch, build it, and install, overwriting the current
95bdfc6e62SEdward Tomasz Napieralasystem:
96bdfc6e62SEdward Tomasz Napierala.Dl svnlite co https://svn.FreeBSD.org/base/head src
97bdfc6e62SEdward Tomasz Napierala.Dl cd src
98bdfc6e62SEdward Tomasz Napierala.Dl make -j8 buildworld buildkernel installkernel
99bdfc6e62SEdward Tomasz Napierala.Dl reboot
1006ed033beSMatthew Dillon.Pp
101bdfc6e62SEdward Tomasz NapieralaAfter reboot:
102bdfc6e62SEdward Tomasz Napierala.Dl cd src
103bdfc6e62SEdward Tomasz Napierala.Dl make -j8 installworld
10448096bb3SMatthew Dillon.Pp
1056ed033beSMatthew Dillon.Sh SEE ALSO
106bdfc6e62SEdward Tomasz Napierala.Xr witness 4 ,
107c89927b8SChristian Brueffer.Xr build 7 ,
108bdfc6e62SEdward Tomasz Napierala.Xr hier 7 ,
1098347fe67SChristian Brueffer.Xr release 7 ,
110bdfc6e62SEdward Tomasz Napierala.Xr locking 9 ,
111bdfc6e62SEdward Tomasz Napierala.Xr style 9
1126ed033beSMatthew Dillon.Sh HISTORY
1136ed033beSMatthew DillonThe
1146ed033beSMatthew Dillon.Nm
1156ed033beSMatthew Dillonmanual page was originally written by
116a63d6c94SBaptiste Daroussin.An Matthew Dillon Aq Mt dillon@FreeBSD.org
1176ed033beSMatthew Dillonand first appeared
1186ed033beSMatthew Dillonin
11948096bb3SMatthew Dillon.Fx 5.0 ,
1206ed033beSMatthew DillonDecember 2002.
1211fce71e4SEitan AdlerIt was since extensively modified by
122a63d6c94SBaptiste Daroussin.An Eitan Adler Aq Mt eadler@FreeBSD.org
1231fce71e4SEitan Adlerto reflect the repository conversion from
124a63d6c94SBaptiste Daroussin.Xr cvs 1
1251fce71e4SEitan Adlerto
126a63d6c94SBaptiste Daroussin.Xr svn 1 .
127bdfc6e62SEdward Tomasz NapieralaIt was rewritten from scratch by
128bdfc6e62SEdward Tomasz Napierala.An Edward Tomasz Napierala Aq Mt trasz@FreeBSD.org
129bdfc6e62SEdward Tomasz Napieralafor
130bdfc6e62SEdward Tomasz Napierala.Fx 12.0 .
131