xref: /freebsd/share/man/man7/development.7 (revision 9c08ba7704e6a96efc1314c5d8618c0858409961)
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.\"
27*9c08ba77SEdward Tomasz Napierala.Dd April 10, 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
60f9b7620bSEdward Tomasz Napierala.Lk https://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 .
74d09cfd27SEdward Tomasz NapieralaBuild instructions can be found in
75bdfc6e62SEdward Tomasz Napierala.Xr build 7
76c201414fSRuslan Ermilovand
77bdfc6e62SEdward Tomasz Napierala.Xr release 7 .
78*9c08ba77SEdward Tomasz NapieralaKernel APIs are usually documented, use
79*9c08ba77SEdward Tomasz Napierala.Cm apropos -s 9 ''
80*9c08ba77SEdward Tomasz Napieralafor a list.
81*9c08ba77SEdward Tomasz NapieralaRegression test suite is described in
82*9c08ba77SEdward Tomasz Napierala.Xr tests 7 .
83bdfc6e62SEdward Tomasz NapieralaFor coding conventions, see
84bdfc6e62SEdward Tomasz Napierala.Xr style 9 .
856ed033beSMatthew Dillon.Pp
86bdfc6e62SEdward Tomasz NapieralaTo ask questions regarding development, use the mailing lists,
87bdfc6e62SEdward Tomasz Napieralasuch as freebsd-arch@ and freebsd-hackers@:
886ed033beSMatthew Dillon.Pp
89bdfc6e62SEdward Tomasz Napierala.Lk https://lists.FreeBSD.org/
906ed033beSMatthew Dillon.Pp
91f007c46dSEdward Tomasz NapieralaTo get your patches integrated into the main FreeBSD repository use Phabricator;
92bdfc6e62SEdward Tomasz Napieralait is a code review tool that allows other developers to review the changes,
93bdfc6e62SEdward Tomasz Napieralasuggest improvements, and, eventually, allows them to pick up the change and
94bdfc6e62SEdward Tomasz Napieralacommit it:
956ed033beSMatthew Dillon.Pp
96ac663598SEdward Tomasz Napierala.Lk https://reviews.FreeBSD.org/
976ed033beSMatthew Dillon.Pp
98bdfc6e62SEdward Tomasz Napierala.Sh EXAMPLES
99bdfc6e62SEdward Tomasz NapieralaCheck out the CURRENT branch, build it, and install, overwriting the current
100bdfc6e62SEdward Tomasz Napieralasystem:
101bdfc6e62SEdward Tomasz Napierala.Dl svnlite co https://svn.FreeBSD.org/base/head src
102bdfc6e62SEdward Tomasz Napierala.Dl cd src
103bdfc6e62SEdward Tomasz Napierala.Dl make -j8 buildworld buildkernel installkernel
104bdfc6e62SEdward Tomasz Napierala.Dl reboot
1056ed033beSMatthew Dillon.Pp
106bdfc6e62SEdward Tomasz NapieralaAfter reboot:
107bdfc6e62SEdward Tomasz Napierala.Dl cd src
108bdfc6e62SEdward Tomasz Napierala.Dl make -j8 installworld
10948096bb3SMatthew Dillon.Pp
1106ed033beSMatthew Dillon.Sh SEE ALSO
111bdfc6e62SEdward Tomasz Napierala.Xr witness 4 ,
112c89927b8SChristian Brueffer.Xr build 7 ,
113bdfc6e62SEdward Tomasz Napierala.Xr hier 7 ,
1148347fe67SChristian Brueffer.Xr release 7 ,
115bdfc6e62SEdward Tomasz Napierala.Xr locking 9 ,
116bdfc6e62SEdward Tomasz Napierala.Xr style 9
1176ed033beSMatthew Dillon.Sh HISTORY
1186ed033beSMatthew DillonThe
1196ed033beSMatthew Dillon.Nm
1206ed033beSMatthew Dillonmanual page was originally written by
121a63d6c94SBaptiste Daroussin.An Matthew Dillon Aq Mt dillon@FreeBSD.org
1226ed033beSMatthew Dillonand first appeared
1236ed033beSMatthew Dillonin
12448096bb3SMatthew Dillon.Fx 5.0 ,
1256ed033beSMatthew DillonDecember 2002.
1261fce71e4SEitan AdlerIt was since extensively modified by
127a63d6c94SBaptiste Daroussin.An Eitan Adler Aq Mt eadler@FreeBSD.org
1281fce71e4SEitan Adlerto reflect the repository conversion from
129a63d6c94SBaptiste Daroussin.Xr cvs 1
1301fce71e4SEitan Adlerto
131a63d6c94SBaptiste Daroussin.Xr svn 1 .
132bdfc6e62SEdward Tomasz NapieralaIt was rewritten from scratch by
133bdfc6e62SEdward Tomasz Napierala.An Edward Tomasz Napierala Aq Mt trasz@FreeBSD.org
134bdfc6e62SEdward Tomasz Napieralafor
135bdfc6e62SEdward Tomasz Napierala.Fx 12.0 .
136