Offset 1, 9 lines modified | Offset 1, 9 lines modified |
1 | <?xml·version="1.0"·encoding="iso-8859-1"?> | 1 | <?xml·version="1.0"·encoding="iso-8859-1"?> |
2 | <!DOCTYPE·html·PUBLIC·"-//W3C//DTD·XHTML·1.0·Transitional//EN"·"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html·xmlns="http://www.w3.org/1999/xhtml"><head><meta·http-equiv="Content-Type"·content="text/html;·charset=iso-8859-1"·/><title>Committer's·Guide</title><link·rel="stylesheet"·type="text/css"·href="docbook.css"·/><link·rev="made"·href="mailto:doc@FreeBSD.org"·/><meta·name="generator"·content="DocBook·XSL·Stylesheets·V1.78.1"·/><meta·name="description"·content="This·document·provides·information·for·the·FreeBSD·committer·community.·All·new·committers·should·read·this·document·before·they·start,·and·existing·committers·are·strongly·encouraged·to·review·it·from·time·to·time.·Almost·all·FreeBSD·developers·have·commit·rights·to·one·or·more·repositories.·However,·a·few·developers·do·not,·and·some·of·the·information·here·applies·to·them·as·well.·(For·instance,·some·people·only·have·rights·to·work·with·the·Problem·Report·database).·Please·see·for·more·information.·This·document·may·also·be·of·int·✂ | 2 | <!DOCTYPE·html·PUBLIC·"-//W3C//DTD·XHTML·1.0·Transitional//EN"·"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html·xmlns="http://www.w3.org/1999/xhtml"><head><meta·http-equiv="Content-Type"·content="text/html;·charset=iso-8859-1"·/><title>Committer's·Guide</title><link·rel="stylesheet"·type="text/css"·href="docbook.css"·/><link·rev="made"·href="mailto:doc@FreeBSD.org"·/><meta·name="generator"·content="DocBook·XSL·Stylesheets·V1.78.1"·/><meta·name="description"·content="This·document·provides·information·for·the·FreeBSD·committer·community.·All·new·committers·should·read·this·document·before·they·start,·and·existing·committers·are·strongly·encouraged·to·review·it·from·time·to·time.·Almost·all·FreeBSD·developers·have·commit·rights·to·one·or·more·repositories.·However,·a·few·developers·do·not,·and·some·of·the·information·here·applies·to·them·as·well.·(For·instance,·some·people·only·have·rights·to·work·with·the·Problem·Report·database).·Please·see·for·more·information.·This·document·may·also·be·of·int·✂ |
3 | ··the·FreeBSD·Foundation.</p><p>Coverity·is·a·registered·trademark; | 3 | ··the·FreeBSD·Foundation.</p><p>Coverity·is·a·registered·trademark; |
4 | Coverity·Extend,·Coverity·Prevent·and·Coverity·Prevent·SQS·are·trademarks·of | 4 | Coverity·Extend,·Coverity·Prevent·and·Coverity·Prevent·SQS·are·trademarks·of |
5 | Coverity,·Inc.</p><p>IBM,·AIX,·OS/2, | 5 | Coverity,·Inc.</p><p>IBM,·AIX,·OS/2, |
6 | ··PowerPC,·PS/2,·S/390,·and·ThinkPad·are | 6 | ··PowerPC,·PS/2,·S/390,·and·ThinkPad·are |
7 | ··trademarks·of·International·Business·Machines·Corporation·in·the | 7 | ··trademarks·of·International·Business·Machines·Corporation·in·the |
8 | ··United·States,·other·countries,·or·both.</p><p>Intel,·Celeron,·Centrino,·Core,·EtherExpress,·i386, | 8 | ··United·States,·other·countries,·or·both.</p><p>Intel,·Celeron,·Centrino,·Core,·EtherExpress,·i386, |
9 | ··i486,·Itanium,·Pentium,·and·Xeon·are·trademarks·or·registered | 9 | ··i486,·Itanium,·Pentium,·and·Xeon·are·trademarks·or·registered |
Offset 33, 15 lines modified | Offset 33, 15 lines modified |
33 | ······<a·href="index.html">Split·HTML</a> | 33 | ······<a·href="index.html">Split·HTML</a> |
34 | ······/ | 34 | ······/ |
35 | ······ | 35 | ······ |
36 | » ··Single·HTML | 36 | » ··Single·HTML |
37 | » | 37 | » |
38 | ······] | 38 | ······] |
39 | ····</div><hr·/></div><div·class="toc"><div·class="toc-title">Table·of·Contents</div><dl·class="toc"><dt><span·class="sect1"><a·href="#admin">1.·Administrative·Details</a></span></dt><dt><span·class="sect1"><a·href="#pgpkeys">2.·Open<acronym·class="acronym">PGP</acronym>·Keys·for·FreeBSD</a></span></dt><dt><span·class="sect1"><a·href="#kerberos-ldap">3.·Kerberos·and·LDAP·web·Password·for·FreeBSD·Cluster</a></span></dt><dt><span·class="sect1"><a·href="#committer.types">4.·Commit·Bit·Types</a></span></dt><dt><span·class="sect1"><a·href="#subversion-primer">5.·Subversion·Primer</a></span></dt><dt><span·class="sect1"><a·href="#conventions">6.·Setup,·Conventions,·and·Traditions</a></span></dt><dt><span·class="sect1"><a·href="#commit-log-message">7.·Commit·Log·Messages</a></span></dt><dt><span·class="sect1"><a·href="#pref-license">8.·Preferred·License·for·New·Files</a></span></dt><dt><span·class="sect1"><a·href="#tracking.license.grants">9.·Keeping·Track·of·Licenses·Granted·to·the·FreeBSD | 39 | ····</div><hr·/></div><div·class="toc"><div·class="toc-title">Table·of·Contents</div><dl·class="toc"><dt><span·class="sect1"><a·href="#admin">1.·Administrative·Details</a></span></dt><dt><span·class="sect1"><a·href="#pgpkeys">2.·Open<acronym·class="acronym">PGP</acronym>·Keys·for·FreeBSD</a></span></dt><dt><span·class="sect1"><a·href="#kerberos-ldap">3.·Kerberos·and·LDAP·web·Password·for·FreeBSD·Cluster</a></span></dt><dt><span·class="sect1"><a·href="#committer.types">4.·Commit·Bit·Types</a></span></dt><dt><span·class="sect1"><a·href="#subversion-primer">5.·Subversion·Primer</a></span></dt><dt><span·class="sect1"><a·href="#conventions">6.·Setup,·Conventions,·and·Traditions</a></span></dt><dt><span·class="sect1"><a·href="#commit-log-message">7.·Commit·Log·Messages</a></span></dt><dt><span·class="sect1"><a·href="#pref-license">8.·Preferred·License·for·New·Files</a></span></dt><dt><span·class="sect1"><a·href="#tracking.license.grants">9.·Keeping·Track·of·Licenses·Granted·to·the·FreeBSD |
40 | ······Project</a></span></dt><dt><span·class="sect1"><a·href="#developer.relations">10.·Developer·Relations</a></span></dt><dt><span·class="sect1"><a·href="#if-in-doubt">11.·If·in·Doubt...</a></span></dt><dt><span·class="sect1"><a·href="#bugzilla">12.·Bugzilla</a></span></dt><dt><span·class="sect1"><a·href="#idp63523000">13.·Phabricator</a></span></dt><dt><span·class="sect1"><a·href="#people">14.·Who's·Who</a></span></dt><dt><span·class="sect1"><a·href="#ssh.guide">15.·SSH·Quick-Start·Guide</a></span></dt><dt><span·class="sect1"><a·href="#coverity">16.·<span·class="trademark">Coverity</span>®·Availability·for·FreeBSD·Committers</a></span></dt><dt><span·class="sect1"><a·href="#rules">17.·The·FreeBSD·Committers'·Big·List·of·Rules</a></span></dt><dt><span·class="sect1"><a·href="#archs">18.·Support·for·Multiple·Architectures</a></span></dt><dt><span·class="sect1"><a·href="#ports">19.·Ports·Specific·FAQ</a></span></dt><dt><span·class="sect1"><a·href="#non-committers">20.·Issues·Specific·to·Developers·Who·Are·Not | 40 | ······Project</a></span></dt><dt><span·class="sect1"><a·href="#developer.relations">10.·Developer·Relations</a></span></dt><dt><span·class="sect1"><a·href="#if-in-doubt">11.·If·in·Doubt...</a></span></dt><dt><span·class="sect1"><a·href="#bugzilla">12.·Bugzilla</a></span></dt><dt><span·class="sect1"><a·href="#idp63596728">13.·Phabricator</a></span></dt><dt><span·class="sect1"><a·href="#people">14.·Who's·Who</a></span></dt><dt><span·class="sect1"><a·href="#ssh.guide">15.·SSH·Quick-Start·Guide</a></span></dt><dt><span·class="sect1"><a·href="#coverity">16.·<span·class="trademark">Coverity</span>®·Availability·for·FreeBSD·Committers</a></span></dt><dt><span·class="sect1"><a·href="#rules">17.·The·FreeBSD·Committers'·Big·List·of·Rules</a></span></dt><dt><span·class="sect1"><a·href="#archs">18.·Support·for·Multiple·Architectures</a></span></dt><dt><span·class="sect1"><a·href="#ports">19.·Ports·Specific·FAQ</a></span></dt><dt><span·class="sect1"><a·href="#non-committers">20.·Issues·Specific·to·Developers·Who·Are·Not |
41 | ······Committers</a></span></dt><dt><span·class="sect1"><a·href="#google-analytics">21.·Information·About·Google·Analytics</a></span></dt><dt><span·class="sect1"><a·href="#misc">22.·Miscellaneous·Questions</a></span></dt><dt><span·class="sect1"><a·href="#benefits">23.·Benefits·and·Perks·for·FreeBSD·Comitters</a></span></dt></dl></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="admin"></a>1. Administrative·Details</h2></div></div></div><div·class="informaltable"><table·width="100%"·border="0"><colgroup><col·/><col·/></colgroup><tbody><tr><td><span·class="emphasis"><em>Login·Methods</em></span></td><td><a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ssh&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ssh</span>(1)</span></a>,·protocol·2·only</td></tr><tr><td><span·class="emphasis"><em>Main·Shell·Host</em></span></td><td><code·class="sys·✂ | 41 | ······Committers</a></span></dt><dt><span·class="sect1"><a·href="#google-analytics">21.·Information·About·Google·Analytics</a></span></dt><dt><span·class="sect1"><a·href="#misc">22.·Miscellaneous·Questions</a></span></dt><dt><span·class="sect1"><a·href="#benefits">23.·Benefits·and·Perks·for·FreeBSD·Comitters</a></span></dt></dl></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="admin"></a>1. Administrative·Details</h2></div></div></div><div·class="informaltable"><table·width="100%"·border="0"><colgroup><col·/><col·/></colgroup><tbody><tr><td><span·class="emphasis"><em>Login·Methods</em></span></td><td><a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=ssh&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">ssh</span>(1)</span></a>,·protocol·2·only</td></tr><tr><td><span·class="emphasis"><em>Main·Shell·Host</em></span></td><td><code·class="sys·✂ |
42 | » » Root</em></span></td><td><code·class="literal">svn+ssh://</code><code·class="systemitem">repo.FreeBSD.org</code><code·class="filename">/base</code> | 42 | » » Root</em></span></td><td><code·class="literal">svn+ssh://</code><code·class="systemitem">repo.FreeBSD.org</code><code·class="filename">/base</code> |
43 | » ······(see·also·<a·class="xref"·href="#svn-getting-started-base-layout"·title="5.2.3. RELENG_*·Branches·and·General·Layout">Section 5.2.3,·“<code·class="literal">RELENG_*</code>·Branches·and·General | 43 | » ······(see·also·<a·class="xref"·href="#svn-getting-started-base-layout"·title="5.2.3. RELENG_*·Branches·and·General·Layout">Section 5.2.3,·“<code·class="literal">RELENG_*</code>·Branches·and·General |
44 | » ··Layout”</a>).</td></tr><tr><td><span·class="emphasis"><em><code·class="literal">doc/</code>·Subversion | 44 | » ··Layout”</a>).</td></tr><tr><td><span·class="emphasis"><em><code·class="literal">doc/</code>·Subversion |
45 | » » Root</em></span></td><td><code·class="literal">svn+ssh://</code><code·class="systemitem">repo.FreeBSD.org</code><code·class="filename">/doc</code> | 45 | » » Root</em></span></td><td><code·class="literal">svn+ssh://</code><code·class="systemitem">repo.FreeBSD.org</code><code·class="filename">/doc</code> |
46 | » ······(see·also·<a·class="xref"·href="#svn-getting-started-doc-layout"·title="5.2.4. FreeBSD·Documentation·Project·Branches·and·Layout">Section 5.2.4,·“FreeBSD·Documentation·Project·Branches·and | 46 | » ······(see·also·<a·class="xref"·href="#svn-getting-started-doc-layout"·title="5.2.4. FreeBSD·Documentation·Project·Branches·and·Layout">Section 5.2.4,·“FreeBSD·Documentation·Project·Branches·and |
47 | » ··Layout”</a>).</td></tr><tr><td><span·class="emphasis"><em><code·class="literal">ports/</code>·Subversion | 47 | » ··Layout”</a>).</td></tr><tr><td><span·class="emphasis"><em><code·class="literal">ports/</code>·Subversion |
Offset 181, 15 lines modified | Offset 181, 15 lines modified |
181 | ······who·has·not·previously·worked·in·an·area·of·the·tree·seek·review | 181 | ······who·has·not·previously·worked·in·an·area·of·the·tree·seek·review |
182 | ······prior·to·committing,·seek·approval·from·the·appropriate | 182 | ······prior·to·committing,·seek·approval·from·the·appropriate |
183 | ······responsible·party,·and/or·work·with·a·mentor.··Since·the·rules | 183 | ······responsible·party,·and/or·work·with·a·mentor.··Since·the·rules |
184 | ······regarding·code·maintenance·differ·by·area·of·the·tree,·this·is | 184 | ······regarding·code·maintenance·differ·by·area·of·the·tree,·this·is |
185 | ······as·much·for·the·benefit·of·the·committer·working·in·an·area·of | 185 | ······as·much·for·the·benefit·of·the·committer·working·in·an·area·of |
186 | ······less·familiarity·as·it·is·for·others·working·on·the·tree.</p><p>Committers·are·encouraged·to·seek·review·for·their·work·as | 186 | ······less·familiarity·as·it·is·for·others·working·on·the·tree.</p><p>Committers·are·encouraged·to·seek·review·for·their·work·as |
187 | ······part·of·the·normal·development·process,·regardless·of·the·area | 187 | ······part·of·the·normal·development·process,·regardless·of·the·area |
188 | ······of·the·tree·where·the·work·is·occurring.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp59533496"></a>4.1. Policy·for·Committer·Activity·in·Other·Trees</h3></div></div></div><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>All·committers·may·modify | 188 | ······of·the·tree·where·the·work·is·occurring.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp59600056"></a>4.1. Policy·for·Committer·Activity·in·Other·Trees</h3></div></div></div><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>All·committers·may·modify |
189 | » ····<code·class="filename">base/head/share/misc/committers-*.dot</code>, | 189 | » ····<code·class="filename">base/head/share/misc/committers-*.dot</code>, |
190 | » ····<code·class="filename">base/head/usr.bin/calendar/calendars/calendar.freebsd</code>, | 190 | » ····<code·class="filename">base/head/usr.bin/calendar/calendars/calendar.freebsd</code>, |
191 | » ····and | 191 | » ····and |
192 | » ····<code·class="filename">ports/head/astro/xearth/files</code>.</p></li><li·class="listitem"><p>doc·committers·may·commit | 192 | » ····<code·class="filename">ports/head/astro/xearth/files</code>.</p></li><li·class="listitem"><p>doc·committers·may·commit |
193 | » ····documentation·changes·to·<code·class="filename">src</code> | 193 | » ····documentation·changes·to·<code·class="filename">src</code> |
194 | » ····files,·such·as·man·pages,·READMEs,·fortune·databases, | 194 | » ····files,·such·as·man·pages,·READMEs,·fortune·databases, |
195 | » ····calendar·files,·and·comment·fixes·without·approval·from·a | 195 | » ····calendar·files,·and·comment·fixes·without·approval·from·a |
Offset 428, 15 lines modified | Offset 428, 15 lines modified |
428 | » ······discarding·your·own·changes,·the·conflicting·changes, | 428 | » ······discarding·your·own·changes,·the·conflicting·changes, |
429 | » ······and·possibly·other·intervening·changes·as·well.</p></li><li·class="listitem"><p><code·class="literal">mine-full</code>:·use·what·you·had | 429 | » ······and·possibly·other·intervening·changes·as·well.</p></li><li·class="listitem"><p><code·class="literal">mine-full</code>:·use·what·you·had |
430 | » ······before·<code·class="command">svn·update</code>,·including·your·own | 430 | » ······before·<code·class="command">svn·update</code>,·including·your·own |
431 | » ······changes,·but·discarding·the·conflicting·changes,·and | 431 | » ······changes,·but·discarding·the·conflicting·changes,·and |
432 | » ······possibly·other·intervening·changes·as·well.</p></li><li·class="listitem"><p><code·class="literal">theirs-full</code>:·use·the·version·that | 432 | » ······possibly·other·intervening·changes·as·well.</p></li><li·class="listitem"><p><code·class="literal">theirs-full</code>:·use·the·version·that |
433 | » ······was·retrieved·when·you·did | 433 | » ······was·retrieved·when·you·did |
434 | » ······<code·class="command">svn·update</code>,·discarding·your·own | 434 | » ······<code·class="command">svn·update</code>,·discarding·your·own |
435 | » ······changes.</p></li></ul></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60122808"></a>5.4. Advanced·Use</h3></div></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="svn-advanced-use-sparse-checkouts"></a>5.4.1. Sparse·Checkouts</h4></div></div></div><p><acronym·class="acronym">SVN</acronym>·allows | 435 | » ······changes.</p></li></ul></div></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60198968"></a>5.4. Advanced·Use</h3></div></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="svn-advanced-use-sparse-checkouts"></a>5.4.1. Sparse·Checkouts</h4></div></div></div><p><acronym·class="acronym">SVN</acronym>·allows |
436 | » ··<span·class="emphasis"><em>sparse</em></span>,·or·partial·checkouts·of·a | 436 | » ··<span·class="emphasis"><em>sparse</em></span>,·or·partial·checkouts·of·a |
437 | » ··directory·by·adding·<code·class="option">--depth</code>·to·a | 437 | » ··directory·by·adding·<code·class="option">--depth</code>·to·a |
438 | » ··<code·class="command">svn·checkout</code>.</p><p>Valid·arguments·to·<code·class="option">--depth</code> | 438 | » ··<code·class="command">svn·checkout</code>.</p><p>Valid·arguments·to·<code·class="option">--depth</code> |
439 | » ··are:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p><code·class="literal">empty</code>:·the·directory·itself | 439 | » ··are:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p><code·class="literal">empty</code>:·the·directory·itself |
440 | » ······without·any·of·its·contents.</p></li><li·class="listitem"><p><code·class="literal">files</code>:·the·directory·and·any | 440 | » ······without·any·of·its·contents.</p></li><li·class="listitem"><p><code·class="literal">files</code>:·the·directory·and·any |
441 | » ······files·it·contains.</p></li><li·class="listitem"><p><code·class="literal">immediates</code>:·the·directory·and·any | 441 | » ······files·it·contains.</p></li><li·class="listitem"><p><code·class="literal">immediates</code>:·the·directory·and·any |
442 | » ······files·and·directories·it·contains,·but·none·of·the | 442 | » ······files·and·directories·it·contains,·but·none·of·the |
Offset 468, 15 lines modified | Offset 468, 15 lines modified |
468 | » ··depending·on·your·network·connection:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·checkout·--depth=immediates·svn+ssh://repo.freebsd.org/base</code></strong> | 468 | » ··depending·on·your·network·connection:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·checkout·--depth=immediates·svn+ssh://repo.freebsd.org/base</code></strong> |
469 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cd·base</code></strong> | 469 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cd·base</code></strong> |
470 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·update·--set-depth=infinity·head</code></strong> | 470 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·update·--set-depth=infinity·head</code></strong> |
471 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·copy·head·stable/8</code></strong> | 471 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·copy·head·stable/8</code></strong> |
472 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit·stable/8</code></strong></pre></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="svn-advanced-use-merging"></a>5.4.3. Merging·with·<acronym·class="acronym">SVN</acronym></h4></div></div></div><p>This·section·deals·with·merging·code·from·one·branch·to | 472 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit·stable/8</code></strong></pre></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="svn-advanced-use-merging"></a>5.4.3. Merging·with·<acronym·class="acronym">SVN</acronym></h4></div></div></div><p>This·section·deals·with·merging·code·from·one·branch·to |
473 | » ··another·(typically,·from·head·to·a·stable·branch).</p><div·xmlns=""·class="note"><h3·class="admontitle">Note:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">In·all·examples·below,·<code·class="literal">$FSVN</code> | 473 | » ··another·(typically,·from·head·to·a·stable·branch).</p><div·xmlns=""·class="note"><h3·class="admontitle">Note:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">In·all·examples·below,·<code·class="literal">$FSVN</code> |
474 | » ····refers·to·the·location·of·the·FreeBSD·Subversion·repository, | 474 | » ····refers·to·the·location·of·the·FreeBSD·Subversion·repository, |
475 | » ····<code·class="literal">svn+ssh://repo.freebsd.org/base/</code>.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60235832"></a>5.4.3.1. About·Merge·Tracking</h5></div></div></div><p>From·the·user's·perspective,·merge·tracking | 475 | » ····<code·class="literal">svn+ssh://repo.freebsd.org/base/</code>.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60332728"></a>5.4.3.1. About·Merge·Tracking</h5></div></div></div><p>From·the·user's·perspective,·merge·tracking |
476 | » ····information·(or·mergeinfo)·is·stored·in·a·property·called | 476 | » ····information·(or·mergeinfo)·is·stored·in·a·property·called |
477 | » ····<code·class="literal">svn:mergeinfo</code>,·which·is·a | 477 | » ····<code·class="literal">svn:mergeinfo</code>,·which·is·a |
478 | » ····comma-separated·list·of·revisions·and·ranges·of·revisions | 478 | » ····comma-separated·list·of·revisions·and·ranges·of·revisions |
479 | » ····that·have·been·merged.··When·set·on·a·file,·it·applies | 479 | » ····that·have·been·merged.··When·set·on·a·file,·it·applies |
480 | » ····only·to·that·file.··When·set·on·a·directory,·it·applies·to | 480 | » ····only·to·that·file.··When·set·on·a·directory,·it·applies·to |
481 | » ····that·directory·and·its·descendants·(files·and·directories) | 481 | » ····that·directory·and·its·descendants·(files·and·directories) |
482 | » ····except·for·those·that·have·their·own | 482 | » ····except·for·those·that·have·their·own |
Offset 591, 38 lines modified | Offset 591, 38 lines modified |
591 | » ····target.··For·instance,·you·will·always·merge | 591 | » ····target.··For·instance,·you·will·always·merge |
592 | » ····<code·class="filename">stable/7/lib/libc/</code>·from | 592 | » ····<code·class="filename">stable/7/lib/libc/</code>·from |
593 | » ····<code·class="filename">head/lib/libc/</code>.··The·only·exception | 593 | » ····<code·class="filename">head/lib/libc/</code>.··The·only·exception |
594 | » ····would·be·when·merging·changes·to·code·that·has·moved·in | 594 | » ····would·be·when·merging·changes·to·code·that·has·moved·in |
595 | » ····the·source·branch·but·not·in·the·parent·branch.··For | 595 | » ····the·source·branch·but·not·in·the·parent·branch.··For |
596 | » ····instance,·a·change·to·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=pkill&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">pkill</span>(1)</span></a>·would·be·merged·from | 596 | » ····instance,·a·change·to·<a·class="citerefentry"·href="http://www.FreeBSD.org/cgi/man.cgi?query=pkill&sektion=1&manpath=freebsd-release-ports"><span·class="citerefentry"><span·class="refentrytitle">pkill</span>(1)</span></a>·would·be·merged·from |
597 | » ····<code·class="filename">bin/pkill/</code>·in·head·to | 597 | » ····<code·class="filename">bin/pkill/</code>·in·head·to |
598 | » ····<code·class="filename">usr.bin/pkill/</code>·in·stable/7.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60417464"></a>5.4.3.4. Preparing·the·Merge·Target</h5></div></div></div><p>Because·of·the·mergeinfo·propagation·issues·described | 598 | » ····<code·class="filename">usr.bin/pkill/</code>·in·stable/7.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60555448"></a>5.4.3.4. Preparing·the·Merge·Target</h5></div></div></div><p>Because·of·the·mergeinfo·propagation·issues·described |
599 | » ····earlier,·it·is·very·important·that·you·never·merge·changes | 599 | » ····earlier,·it·is·very·important·that·you·never·merge·changes |
600 | » ····into·a·sparse·working·copy.··You·must·always·have·a·full | 600 | » ····into·a·sparse·working·copy.··You·must·always·have·a·full |
601 | » ····checkout·of·the·branch·you·will·merge·into.··For·instance, | 601 | » ····checkout·of·the·branch·you·will·merge·into.··For·instance, |
602 | » ····when·merging·from·HEAD·to·7,·you·must·have·a·full·checkout | 602 | » ····when·merging·from·HEAD·to·7,·you·must·have·a·full·checkout |
603 | » ····of·stable/7:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·stable/7</code></strong> | 603 | » ····of·stable/7:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·stable/7</code></strong> |
604 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·up·--set-depth=infinity</code></strong></pre><p>The·target·directory·must·also·be·up-to-date·and·must | 604 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·up·--set-depth=infinity</code></strong></pre><p>The·target·directory·must·also·be·up-to-date·and·must |
605 | » ····not·contain·any·uncommitted·changes·or·stray·files.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60479160"></a>5.4.3.5. Identifying·Revisions</h5></div></div></div><p>Identifying·revisions·to·be·merged·is·a·must.··If·the | 605 | » ····not·contain·any·uncommitted·changes·or·stray·files.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60564152"></a>5.4.3.5. Identifying·Revisions</h5></div></div></div><p>Identifying·revisions·to·be·merged·is·a·must.··If·the |
606 | » ····target·already·has·complete·mergeinfo,·ask | 606 | » ····target·already·has·complete·mergeinfo,·ask |
607 | » ····<acronym·class="acronym">SVN</acronym>·for·a·list:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·stable/6/contrib/openpam</code></strong> | 607 | » ····<acronym·class="acronym">SVN</acronym>·for·a·list:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·stable/6/contrib/openpam</code></strong> |
608 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·mergeinfo·--show-revs=eligible·$FSVN/head/contrib/openpam</code></strong></pre><p>If·the·target·does·not·have·complete·mergeinfo,·check | 608 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·mergeinfo·--show-revs=eligible·$FSVN/head/contrib/openpam</code></strong></pre><p>If·the·target·does·not·have·complete·mergeinfo,·check |
609 | » ····the·log·for·the·merge·source.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60487352"></a>5.4.3.6. Merging</h5></div></div></div><p>Now,·let·us·start·merging!</p><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60502968"></a>5.4.3.6.1. The·Principles</h6></div></div></div><p>Say·you·would·like·to·merge:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>revision·<code·class="literal">$R</code></p></li><li·class="listitem"><p>in·directory·$target·in·stable·branch | 609 | » ····the·log·for·the·merge·source.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60572728"></a>5.4.3.6. Merging</h5></div></div></div><p>Now,·let·us·start·merging!</p><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60579896"></a>5.4.3.6.1. The·Principles</h6></div></div></div><p>Say·you·would·like·to·merge:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>revision·<code·class="literal">$R</code></p></li><li·class="listitem"><p>in·directory·$target·in·stable·branch |
610 | » » ··$B</p></li><li·class="listitem"><p>from·directory·$source·in·head</p></li><li·class="listitem"><p>$FSVN·is | 610 | » » ··$B</p></li><li·class="listitem"><p>from·directory·$source·in·head</p></li><li·class="listitem"><p>$FSVN·is |
611 | » » ··<code·class="literal">svn+ssh://repo.freebsd.org/base</code></p></li></ul></div><p>Assuming·that·revisions·$P·and·$Q·have | 611 | » » ··<code·class="literal">svn+ssh://repo.freebsd.org/base</code></p></li></ul></div><p>Assuming·that·revisions·$P·and·$Q·have |
612 | » ······already·been·merged,·and·that·the·current·directory·is | 612 | » ······already·been·merged,·and·that·the·current·directory·is |
613 | » ······an·up-to-date·working·copy·of·stable/$B,·the | 613 | » ······an·up-to-date·working·copy·of·stable/$B,·the |
614 | » ······existing·mergeinfo·looks·like·this:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·propget·svn:mergeinfo·-R·$target</code></strong> | 614 | » ······existing·mergeinfo·looks·like·this:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·propget·svn:mergeinfo·-R·$target</code></strong> |
615 | $target·-·/head/$source:$P,$Q</pre><p>Merging·is·done·like·so:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-c$R·$FSVN/head/$source·$target</code></strong></pre><p>Checking·the·results·of·this·is·possible·with | 615 | $target·-·/head/$source:$P,$Q</pre><p>Merging·is·done·like·so:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-c$R·$FSVN/head/$source·$target</code></strong></pre><p>Checking·the·results·of·this·is·possible·with |
616 | » ······<code·class="command">svn·diff</code>.</p><p>The·svn:mergeinfo·now·looks·like:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·propget·svn:mergeinfo·-R·$target</code></strong> | 616 | » ······<code·class="command">svn·diff</code>.</p><p>The·svn:mergeinfo·now·looks·like:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·propget·svn:mergeinfo·-R·$target</code></strong> |
617 | $target·-·head/$source:$P,$Q,$R</pre><p>If·the·results·are·not·exactly·as·shown,·assistance | 617 | $target·-·head/$source:$P,$Q,$R</pre><p>If·the·results·are·not·exactly·as·shown,·assistance |
618 | » ······may·be·required·before·committing·as·mistakes·may·have | 618 | » ······may·be·required·before·committing·as·mistakes·may·have |
619 | » ······been·made,·or·there·may·be·something·wrong·with·the | 619 | » ······been·made,·or·there·may·be·something·wrong·with·the |
620 | » ······existing·mergeinfo,·or·there·may·be·a·bug·in | 620 | » ······existing·mergeinfo,·or·there·may·be·a·bug·in |
621 | » ······Subversion.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60542520"></a>5.4.3.6.2. Practical·Example</h6></div></div></div><p>As·a·practical·example,·consider·the·following | 621 | » ······Subversion.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60623160"></a>5.4.3.6.2. Practical·Example</h6></div></div></div><p>As·a·practical·example,·consider·the·following |
622 | » ······scenario.··The·changes·to·<code·class="filename">netmap.4</code> | 622 | » ······scenario.··The·changes·to·<code·class="filename">netmap.4</code> |
623 | » ······in·r238987·are·to·be·merged·from·CURRENT·to·9-STABLE. | 623 | » ······in·r238987·are·to·be·merged·from·CURRENT·to·9-STABLE. |
624 | » ······The·file·resides·in | 624 | » ······The·file·resides·in |
625 | » ······<code·class="filename">head/share/man/man4</code>.··According | 625 | » ······<code·class="filename">head/share/man/man4</code>.··According |
626 | » ······to·<a·class="xref"·href="#svn-advanced-use-merging"·title="5.4.3. Merging·with·SVN">Section 5.4.3,·“Merging·with·<acronym·class="acronym">SVN</acronym>”</a>,·this·is | 626 | » ······to·<a·class="xref"·href="#svn-advanced-use-merging"·title="5.4.3. Merging·with·SVN">Section 5.4.3,·“Merging·with·<acronym·class="acronym">SVN</acronym>”</a>,·this·is |
627 | » ······also·where·to·do·the·merge.··Note·that·in·this·example | 627 | » ······also·where·to·do·the·merge.··Note·that·in·this·example |
628 | » ······all·paths·are·relative·to·the·top·of·the·svn·repository. | 628 | » ······all·paths·are·relative·to·the·top·of·the·svn·repository. |
Offset 632, 36 lines modified | Offset 632, 36 lines modified |
632 | » ······to·the·next·step;·doing·the·actual·merge:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-c·r238987·svn+ssh://repo.freebsd.org/base/head/share/man/man4·stable/9/share/man/man4</code></strong> | 632 | » ······to·the·next·step;·doing·the·actual·merge:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-c·r238987·svn+ssh://repo.freebsd.org/base/head/share/man/man4·stable/9/share/man/man4</code></strong> |
633 | ---·Merging·r238987·into·'stable/9/share/man/man4': | 633 | ---·Merging·r238987·into·'stable/9/share/man/man4': |
634 | U····stable/9/share/man/man4/netmap.4 | 634 | U····stable/9/share/man/man4/netmap.4 |
635 | ---·Recording·mergeinfo·for·merge·of·r238987·into | 635 | ---·Recording·mergeinfo·for·merge·of·r238987·into |
636 | 'stable/9/share/man/man4': | 636 | 'stable/9/share/man/man4': |
637 | ·U···stable/9/share/man/man4</pre><p>Check·that·the·revision·number·of·the·merged | 637 | ·U···stable/9/share/man/man4</pre><p>Check·that·the·revision·number·of·the·merged |
638 | » ······revision·has·been·added.··Once·this·is·verified,·the | 638 | » ······revision·has·been·added.··Once·this·is·verified,·the |
639 | » ······only·thing·left·is·the·actual·commit.</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit·stable/9/share/man/man4</code></strong></pre></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60559160"></a>5.4.3.6.3. Merging·into·the·Kernel | 639 | » ······only·thing·left·is·the·actual·commit.</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit·stable/9/share/man/man4</code></strong></pre></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60639928"></a>5.4.3.6.3. Merging·into·the·Kernel |
640 | » ······(<code·class="filename">sys/</code>)</h6></div></div></div><p>As·stated·above,·merging·into·the·kernel·is | 640 | » ······(<code·class="filename">sys/</code>)</h6></div></div></div><p>As·stated·above,·merging·into·the·kernel·is |
641 | » ······different·from·merging·in·the·rest·of·the·tree.··In·many | 641 | » ······different·from·merging·in·the·rest·of·the·tree.··In·many |
642 | » ······ways·merging·to·the·kernel·is·simpler·because·there·is | 642 | » ······ways·merging·to·the·kernel·is·simpler·because·there·is |
643 | » ······always·the·same·merge·target | 643 | » ······always·the·same·merge·target |
644 | » ······(<code·class="filename">sys/</code>).</p><p>Once·<code·class="command">svn·merge</code>·has·been·executed, | 644 | » ······(<code·class="filename">sys/</code>).</p><p>Once·<code·class="command">svn·merge</code>·has·been·executed, |
645 | » ······<code·class="command">svn·diff</code>·has·to·be·run·on·the | 645 | » ······<code·class="command">svn·diff</code>·has·to·be·run·on·the |
646 | » ······directory·to·check·the·changes.··This·may·show·some | 646 | » ······directory·to·check·the·changes.··This·may·show·some |
647 | » ······unrelated·property·changes,·but·these·can·be·ignored. | 647 | » ······unrelated·property·changes,·but·these·can·be·ignored. |
648 | » ······Next,·build·and·test·the·kernel,·and,·once·the·tests·are | 648 | » ······Next,·build·and·test·the·kernel,·and,·once·the·tests·are |
649 | » ······complete,·commit·the·code·as·normal,·making·sure·that | 649 | » ······complete,·commit·the·code·as·normal,·making·sure·that |
650 | » ······the·commit·message·starts·with·<span·class="quote">“<span·class="quote">Merge | 650 | » ······the·commit·message·starts·with·<span·class="quote">“<span·class="quote">Merge |
651 | » » <em·class="replaceable"><code>r226222</code></em>·from·head</span>”</span>, | 651 | » » <em·class="replaceable"><code>r226222</code></em>·from·head</span>”</span>, |
652 | » ······or·similar.</p></div></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60583096"></a>5.4.3.7. Precautions·Before·Committing</h5></div></div></div><p>As·always,·build·world·(or·appropriate·parts·of | 652 | » ······or·similar.</p></div></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60654136"></a>5.4.3.7. Precautions·Before·Committing</h5></div></div></div><p>As·always,·build·world·(or·appropriate·parts·of |
653 | » ····it).</p><p>Check·the·changes·with·<code·class="command">svn·diff</code>·and | 653 | » ····it).</p><p>Check·the·changes·with·<code·class="command">svn·diff</code>·and |
654 | » ····<code·class="command">svn·stat</code>.··Make·sure·all·the·files·that | 654 | » ····<code·class="command">svn·stat</code>.··Make·sure·all·the·files·that |
655 | » ····should·have·been·added·or·deleted·were·in·fact·added·or | 655 | » ····should·have·been·added·or·deleted·were·in·fact·added·or |
656 | » ····deleted.</p><p>Take·a·closer·look·at·any·property·change·(marked·by·a | 656 | » ····deleted.</p><p>Take·a·closer·look·at·any·property·change·(marked·by·a |
657 | » ····<code·class="literal">M</code>·in·the·second·column·of·<code·class="command">svn | 657 | » ····<code·class="literal">M</code>·in·the·second·column·of·<code·class="command">svn |
658 | » ······stat</code>).··Normally,·no·svn:mergeinfo·properties | 658 | » ······stat</code>).··Normally,·no·svn:mergeinfo·properties |
659 | » ····should·be·anywhere·except·the·target·directory·(or | 659 | » ····should·be·anywhere·except·the·target·directory·(or |
660 | » ····directories).</p><p>If·something·looks·fishy,·ask·for·help.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60594360"></a>5.4.3.8. Committing</h5></div></div></div><p>Make·sure·to·commit·a·top·level·directory·to·have·the | 660 | » ····directories).</p><p>If·something·looks·fishy,·ask·for·help.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60665272"></a>5.4.3.8. Committing</h5></div></div></div><p>Make·sure·to·commit·a·top·level·directory·to·have·the |
661 | » ····mergeinfo·included·as·well.··Do·not·specify·individual | 661 | » ····mergeinfo·included·as·well.··Do·not·specify·individual |
662 | » ····files·on·the·command·line.··For·more·information·about | 662 | » ····files·on·the·command·line.··For·more·information·about |
663 | » ····committing·files·in·general,·see·the·relevant·section·of | 663 | » ····committing·files·in·general,·see·the·relevant·section·of |
664 | » ····this·primer.</p></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="svn-advanced-use-vendor-imports"></a>5.4.4. Vendor·Imports·with·<acronym·class="acronym">SVN</acronym></h4></div></div></div><div·xmlns=""·class="important"><h3·class="admontitle">Important:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">Please·read·this·entire·section·before·starting·a | 664 | » ····this·primer.</p></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="svn-advanced-use-vendor-imports"></a>5.4.4. Vendor·Imports·with·<acronym·class="acronym">SVN</acronym></h4></div></div></div><div·xmlns=""·class="important"><h3·class="admontitle">Important:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">Please·read·this·entire·section·before·starting·a |
665 | » ····vendor·import.</p></div><div·xmlns=""·class="note"><h3·class="admontitle">Note:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">Patches·to·vendor·code·fall·into·two | 665 | » ····vendor·import.</p></div><div·xmlns=""·class="note"><h3·class="admontitle">Note:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">Patches·to·vendor·code·fall·into·two |
666 | » ····categories:</p><div·xmlns="http://www.w3.org/1999/xhtml"·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Vendor·patches:·these·are·patches·that·have·been | 666 | » ····categories:</p><div·xmlns="http://www.w3.org/1999/xhtml"·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Vendor·patches:·these·are·patches·that·have·been |
667 | » » issued·by·the·vendor,·or·that·have·been·extracted·from | 667 | » » issued·by·the·vendor,·or·that·have·been·extracted·from |
Offset 673, 18 lines modified | Offset 673, 18 lines modified |
673 | » » branch,·and·merged·from·there·to·head.··If·the·patch | 673 | » » branch,·and·merged·from·there·to·head.··If·the·patch |
674 | » » addresses·an·issue·in·a·new·release·that·is·currently | 674 | » » addresses·an·issue·in·a·new·release·that·is·currently |
675 | » » being·imported,·it·<span·class="emphasis"><em>must·not</em></span>·be | 675 | » » being·imported,·it·<span·class="emphasis"><em>must·not</em></span>·be |
676 | » » committed·along·with·the·new·release:·the·release·must | 676 | » » committed·along·with·the·new·release:·the·release·must |
677 | » » be·imported·and·tagged·first,·then·the·patch·can·be | 677 | » » be·imported·and·tagged·first,·then·the·patch·can·be |
678 | » » applied·and·committed.··There·is·no·need·to·re-tag·the | 678 | » » applied·and·committed.··There·is·no·need·to·re-tag·the |
679 | » » vendor·sources·after·committing·the·patch.</p></li><li·class="listitem"><p>FreeBSD·patches·should·be·committed·directly·to | 679 | » » vendor·sources·after·committing·the·patch.</p></li><li·class="listitem"><p>FreeBSD·patches·should·be·committed·directly·to |
680 | » » head.</p></li></ul></div></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60636600"></a>5.4.4.1. Preparing·the·Tree</h5></div></div></div><p>If·importing·for·the·first·time·after·the·switch·to | 680 | » » head.</p></li></ul></div></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60704952"></a>5.4.4.1. Preparing·the·Tree</h5></div></div></div><p>If·importing·for·the·first·time·after·the·switch·to |
681 | » ····Subversion,·flattening·and·cleaning·up·the·vendor·tree·is | 681 | » ····Subversion,·flattening·and·cleaning·up·the·vendor·tree·is |
682 | » ····necessary,·as·well·as·bootstrapping·the·merge·history·in | 682 | » ····necessary,·as·well·as·bootstrapping·the·merge·history·in |
683 | » ····the·main·tree.</p><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60638904"></a>5.4.4.1.1. Flattening</h6></div></div></div><p>During·the·conversion·from·<acronym·class="acronym">CVS</acronym>·to | 683 | » ····the·main·tree.</p><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60707384"></a>5.4.4.1.1. Flattening</h6></div></div></div><p>During·the·conversion·from·<acronym·class="acronym">CVS</acronym>·to |
684 | » ······Subversion,·vendor·branches·were·imported·with·the·same | 684 | » ······Subversion,·vendor·branches·were·imported·with·the·same |
685 | » ······layout·as·the·main·tree.··This·means·that·the | 685 | » ······layout·as·the·main·tree.··This·means·that·the |
686 | » ······<code·class="literal">pf</code>·vendor·sources·ended·up·in | 686 | » ······<code·class="literal">pf</code>·vendor·sources·ended·up·in |
687 | » ······<code·class="filename">vendor/pf/dist/contrib/pf</code>.··The | 687 | » ······<code·class="filename">vendor/pf/dist/contrib/pf</code>.··The |
688 | » ······vendor·source·is·best·directly·in | 688 | » ······vendor·source·is·best·directly·in |
689 | » ······<code·class="filename">vendor/pf/dist</code>.</p><p>To·flatten·the·<code·class="literal">pf</code>·tree:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>vendor/pf/dist/contrib/pf</code></em></code></strong> | 689 | » ······<code·class="filename">vendor/pf/dist</code>.</p><p>To·flatten·the·<code·class="literal">pf</code>·tree:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>vendor/pf/dist/contrib/pf</code></em></code></strong> |
690 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·mv·$(svn·list)·../..</code></strong> | 690 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·mv·$(svn·list)·../..</code></strong> |
Offset 696, 31 lines modified | Offset 696, 31 lines modified |
696 | » ······add·<code·class="literal">svn:mergeinfo</code>·to·any·directory | 696 | » ······add·<code·class="literal">svn:mergeinfo</code>·to·any·directory |
697 | » ······that·is·copied·or·moved.··In·this·case,·as·nothing·is | 697 | » ······that·is·copied·or·moved.··In·this·case,·as·nothing·is |
698 | » ······being·merged·from·the·deleted·tree,·they·just·get·in·the | 698 | » ······being·merged·from·the·deleted·tree,·they·just·get·in·the |
699 | » ······way.</p><p>Tags·may·be·flattened·as·well·(3,·4,·3.5·etc.);·the | 699 | » ······way.</p><p>Tags·may·be·flattened·as·well·(3,·4,·3.5·etc.);·the |
700 | » ······procedure·is·exactly·the·same,·only·changing | 700 | » ······procedure·is·exactly·the·same,·only·changing |
701 | » ······<code·class="literal">dist</code>·to·<code·class="literal">3.5</code>·or | 701 | » ······<code·class="literal">dist</code>·to·<code·class="literal">3.5</code>·or |
702 | » ······similar,·and·putting·the·<code·class="command">svn·commit</code> | 702 | » ······similar,·and·putting·the·<code·class="command">svn·commit</code> |
703 | » ······off·until·the·end·of·the·process.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60681656"></a>5.4.4.1.2. Cleaning·Up</h6></div></div></div><p>The·<code·class="literal">dist</code>·tree·can·be·cleaned·up | 703 | » ······off·until·the·end·of·the·process.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60749240"></a>5.4.4.1.2. Cleaning·Up</h6></div></div></div><p>The·<code·class="literal">dist</code>·tree·can·be·cleaned·up |
704 | » ······as·necessary.··Disabling·keyword·expansion·is | 704 | » ······as·necessary.··Disabling·keyword·expansion·is |
705 | » ······recommended,·as·it·makes·no·sense·on·unmodified·vendor | 705 | » ······recommended,·as·it·makes·no·sense·on·unmodified·vendor |
706 | » ······code·and·in·some·cases·it·can·even·be·harmful. | 706 | » ······code·and·in·some·cases·it·can·even·be·harmful. |
707 | » ······<span·class="application">OpenSSH</span>,·for·example, | 707 | » ······<span·class="application">OpenSSH</span>,·for·example, |
708 | » ······includes·two·files·that·originated·with·FreeBSD·and·still | 708 | » ······includes·two·files·that·originated·with·FreeBSD·and·still |
709 | » ······contain·the·original·version·tags.··To·do·this:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·propdel·svn:keywords·-R·.</code></strong> | 709 | » ······contain·the·original·version·tags.··To·do·this:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·propdel·svn:keywords·-R·.</code></strong> |
710 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60689848"></a>5.4.4.1.3. Bootstrapping·Merge·History</h6></div></div></div><p>If·importing·for·the·first·time·after·the·switch·to | 710 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60757688"></a>5.4.4.1.3. Bootstrapping·Merge·History</h6></div></div></div><p>If·importing·for·the·first·time·after·the·switch·to |
711 | » ······Subversion,·bootstrap·<code·class="literal">svn:mergeinfo</code> | 711 | » ······Subversion,·bootstrap·<code·class="literal">svn:mergeinfo</code> |
712 | » ······on·the·target·directory·in·the·main·tree·to·the·revision | 712 | » ······on·the·target·directory·in·the·main·tree·to·the·revision |
713 | » ······that·corresponds·to·the·last·related·change·to·the | 713 | » ······that·corresponds·to·the·last·related·change·to·the |
714 | » ······vendor·tree,·prior·to·importing·new·sources:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>head/contrib/pf</code></em></code></strong> | 714 | » ······vendor·tree,·prior·to·importing·new·sources:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>head/contrib/pf</code></em></code></strong> |
715 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·--record-only·svn+ssh://repo.freebsd.org/base/<em·class="replaceable"><code>vendor/pf/dist@180876</code></em>·.</code></strong> | 715 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·--record-only·svn+ssh://repo.freebsd.org/base/<em·class="replaceable"><code>vendor/pf/dist@180876</code></em>·.</code></strong> |
716 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre></div></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60701368"></a>5.4.4.2. Importing·New·Sources</h5></div></div></div><p>With·two·commits—one·for·the·import·itself·and | 716 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre></div></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60785720"></a>5.4.4.2. Importing·New·Sources</h5></div></div></div><p>With·two·commits—one·for·the·import·itself·and |
717 | » ····one·for·the·tag—this·step·can·optionally·be·repeated | 717 | » ····one·for·the·tag—this·step·can·optionally·be·repeated |
718 | » ····for·every·upstream·release·between·the·last·import·and·the | 718 | » ····for·every·upstream·release·between·the·last·import·and·the |
719 | » ····current·import.</p><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60704056"></a>5.4.4.2.1. Preparing·the·Vendor·Sources</h6></div></div></div><p>Unlike·in·<acronym·class="acronym">CVS</acronym>·where·only·the | 719 | » ····current·import.</p><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60788024"></a>5.4.4.2.1. Preparing·the·Vendor·Sources</h6></div></div></div><p>Unlike·in·<acronym·class="acronym">CVS</acronym>·where·only·the |
720 | » ······needed·parts·were·imported·into·the·vendor·tree·to·avoid | 720 | » ······needed·parts·were·imported·into·the·vendor·tree·to·avoid |
721 | » ······bloating·the·main·tree,·Subversion·is·able·to·store·a | 721 | » ······bloating·the·main·tree,·Subversion·is·able·to·store·a |
722 | » ······full·distribution·in·the·vendor·tree.··So,·import | 722 | » ······full·distribution·in·the·vendor·tree.··So,·import |
723 | » ······everything,·but·merge·only·what·is·required.</p><p>A·<code·class="command">svn·add</code>·is·required·to·add·any | 723 | » ······everything,·but·merge·only·what·is·required.</p><p>A·<code·class="command">svn·add</code>·is·required·to·add·any |
724 | » ······files·that·were·added·since·the·last·vendor·import,·and | 724 | » ······files·that·were·added·since·the·last·vendor·import,·and |
725 | » ······<code·class="command">svn·rm</code>·is·required·to·remove·any·that | 725 | » ······<code·class="command">svn·rm</code>·is·required·to·remove·any·that |
726 | » ······were·removed·since.··Preparing·sorted·lists·of·the | 726 | » ······were·removed·since.··Preparing·sorted·lists·of·the |
Offset 730, 15 lines modified | Offset 730, 15 lines modified |
730 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·list·-R·|·grep·-v·'/$'·|·sort·>../old</code></strong> | 730 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·list·-R·|·grep·-v·'/$'·|·sort·>../old</code></strong> |
731 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>../pf-4.3</code></em></code></strong> | 731 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>../pf-4.3</code></em></code></strong> |
732 | <code·class="prompt">%</code>·<strong·class="userinput"><code>find·.·-type·f·|·cut·-c·3-·|·sort·>../new</code></strong></pre><p>With·these·two·files, | 732 | <code·class="prompt">%</code>·<strong·class="userinput"><code>find·.·-type·f·|·cut·-c·3-·|·sort·>../new</code></strong></pre><p>With·these·two·files, |
733 | » ······<code·class="command">comm·-23·../old·../new</code>·will·list | 733 | » ······<code·class="command">comm·-23·../old·../new</code>·will·list |
734 | » ······removed·files·(files·only·in·<code·class="filename">old</code>), | 734 | » ······removed·files·(files·only·in·<code·class="filename">old</code>), |
735 | » ······while·<code·class="command">comm·-13·../old·../new</code>·will | 735 | » ······while·<code·class="command">comm·-13·../old·../new</code>·will |
736 | » ······list·added·files·only·in | 736 | » ······list·added·files·only·in |
737 | » ······<code·class="filename">new</code>.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60739640"></a>5.4.4.2.2. Importing·into·the·Vendor·Tree</h6></div></div></div><p>Now,·the·sources·must·be·copied·into | 737 | » ······<code·class="filename">new</code>.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60808888"></a>5.4.4.2.2. Importing·into·the·Vendor·Tree</h6></div></div></div><p>Now,·the·sources·must·be·copied·into |
738 | » ······<code·class="filename"><em·class="replaceable"><code>dist</code></em></code>·and | 738 | » ······<code·class="filename"><em·class="replaceable"><code>dist</code></em></code>·and |
739 | » ······the·<code·class="command">svn·add</code>·and | 739 | » ······the·<code·class="command">svn·add</code>·and |
740 | » ······<code·class="command">svn·rm</code>·commands·should·be·used·as | 740 | » ······<code·class="command">svn·rm</code>·commands·should·be·used·as |
741 | » ······needed:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>vendor/pf/pf-4.3</code></em></code></strong> | 741 | » ······needed:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>vendor/pf/pf-4.3</code></em></code></strong> |
742 | <code·class="prompt">%</code>·<strong·class="userinput"><code>tar·cf·-·.·|·tar·xf·-·-C·../dist</code></strong> | 742 | <code·class="prompt">%</code>·<strong·class="userinput"><code>tar·cf·-·.·|·tar·xf·-·-C·../dist</code></strong> |
743 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>../dist</code></em></code></strong> | 743 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>../dist</code></em></code></strong> |
744 | <code·class="prompt">%</code>·<strong·class="userinput"><code>comm·-23·../old·../new·|·xargs·svn·rm</code></strong> | 744 | <code·class="prompt">%</code>·<strong·class="userinput"><code>comm·-23·../old·../new·|·xargs·svn·rm</code></strong> |
Offset 752, 25 lines modified | Offset 752, 25 lines modified |
752 | » ······<code·class="literal">application/octet-stream</code>·unless·there | 752 | » ······<code·class="literal">application/octet-stream</code>·unless·there |
753 | » ······is·a·more·appropriate·media·type.··Executable·files | 753 | » ······is·a·more·appropriate·media·type.··Executable·files |
754 | » ······should·have·<code·class="literal">svn:executable</code>·set·to | 754 | » ······should·have·<code·class="literal">svn:executable</code>·set·to |
755 | » ······<code·class="literal">*</code>.··No·other·properties·should·exist | 755 | » ······<code·class="literal">*</code>.··No·other·properties·should·exist |
756 | » ······on·any·file·in·the·tree.</p><p>Committing·is·now·possible,·however·it·is·good | 756 | » ······on·any·file·in·the·tree.</p><p>Committing·is·now·possible,·however·it·is·good |
757 | » ······practice·to·make·sure·that·everything·is·OK·by·using·the | 757 | » ······practice·to·make·sure·that·everything·is·OK·by·using·the |
758 | » ······<code·class="command">svn·stat</code>·and | 758 | » ······<code·class="command">svn·stat</code>·and |
759 | » ······<code·class="command">svn·diff</code>·commands.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60772920"></a>5.4.4.2.3. Tagging</h6></div></div></div><p>Once·committed,·vendor·releases·should·be·tagged·for | 759 | » ······<code·class="command">svn·diff</code>·commands.</p></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60848824"></a>5.4.4.2.3. Tagging</h6></div></div></div><p>Once·committed,·vendor·releases·should·be·tagged·for |
760 | » ······future·reference.··The·best·and·quickest·way·to·do·this | 760 | » ······future·reference.··The·best·and·quickest·way·to·do·this |
761 | » ······is·directly·in·the·repository:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·cp·svn+ssh://repo.freebsd.org/base/<em·class="replaceable"><code>vendor/pf/dist</code></em>·svn+ssh://repo.freebsd.org/base/<em·class="replaceable"><code>vendor/pf/4.3</code></em></code></strong></pre><p>Once·that·is·complete,·<code·class="command">svn·up</code>·the | 761 | » ······is·directly·in·the·repository:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·cp·svn+ssh://repo.freebsd.org/base/<em·class="replaceable"><code>vendor/pf/dist</code></em>·svn+ssh://repo.freebsd.org/base/<em·class="replaceable"><code>vendor/pf/4.3</code></em></code></strong></pre><p>Once·that·is·complete,·<code·class="command">svn·up</code>·the |
762 | » ······working·copy·of | 762 | » ······working·copy·of |
763 | » ······<code·class="filename"><em·class="replaceable"><code>vendor/pf</code></em></code> | 763 | » ······<code·class="filename"><em·class="replaceable"><code>vendor/pf</code></em></code> |
764 | » ······to·get·the·new·tag,·although·this·is·rarely | 764 | » ······to·get·the·new·tag,·although·this·is·rarely |
765 | » ······needed.</p><p>If·creating·the·tag·in·the·working·copy·of·the·tree, | 765 | » ······needed.</p><p>If·creating·the·tag·in·the·working·copy·of·the·tree, |
766 | » ······<code·class="command">svn:mergeinfo</code>·results·must·be | 766 | » ······<code·class="command">svn:mergeinfo</code>·results·must·be |
767 | » ······removed:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd» <em·class="replaceable"><code>vendor/pf</code></em></code></strong> | 767 | » ······removed:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd» <em·class="replaceable"><code>vendor/pf</code></em></code></strong> |
768 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·cp·dist·4.3</code></strong> | 768 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·cp·dist·4.3</code></strong> |
769 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·propdel·svn:mergeinfo·-R·4.3</code></strong></pre></div></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60803384"></a>5.4.4.3. Merging·to·Head</h5></div></div></div><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>head/contrib/pf</code></em></code></strong> | 769 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·propdel·svn:mergeinfo·-R·4.3</code></strong></pre></div></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp60867384"></a>5.4.4.3. Merging·to·Head</h5></div></div></div><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>head/contrib/pf</code></em></code></strong> |
770 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·up</code></strong> | 770 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·up</code></strong> |
771 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·--accept=postpone·svn+ssh://repo.freebsd.org/base/<em·class="replaceable"><code>vendor/pf/dist</code></em>·.</code></strong></pre><p>The·<code·class="literal">--accept=postpone</code>·tells | 771 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·--accept=postpone·svn+ssh://repo.freebsd.org/base/<em·class="replaceable"><code>vendor/pf/dist</code></em>·.</code></strong></pre><p>The·<code·class="literal">--accept=postpone</code>·tells |
772 | » ····Subversion·that·it·should·not·complain·because·merge | 772 | » ····Subversion·that·it·should·not·complain·because·merge |
773 | » ····conflicts·will·be·taken·care·of·manually.</p><div·xmlns=""·class="tip"><h3·class="admontitle"><a·xmlns="http://www.w3.org/1999/xhtml"·id="svn-advanced-use-vendor-imports-pre-svn"></a>Tip:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">The·<code·class="command">cvs2svn</code>·changeover·occurred | 773 | » ····conflicts·will·be·taken·care·of·manually.</p><div·xmlns=""·class="tip"><h3·class="admontitle"><a·xmlns="http://www.w3.org/1999/xhtml"·id="svn-advanced-use-vendor-imports-pre-svn"></a>Tip:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">The·<code·class="command">cvs2svn</code>·changeover·occurred |
774 | » ······on·June·3,·2008.··When·performing·vendor·merges·for | 774 | » ······on·June·3,·2008.··When·performing·vendor·merges·for |
775 | » ······packages·which·were·already·present·and·converted·by·the | 775 | » ······packages·which·were·already·present·and·converted·by·the |
776 | » ······<code·class="command">cvs2svn</code>·process,·the·command·used·to | 776 | » ······<code·class="command">cvs2svn</code>·process,·the·command·used·to |
Offset 802, 29 lines modified | Offset 802, 29 lines modified |
802 | » ····Subversion,·there·is·no·concept·of·on·or·off·the·vendor | 802 | » ····Subversion,·there·is·no·concept·of·on·or·off·the·vendor |
803 | » ····branch.··If·a·file·that·previously·had·local | 803 | » ····branch.··If·a·file·that·previously·had·local |
804 | » ····modifications,·to·make·it·not·show·up·in·diffs·in·the | 804 | » ····modifications,·to·make·it·not·show·up·in·diffs·in·the |
805 | » ····vendor·tree,·all·that·has·to·be·done·is·remove·any | 805 | » ····vendor·tree,·all·that·has·to·be·done·is·remove·any |
806 | » ····left-over·cruft·like·FreeBSD·version·tags,·which·is·much | 806 | » ····left-over·cruft·like·FreeBSD·version·tags,·which·is·much |
807 | » ····easier.</p><p>If·any·changes·are·required·for·the·world·to·build | 807 | » ····easier.</p><p>If·any·changes·are·required·for·the·world·to·build |
808 | » ····with·the·new·sources,·make·them·now,·and·keep·testing | 808 | » ····with·the·new·sources,·make·them·now,·and·keep·testing |
809 | » ····until·everything·builds·and·runs·perfectly.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63238584"></a>5.4.4.4. Committing·the·Vendor·Import</h5></div></div></div><p>Committing·is·now·possible!··Everything·must·be | 809 | » ····until·everything·builds·and·runs·perfectly.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp62648760"></a>5.4.4.4. Committing·the·Vendor·Import</h5></div></div></div><p>Committing·is·now·possible!··Everything·must·be |
810 | » ····committed·in·one·go.··If·done·properly,·the·tree·will·move | 810 | » ····committed·in·one·go.··If·done·properly,·the·tree·will·move |
811 | » ····from·a·consistent·state·with·old·code,·to·a·consistent | 811 | » ····from·a·consistent·state·with·old·code,·to·a·consistent |
812 | » ····state·with·new·code.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63239736"></a>5.4.4.5. From·Scratch</h5></div></div></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63240376"></a>5.4.4.5.1. Importing·into·the·Vendor·Tree</h6></div></div></div><p>This·section·is·an·example·of·importing·and·tagging | 812 | » ····state·with·new·code.</p></div><div·class="sect4"><div·xmlns=""·class="titlepage"><div><div><h5·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp62649912"></a>5.4.4.5. From·Scratch</h5></div></div></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp62650552"></a>5.4.4.5.1. Importing·into·the·Vendor·Tree</h6></div></div></div><p>This·section·is·an·example·of·importing·and·tagging |
813 | » ······<span·class="application">byacc</span>·into | 813 | » ······<span·class="application">byacc</span>·into |
814 | » ······<code·class="filename">head</code>.</p><p>First,·prepare·the·directory·in | 814 | » ······<code·class="filename">head</code>.</p><p>First,·prepare·the·directory·in |
815 | » ······<code·class="filename">vendor</code>:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·co·--depth·immediates·<em·class="replaceable"><code>$FSVN/vendor</code></em></code></strong> | 815 | » ······<code·class="filename">vendor</code>:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·co·--depth·immediates·<em·class="replaceable"><code>$FSVN/vendor</code></em></code></strong> |
816 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>vendor</code></em></code></strong> | 816 | <code·class="prompt">%</code>·<strong·class="userinput"><code>cd·<em·class="replaceable"><code>vendor</code></em></code></strong> |
817 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·mkdir·<em·class="replaceable"><code>byacc</code></em></code></strong> | 817 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·mkdir·<em·class="replaceable"><code>byacc</code></em></code></strong> |
818 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·mkdir·<em·class="replaceable"><code>byacc/dist</code></em></code></strong></pre><p>Now,·import·the·sources·into·the | 818 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·mkdir·<em·class="replaceable"><code>byacc/dist</code></em></code></strong></pre><p>Now,·import·the·sources·into·the |
819 | » ······<code·class="filename">dist</code>·directory. | 819 | » ······<code·class="filename">dist</code>·directory. |
820 | » ······Once·the·files·are·in·place,·<code·class="command">svn·add</code> | 820 | » ······Once·the·files·are·in·place,·<code·class="command">svn·add</code> |
821 | » ······the·new·ones,·then·<code·class="command">svn·commit</code>·and·tag | 821 | » ······the·new·ones,·then·<code·class="command">svn·commit</code>·and·tag |
822 | » ······the·imported·version.··To·save·time·and·bandwidth, | 822 | » ······the·imported·version.··To·save·time·and·bandwidth, |
823 | » ······direct·remote·committing·and·tagging·is·possible:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·cp·-m·<em·class="replaceable"><code>"Tag·byacc·20120115"</code></em>·<em·class="replaceable"><code>$FSVN/vendor/byacc/dist</code></em>·<em·class="replaceable"><code>$FSVN/vendor/byacc/20120115</code></em></code></strong></pre></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63263160"></a>5.4.4.5.2. Merging·to·<code·class="literal">head</code></h6></div></div></div><p>Due·to·this·being·a·new·file,·copy·it·for·the | 823 | » ······direct·remote·committing·and·tagging·is·possible:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·cp·-m·<em·class="replaceable"><code>"Tag·byacc·20120115"</code></em>·<em·class="replaceable"><code>$FSVN/vendor/byacc/dist</code></em>·<em·class="replaceable"><code>$FSVN/vendor/byacc/20120115</code></em></code></strong></pre></div><div·class="sect5"><div·xmlns=""·class="titlepage"><div><div><h6·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63295928"></a>5.4.4.5.2. Merging·to·<code·class="literal">head</code></h6></div></div></div><p>Due·to·this·being·a·new·file,·copy·it·for·the |
824 | » ······merge:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·cp·-m·<em·class="replaceable"><code>"Import·byacc·to·contrib"</code></em>·<em·class="replaceable"><code>$FSVN/vendor/byacc/dist</code></em>·<em·class="replaceable"><code>$FSVN/head/contrib/byacc</code></em></code></strong></pre><p>Working·normally·on·newly·imported·sources·is·still | 824 | » ······merge:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·cp·-m·<em·class="replaceable"><code>"Import·byacc·to·contrib"</code></em>·<em·class="replaceable"><code>$FSVN/vendor/byacc/dist</code></em>·<em·class="replaceable"><code>$FSVN/head/contrib/byacc</code></em></code></strong></pre><p>Working·normally·on·newly·imported·sources·is·still |
825 | » ······possible.</p></div></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="svn-advanced-use-reverting-a-commit"></a>5.4.5. Reverting·a·Commit</h4></div></div></div><p>Reverting·a·commit·to·a·previous·version·is·fairly | 825 | » ······possible.</p></div></div></div><div·class="sect3"><div·xmlns=""·class="titlepage"><div><div><h4·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="svn-advanced-use-reverting-a-commit"></a>5.4.5. Reverting·a·Commit</h4></div></div></div><p>Reverting·a·commit·to·a·previous·version·is·fairly |
826 | » ··easy:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-r179454:179453·ROADMAP.txt</code></strong> | 826 | » ··easy:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-r179454:179453·ROADMAP.txt</code></strong> |
827 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre><p>Change·number·syntax,·with·negative·meaning·a·reverse | 827 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre><p>Change·number·syntax,·with·negative·meaning·a·reverse |
828 | » ··change,·can·also·be·used:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-c·-179454·ROADMAP.txt</code></strong> | 828 | » ··change,·can·also·be·used:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-c·-179454·ROADMAP.txt</code></strong> |
829 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre><p>This·can·also·be·done·directly·in·the·repository:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-r179454:179453·svn+ssh://repo.freebsd.org/base/ROADMAP.txt</code></strong></pre><div·xmlns=""·class="note"><h3·class="admontitle">Note:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">It·is·important·to·ensure·that·the·mergeinfo | 829 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre><p>This·can·also·be·done·directly·in·the·repository:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·-r179454:179453·svn+ssh://repo.freebsd.org/base/ROADMAP.txt</code></strong></pre><div·xmlns=""·class="note"><h3·class="admontitle">Note:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">It·is·important·to·ensure·that·the·mergeinfo |
830 | » ····is·correct·when·reverting·a·file·in·order·to·permit | 830 | » ····is·correct·when·reverting·a·file·in·order·to·permit |
Offset 896, 15 lines modified | Offset 896, 15 lines modified |
896 | » ··the·proper·location·is | 896 | » ··the·proper·location·is |
897 | » ··<code·class="filename">base/user/<em·class="replaceable"><code>your-name</code></em>/</code>. | 897 | » ··<code·class="filename">base/user/<em·class="replaceable"><code>your-name</code></em>/</code>. |
898 | » ··<a·class="link"·href="http://svnweb.freebsd.org/base/projects/GUIDELINES.txt"·target="_top">This | 898 | » ··<a·class="link"·href="http://svnweb.freebsd.org/base/projects/GUIDELINES.txt"·target="_top">This |
899 | » ····page</a>·contains·further·details.</p><p>To·create·a·project·branch:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·copy·svn+ssh://repo.freebsd.org/base/head·svn+ssh://repo.freebsd.org/base/projects/spif</code></strong></pre><p>To·merge·changes·from·HEAD·back·into·the·project | 899 | » ····page</a>·contains·further·details.</p><p>To·create·a·project·branch:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>svn·copy·svn+ssh://repo.freebsd.org/base/head·svn+ssh://repo.freebsd.org/base/projects/spif</code></strong></pre><p>To·merge·changes·from·HEAD·back·into·the·project |
900 | » ··branch:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·copy_of_spif</code></strong> | 900 | » ··branch:</p><pre·class="screen"><code·class="prompt">%</code>·<strong·class="userinput"><code>cd·copy_of_spif</code></strong> |
901 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·svn+ssh://repo.freebsd.org/base/head</code></strong> | 901 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·merge·svn+ssh://repo.freebsd.org/base/head</code></strong> |
902 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre><p>It·is·important·to·resolve·any·merge·conflicts·before | 902 | <code·class="prompt">%</code>·<strong·class="userinput"><code>svn·commit</code></strong></pre><p>It·is·important·to·resolve·any·merge·conflicts·before |
903 | » ··committing.</p></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63329208"></a>5.5. Some·Tips</h3></div></div></div><p>In·commit·logs·etc.,·<span·class="quote">“<span·class="quote">rev·179872</span>”</span>·should·be | 903 | » ··committing.</p></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63357880"></a>5.5. Some·Tips</h3></div></div></div><p>In·commit·logs·etc.,·<span·class="quote">“<span·class="quote">rev·179872</span>”</span>·should·be |
904 | » spelled·<span·class="quote">“<span·class="quote">r179872</span>”</span>·as·per·convention.</p><p>Speeding·up·svn·is·possible·by·adding·the·following·to | 904 | » spelled·<span·class="quote">“<span·class="quote">r179872</span>”</span>·as·per·convention.</p><p>Speeding·up·svn·is·possible·by·adding·the·following·to |
905 | » <code·class="filename">~/.ssh/config</code>:</p><pre·class="screen">Host·* | 905 | » <code·class="filename">~/.ssh/config</code>:</p><pre·class="screen">Host·* |
906 | ControlPath·~/.ssh/sockets/master-%l-%r@%h:%p | 906 | ControlPath·~/.ssh/sockets/master-%l-%r@%h:%p |
907 | ControlMaster·auto | 907 | ControlMaster·auto |
908 | ControlPersist·yes</pre><p>and·then·typing</p><pre·class="screen"><strong·class="userinput"><code>mkdir·~/.ssh/sockets</code></strong></pre><p>Checking·out·a·working·copy·with·a·stock·Subversion·client | 908 | ControlPersist·yes</pre><p>and·then·typing</p><pre·class="screen"><strong·class="userinput"><code>mkdir·~/.ssh/sockets</code></strong></pre><p>Checking·out·a·working·copy·with·a·stock·Subversion·client |
909 | » without·FreeBSD-specific·patches | 909 | » without·FreeBSD-specific·patches |
910 | » (<code·class="varname">OPTIONS_SET=FREEBSD_TEMPLATE</code>)·will·mean | 910 | » (<code·class="varname">OPTIONS_SET=FREEBSD_TEMPLATE</code>)·will·mean |
Offset 1100, 34 lines modified | Offset 1100, 34 lines modified |
1100 | » ······<acronym·class="acronym">MFC</acronym>·at·a·later·date,·specify·the | 1100 | » ······<acronym·class="acronym">MFC</acronym>·at·a·later·date,·specify·the |
1101 | » ······number·of·days,·weeks,·or·months·after·which·an | 1101 | » ······number·of·days,·weeks,·or·months·after·which·an |
1102 | » ······<acronym·class="acronym">MFC</acronym>·is·planned.</td></tr><tr><td><code·class="literal">Relnotes:</code></td><td>If·the·change·is·a·candidate·for·inclusion·in | 1102 | » ······<acronym·class="acronym">MFC</acronym>·is·planned.</td></tr><tr><td><code·class="literal">Relnotes:</code></td><td>If·the·change·is·a·candidate·for·inclusion·in |
1103 | » ······the·release·notes·for·the·next·release·from·the·branch, | 1103 | » ······the·release·notes·for·the·next·release·from·the·branch, |
1104 | » ······set·to·<code·class="literal">yes</code>.</td></tr><tr><td><code·class="literal">Security:</code></td><td>If·the·change·is·related·to·a·security | 1104 | » ······set·to·<code·class="literal">yes</code>.</td></tr><tr><td><code·class="literal">Security:</code></td><td>If·the·change·is·related·to·a·security |
1105 | » ······vulnerability·or·security·exposure,·include·one·or·more | 1105 | » ······vulnerability·or·security·exposure,·include·one·or·more |
1106 | » ······references·or·a·description·of·the·issue.··If·possible, | 1106 | » ······references·or·a·description·of·the·issue.··If·possible, |
1107 | » ······include·a·VuXML·URL·or·a·CVE·ID.</td></tr></tbody></table></div><div·class="example"><a·id="idp63452344"></a><div·class="example-title">Example 1. Commit·Log·for·a·Commit·Based·on·a·PR</div><div·class="example-contents"><p>You·want·to·commit·a·change·based·on·a·PR·submitted·by | 1107 | » ······include·a·VuXML·URL·or·a·CVE·ID.</td></tr></tbody></table></div><div·class="example"><a·id="idp63509688"></a><div·class="example-title">Example 1. Commit·Log·for·a·Commit·Based·on·a·PR</div><div·class="example-contents"><p>You·want·to·commit·a·change·based·on·a·PR·submitted·by |
1108 | » John·Smith·containing·a·patch.··The·end·of·the·commit·message | 1108 | » John·Smith·containing·a·patch.··The·end·of·the·commit·message |
1109 | » should·look·something·like·this.</p><pre·class="programlisting">... | 1109 | » should·look·something·like·this.</p><pre·class="programlisting">... |
| |
1110 | » ····PR:····················12345 | 1110 | » ····PR:····················12345 |
1111 | » ····Submitted·by:» ···John·Smith·<John.Smith@example.com></pre></div></div><br·class="example-break"·/><div·class="example"><a·id="idp63453880"></a><div·class="example-title">Example 2. Commit·Log·for·a·Commit·Needing·Review</div><div·class="example-contents"><p>You·want·to·change·the·virtual·memory·system.··You·have | 1111 | » ····Submitted·by:» ···John·Smith·<John.Smith@example.com></pre></div></div><br·class="example-break"·/><div·class="example"><a·id="idp63511224"></a><div·class="example-title">Example 2. Commit·Log·for·a·Commit·Needing·Review</div><div·class="example-contents"><p>You·want·to·change·the·virtual·memory·system.··You·have |
1112 | » posted·patches·to·the·appropriate·mailing·list·(in·this | 1112 | » posted·patches·to·the·appropriate·mailing·list·(in·this |
1113 | » case,·<code·class="literal">freebsd-arch</code>)·and·the·changes·have | 1113 | » case,·<code·class="literal">freebsd-arch</code>)·and·the·changes·have |
1114 | » been·approved.</p><pre·class="programlisting">... | 1114 | » been·approved.</p><pre·class="programlisting">... |
| |
1115 | » ····Reviewed·by:·······-arch</pre></div></div><br·class="example-break"·/><div·class="example"><a·id="idp63468216"></a><div·class="example-title">Example 3. Commit·Log·for·a·Commit·Needing·Approval</div><div·class="example-contents"><p>You·want·to·commit·a·port.··You·have·collaborated·with | 1115 | » ····Reviewed·by:·······-arch</pre></div></div><br·class="example-break"·/><div·class="example"><a·id="idp63513272"></a><div·class="example-title">Example 3. Commit·Log·for·a·Commit·Needing·Approval</div><div·class="example-contents"><p>You·want·to·commit·a·port.··You·have·collaborated·with |
1116 | » the·listed·MAINTAINER,·who·has·told·you·to·go·ahead·and | 1116 | » the·listed·MAINTAINER,·who·has·told·you·to·go·ahead·and |
1117 | » commit.</p><pre·class="programlisting">... | 1117 | » commit.</p><pre·class="programlisting">... |
| |
1118 | » ····Approved·by:» ····<em·class="replaceable"><code>abc</code></em>·(maintainer)</pre><p>Where·<em·class="replaceable"><code>abc</code></em>·is·the·account·name | 1118 | » ····Approved·by:» ····<em·class="replaceable"><code>abc</code></em>·(maintainer)</pre><p>Where·<em·class="replaceable"><code>abc</code></em>·is·the·account·name |
1119 | » of·the·person·who·approved.</p></div></div><br·class="example-break"·/><div·class="example"><a·id="idp63471032"></a><div·class="example-title">Example 4. Commit·Log·for·a·Commit·Bringing·in·Code·from | 1119 | » of·the·person·who·approved.</p></div></div><br·class="example-break"·/><div·class="example"><a·id="idp63516088"></a><div·class="example-title">Example 4. Commit·Log·for·a·Commit·Bringing·in·Code·from |
1120 | » OpenBSD</div><div·class="example-contents"><p>You·want·to·commit·some·code·based·on·work·done·in·the | 1120 | » OpenBSD</div><div·class="example-contents"><p>You·want·to·commit·some·code·based·on·work·done·in·the |
1121 | » OpenBSD·project.</p><pre·class="programlisting">... | 1121 | » OpenBSD·project.</p><pre·class="programlisting">... |
| |
1122 | » ····Obtained·from:······OpenBSD</pre></div></div><br·class="example-break"·/><div·class="example"><a·id="idp63472568"></a><div·class="example-title">Example 5. Commit·Log·for·a·Change·to·FreeBSD-CURRENT·with·a·Planned | 1122 | » ····Obtained·from:······OpenBSD</pre></div></div><br·class="example-break"·/><div·class="example"><a·id="idp63517624"></a><div·class="example-title">Example 5. Commit·Log·for·a·Change·to·FreeBSD-CURRENT·with·a·Planned |
1123 | » Commit·to·FreeBSD-STABLE·to·Follow·at·a·Later·Date.</div><div·class="example-contents"><p>You·want·to·commit·some·code·which·will·be·merged·from | 1123 | » Commit·to·FreeBSD-STABLE·to·Follow·at·a·Later·Date.</div><div·class="example-contents"><p>You·want·to·commit·some·code·which·will·be·merged·from |
1124 | » FreeBSD-CURRENT·into·the·FreeBSD-STABLE·branch·after·two | 1124 | » FreeBSD-CURRENT·into·the·FreeBSD-STABLE·branch·after·two |
1125 | » weeks.</p><pre·class="programlisting">... | 1125 | » weeks.</p><pre·class="programlisting">... |
| |
1126 | MFC·after:······<em·class="replaceable"><code>2·weeks</code></em></pre><p>Where·<em·class="replaceable"><code>2</code></em>·is·the·number·of·days, | 1126 | MFC·after:······<em·class="replaceable"><code>2·weeks</code></em></pre><p>Where·<em·class="replaceable"><code>2</code></em>·is·the·number·of·days, |
1127 | » weeks,·or·months·after·which·an·<acronym·class="acronym">MFC</acronym>·is | 1127 | » weeks,·or·months·after·which·an·<acronym·class="acronym">MFC</acronym>·is |
1128 | » planned.··The·<em·class="replaceable"><code>weeks</code></em>·option·may·be | 1128 | » planned.··The·<em·class="replaceable"><code>weeks</code></em>·option·may·be |
Offset 1136, 15 lines modified | Offset 1136, 15 lines modified |
1136 | » <code·class="literal">month</code>,·<code·class="literal">months</code>.</p></div></div><br·class="example-break"·/><p>In·many·cases·you·may·need·to·combine·some·of·these.</p><p>Consider·the·situation·where·a·user·has·submitted·a·PR | 1136 | » <code·class="literal">month</code>,·<code·class="literal">months</code>.</p></div></div><br·class="example-break"·/><p>In·many·cases·you·may·need·to·combine·some·of·these.</p><p>Consider·the·situation·where·a·user·has·submitted·a·PR |
1137 | ······containing·code·from·the·NetBSD·project.··You·are·looking·at·the | 1137 | ······containing·code·from·the·NetBSD·project.··You·are·looking·at·the |
1138 | ······PR,·but·it·is·not·an·area·of·the·tree·you·normally·work·in,·so | 1138 | ······PR,·but·it·is·not·an·area·of·the·tree·you·normally·work·in,·so |
1139 | ······you·have·decided·to·get·the·change·reviewed·by·the | 1139 | ······you·have·decided·to·get·the·change·reviewed·by·the |
1140 | ······<code·class="literal">arch</code>·mailing·list.··Since·the·change·is | 1140 | ······<code·class="literal">arch</code>·mailing·list.··Since·the·change·is |
1141 | ······complex,·you·opt·to·<acronym·class="acronym">MFC</acronym>·after·one·month·to | 1141 | ······complex,·you·opt·to·<acronym·class="acronym">MFC</acronym>·after·one·month·to |
1142 | ······allow·adequate·testing.</p><p>The·extra·information·to·include·in·the·commit·would·look | 1142 | ······allow·adequate·testing.</p><p>The·extra·information·to·include·in·the·commit·would·look |
1143 | ······something·like</p><div·class="example"><a·id="idp63132088"></a><div·class="example-title">Example 6. Example·Combined·Commit·Log</div><div·class="example-contents"><pre·class="programlisting">PR:·················54321 | 1143 | ······something·like</p><div·class="example"><a·id="idp63529400"></a><div·class="example-title">Example 6. Example·Combined·Commit·Log</div><div·class="example-contents"><pre·class="programlisting">PR:·················54321 |
1144 | Submitted·by:·······John·Smith·<John.Smith@example.com> | 1144 | Submitted·by:·······John·Smith·<John.Smith@example.com> |
1145 | Reviewed·by:········-arch | 1145 | Reviewed·by:········-arch |
1146 | Obtained·from:······NetBSD | 1146 | Obtained·from:······NetBSD |
1147 | MFC·after:··········1·month | 1147 | MFC·after:··········1·month |
1148 | Relnotes:···········yes</pre></div></div><br·class="example-break"·/></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="pref-license"></a>8. Preferred·License·for·New·Files</h2></div></div></div><p>Currently·the·FreeBSD·Project·suggests·and·uses·the·following | 1148 | Relnotes:···········yes</pre></div></div><br·class="example-break"·/></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="pref-license"></a>8. Preferred·License·for·New·Files</h2></div></div></div><p>Currently·the·FreeBSD·Project·suggests·and·uses·the·following |
1149 | ······text·as·the·preferred·license·scheme:</p><pre·class="programlisting">/*- | 1149 | ······text·as·the·preferred·license·scheme:</p><pre·class="programlisting">/*- |
1150 | ·*·Copyright·(c)·[year]·[your·name] | 1150 | ·*·Copyright·(c)·[year]·[your·name] |
Offset 1285, 15 lines modified | Offset 1285, 15 lines modified |
1285 | ······non-<code·class="systemitem">FreeBSD.org</code> | 1285 | ······non-<code·class="systemitem">FreeBSD.org</code> |
1286 | ······Bugzilla·accounts·can·have·the·old·account·merged·with·the | 1286 | ······Bugzilla·accounts·can·have·the·old·account·merged·with·the |
1287 | ······<code·class="systemitem">FreeBSD.org</code>·account·by | 1287 | ······<code·class="systemitem">FreeBSD.org</code>·account·by |
1288 | ······entering·a·new·bug.··Choose | 1288 | ······entering·a·new·bug.··Choose |
1289 | ······<code·class="literal">Supporting·Services</code>·as·the·Product,·and | 1289 | ······<code·class="literal">Supporting·Services</code>·as·the·Product,·and |
1290 | ······<code·class="literal">Bug·Tracker</code>·as·the·Component.</p><p>You·can·find·out·more·about | 1290 | ······<code·class="literal">Bug·Tracker</code>·as·the·Component.</p><p>You·can·find·out·more·about |
1291 | ······<span·class="application">Bugzilla</span>·at:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p><a·class="link"·href="../../../../doc/en_US.ISO8859-1/articles/pr-guidelines/index.html"·target="_top">FreeBSD | 1291 | ······<span·class="application">Bugzilla</span>·at:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p><a·class="link"·href="../../../../doc/en_US.ISO8859-1/articles/pr-guidelines/index.html"·target="_top">FreeBSD |
1292 | » ····Problem·Report·Handling·Guidelines</a></p></li><li·class="listitem"><p><a·class="link"·href="../../../../support.html"·target="_top">http://www.FreeBSD.org/support.html</a></p></li></ul></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="idp63523000"></a>13. Phabricator</h2></div></div></div><p>The·FreeBSD·Project·utilizes·<a·class="link"·href="https://reviews.freebsd.org"·target="_top">Phabricator</a> | 1292 | » ····Problem·Report·Handling·Guidelines</a></p></li><li·class="listitem"><p><a·class="link"·href="../../../../support.html"·target="_top">http://www.FreeBSD.org/support.html</a></p></li></ul></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="idp63596728"></a>13. Phabricator</h2></div></div></div><p>The·FreeBSD·Project·utilizes·<a·class="link"·href="https://reviews.freebsd.org"·target="_top">Phabricator</a> |
1293 | ······for·code·review·requests.··See·the·<a·class="link"·href="https://wiki.freebsd.org/CodeReview"·target="_top">CodeReview</a> | 1293 | ······for·code·review·requests.··See·the·<a·class="link"·href="https://wiki.freebsd.org/CodeReview"·target="_top">CodeReview</a> |
1294 | ······wiki·page·for·details.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="people"></a>14. Who's·Who</h2></div></div></div><p>Besides·the·repository·meisters,·there·are·other·FreeBSD | 1294 | ······wiki·page·for·details.</p></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="people"></a>14. Who's·Who</h2></div></div></div><p>Besides·the·repository·meisters,·there·are·other·FreeBSD |
1295 | ······project·members·and·teams·whom·you·will·probably·get·to·know·in | 1295 | ······project·members·and·teams·whom·you·will·probably·get·to·know·in |
1296 | ······your·role·as·a·committer.··Briefly,·and·by·no·means | 1296 | ······your·role·as·a·committer.··Briefly,·and·by·no·means |
1297 | ······all-inclusively,·these·are:</p><div·class="variablelist"><dl·class="variablelist"><dt><span·class="term">Documentation·Engineering·Team·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:doceng@FreeBSD.org">doceng@FreeBSD.org</a>></code></span></dt><dd><p>doceng·is·the·group·responsible·for·the·documentation | 1297 | ······all-inclusively,·these·are:</p><div·class="variablelist"><dl·class="variablelist"><dt><span·class="term">Documentation·Engineering·Team·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:doceng@FreeBSD.org">doceng@FreeBSD.org</a>></code></span></dt><dd><p>doceng·is·the·group·responsible·for·the·documentation |
1298 | » ····build·infrastructure,·approving·new·documentation | 1298 | » ····build·infrastructure,·approving·new·documentation |
1299 | » ····committers,·and·ensuring·that·the·FreeBSD·website·and | 1299 | » ····committers,·and·ensuring·that·the·FreeBSD·website·and |
Offset 1462, 15 lines modified | Offset 1462, 15 lines modified |
1462 | ······one.</p><p>In·all·other·aspects·of·project·operation,·core·is·a·subset | 1462 | ······one.</p><p>In·all·other·aspects·of·project·operation,·core·is·a·subset |
1463 | ······of·committers·and·is·bound·by·the | 1463 | ······of·committers·and·is·bound·by·the |
1464 | ······<span·class="emphasis"><em>same·rules</em></span>.··Just·because·someone·is·in | 1464 | ······<span·class="emphasis"><em>same·rules</em></span>.··Just·because·someone·is·in |
1465 | ······core·this·does·not·mean·that·they·have·special·dispensation·to | 1465 | ······core·this·does·not·mean·that·they·have·special·dispensation·to |
1466 | ······step·outside·any·of·the·lines·painted·here;·core's | 1466 | ······step·outside·any·of·the·lines·painted·here;·core's |
1467 | ······<span·class="quote">“<span·class="quote">special·powers</span>”</span>·only·kick·in·when·it·acts·as·a | 1467 | ······<span·class="quote">“<span·class="quote">special·powers</span>”</span>·only·kick·in·when·it·acts·as·a |
1468 | ······group,·not·on·an·individual·basis.··As·individuals,·the·core | 1468 | ······group,·not·on·an·individual·basis.··As·individuals,·the·core |
1469 | ······team·members·are·all·committers·first·and·core·second.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63617848"></a>17.1. Details</h3></div></div></div><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p><a·id="respect"></a>Respect·other·committers.</p><p>This·means·that·you·need·to·treat·other·committers·as | 1469 | ······team·members·are·all·committers·first·and·core·second.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63699768"></a>17.1. Details</h3></div></div></div><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p><a·id="respect"></a>Respect·other·committers.</p><p>This·means·that·you·need·to·treat·other·committers·as |
1470 | » ····the·peer-group·developers·that·they·are.··Despite·our | 1470 | » ····the·peer-group·developers·that·they·are.··Despite·our |
1471 | » ····occasional·attempts·to·prove·the·contrary,·one·does·not | 1471 | » ····occasional·attempts·to·prove·the·contrary,·one·does·not |
1472 | » ····get·to·be·a·committer·by·being·stupid·and·nothing·rankles | 1472 | » ····get·to·be·a·committer·by·being·stupid·and·nothing·rankles |
1473 | » ····more·than·being·treated·that·way·by·one·of·your·peers. | 1473 | » ····more·than·being·treated·that·way·by·one·of·your·peers. |
1474 | » ····Whether·we·always·feel·respect·for·one·another·or·not·(and | 1474 | » ····Whether·we·always·feel·respect·for·one·another·or·not·(and |
1475 | » ····everyone·has·off·days),·we·still·have·to | 1475 | » ····everyone·has·off·days),·we·still·have·to |
1476 | » ····<span·class="emphasis"><em>treat</em></span>·other·committers·with·respect | 1476 | » ····<span·class="emphasis"><em>treat</em></span>·other·committers·with·respect |
Offset 1668, 15 lines modified | Offset 1668, 15 lines modified |
1668 | » ····commit·there!</p><p>Please·note·that·this·does·not·mean·you·should·not·try | 1668 | » ····commit·there!</p><p>Please·note·that·this·does·not·mean·you·should·not·try |
1669 | » ····to·improve·the·software·in·question;·you·are·still·more | 1669 | » ····to·improve·the·software·in·question;·you·are·still·more |
1670 | » ····than·welcome·to·do·so.··Ideally,·you·should·submit·your | 1670 | » ····than·welcome·to·do·so.··Ideally,·you·should·submit·your |
1671 | » ····patches·to·the·vendor.··If·your·changes·are | 1671 | » ····patches·to·the·vendor.··If·your·changes·are |
1672 | » ····FreeBSD-specific,·talk·to·the·maintainer;·they·may·be | 1672 | » ····FreeBSD-specific,·talk·to·the·maintainer;·they·may·be |
1673 | » ····willing·to·apply·them·locally.··But·whatever·you·do,·do | 1673 | » ····willing·to·apply·them·locally.··But·whatever·you·do,·do |
1674 | » ····<span·class="emphasis"><em>not</em></span>·commit·there·by·yourself!</p><p>Contact·the·Core·Team·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:core@FreeBSD.org">core@FreeBSD.org</a>></code>·if·you·wish·to·take·up | 1674 | » ····<span·class="emphasis"><em>not</em></span>·commit·there·by·yourself!</p><p>Contact·the·Core·Team·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:core@FreeBSD.org">core@FreeBSD.org</a>></code>·if·you·wish·to·take·up |
1675 | » ····maintainership·of·an·unmaintained·part·of·the·tree.</p></li></ol></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63655096"></a>17.2. Policy·on·Multiple·Architectures</h3></div></div></div><p>FreeBSD·has·added·several·new·architecture·ports·during | 1675 | » ····maintainership·of·an·unmaintained·part·of·the·tree.</p></li></ol></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63737016"></a>17.2. Policy·on·Multiple·Architectures</h3></div></div></div><p>FreeBSD·has·added·several·new·architecture·ports·during |
1676 | » recent·release·cycles·and·is·truly·no·longer·an·<span·class="trademark">i386</span>™·centric | 1676 | » recent·release·cycles·and·is·truly·no·longer·an·<span·class="trademark">i386</span>™·centric |
1677 | » operating·system.··In·an·effort·to·make·it·easier·to·keep | 1677 | » operating·system.··In·an·effort·to·make·it·easier·to·keep |
1678 | » FreeBSD·portable·across·the·platforms·we·support,·core·has | 1678 | » FreeBSD·portable·across·the·platforms·we·support,·core·has |
1679 | » developed·the·following·mandate:</p><div·class="blockquote"><blockquote·class="blockquote"><p>Our·32-bit·reference·platform·is·i386,·and·our | 1679 | » developed·the·following·mandate:</p><div·class="blockquote"><blockquote·class="blockquote"><p>Our·32-bit·reference·platform·is·i386,·and·our |
1680 | » ··64-bit·reference·platform·is·sparc64.··Major·design | 1680 | » ··64-bit·reference·platform·is·sparc64.··Major·design |
1681 | » ··work·(including·major·API·and·ABI·changes)·must·prove | 1681 | » ··work·(including·major·API·and·ABI·changes)·must·prove |
1682 | » ··itself·on·at·least·one·32-bit·and·at·least·one·64-bit | 1682 | » ··itself·on·at·least·one·32-bit·and·at·least·one·64-bit |
Offset 1692, 15 lines modified | Offset 1692, 15 lines modified |
1692 | » availability·of·the·64-bit·platforms·change.</p><p>Developers·should·also·be·aware·of·our·Tier·Policy·for | 1692 | » availability·of·the·64-bit·platforms·change.</p><p>Developers·should·also·be·aware·of·our·Tier·Policy·for |
1693 | » the·long·term·support·of·hardware·architectures.··The·rules | 1693 | » the·long·term·support·of·hardware·architectures.··The·rules |
1694 | » here·are·intended·to·provide·guidance·during·the·development | 1694 | » here·are·intended·to·provide·guidance·during·the·development |
1695 | » process,·and·are·distinct·from·the·requirements·for·features | 1695 | » process,·and·are·distinct·from·the·requirements·for·features |
1696 | » and·architectures·listed·in·that·section.··The·Tier·rules·for | 1696 | » and·architectures·listed·in·that·section.··The·Tier·rules·for |
1697 | » feature·support·on·architectures·at·release-time·are·more | 1697 | » feature·support·on·architectures·at·release-time·are·more |
1698 | » strict·than·the·rules·for·changes·during·the·development | 1698 | » strict·than·the·rules·for·changes·during·the·development |
1699 | » process.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63671352"></a>17.3. Other·Suggestions</h3></div></div></div><p>When·committing·documentation·changes,·use·a·spell·checker | 1699 | » process.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63740984"></a>17.3. Other·Suggestions</h3></div></div></div><p>When·committing·documentation·changes,·use·a·spell·checker |
1700 | » before·committing.··For·all·XML·docs,·verify·that·the | 1700 | » before·committing.··For·all·XML·docs,·verify·that·the |
1701 | » formatting·directives·are·correct·by·running | 1701 | » formatting·directives·are·correct·by·running |
1702 | » <code·class="command">make·lint</code>·and | 1702 | » <code·class="command">make·lint</code>·and |
1703 | » <a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/textproc/igor/pkg-descr">textproc/igor</a>.</p><p>For·manual·pages,·run·<a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/sysutils/manck/pkg-descr">sysutils/manck</a> | 1703 | » <a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/textproc/igor/pkg-descr">textproc/igor</a>.</p><p>For·manual·pages,·run·<a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/sysutils/manck/pkg-descr">sysutils/manck</a> |
1704 | » and·<a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/textproc/igor/pkg-descr">textproc/igor</a> | 1704 | » and·<a·xmlns=""·class="package"·href="http://www.freebsd.org/cgi/url.cgi?ports/textproc/igor/pkg-descr">textproc/igor</a> |
1705 | » over·the·manual·page·to·verify·all·of·the·cross | 1705 | » over·the·manual·page·to·verify·all·of·the·cross |
1706 | » references·and·file·references·are·correct·and·that·the·man | 1706 | » references·and·file·references·are·correct·and·that·the·man |
Offset 1710, 24 lines modified | Offset 1710, 24 lines modified |
1710 | » the·code.··Mixing·the·changes·obfuscates·the·functionality | 1710 | » the·code.··Mixing·the·changes·obfuscates·the·functionality |
1711 | » change·when·asking·for·differences·between·revisions,·which | 1711 | » change·when·asking·for·differences·between·revisions,·which |
1712 | » can·hide·any·new·bugs.··Do·not·include·whitespace·changes·with | 1712 | » can·hide·any·new·bugs.··Do·not·include·whitespace·changes·with |
1713 | » content·changes·in·commits·to·<code·class="filename">doc/</code>·. | 1713 | » content·changes·in·commits·to·<code·class="filename">doc/</code>·. |
1714 | » The·extra·clutter·in·the·diffs | 1714 | » The·extra·clutter·in·the·diffs |
1715 | » makes·the·translators'·job·much·more·difficult.··Instead,·make | 1715 | » makes·the·translators'·job·much·more·difficult.··Instead,·make |
1716 | » any·style·or·whitespace·changes·in·separate·commits·that·are | 1716 | » any·style·or·whitespace·changes·in·separate·commits·that·are |
1717 | » clearly·labeled·as·such·in·the·commit·message.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63679672"></a>17.4. Deprecating·Features</h3></div></div></div><p>When·it·is·necessary·to·remove·functionality·from·software | 1717 | » clearly·labeled·as·such·in·the·commit·message.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63749304"></a>17.4. Deprecating·Features</h3></div></div></div><p>When·it·is·necessary·to·remove·functionality·from·software |
1718 | » in·the·base·system·the·following·guidelines·should·be·followed | 1718 | » in·the·base·system·the·following·guidelines·should·be·followed |
1719 | » whenever·possible:</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Mention·is·made·in·the·manual·page·and·possibly·the | 1719 | » whenever·possible:</p><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Mention·is·made·in·the·manual·page·and·possibly·the |
1720 | » ····release·notes·that·the·option,·utility,·or·interface·is | 1720 | » ····release·notes·that·the·option,·utility,·or·interface·is |
1721 | » ····deprecated.··Use·of·the·deprecated·feature·generates·a | 1721 | » ····deprecated.··Use·of·the·deprecated·feature·generates·a |
1722 | » ····warning.</p></li><li·class="listitem"><p>The·option,·utility,·or·interface·is·preserved·until | 1722 | » ····warning.</p></li><li·class="listitem"><p>The·option,·utility,·or·interface·is·preserved·until |
1723 | » ····the·next·major·(point·zero)·release.</p></li><li·class="listitem"><p>The·option,·utility,·or·interface·is·removed·and·no | 1723 | » ····the·next·major·(point·zero)·release.</p></li><li·class="listitem"><p>The·option,·utility,·or·interface·is·removed·and·no |
1724 | » ····longer·documented.··It·is·now·obsolete.··It·is·also | 1724 | » ····longer·documented.··It·is·now·obsolete.··It·is·also |
1725 | » ····generally·a·good·idea·to·note·its·removal·in·the·release | 1725 | » ····generally·a·good·idea·to·note·its·removal·in·the·release |
1726 | » ····notes.</p></li></ol></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63695800"></a>17.5. Privacy·and·Confidentiality</h3></div></div></div><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Most·FreeBSD·business·is·done·in·public.</p><p>FreeBSD·is·an·<span·class="emphasis"><em>open</em></span>·project.··Which | 1726 | » ····notes.</p></li></ol></div></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63753144"></a>17.5. Privacy·and·Confidentiality</h3></div></div></div><div·class="orderedlist"><ol·class="orderedlist"·type="1"><li·class="listitem"><p>Most·FreeBSD·business·is·done·in·public.</p><p>FreeBSD·is·an·<span·class="emphasis"><em>open</em></span>·project.··Which |
1727 | » ····means·that·not·only·can·anyone·use·the·source·code,·but | 1727 | » ····means·that·not·only·can·anyone·use·the·source·code,·but |
1728 | » ····that·most·of·the·development·process·is·open·to·public | 1728 | » ····that·most·of·the·development·process·is·open·to·public |
1729 | » ····scrutiny.</p></li><li·class="listitem"><p>Certain·sensitive·matters·must·remain·private·or | 1729 | » ····scrutiny.</p></li><li·class="listitem"><p>Certain·sensitive·matters·must·remain·private·or |
1730 | » ····held·under·embargo.</p><p>There·unfortunately·cannot·be·complete·transparency. | 1730 | » ····held·under·embargo.</p><p>There·unfortunately·cannot·be·complete·transparency. |
1731 | » ····As·a·FreeBSD·developer·you·will·have·a·certain·degree·of | 1731 | » ····As·a·FreeBSD·developer·you·will·have·a·certain·degree·of |
1732 | » ····privileged·access·to·information.··Consequently·you·are | 1732 | » ····privileged·access·to·information.··Consequently·you·are |
1733 | » ····expected·to·respect·certain·requirements·for | 1733 | » ····expected·to·respect·certain·requirements·for |
Offset 1781, 15 lines modified | Offset 1781, 15 lines modified |
1781 | ······to·current·hardware·trends.··Each·new·hardware·architecture | 1781 | ······to·current·hardware·trends.··Each·new·hardware·architecture |
1782 | ······supported·by·FreeBSD·adds·substantially·to·the·cost·of·code | 1782 | ······supported·by·FreeBSD·adds·substantially·to·the·cost·of·code |
1783 | ······maintenance,·toolchain·support,·and·release·engineering.··It | 1783 | ······maintenance,·toolchain·support,·and·release·engineering.··It |
1784 | ······also·dramatically·increases·the·cost·of·effective·testing·of | 1784 | ······also·dramatically·increases·the·cost·of·effective·testing·of |
1785 | ······kernel·changes.··As·such,·there·is·strong·motivation·to | 1785 | ······kernel·changes.··As·such,·there·is·strong·motivation·to |
1786 | ······differentiate·between·classes·of·support·for·various | 1786 | ······differentiate·between·classes·of·support·for·various |
1787 | ······architectures·while·remaining·strong·in·a·few·key·architectures | 1787 | ······architectures·while·remaining·strong·in·a·few·key·architectures |
1788 | ······that·are·seen·as·the·FreeBSD·<span·class="quote">“<span·class="quote">target·audience</span>”</span>.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63728696"></a>18.1. Statement·of·General·Intent</h3></div></div></div><p>The·FreeBSD·Project·targets·"production·quality·commercial | 1788 | ······that·are·seen·as·the·FreeBSD·<span·class="quote">“<span·class="quote">target·audience</span>”</span>.</p><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63777848"></a>18.1. Statement·of·General·Intent</h3></div></div></div><p>The·FreeBSD·Project·targets·"production·quality·commercial |
1789 | » off-the-shelf·(COTS)·workstation,·server,·and·high-end | 1789 | » off-the-shelf·(COTS)·workstation,·server,·and·high-end |
1790 | » embedded·systems".··By·retaining·a·focus·on·a·narrow·set·of | 1790 | » embedded·systems".··By·retaining·a·focus·on·a·narrow·set·of |
1791 | » architectures·of·interest·in·these·environments,·the·FreeBSD | 1791 | » architectures·of·interest·in·these·environments,·the·FreeBSD |
1792 | » Project·is·able·to·maintain·high·levels·of·quality,·stability, | 1792 | » Project·is·able·to·maintain·high·levels·of·quality,·stability, |
1793 | » and·performance,·as·well·as·minimize·the·load·on·various | 1793 | » and·performance,·as·well·as·minimize·the·load·on·various |
1794 | » support·teams·on·the·project,·such·as·the·ports·team, | 1794 | » support·teams·on·the·project,·such·as·the·ports·team, |
1795 | » documentation·team,·security·officer,·and·release·engineering | 1795 | » documentation·team,·security·officer,·and·release·engineering |
Offset 1800, 15 lines modified | Offset 1800, 15 lines modified |
1800 | » be·carefully·considered·in·terms·of·the·real-world·maintenance | 1800 | » be·carefully·considered·in·terms·of·the·real-world·maintenance |
1801 | » cost·associated·with·additional·platform·support.</p><p>The·FreeBSD·Project·differentiates·platform·targets·into | 1801 | » cost·associated·with·additional·platform·support.</p><p>The·FreeBSD·Project·differentiates·platform·targets·into |
1802 | » four·tiers.··Each·tier·includes·a·specification·of·the | 1802 | » four·tiers.··Each·tier·includes·a·specification·of·the |
1803 | » requirements·for·an·architecture·to·be·in·that·tier, | 1803 | » requirements·for·an·architecture·to·be·in·that·tier, |
1804 | » as·well·as·specifying·the·obligations·of·developers·with | 1804 | » as·well·as·specifying·the·obligations·of·developers·with |
1805 | » regards·to·the·platform.··In·addition,·a·policy·is·defined | 1805 | » regards·to·the·platform.··In·addition,·a·policy·is·defined |
1806 | » regarding·the·circumstances·required·to·change·the·tier | 1806 | » regarding·the·circumstances·required·to·change·the·tier |
1807 | » of·an·architecture.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63730232"></a>18.2. Tier·1:·Fully·Supported·Architectures</h3></div></div></div><p>Tier·1·platforms·are·fully·supported·by·the·security | 1807 | » of·an·architecture.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63779384"></a>18.2. Tier·1:·Fully·Supported·Architectures</h3></div></div></div><p>Tier·1·platforms·are·fully·supported·by·the·security |
1808 | » officer,·release·engineering,·and·toolchain·maintenance·staff. | 1808 | » officer,·release·engineering,·and·toolchain·maintenance·staff. |
1809 | » New·features·added·to·the·operating·system·must·be·fully | 1809 | » New·features·added·to·the·operating·system·must·be·fully |
1810 | » functional·across·all·Tier·1·architectures·for·every·release | 1810 | » functional·across·all·Tier·1·architectures·for·every·release |
1811 | » (features·which·are·inherently·architecture-specific,·such·as | 1811 | » (features·which·are·inherently·architecture-specific,·such·as |
1812 | » support·for·hardware·device·drivers,·may·be·exempt·from·this | 1812 | » support·for·hardware·device·drivers,·may·be·exempt·from·this |
1813 | » requirement).··In·general,·all·Tier·1·platforms·must·have | 1813 | » requirement).··In·general,·all·Tier·1·platforms·must·have |
1814 | » build·and·Tinderbox·support·either·in·the·FreeBSD.org·cluster, | 1814 | » build·and·Tinderbox·support·either·in·the·FreeBSD.org·cluster, |
Offset 1830, 15 lines modified | Offset 1830, 15 lines modified |
1830 | » platform.</p><p>Tier·1·embedded·architectures·must·be·able·to·cross-build | 1830 | » platform.</p><p>Tier·1·embedded·architectures·must·be·able·to·cross-build |
1831 | » packages·on·at·least·one·other·Tier·1·architecture.··The | 1831 | » packages·on·at·least·one·other·Tier·1·architecture.··The |
1832 | » packages·must·be·the·most·relevant·for·the·platform,·but·may | 1832 | » packages·must·be·the·most·relevant·for·the·platform,·but·may |
1833 | » be·a·non-empty·subset·of·those·that·build·natively.</p><p>Tier·1·architectures·must·be·fully·documented.··All·basic | 1833 | » be·a·non-empty·subset·of·those·that·build·natively.</p><p>Tier·1·architectures·must·be·fully·documented.··All·basic |
1834 | » operations·need·to·be·covered·by·the·handbook·or·other | 1834 | » operations·need·to·be·covered·by·the·handbook·or·other |
1835 | » documents.··All·relevant·integration·documentation·must·also | 1835 | » documents.··All·relevant·integration·documentation·must·also |
1836 | » be·integrated·into·the·tree,·or·readily·available.</p><p>Current·Tier·1·platforms·are·i386·and | 1836 | » be·integrated·into·the·tree,·or·readily·available.</p><p>Current·Tier·1·platforms·are·i386·and |
1837 | » amd64.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63737784"></a>18.3. Tier·2:·Developmental·Architectures</h3></div></div></div><p>Tier·2·platforms·are·not·supported·by·the·security·officer | 1837 | » amd64.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63782840"></a>18.3. Tier·2:·Developmental·Architectures</h3></div></div></div><p>Tier·2·platforms·are·not·supported·by·the·security·officer |
1838 | » and·release·engineering·teams.··Platform·maintainers·are | 1838 | » and·release·engineering·teams.··Platform·maintainers·are |
1839 | » responsible·for·toolchain·support·in·the·tree.··The·toolchain | 1839 | » responsible·for·toolchain·support·in·the·tree.··The·toolchain |
1840 | » maintainers·are·expected·to·work·with·the·platform·maintainers | 1840 | » maintainers·are·expected·to·work·with·the·platform·maintainers |
1841 | » to·refine·these·changes.··Major·new·toolchain·components·are | 1841 | » to·refine·these·changes.··Major·new·toolchain·components·are |
1842 | » allowed·to·break·support·for·Tier·2·architectures·if·the | 1842 | » allowed·to·break·support·for·Tier·2·architectures·if·the |
1843 | » FreeBSD-local·changes·have·not·been·incorporated·upstream. | 1843 | » FreeBSD-local·changes·have·not·been·incorporated·upstream. |
1844 | » The·toolchain·maintainers·are·expected·to·provide·prompt | 1844 | » The·toolchain·maintainers·are·expected·to·provide·prompt |
Offset 1871, 15 lines modified | Offset 1871, 15 lines modified |
1871 | » must·be·available.</p><p>Tier·2·architectures·can·be·integrated·into·the·FreeBSD | 1871 | » must·be·available.</p><p>Tier·2·architectures·can·be·integrated·into·the·FreeBSD |
1872 | » handbook.··The·basics·for·how·to·get·a·system·running·must·be | 1872 | » handbook.··The·basics·for·how·to·get·a·system·running·must·be |
1873 | » documented,·although·not·necessarily·for·every·single·board·or | 1873 | » documented,·although·not·necessarily·for·every·single·board·or |
1874 | » system·a·Tier·2·architecture·supports.··The·supported·hardware | 1874 | » system·a·Tier·2·architecture·supports.··The·supported·hardware |
1875 | » list·must·exist·and·should·be·relatively·recent.··It·should·be | 1875 | » list·must·exist·and·should·be·relatively·recent.··It·should·be |
1876 | » integrated·into·the·FreeBSD·documentation.</p><p>Current·Tier·2·platforms·are·arm,·arm64, | 1876 | » integrated·into·the·FreeBSD·documentation.</p><p>Current·Tier·2·platforms·are·arm,·arm64, |
1877 | » ia64·(through·FreeBSD·10), | 1877 | » ia64·(through·FreeBSD·10), |
1878 | » pc98,·powerpc,·and·sparc64.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63740472"></a>18.4. Tier·3:·Experimental·Architectures</h3></div></div></div><p>Tier·3·platforms·are·not·supported·by·the·security·officer | 1878 | » pc98,·powerpc,·and·sparc64.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63785528"></a>18.4. Tier·3:·Experimental·Architectures</h3></div></div></div><p>Tier·3·platforms·are·not·supported·by·the·security·officer |
1879 | » and·release·engineering·teams.··At·the·discretion·of·the | 1879 | » and·release·engineering·teams.··At·the·discretion·of·the |
1880 | » toolchain·maintainers,·they·may·be·supported·in·the·toolchain. | 1880 | » toolchain·maintainers,·they·may·be·supported·in·the·toolchain. |
1881 | » Tier·3·platforms·are·architectures·in·the·early·stages·of | 1881 | » Tier·3·platforms·are·architectures·in·the·early·stages·of |
1882 | » development,·for·non-mainstream·hardware·platforms,·or·which | 1882 | » development,·for·non-mainstream·hardware·platforms,·or·which |
1883 | » are·considered·legacy·systems·unlikely·to·see·broad·future | 1883 | » are·considered·legacy·systems·unlikely·to·see·broad·future |
1884 | » use.··Initial·support·for·Tier·3·platforms·should·be·worked·on | 1884 | » use.··Initial·support·for·Tier·3·platforms·should·be·worked·on |
1885 | » in·external·SCM·repositories. | 1885 | » in·external·SCM·repositories. |
Offset 1891, 43 lines modified | Offset 1891, 43 lines modified |
1891 | » removed·from·the·tree·if·they·are·no·longer·actively·supported | 1891 | » removed·from·the·tree·if·they·are·no·longer·actively·supported |
1892 | » by·the·FreeBSD·developer·community·at·the·discretion·of·the | 1892 | » by·the·FreeBSD·developer·community·at·the·discretion·of·the |
1893 | » release·engineer.</p><p>Tier·3·platforms·may·have·ports·support,·either·integrated | 1893 | » release·engineer.</p><p>Tier·3·platforms·may·have·ports·support,·either·integrated |
1894 | » or·external,·but·do·not·require·it.</p><p>Tier·3·platforms·must·have·the·basics·documented·for·how | 1894 | » or·external,·but·do·not·require·it.</p><p>Tier·3·platforms·must·have·the·basics·documented·for·how |
1895 | » to·build·a·kernel·and·how·to·boot·it·on·at·least·one·target | 1895 | » to·build·a·kernel·and·how·to·boot·it·on·at·least·one·target |
1896 | » hardware·or·emulation·environment.··This·documentation·need | 1896 | » hardware·or·emulation·environment.··This·documentation·need |
1897 | » not·be·integrated·into·the·FreeBSD·tree.</p><p>Current·Tier·3·platforms·are·mips,·and | 1897 | » not·be·integrated·into·the·FreeBSD·tree.</p><p>Current·Tier·3·platforms·are·mips,·and |
1898 | » riscv.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63755064"></a>18.5. Tier·4:·Unsupported·Architectures</h3></div></div></div><p>Tier·4·systems·are·not·supported·in·any·form·by·the | 1898 | » riscv.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63787832"></a>18.5. Tier·4:·Unsupported·Architectures</h3></div></div></div><p>Tier·4·systems·are·not·supported·in·any·form·by·the |
1899 | » project.</p><p>All·systems·not·otherwise·classified·into·a·support·tier | 1899 | » project.</p><p>All·systems·not·otherwise·classified·into·a·support·tier |
1900 | » are·Tier·4·systems.··The·ia64·platform·is·transitioning | 1900 | » are·Tier·4·systems.··The·ia64·platform·is·transitioning |
1901 | » to·Tier·4·status·in·FreeBSD·11.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63756600"></a>18.6. Policy·on·Changing·the·Tier·of·an·Architecture</h3></div></div></div><p>Systems·may·only·be·moved·from·one·tier·to·another·by | 1901 | » to·Tier·4·status·in·FreeBSD·11.</p></div><div·class="sect2"><div·xmlns=""·class="titlepage"><div><div><h3·xmlns="http://www.w3.org/1999/xhtml"·class="title"><a·id="idp63789368"></a>18.6. Policy·on·Changing·the·Tier·of·an·Architecture</h3></div></div></div><p>Systems·may·only·be·moved·from·one·tier·to·another·by |
1902 | » approval·of·the·FreeBSD·Core·Team,·which·shall·make·that | 1902 | » approval·of·the·FreeBSD·Core·Team,·which·shall·make·that |
1903 | » decision·in·collaboration·with·the·Security·Officer,·Release | 1903 | » decision·in·collaboration·with·the·Security·Officer,·Release |
1904 | » Engineering,·and·toolchain·maintenance·teams.</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="ports"></a>19. Ports·Specific·FAQ</h2></div></div></div><div·class="qandaset"><a·id="idp63787320"></a><dl><dt>19.1.··<a·href="#ports-qa-adding">Adding·a·New·Port</a></dt><dd><dl><dt>19.1.1.·<a·href="#ports-qa-add-new">How·do·I·add·a·new·port?</a></dt><dt>19.1.2.·<a·href="#ports-qa-add-new-extra">Any·other·things·I·need·to·know·when·I·add·a·new | 1904 | » Engineering,·and·toolchain·maintenance·teams.</p></div></div><div·class="sect1"><div·xmlns=""·class="titlepage"><div><div><h2·xmlns="http://www.w3.org/1999/xhtml"·class="title"·style="clear:·both"><a·id="ports"></a>19. Ports·Specific·FAQ</h2></div></div></div><div·class="qandaset"><a·id="idp63820088"></a><dl><dt>19.1.··<a·href="#ports-qa-adding">Adding·a·New·Port</a></dt><dd><dl><dt>19.1.1.·<a·href="#ports-qa-add-new">How·do·I·add·a·new·port?</a></dt><dt>19.1.2.·<a·href="#ports-qa-add-new-extra">Any·other·things·I·need·to·know·when·I·add·a·new |
1905 | » ······port?</a></dt></dl></dd><dt>19.2.··<a·href="#ports-qa-removing">Removing·an·Existing·Port</a></dt><dd><dl><dt>19.2.1.·<a·href="#ports-qa-remove-one">How·do·I·remove·an·existing·port?</a></dt></dl></dd><dt>19.3.··<a·href="#ports-qa-re-adding">Re-adding·a·Deleted·Port</a></dt><dd><dl><dt>19.3.1.·<a·href="#ports-qa-resurrect">How·do·I·re-add·a·deleted·port?</a></dt></dl></dd><dt>19.4.··<a·href="#ports-qa-repocopies">Repository·Copies</a></dt><dd><dl><dt>19.4.1.·<a·href="#ports-qa-repocopy-when">When·do·we·need·a·repository·copy?</a></dt><dt>19.4.2.·<a·href="#ports-qa-repocopy-how">What·do·I·need·to·do?</a></dt></dl></dd><dt>19.5.··<a·href="#ports-qa-freeze">Ports·Freeze</a></dt><dd><dl><dt>19.5.1.·<a·href="#ports-qa-freeze-what">What·is·a·“ports·freeze”?</a></dt></dl></dd><dt>19.6.··<a·href="#ports-qa-new-category">Creating·a·New·Category</a></dt><dd><dl><dt>19.6.1.·<a·href="#ports-qa-new-category-how">What·is·the·procedure·for·creating·a·new | 1905 | » ······port?</a></dt></dl></dd><dt>19.2.··<a·href="#ports-qa-removing">Removing·an·Existing·Port</a></dt><dd><dl><dt>19.2.1.·<a·href="#ports-qa-remove-one">How·do·I·remove·an·existing·port?</a></dt></dl></dd><dt>19.3.··<a·href="#ports-qa-re-adding">Re-adding·a·Deleted·Port</a></dt><dd><dl><dt>19.3.1.·<a·href="#ports-qa-resurrect">How·do·I·re-add·a·deleted·port?</a></dt></dl></dd><dt>19.4.··<a·href="#ports-qa-repocopies">Repository·Copies</a></dt><dd><dl><dt>19.4.1.·<a·href="#ports-qa-repocopy-when">When·do·we·need·a·repository·copy?</a></dt><dt>19.4.2.·<a·href="#ports-qa-repocopy-how">What·do·I·need·to·do?</a></dt></dl></dd><dt>19.5.··<a·href="#ports-qa-freeze">Ports·Freeze</a></dt><dd><dl><dt>19.5.1.·<a·href="#ports-qa-freeze-what">What·is·a·“ports·freeze”?</a></dt></dl></dd><dt>19.6.··<a·href="#ports-qa-new-category">Creating·a·New·Category</a></dt><dd><dl><dt>19.6.1.·<a·href="#ports-qa-new-category-how">What·is·the·procedure·for·creating·a·new |
1906 | » ······category?</a></dt><dt>19.6.2.·<a·href="#ports-qa-new-category-physical">What·do·I·need·to·do·to·implement·a·new·physical | 1906 | » ······category?</a></dt><dt>19.6.2.·<a·href="#ports-qa-new-category-physical">What·do·I·need·to·do·to·implement·a·new·physical |
1907 | » ······category?</a></dt><dt>19.6.3.·<a·href="#ports-qa-new-category-virtual">What·do·I·need·to·do·to·implement·a·new·virtual | 1907 | » ······category?</a></dt><dt>19.6.3.·<a·href="#ports-qa-new-category-virtual">What·do·I·need·to·do·to·implement·a·new·virtual |
1908 | » ······category?</a></dt></dl></dd><dt>19.7.··<a·href="#ports-qa-misc-questions">Miscellaneous·Questions</a></dt><dd><dl><dt>19.7.1.·<a·href="#ports-qa-misc-correctly-building">How·do·I·know·if·my·port·is·building·correctly·or | 1908 | » ······category?</a></dt></dl></dd><dt>19.7.··<a·href="#ports-qa-misc-questions">Miscellaneous·Questions</a></dt><dd><dl><dt>19.7.1.·<a·href="#ports-qa-misc-correctly-building">How·do·I·know·if·my·port·is·building·correctly·or |
1909 | » ······not?</a></dt><dt>19.7.2.·<a·href="#ports-qa-misc-INDEX">I·added·a·new·port.··Do·I·need·to·add·it·to·the | 1909 | » ······not?</a></dt><dt>19.7.2.·<a·href="#ports-qa-misc-INDEX">I·added·a·new·port.··Do·I·need·to·add·it·to·the |
1910 | » ······INDEX?</a></dt><dt>19.7.3.·<a·href="#ports-qa-misc-no-touch">Are·there·any·other·files·I·am·not·allowed·to | 1910 | » ······INDEX?</a></dt><dt>19.7.3.·<a·href="#ports-qa-misc-no-touch">Are·there·any·other·files·I·am·not·allowed·to |
1911 | » ······touch?</a></dt><dt>19.7.4.·<a·href="#ports-qa-misc-updated-distfile">What·is·the·proper·procedure·for·updating·the | 1911 | » ······touch?</a></dt><dt>19.7.4.·<a·href="#ports-qa-misc-updated-distfile">What·is·the·proper·procedure·for·updating·the |
1912 | » ······checksum·for·a·port's·distfile·when·the·file·changes | 1912 | » ······checksum·for·a·port's·distfile·when·the·file·changes |
1913 | » ······without·a·version·change?</a></dt><dt>19.7.5.·<a·href="#ports-qa-misc-request-mfh">What·is·the·procedure·to·request·authorization·for | 1913 | » ······without·a·version·change?</a></dt><dt>19.7.5.·<a·href="#ports-qa-misc-request-mfh">What·is·the·procedure·to·request·authorization·for |
1914 | » ······merging·a·commit·to·the·quarterly·branch?</a></dt></dl></dd></dl><table·border="0"·style="width:·100%;"><colgroup><col·align="left"·width="1%"·/><col·/></colgroup><tbody><tr·class="qandadiv"><td·align="left"·valign="top"·colspan="2"><h4·class="title"><a·id="ports-qa-adding"></a>19.1.·Adding·a·New·Port</h4></td></tr><tr·class="toc"><td·align="left"·valign="top"·colspan="2"><dl><dt>19.1.1.·<a·href="#ports-qa-add-new">How·do·I·add·a·new·port?</a></dt><dt>19.1.2.·<a·href="#ports-qa-add-new-extra">Any·other·things·I·need·to·know·when·I·add·a·new | 1914 | » ······merging·a·commit·to·the·quarterly·branch?</a></dt></dl></dd></dl><table·border="0"·style="width:·100%;"><colgroup><col·align="left"·width="1%"·/><col·/></colgroup><tbody><tr·class="qandadiv"><td·align="left"·valign="top"·colspan="2"><h4·class="title"><a·id="ports-qa-adding"></a>19.1.·Adding·a·New·Port</h4></td></tr><tr·class="toc"><td·align="left"·valign="top"·colspan="2"><dl><dt>19.1.1.·<a·href="#ports-qa-add-new">How·do·I·add·a·new·port?</a></dt><dt>19.1.2.·<a·href="#ports-qa-add-new-extra">Any·other·things·I·need·to·know·when·I·add·a·new |
1915 | » ······port?</a></dt></dl></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-add-new"></a><a·id="idp63788728"></a><p><strong>19.1.1.</strong></p></td><td·align="left"·valign="top"><p>How·do·I·add·a·new·port?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>First,·please·read·the·section·about·repository | 1915 | » ······port?</a></dt></dl></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-add-new"></a><a·id="idp63821496"></a><p><strong>19.1.1.</strong></p></td><td·align="left"·valign="top"><p>How·do·I·add·a·new·port?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>First,·please·read·the·section·about·repository |
1916 | » ······copies.</p><p>The·easiest·way·to·add·a·new·port·is·the | 1916 | » ······copies.</p><p>The·easiest·way·to·add·a·new·port·is·the |
1917 | » ······<code·class="command">addport</code>·script·located·in·the | 1917 | » ······<code·class="command">addport</code>·script·located·in·the |
1918 | » ······<code·class="filename">ports/Tools/scripts</code>·directory.··It | 1918 | » ······<code·class="filename">ports/Tools/scripts</code>·directory.··It |
1919 | » ······adds·a·port·from·the·directory·specified,·determining | 1919 | » ······adds·a·port·from·the·directory·specified,·determining |
1920 | » ······the·category·automatically·from·the·port | 1920 | » ······the·category·automatically·from·the·port |
1921 | » ······<code·class="filename">Makefile</code>.··It·also·adds·an·entry·to | 1921 | » ······<code·class="filename">Makefile</code>.··It·also·adds·an·entry·to |
1922 | » ······the·port's·category·<code·class="filename">Makefile</code>.··It | 1922 | » ······the·port's·category·<code·class="filename">Makefile</code>.··It |
1923 | » ······was·written·by·Michael·Haro·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:mharo@FreeBSD.org">mharo@FreeBSD.org</a>></code>,·Will·Andrews·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:will@FreeBSD.org">will@FreeBSD.org</a>></code>,·and | 1923 | » ······was·written·by·Michael·Haro·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:mharo@FreeBSD.org">mharo@FreeBSD.org</a>></code>,·Will·Andrews·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:will@FreeBSD.org">will@FreeBSD.org</a>></code>,·and |
1924 | » ······Renato·Botelho·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:garga@FreeBSD.org">garga@FreeBSD.org</a>></code>.··When·sending·questions·about·this | 1924 | » ······Renato·Botelho·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:garga@FreeBSD.org">garga@FreeBSD.org</a>></code>.··When·sending·questions·about·this |
1925 | » ······script·to·the·<a·class="link"·href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports"·target="_top">FreeBSD·ports·mailing·list</a>,·please·also·CC·Chris·Rees·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:crees@FreeBSD.org">crees@FreeBSD.org</a>></code>, | 1925 | » ······script·to·the·<a·class="link"·href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports"·target="_top">FreeBSD·ports·mailing·list</a>,·please·also·CC·Chris·Rees·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:crees@FreeBSD.org">crees@FreeBSD.org</a>></code>, |
1926 | » ······the·current·maintainer.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-add-new-extra"></a><a·id="idp63794744"></a><p><strong>19.1.2.</strong></p></td><td·align="left"·valign="top"><p>Any·other·things·I·need·to·know·when·I·add·a·new | 1926 | » ······the·current·maintainer.</p></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-add-new-extra"></a><a·id="idp63831608"></a><p><strong>19.1.2.</strong></p></td><td·align="left"·valign="top"><p>Any·other·things·I·need·to·know·when·I·add·a·new |
1927 | » ······port?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Check·the·port,·preferably·to·make·sure·it·compiles | 1927 | » ······port?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>Check·the·port,·preferably·to·make·sure·it·compiles |
1928 | » ······and·packages·correctly.··This·is·the·recommended | 1928 | » ······and·packages·correctly.··This·is·the·recommended |
1929 | » ······sequence:</p><pre·class="screen"><code·class="prompt">#</code>·<strong·class="userinput"><code>make·install</code></strong> | 1929 | » ······sequence:</p><pre·class="screen"><code·class="prompt">#</code>·<strong·class="userinput"><code>make·install</code></strong> |
1930 | <code·class="prompt">#</code>·<strong·class="userinput"><code>make·package</code></strong> | 1930 | <code·class="prompt">#</code>·<strong·class="userinput"><code>make·package</code></strong> |
1931 | <code·class="prompt">#</code>·<strong·class="userinput"><code>make·deinstall</code></strong> | 1931 | <code·class="prompt">#</code>·<strong·class="userinput"><code>make·deinstall</code></strong> |
1932 | <code·class="prompt">#</code>·<strong·class="userinput"><code>pkg·add·<em·class="replaceable"><code>package·you·built·above</code></em></code></strong> | 1932 | <code·class="prompt">#</code>·<strong·class="userinput"><code>pkg·add·<em·class="replaceable"><code>package·you·built·above</code></em></code></strong> |
1933 | <code·class="prompt">#</code>·<strong·class="userinput"><code>make·deinstall</code></strong> | 1933 | <code·class="prompt">#</code>·<strong·class="userinput"><code>make·deinstall</code></strong> |
Offset 1940, 15 lines modified | Offset 1940, 15 lines modified |
1940 | » ······ones.</p><p>If·the·port·came·from·a·submitter·who·has·not | 1940 | » ······ones.</p><p>If·the·port·came·from·a·submitter·who·has·not |
1941 | » ······contributed·to·the·Project·before,·add·that·person's | 1941 | » ······contributed·to·the·Project·before,·add·that·person's |
1942 | » ······name·to·the·<a·class="link"·href="../../../../doc/en_US.ISO8859-1/articles/contributors/contrib-additional.html"·target="_top">Additional | 1942 | » ······name·to·the·<a·class="link"·href="../../../../doc/en_US.ISO8859-1/articles/contributors/contrib-additional.html"·target="_top">Additional |
1943 | » » Contributors</a>·section·of·the·FreeBSD | 1943 | » » Contributors</a>·section·of·the·FreeBSD |
1944 | » ······Contributors·List.</p><p>Close·the·PR·if·the·port·came·in·as·a·PR.··To·close | 1944 | » ······Contributors·List.</p><p>Close·the·PR·if·the·port·came·in·as·a·PR.··To·close |
1945 | » ······a·PR,·change·the·state·to·<code·class="literal">Issue | 1945 | » ······a·PR,·change·the·state·to·<code·class="literal">Issue |
1946 | » ······Resolved</code>·and·the·resolution·as | 1946 | » ······Resolved</code>·and·the·resolution·as |
1947 | » ······<code·class="literal">Fixed</code>.</p></td></tr><tr·class="qandadiv"><td·align="left"·valign="top"·colspan="2"><h4·class="title"><a·id="ports-qa-removing"></a>19.2.·Removing·an·Existing·Port</h4></td></tr><tr·class="toc"><td·align="left"·valign="top"·colspan="2"><dl><dt>19.2.1.·<a·href="#ports-qa-remove-one">How·do·I·remove·an·existing·port?</a></dt></dl></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-remove-one"></a><a·id="idp63812024"></a><p><strong>19.2.1.</strong></p></td><td·align="left"·valign="top"><p>How·do·I·remove·an·existing·port?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>First,·please·read·the·section·about·repository | 1947 | » ······<code·class="literal">Fixed</code>.</p></td></tr><tr·class="qandadiv"><td·align="left"·valign="top"·colspan="2"><h4·class="title"><a·id="ports-qa-removing"></a>19.2.·Removing·an·Existing·Port</h4></td></tr><tr·class="toc"><td·align="left"·valign="top"·colspan="2"><dl><dt>19.2.1.·<a·href="#ports-qa-remove-one">How·do·I·remove·an·existing·port?</a></dt></dl></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-remove-one"></a><a·id="idp63844792"></a><p><strong>19.2.1.</strong></p></td><td·align="left"·valign="top"><p>How·do·I·remove·an·existing·port?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>First,·please·read·the·section·about·repository |
1948 | » ······copies.··Before·you·remove·the·port,·you·have·to·verify | 1948 | » ······copies.··Before·you·remove·the·port,·you·have·to·verify |
1949 | » ······there·are·no·other·ports·depending·on·it.</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Make·sure·there·is·no·dependency·on·the·port | 1949 | » ······there·are·no·other·ports·depending·on·it.</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·disc;·"><li·class="listitem"><p>Make·sure·there·is·no·dependency·on·the·port |
1950 | » » ··in·the·ports·collection:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·circle;·"><li·class="listitem"><p>The·port's·PKGNAME·should·appear·in·exactly | 1950 | » » ··in·the·ports·collection:</p><div·class="itemizedlist"><ul·class="itemizedlist"·style="list-style-type:·circle;·"><li·class="listitem"><p>The·port's·PKGNAME·should·appear·in·exactly |
1951 | » » ······one·line·in·a·recent·INDEX·file.</p></li><li·class="listitem"><p>No·other·ports·should·contain·any·reference | 1951 | » » ······one·line·in·a·recent·INDEX·file.</p></li><li·class="listitem"><p>No·other·ports·should·contain·any·reference |
1952 | » » ······to·the·port's·directory·or·PKGNAME·in·their | 1952 | » » ······to·the·port's·directory·or·PKGNAME·in·their |
1953 | » » ······Makefiles</p></li></ul></div></li><li·class="listitem"><p>Then,·remove·the·port:</p><div·class="procedure"><ol·class="procedure"·type="1"><li·class="step"><p>Remove·the·port's·files·and·directory·with | 1953 | » » ······Makefiles</p></li></ul></div></li><li·class="listitem"><p>Then,·remove·the·port:</p><div·class="procedure"><ol·class="procedure"·type="1"><li·class="step"><p>Remove·the·port's·files·and·directory·with |
1954 | » » ······<code·class="command">svn·remove</code>.</p></li><li·class="step"><p>Remove·the·<code·class="varname">SUBDIR</code>·listing | 1954 | » » ······<code·class="command">svn·remove</code>.</p></li><li·class="step"><p>Remove·the·<code·class="varname">SUBDIR</code>·listing |
Offset 1957, 15 lines modified | Offset 1957, 15 lines modified |
1957 | » » ······<code·class="filename">ports/MOVED</code>.</p></li><li·class="step"><p>Remove·the·port·from | 1957 | » » ······<code·class="filename">ports/MOVED</code>.</p></li><li·class="step"><p>Remove·the·port·from |
1958 | » » ······<code·class="filename">ports/LEGAL</code>·if·it·is | 1958 | » » ······<code·class="filename">ports/LEGAL</code>·if·it·is |
1959 | » » ······there.</p></li></ol></div></li></ul></div><p>Alternatively,·you·can·use·the | 1959 | » » ······there.</p></li></ol></div></li></ul></div><p>Alternatively,·you·can·use·the |
1960 | » ······<code·class="command">rmport</code>·script,·from | 1960 | » ······<code·class="command">rmport</code>·script,·from |
1961 | » ······<code·class="filename">ports/Tools/scripts</code>.··This·script | 1961 | » ······<code·class="filename">ports/Tools/scripts</code>.··This·script |
1962 | » ······was·written·by·Vasil·Dimov·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:vd@FreeBSD.org">vd@FreeBSD.org</a>></code>.··When·sending·questions | 1962 | » ······was·written·by·Vasil·Dimov·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:vd@FreeBSD.org">vd@FreeBSD.org</a>></code>.··When·sending·questions |
1963 | » ······about·this·script·to·the·<a·class="link"·href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports"·target="_top">FreeBSD·ports·mailing·list</a>,·please·also·CC | 1963 | » ······about·this·script·to·the·<a·class="link"·href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports"·target="_top">FreeBSD·ports·mailing·list</a>,·please·also·CC |
1964 | » ······Chris·Rees·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:crees@FreeBSD.org">crees@FreeBSD.org</a>></code>,·the·current·maintainer.</p></td></tr><tr·class="qandadiv"><td·align="left"·valign="top"·colspan="2"><h4·class="title"><a·id="ports-qa-re-adding"></a>19.3.·Re-adding·a·Deleted·Port</h4></td></tr><tr·class="toc"><td·align="left"·valign="top"·colspan="2"><dl><dt>19.3.1.·<a·href="#ports-qa-resurrect">How·do·I·re-add·a·deleted·port?</a></dt></dl></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-resurrect"></a><a·id="idp63839032"></a><p><strong>19.3.1.</strong></p></td><td·align="left"·valign="top"><p>How·do·I·re-add·a·deleted·port?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>This·is·essentially·the·reverse·of·deleting·a | 1964 | » ······Chris·Rees·<code·class="email"><<a·xmlns=""·class="email"·href="mailto:crees@FreeBSD.org">crees@FreeBSD.org</a>></code>,·the·current·maintainer.</p></td></tr><tr·class="qandadiv"><td·align="left"·valign="top"·colspan="2"><h4·class="title"><a·id="ports-qa-re-adding"></a>19.3.·Re-adding·a·Deleted·Port</h4></td></tr><tr·class="toc"><td·align="left"·valign="top"·colspan="2"><dl><dt>19.3.1.·<a·href="#ports-qa-resurrect">How·do·I·re-add·a·deleted·port?</a></dt></dl></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-resurrect"></a><a·id="idp63417144"></a><p><strong>19.3.1.</strong></p></td><td·align="left"·valign="top"><p>How·do·I·re-add·a·deleted·port?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>This·is·essentially·the·reverse·of·deleting·a |
1965 | » ······port.</p><div·xmlns=""·class="important"><h3·class="admontitle">Important:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">Do·not·use·<code·class="command">svn·add</code>·to·add·the | 1965 | » ······port.</p><div·xmlns=""·class="important"><h3·class="admontitle">Important:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">Do·not·use·<code·class="command">svn·add</code>·to·add·the |
1966 | » » port.··Follow·these·steps.··If·they·are·unclear,·or | 1966 | » » port.··Follow·these·steps.··If·they·are·unclear,·or |
1967 | » » are·not·working,·ask·for·help,·do·not·just | 1967 | » » are·not·working,·ask·for·help,·do·not·just |
1968 | » » <code·class="command">svn·add</code>·the·port.</p></div><div·class="procedure"><ol·class="procedure"·type="1"><li·class="step"><p>Figure·out·when·the·port·was·removed.··Use·this | 1968 | » » <code·class="command">svn·add</code>·the·port.</p></div><div·class="procedure"><ol·class="procedure"·type="1"><li·class="step"><p>Figure·out·when·the·port·was·removed.··Use·this |
1969 | » » ··<a·class="link"·href="http://people.freebsd.org/~crees/removed_ports/index.xml"·target="_top">list</a>, | 1969 | » » ··<a·class="link"·href="http://people.freebsd.org/~crees/removed_ports/index.xml"·target="_top">list</a>, |
1970 | » » ··or·look·for·the·port·on·<a·class="link"·href="http://www.freshports.org/"·target="_top">freshports</a>, | 1970 | » » ··or·look·for·the·port·on·<a·class="link"·href="http://www.freshports.org/"·target="_top">freshports</a>, |
1971 | » » ··and·then·copy·the·last·living·revision·of·the | 1971 | » » ··and·then·copy·the·last·living·revision·of·the |
Offset 1990, 26 lines modified | Offset 1990, 26 lines modified |
1990 | » » ··sorted.</p></li><li·class="step"><p>Delete·the·port·entry·from | 1990 | » » ··sorted.</p></li><li·class="step"><p>Delete·the·port·entry·from |
1991 | » » ··<code·class="filename">ports/MOVED</code>.</p></li><li·class="step"><p>If·the·port·had·an·entry·in | 1991 | » » ··<code·class="filename">ports/MOVED</code>.</p></li><li·class="step"><p>If·the·port·had·an·entry·in |
1992 | » » ··<code·class="filename">ports/LEGAL</code>,·restore·it.</p></li><li·class="step"><p><code·class="command">svn·commit</code>·these·changes, | 1992 | » » ··<code·class="filename">ports/LEGAL</code>,·restore·it.</p></li><li·class="step"><p><code·class="command">svn·commit</code>·these·changes, |
1993 | » » ··preferably·in·one·step.</p></li></ol></div><div·xmlns=""·class="tip"><h3·class="admontitle">Tip:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">The·<code·class="command">addport</code>·script·mentioned·in | 1993 | » » ··preferably·in·one·step.</p></li></ol></div><div·xmlns=""·class="tip"><h3·class="admontitle">Tip:·</h3><p·xmlns="http://www.w3.org/1999/xhtml">The·<code·class="command">addport</code>·script·mentioned·in |
1994 | » » <a·class="xref"·href="#ports-qa-adding"·title="Adding·a·New·Port">Q·&·A 19.1,·“Adding·a·New·Port”</a>·now·detects·when·the | 1994 | » » <a·class="xref"·href="#ports-qa-adding"·title="Adding·a·New·Port">Q·&·A 19.1,·“Adding·a·New·Port”</a>·now·detects·when·the |
1995 | » » port·to·add·has·previously·existed,·and·attempts·to | 1995 | » » port·to·add·has·previously·existed,·and·attempts·to |
1996 | » » handle·all·except·the·<code·class="filename">ports/LEGAL</code> | 1996 | » » handle·all·except·the·<code·class="filename">ports/LEGAL</code> |
1997 | » » step·automatically.</p></div></td></tr><tr·class="qandadiv"><td·align="left"·valign="top"·colspan="2"><h4·class="title"><a·id="ports-qa-repocopies"></a>19.4.·Repository·Copies</h4></td></tr><tr·class="toc"><td·align="left"·valign="top"·colspan="2"><dl><dt>19.4.1.·<a·href="#ports-qa-repocopy-when">When·do·we·need·a·repository·copy?</a></dt><dt>19.4.2.·<a·href="#ports-qa-repocopy-how">What·do·I·need·to·do?</a></dt></dl></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-repocopy-when"></a><a·id="idp63863224"></a><p><strong>19.4.1.</strong></p></td><td·align="left"·valign="top"><p>When·do·we·need·a·repository·copy?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>When·you·want·to·add·a·port·that·is·related·to·any | 1997 | » » step·automatically.</p></div></td></tr><tr·class="qandadiv"><td·align="left"·valign="top"·colspan="2"><h4·class="title"><a·id="ports-qa-repocopies"></a>19.4.·Repository·Copies</h4></td></tr><tr·class="toc"><td·align="left"·valign="top"·colspan="2"><dl><dt>19.4.1.·<a·href="#ports-qa-repocopy-when">When·do·we·need·a·repository·copy?</a></dt><dt>19.4.2.·<a·href="#ports-qa-repocopy-how">What·do·I·need·to·do?</a></dt></dl></td></tr><tr·class="question"><td·align="left"·valign="top"><a·id="ports-qa-repocopy-when"></a><a·id="idp63883704"></a><p><strong>19.4.1.</strong></p></td><td·align="left"·valign="top"><p>When·do·we·need·a·repository·copy?</p></td></tr><tr·class="answer"><td·align="left"·valign="top"></td><td·align="left"·valign="top"><p>When·you·want·to·add·a·port·that·is·related·to·any |
1998 | » ······port·that·is·already·in·the·tree·in·a·separate | 1998 | » ······port·that·is·already·in·the·tree·in·a·separate |
1999 | » ······directory,·you·have·to·do·a·repository·copy.··Here | 1999 | » ······directory,·you·have·to·do·a·repository·copy.··Here |
2000 | » ······<em·class="wordasword">related</em>·means·it·is·a·different | 2000 | » ······<em·class="wordasword">related</em>·means·it·is·a·different |
2001 | » ······version·or·a·slightly·modified·version.··Examples·are | 2001 | » ······version·or·a·slightly·modified·version.··Examples·are |
2002 | » ······<code·class="filename">print/ghostscript*</code>·(different | 2002 | » ······<code·class="filename">print/ghostscript*</code>·(different |
2003 | » ······versions)·and·<code·class="filename">x11-wm/windowmaker*</code> | 2003 | » ······versions)·and·<code·class="filename">x11-wm/windowmaker*</code> |
2004 | » ······(English-only·and·internationalized·version).</p><p>Another·example·is·when·a·port·is·moved·from·one | 2004 | » ······(English-only·and·internationalized·version).</p><p>Another·example·is·when·a·port·is·moved·from·one |
2005 | » ······subdirectory·to·another,·or·when·you·want·to·change·the | 2005 | » ······subdirectory·to·another,·or·when·you·want·to·change·the |
2006 | » ······name·of·a·directory·because·the·author(s)·renamed·their | 2006 | » ······name·of·a·directory·because·the·author(s)·renamed·their |
2007 | » ······software·even·though·it·is·a·descendant·of·a·port | 2007 | » ······software·even·though·it·is·a·descendant·of·a·port |