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