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