diff options
author | Gabor Kovesdan <gabor@FreeBSD.org> | 2012-08-19 23:05:52 +0000 |
---|---|---|
committer | Gabor Kovesdan <gabor@FreeBSD.org> | 2012-08-19 23:05:52 +0000 |
commit | 7ba98a21ad60d519a113cdca26d39d1a5b25e75d (patch) | |
tree | b19c87af81f785c40bb5001157e321746bb99db2 /en_US.ISO8859-1/articles | |
parent | acb8333ccd5233d73bf3b9dc204b3900b94187a3 (diff) | |
parent | 421beffdb74571114cfece54aeaf5a7927e3bde5 (diff) | |
download | doc-7ba98a21ad60d519a113cdca26d39d1a5b25e75d.tar.gz doc-7ba98a21ad60d519a113cdca26d39d1a5b25e75d.zip |
MFH
Approved by: doceng (implicit)
Notes
Notes:
svn path=/projects/sgml2xml/; revision=39398
Diffstat (limited to 'en_US.ISO8859-1/articles')
-rw-r--r-- | en_US.ISO8859-1/articles/Makefile | 1 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/bsdl-gpl/article.sgml | 6 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/committers-guide/article.sgml | 967 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/contributors/contrib.additional.sgml | 47 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/contributors/contrib.committers.sgml | 8 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/contributors/contrib.corealumni.sgml | 36 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/hubs/article.sgml | 8 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/linux-users/article.sgml | 2 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/portbuild/article.sgml | 4 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/pxe/Makefile | 28 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/pxe/article.sgml | 300 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/pxe/dhcpd.conf | 23 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/pxe/install.cfg | 203 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/pxe/loader.rc | 11 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/pxe/pkgmaker.sh | 9 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/pxe/post | 36 | ||||
-rw-r--r-- | en_US.ISO8859-1/articles/pxe/pre | 7 |
17 files changed, 186 insertions, 1510 deletions
diff --git a/en_US.ISO8859-1/articles/Makefile b/en_US.ISO8859-1/articles/Makefile index 11ad6fc5ae..46e8e20a27 100644 --- a/en_US.ISO8859-1/articles/Makefile +++ b/en_US.ISO8859-1/articles/Makefile @@ -47,7 +47,6 @@ SUBDIR+= port-mentor-guidelines SUBDIR+= portbuild SUBDIR+= pr-guidelines SUBDIR+= problem-reports -SUBDIR+= pxe SUBDIR+= rc-scripting SUBDIR+= relaydelay SUBDIR+= releng diff --git a/en_US.ISO8859-1/articles/bsdl-gpl/article.sgml b/en_US.ISO8859-1/articles/bsdl-gpl/article.sgml index 634fa7950b..08e29d1c62 100644 --- a/en_US.ISO8859-1/articles/bsdl-gpl/article.sgml +++ b/en_US.ISO8859-1/articles/bsdl-gpl/article.sgml @@ -297,7 +297,7 @@ fork.</para> <para>The GPL explicitly disallows revoking the license. It has - occurred , however, that a company (Mattel) purchased a GPL + occurred, however, that a company (Mattel) purchased a GPL copyright (cphack), revoked the entire copyright, went to court, and prevailed [2]. That is, they legally revoked the entire distribution and all derivative works based on the @@ -561,10 +561,10 @@ [2] http://archives.cnn.com/2000/TECH/computing/03/28/cyberpatrol.mirrors/ -[3] Open Source: the Unauthorized White Papers, Donald K. Rosenberg, IDG Books, +[3] Open Source: the Unauthorized White Papers, Donald K. Rosenberg, IDG Books, 2000. Quotes are from page 114, ``Effects of the GNU GPL''. -[4] In the "What License to Use?" section of +[4] In the "What License to Use?" section of http://www.oreilly.com/catalog/opensources/book/brian.html This whitepaper is a condensation of an original work available at diff --git a/en_US.ISO8859-1/articles/committers-guide/article.sgml b/en_US.ISO8859-1/articles/committers-guide/article.sgml index 895fcf23a0..58707becd6 100644 --- a/en_US.ISO8859-1/articles/committers-guide/article.sgml +++ b/en_US.ISO8859-1/articles/committers-guide/article.sgml @@ -99,11 +99,12 @@ </row> <row> - <entry><emphasis><literal>ports/</literal> CVS Root</emphasis></entry> + <entry><emphasis><literal>ports/</literal> Subversion + Root</emphasis></entry> <entry> - <hostid - role="fqdn">pcvs.FreeBSD.org</hostid><literal>:</literal><filename>/home/pcvs</filename> - (see also <xref linkend="vcs.operations"/>).</entry> + <literal>svn+ssh://</literal><hostid + role="fqdn">svn.FreeBSD.org</hostid><filename>/ports</filename> + (see also <xref linkend="subversion-primer"/>).</entry> </row> <row> @@ -268,827 +269,21 @@ </sect1> - <sect1 id="vcs.operations"> - <title>Version Control System Operations</title> + <sect1 id="subversion-primer"> + <title>Subversion Primer</title> <para>It is assumed that you are already familiar with the basic operation of the version control systems in use. Traditionally this was CVS. Subversion is used for the <literal>src</literal> - tree as of May 2008 and the <literal>doc/www</literal> tree as - of May 2012. Subversion is covered in <xref - linkend="subversion-primer"/>.</para> - - <para>The &a.cvsadm; are the <quote>owners</quote> of the - repository and are responsible for direct modification of it for - the purposes of cleanup or fixing some unfortunate abuse of the - version control system by a committer. Should you cause some - repository accident, say a bad import or a bad tag creation, - mail the responsible part of &a.cvsadm;, as stated in the table - below, (or call one of them) and report the problem. For very - important issues affecting the entire tree—not just a - specific area—you can contact the &a.cvsadm;. Please do - <emphasis>not</emphasis> contact the &a.cvsadm; for repocopies - or other things that the more specific teams can handle.</para> - - <para><anchor id="repomeisters"/>The only ones able to directly - fiddle the repository bits on the repository hosts are the - repomeisters. To enforce this, there are no login shells - available on the repository machines, except to the - repomeisters.</para> - - <note> - <para>Depending on the affected area of the repository, you - should send your request for a repocopy to one of the - following email addresses. Email sent to these addresses will - be forwarded to the appropriate repomeisters.</para> - - <itemizedlist> - <listitem><para>pcvs@ - regarding <filename class="directory"> - /home/pcvs</filename>, the ports - repository</para></listitem> - - <listitem><para>projcvs@ - regarding <filename - class="directory"> /home/projcvs</filename>, the - third party projects repository</para></listitem> - </itemizedlist> - </note> - - <para>The &os; repositories are currently split into two distinct - parts, namely <literal>ports</literal> and - <literal>projects</literal>. These are combined under a single - <literal>CVSROOT</literal> when distributed via - <application>CVSup</application> for the convenience of our - users. The <literal>src</literal> tree is automatically - exported to CVS for compatibility reasons only (e.g., - <application>CVSup</application>). The <quote>official</quote> - <literal>src</literal> repository is not stored in - <application>CVS</application> but in Subversion. The official - and exported trees are not necessarily equal.</para> - - <para>The CVS repositories are hosted on the repository machines. - Currently, each of the repositories above reside on the same - physical machine, <hostid - role="hostname">ncvs.FreeBSD.org</hostid>, but to allow for - the possibility of placing each on a separate machine in the - future, there is a separate hostname for each that committers - should use. Additionally, each repository is stored in a - separate directory. The following table summarizes the - situation.</para> - - <table frame="none" id="cvs-repositories-and-hosts"> - <title>&os; CVS Repositories, Hosts and Directories</title> - - <tgroup cols="3"> - <thead> - <row> - <entry>Repository</entry> - <entry>Host</entry> - <entry>Directory</entry> - </row> - </thead> - - <tbody> - <row> - <entry>ports</entry> - <entry>pcvs.FreeBSD.org</entry> - <entry>/home/pcvs</entry> - </row> - - <row> - <entry>projects</entry> - <entry>projcvs.FreeBSD.org</entry> - <entry>/home/projcvs</entry> - </row> - </tbody> - </tgroup> - </table> - - <para>CVS operations are done remotely by setting the - <envar>CVSROOT</envar> environment variable to the appropriate - host and top-level directory (for example, <hostid - role="fqdn">pcvs.FreeBSD.org</hostid><literal>:</literal><filename>/home/pcvs</filename>), - and doing the appropriate check-out/check-in operations. Many - committers define aliases which expand to the correct - <application>cvs</application> invocation for the appropriate - repository. For example, a &man.tcsh.1; user may add the - following to their <filename>.cshrc</filename> for this - purpose:</para> - - <programlisting>alias pcvs cvs -d <replaceable>user</replaceable>@pcvs.FreeBSD.org:/home/pcvs -alias projcvs cvs -d <replaceable>user</replaceable>@projcvs.FreeBSD.org:/home/projcvs</programlisting> - - <para>This way they can do all CVS operations locally and use - <command><replaceable>X</replaceable>cvs commit</command> for - committing to the official CVS repository. - Refer to the &man.cvs.1; manual page for usage.</para> - - <note> - <para>Please do <emphasis>not</emphasis> use <command>cvs - checkout</command> or <command>update</command> with the - official repository machine set as the CVS Root for keeping - your source tree up to date. Remote CVS is not optimized for - network distribution and requires a big work/administrative - overhead on the server side. Please use our advanced - <command>cvsup</command> distribution method for obtaining the - repository bits, and only do the actual - <command>commit</command> operation on the repository host. - We provide an extensive cvsup replication network for this - purpose, as well as give access to - <hostid>cvsup-master</hostid> if you really need to stay - current to the latest changes. <hostid>cvsup-master</hostid> - has got the horsepower to deal with this, the repository - master server does not. &a.kuriyama; is in charge of - <hostid>cvsup-master</hostid>.</para> - </note> - - <para>If you need to use CVS <command>add</command> and - <command>delete</command> operations in a manner that is - effectively a &man.mv.1; operation, then a repository copy is in - order rather than using CVS <command>add</command> and - <command>delete</command>. In a repository copy, a <link - linkend="repomeisters">repomeister</link> will copy the - file(s) to their new name and/or location and let you know when - it is done. The purpose of a repository copy is to preserve - file change history, or logs. We in the FreeBSD Project greatly - value the change history that a version control system gives to - the project.</para> - - <para>CVS reference information, tutorials, and FAQs can be found - at: <ulink url="http://www.cvshome.org/docs/"></ulink>. The - information in <ulink - url="http://cvsbook.red-bean.com/cvsbook.html">Karl Fogel's - chapters from <quote>Open Source Development with - CVS</quote></ulink> is also very useful.</para> - - <para>&a.des; also supplied the following <quote>mini - primer</quote> for CVS.</para> - - <orderedlist> - <listitem> - <para>Check out a module with the <command>co</command> or - <command>checkout</command> command.</para> - - <screen>&prompt.user; <userinput>cvs checkout shazam</userinput></screen> - - <para>This checks out a copy of the - <filename>shazam</filename> module. If there is no - <filename>shazam</filename> module in the modules file, it - looks for a top-level directory named - <filename>shazam</filename> instead.</para> - - <table frame="none"> - <title>Useful <command>cvs checkout</command> - options</title> - - <tgroup cols="2"> - <tbody> - <row> - <entry><option>-P</option></entry> - <entry>Do not create empty directories</entry> - </row> - - <row> - <entry><option>-l</option></entry> - <entry>Check out a single level, no - subdirectories</entry> - </row> - - <row> - <entry><option>-r<replaceable>rev</replaceable></option></entry> - <entry>Check out revision, branch or tag - <replaceable>rev</replaceable></entry> - </row> - - <row> - <entry><option>-D<replaceable>date</replaceable></option></entry> - <entry>Check out the sources as they were on date - <replaceable>date</replaceable></entry> - </row> - </tbody> - </tgroup> - </table> - - <para>Practical FreeBSD examples:</para> - - <itemizedlist> - <listitem> - <para>Check out the <filename>Tools</filename> module, - which corresponds to - <filename>ports/Tools</filename>:</para> - - <screen>&prompt.user; <userinput>cvs co Tools</userinput></screen> - - <para>You now have a directory named - <filename>ports/Tools</filename> with subdirectories - <filename>portbuild</filename>, - <filename>scripts</filename>, and - <filename>CVS</filename>.</para> - </listitem> - - <listitem> - <para>Check out the same files, but with full path:</para> - - <screen>&prompt.user; <userinput>cvs co ports/Tools</userinput></screen> - - <para>You now have a directory named - <filename>ports</filename>, with subdirectories - <filename>CVS</filename> and <filename>Tools</filename>. - The <filename>ports/Tools</filename> directory has - subdirectories <filename>CVS</filename> and - <filename>scripts</filename>, etc.</para> - </listitem> - - <listitem> - <para>Check out the directory <filename>Tools</filename>, - but none of the subdirectories:</para> - - <screen>&prompt.user; <userinput>cvs co -l Tools</userinput></screen> - - <para>You now have a directory named - <filename>Tools</filename> with just one subdirectory - named <filename>CVS</filename>.</para> - </listitem> - - <listitem> - <para>Check out the <filename>Tools</filename> module as - it was when support for &os; 5.X was - dropped:</para> - - <screen>&prompt.user; <userinput>cvs co -rRELEASE_5_EOL Tools</userinput></screen> - - <para>You will not be able to commit modifications, since - <literal>RELEASE_5_EOL</literal> is a point in time, not - a branch.</para> - </listitem> - - <listitem> - <para>Check out the <filename>Tools</filename> module as - it was on March 25th, 2009:</para> - - <screen>&prompt.user; <userinput>cvs co -D'2009-03-25' Tools</userinput></screen> - - <para>You will not be able to commit modifications.</para> - </listitem> - - <listitem> - <para>Check out the <filename>Tools</filename> module as - it was one week ago:</para> - - <screen>&prompt.user; <userinput>cvs co -D'last week' Tools</userinput></screen> - - <para>You will not be able to commit modifications.</para> - </listitem> - </itemizedlist> - - <para>Note that cvs stores metadata in subdirectories named - <filename>CVS</filename>. Similarly, Subversion stores - metadata in subdirectories named - <filename>.svn</filename>.</para> - - <para>Arguments to <option>-D</option> and <option>-r</option> - are sticky, which means cvs will remember them later, e.g., - when you do a <command>cvs update</command>.</para> - </listitem> - - <listitem> - <para>Check the status of checked-out files with the - <command>status</command> command.</para> - - <screen>&prompt.user; <userinput>cvs status shazam</userinput></screen> - - <para>This displays the status of the file - <filename>shazam</filename> or of every file in the - <filename>shazam</filename> directory. For every file, the - status is given as one of:</para> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - <tbody> - <row> - <entry>Up-to-date</entry> - <entry>File is up-to-date and unmodified.</entry> - </row> - - <row> - <entry>Needs Patch</entry> - <entry>File is unmodified, but there is a newer - revision in the repository.</entry> - </row> - - <row> - <entry>Locally Modified</entry> - <entry>File is up-to-date, but modified.</entry> - </row> - - <row> - <entry>Needs Merge</entry> - <entry>File is modified, and there is a newer revision - in the repository.</entry> - </row> - - <row> - <entry>File had conflicts on merge</entry> - <entry>There were conflicts the last time this file - was updated, and they have not been resolved - yet.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>You will also see the local revision and date, - the revision number of the newest applicable version - (<quote>newest applicable</quote> because if you have a - sticky date, tag or branch, it may not be the actual newest - revision), and any sticky tags, dates or options.</para> - </listitem> - - <listitem> - <para>Once you have checked something out, you can update it - with the <command>update</command> command.</para> - - <screen>&prompt.user; <userinput>cvs update shazam</userinput></screen> - - <para>This updates the file <filename>shazam</filename> or the - contents of the <filename>shazam</filename> directory to the - latest version along the branch you checked out. If you - checked out a <quote>point in time</quote>, it does nothing - unless the tags have moved in the repository or some other - weird stuff is going on.</para> - - <para>Useful options, in addition to those listed above for - <command>checkout</command>:</para> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - <tbody> - <row> - <entry><option>-d</option></entry> - <entry>Check out any additional missing - directories.</entry> - </row> - - <row> - <entry><option>-A</option></entry> - <entry>Update to head of main branch.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>If you checked out a module with <option>-r</option> or - <option>-D</option>, running <command>cvs update</command> - with a different <option>-r</option> or <option>-D</option> - argument or with <option>-A</option> will select a new - branch, revision or date. The <option>-A</option> option - clears all sticky tags, dates or revisions whereas - <option>-r</option> and <option>-D</option> set new - ones.</para> - - <para>Theoretically, specifying <literal>HEAD</literal> as the - argument to <option>-r</option> will give you the same - result as <option>-A</option>, but that is just - theory.</para> - - <para>The <option>-d</option> option is useful if:</para> - - <itemizedlist> - <listitem> - <para>somebody has added subdirectories to the module - you have checked out after you checked it out.</para> - </listitem> - - <listitem> - <para>you checked out with <option>-l</option>, and later - change your mind and want to check out the - subdirectories as well.</para> - </listitem> - - <listitem> - <para>you deleted some subdirectories and want to check - them all back out.</para> - </listitem> - </itemizedlist> - - <para><emphasis>Watch the output of the <command>cvs - update</command> with care.</emphasis> The letter in - front of each filename indicates what was done with - it:</para> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - <tbody> - <row> - <entry><literal>U</literal></entry> - <entry>The file was updated without trouble.</entry> - </row> - - <row> - <entry><literal>P</literal></entry> - <entry>The file was updated without trouble (you will - only see this when working against a remote - repository).</entry> - </row> - - <row> - <entry><literal>M</literal></entry> - <entry>The file had been modified, and was merged - without conflicts.</entry> - </row> - - <row> - <entry><literal>C</literal></entry> - <entry>The file had been modified, and was merged with - conflicts.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Merging is what happens if you check out a copy of some - file, modify it, then someone else commits a change, and you - run <command>cvs update</command>. CVS notices that you have - made local changes, and tries to merge your changes with the - changes between the version you originally checked out and - the one you updated to. If the changes are to separate - portions of the file, it will almost always work fine - (though the result might not be syntactically or - semantically correct).</para> - - <para>CVS will print an <literal>M</literal> in front of every - locally modified file even if there is no newer version in - the repository, so <command>cvs update</command> is handy - for getting a summary of what you have changed - locally.</para> - - <para>If you get a <literal>C</literal>, then your changes - conflicted with the changes in the repository (the changes - were to the same lines, or neighboring lines, or you changed - the local file so much that <command>cvs</command> can not - figure out how to apply the repository's changes). You will - have to go through the file manually and resolve the - conflicts; they will be marked with rows of - <literal><</literal>, <literal>=</literal> and - <literal>></literal> signs. For every conflict, there - will be a marker line with seven <literal><</literal> - signs and the name of the file, followed by a chunk of what - your local file contained, followed by a separator line with - seven <literal>=</literal> signs, followed by the - corresponding chunk in the repository version, followed by a - marker line with seven <literal>></literal> signs and the - revision number you updated to.</para> - </listitem> - - <listitem> - <para>View differences between the local version and the - repository version with the <command>diff</command> - command.</para> - - <screen>&prompt.user; <userinput>cvs diff shazam</userinput></screen> - - <para>shows you every modification you have made to the - <filename>shazam</filename> file or module.</para> - - <table frame="none"> - <title>Useful <command>cvs diff</command> options</title> - - <tgroup cols="2"> - <tbody> - <row> - <entry><option>-u</option></entry> - <entry>Uses the unified diff format.</entry> - </row> - - <row> - <entry><option>-c</option></entry> - <entry>Uses the context diff format.</entry> - </row> - - <row> - <entry><option>-N</option></entry> - <entry>Shows missing or added files.</entry> - </row> - </tbody> - </tgroup> - </table> - - <para>You always want to use <option>-u</option>, since - unified diffs are much easier to read than almost any other - diff format (in some circumstances, context diffs generated - with the <option>-c</option> option may be better, but they - are much bulkier). A unified diff consists of a series of - hunks. Each hunk begins with a line that starts with two - <literal>@</literal> signs and specifies where in the file - the differences are and how many lines they span. This is - followed by a number of lines; some (preceded by a blank) - are context; some (preceded by a <literal>-</literal> sign) - are outtakes and some (preceded by a <literal>+</literal>) - are additions.</para> - - <para>You can also diff against a different version than the - one you checked out by specifying a version with - <option>-r</option> or <option>-D</option> as in - <command>checkout</command> or <command>update</command>, or - even view the diffs between two arbitrary versions (without - regard for what you have locally) by specifying - <emphasis>two</emphasis> versions with <option>-r</option> - or <option>-D</option>.</para> - </listitem> - - <listitem> - <para>View log entries with the <command>log</command> - command.</para> - - <screen>&prompt.user; <userinput>cvs log shazam</userinput></screen> - - <para>If <filename>shazam</filename> is a file, this will - print a <emphasis>header</emphasis> with information about - this file, such as where in the repository this file is - stored, which revision is the <literal>HEAD</literal> for - this file, what branches this file is in, and any tags that - are valid for this file. Then, for each revision of this - file, a log message is printed. This includes the date and - time of the commit, who did the commit, how many lines were - added and/or deleted, and finally the log message that the - committer who did the change wrote.</para> - - <para>If <filename>shazam</filename> is a directory, then the - log information described above is printed for each file in - the directory in turn. Unless you give the - <option>-l</option> to <command>log</command>, the log for - all subdirectories of <filename>shazam</filename> is printed - too, in a recursive manner.</para> - - <para>Use the <command>log</command> command to view the - history of one or more files, as it is stored in the CVS - repository. You can even use it to view the log message of - a specific revision, if you add the - <option>-r<replaceable>rev</replaceable></option> to the - <command>log</command> command:</para> - - <screen>&prompt.user; <userinput>cvs log -r1.2 shazam</userinput></screen> - - <para>This will print only the log message for revision - <literal>1.2</literal> of file <filename>shazam</filename> - if it is a file, or the log message for revision - <literal>1.2</literal> of each file under - <filename>shazam</filename> if it is a directory.</para> - </listitem> - - <listitem> - <para>See who did what with the <command>annotate</command> - command. This command shows you each line of the specified - file or files, along with which user most recently changed - that line.</para> - - <screen>&prompt.user; <userinput>cvs annotate shazam</userinput></screen> - </listitem> - - <listitem> - <para>Add new files with the <command>add</command> - command.</para> - - <para>Create the file, <command>cvs add</command> it, then - <command>cvs commit</command> it.</para> - - <para>Similarly, you can add new directories by creating them - and then <command>cvs add</command>ing them. Note that you - do not need to commit directories.</para> - </listitem> - - <listitem> - <para>Remove obsolete files with the <command>remove</command> - command.</para> - - <para>Remove the file, then <command>cvs rm</command> it, then - <command>cvs commit</command> it.</para> - </listitem> - - <listitem> - <para>Commit with the <command>commit</command> or - <command>checkin</command> command.</para> - - <table frame="none"> - <title>Useful <command>cvs commit</command> options</title> - - <tgroup cols="2"> - <tbody> - <row> - <entry><option>-f</option></entry> - <entry>Force a commit of an unmodified file.</entry> - </row> - - <row> - <entry><option>-m<replaceable>msg</replaceable></option></entry> - <entry>Specify a commit message on the command line - rather than invoking an editor.</entry> - </row> - </tbody> - </tgroup> - </table> - - <para>The following are some Subversion examples related to - the src repository. More (in-depth) information can be - found in the Subversion Primer at <xref - linkend="subversion-primer"/> and <ulink - url="http://wiki.freebsd.org/SubversionMissing">List of - things missing in Subversion when compared to CVS</ulink>. - The notes at <ulink - url="http://people.freebsd.org/~peter/svn_notes.txt"></ulink> - might also be useful. Subversion is also described in-depth - in <ulink url="http://svnbook-red-bean.com/">Version Control - with Subversion</ulink>.</para> - - <itemizedlist> - <listitem> - <para>Check out the <literal>head</literal> branch:</para> - - <screen>&prompt.user; <userinput>svn co svn+ssh://svn.freebsd.org/base/head /usr/src</userinput></screen> - </listitem> - </itemizedlist> - - <para>Good commit messages are important. They tell others why - you did the changes you did, not just right here and now, - but months or years from now when someone wonders why some - seemingly illogical or inefficient piece of code sneaked - into your source file. It is also an invaluable aid to - deciding which changes to MFC and which not to MFC.</para> - - <para>Commit messages should be clear, concise and provide - a reasonable summary to give an indication of what was - changed and why.</para> - - <para>Commit messages should provide enough information to - enable a third party to decide if the change is relevant to - them and if they need to read the change itself.</para> - - <para>Avoid committing several unrelated changes in one go. It - makes merging difficult, and also makes it harder to - determine which change is the culprit if a bug crops - up.</para> - - <para>Avoid committing style or whitespace fixes and - functionality fixes in one go. It makes merging difficult, - and also makes it harder to understand just what functional - changes were made. In the case of documentation files, it - can make the job of the translation teams more complicated, - as it becomes difficult for them to determine exactly what - content changes need to be translated.</para> - - <para>Avoid committing changes to multiple files in one go - with a generic, vague message. Instead, commit each file (or - small, related groups of files) with tailored commit - messages.</para> - - <para>Before committing, <emphasis>always</emphasis>:</para> - - <itemizedlist> - <listitem> - <para>verify which branch you are committing to, using - <command>svn status</command>. This is only needed for - the src tree, as the other trees are not branched.</para> - </listitem> - - <listitem> - <para>review your diffs, using the diff command of the - version control system.</para> - </listitem> - </itemizedlist> - - <para>Also, ALWAYS specify which files to commit explicitly on - the command line, so you do not accidentally commit other - files than the ones you intended — a commit operation - without any arguments usually will commit every modification - in your current working directory and every - subdirectory.</para> - </listitem> - </orderedlist> - - <para>Additional tips and tricks:</para> - - <orderedlist> - <listitem> - - <para>You can place commonly used options in your - <filename>~/.cvsrc</filename>, like this:</para> - - <programlisting>cvs -z3 -diff -Nu -update -Pd -checkout -P</programlisting> - - <para>This example says:</para> - - <itemizedlist> - <listitem> - <para>always use compression level 3 when talking to a - remote server. This is a life-saver when working over a - slow connection.</para> - </listitem> - - <listitem> - <para>always use the <option>-N</option> (show added or - removed files) and <option>-u</option> (unified diff - format) options to &man.diff.1;.</para> - </listitem> - - <listitem> - <para>always use the <option>-P</option> (prune empty - directories) and <option>-d</option> (check out new - directories) options when updating.</para> - </listitem> - - <listitem> - <para>always use the <option>-P</option> (prune empty - directories) option when checking out.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Use Eivind Eklund's <command>cdiff</command> script to - view unidiffs. It is a wrapper for &man.less.1; that adds - ANSI color codes to make hunk headers, outtakes and - additions stand out; context and garbage are unmodified. It - also expands tabs properly (tabs often look wrong in diffs - because of the extra character in front of each - line).</para> - - <para><filename - role="package">textproc/cdiff</filename></para> - - <para>Simply use it instead of &man.more.1; or - &man.less.1;:</para> - - <screen>&prompt.user; <userinput>cvs diff -Nu shazam | cdiff</userinput></screen> - - <para>Alternatively some editors like &man.vim.1; (<filename - role="package">editors/vim</filename>) have color support - and when used as a pager with color syntax highlighting - switched on will highlight many types of file, including - diffs, patches, and CVS/RCS logs.</para> - - <screen>&prompt.user; <userinput>echo "syn on" >> ~/.vimrc </userinput> -&prompt.user; <userinput>cvs diff -Nu shazam | vim -</userinput> -&prompt.user; <userinput>cvs log shazam | vim -</userinput> </screen> - </listitem> - - <listitem> - <para>CVS is old, arcane, crufty and buggy, and sometimes - exhibits non-deterministic behavior which some claim as - proof that it is actually merely the Newtonian manifestation - of a sentient transdimensional entity. It is not humanly - possible to know its every quirk inside out, so do not be - afraid to ask the resident AI (&a.cvsadm;) for help.</para> - </listitem> - - <listitem> - <para>Do not leave the <command>cvs commit</command> command - in commit message editing mode for too long (more than - 2–3 minutes). It locks the directory you are working - with and will prevent other developers from committing into - the same directory. If you have to type a long commit - message, type it before executing <command>cvs - commit</command> and insert it into the commit message or - save it in a file before committing and use the - <option>-F</option> option of CVS to read the commit message - from that file, i.e.,</para> - - <screen>&prompt.user; <userinput>vi logmsg</userinput> -&prompt.user; <userinput>cvs ci -F logmsg shazam</userinput></screen> - - <para>This is the fastest way of passing a commit message to - CVS but you should be careful when editing the - <filename>logmsg</filename> file before the commit, because - CVS will not give you a chance to edit the message when you - do the actual commit.</para> - </listitem> - - <listitem> - <para>Speed up your CVS operation considerably by using a - persistent ssh connection to the repository machine. First, - put this configuration into your - <filename>~/.ssh/config</filename>:</para> - - <programlisting>Host pcvs.FreeBSD.org - ControlPath /home/<replaceable>user</replaceable>/.ssh/cvs.cpath -Host projcvs.FreeBSD.org - ControlPath /home/<replaceable>user</replaceable>/.ssh/cvs.cpath</programlisting> - - <para>Now open the persistent connection to the - repoman:</para> - - <screen>&prompt.user; <userinput>ssh -fNM ncvs.FreeBSD.org</userinput></screen> - - <para>The CVS commands should now respond faster, as they are - reusing existing connection with the repository. Note that - all the hostnames are case sensitive.</para> - </listitem> - </orderedlist> - </sect1> + tree as of May 2008, the <literal>doc/www</literal> tree as of + May 2012 and the <literal>ports</literal> tree as of July 2012. + </para> - <sect1 id="subversion-primer"> - <title>Subversion Primer</title> + <para><ulink url="http://wiki.freebsd.org/SubversionMissing">There + is a list of things missing in Subversion when compared to CVS + </ulink>. The notes at <ulink + url="http://people.freebsd.org/~peter/svn_notes.txt"></ulink> + might also be useful.</para> <sect2 id="svn-intro"> <title>Introduction</title> @@ -1114,6 +309,11 @@ Host projcvs.FreeBSD.org <literal>head/<replaceable>lang</replaceable>/htdocs/</literal>.</para> </note> + <para>The &os; <literal>ports</literal> repository switched + from <acronym>CVS</acronym> to Subversion on July 14th, 2012. + The first real <acronym>SVN</acronym> commit is + <emphasis>r300894</emphasis>.</para> + <para>There are mechanisms in place to automatically merge changes back from the Subversion repository to the <acronym>CVS</acronym> one, so regular users should not notice @@ -1186,12 +386,19 @@ Host projcvs.FreeBSD.org <screen>&prompt.user; <userinput>svn checkout svn+ssh://svn.freebsd.org/doc/head /usr/doc</userinput></screen> + <para>For the <literal>ports</literal> tree, use:</para> + + <screen>&prompt.user; <userinput>svn checkout svn+ssh://svn.freebsd.org/ports/head /usr/ports</userinput></screen> + <note> <para>Though the remaining examples in this document are written with the workflow of working with the <literal>src</literal> tree in mind, the underlying concepts are the same for working with the - <literal>doc</literal> tree.</para> + <literal>doc</literal> and the <literal>ports</literal> + tree. + Ports related Subversion operations are listed in + <xref linkend="ports"/>.</para> </note> <para>The above command will check out a @@ -1460,6 +667,39 @@ Host projcvs.FreeBSD.org </listitem> </itemizedlist> </sect3> + + <sect3> + <title>&os; Ports Tree Branches and Layout</title> + + <para>In <literal>svn+ssh://svn.freebsd.org/ports</literal>, + <emphasis>ports</emphasis> refers repository root of the + ports tree.</para> + + <para>In general, most &os; port work will be done within + the <filename>head/</filename> branch of the ports tree + which is the actual ports tree used to install software. + Some other key locations are:</para> + + <itemizedlist> + <listitem> + <para><emphasis>/branches/RELENG_<replaceable>n_n_n + </replaceable></emphasis> which corresponds to + <literal>RELENG_<replaceable>n_n_n</replaceable></literal> + is used to merge back security updates in preparation + for a release.</para> + </listitem> + <listitem> + <para><emphasis>/tags/RELEASE_<replaceable>n_n_n</replaceable></emphasis> + which corresponds to <literal>RELEASE_<replaceable>n_n_n</replaceable></literal> + represents a release tag of the ports tree.</para> + </listitem> + <listitem> + <para><emphasis>/tags/RELEASE_<replaceable>n</replaceable>_EOL</emphasis> + represents the end of life tag of a specific &os; + branch.</para> + </listitem> + </itemizedlist> + </sect3> </sect2> <sect2 id="svn-daily-use"> @@ -1613,6 +853,13 @@ Host projcvs.FreeBSD.org in a single operation:</para> <screen>&prompt.user; <userinput>svn commit <replaceable>lib/libfetch</replaceable> <replaceable>usr/bin/fetch</replaceable></userinput></screen> + + <para>There is also a commit wrapper for the ports tree + to handle the properties and sanity checking your + changes:</para> + + <screen>&prompt.user; <userinput>/usr/ports/Tools/scripts/psvn commit + </userinput></screen> </sect3> <sect3 id="subversion-primer-add-remove"> @@ -1621,6 +868,9 @@ Host projcvs.FreeBSD.org <note> <para>Before adding files, get a copy of <ulink url="http://people.freebsd.org/~peter/auto-props.txt">auto-props.txt</ulink> + (there is also a <ulink + url="http://people.freebsd.org/~beat/cvs2svn/auto-props.txt"> + ports tree specific version</ulink>) and add it to <filename>~/.subversion/config</filename> according to the instructions in the file. If you added something before you've read this, you may use @@ -1628,7 +878,8 @@ Host projcvs.FreeBSD.org files, fix your config file and re-add them again. The initial config file is created when you first run a svn command, even something as simple as <command>svn - help</command>.</para> + help</command>. + </para> </note> <para>As with <acronym>CVS</acronym>, files are added to a @@ -2728,6 +1979,9 @@ $target - head/$source:$P,$Q,$R</screen> <para>In commit logs etc., <quote>rev 179872</quote> should be spelled <quote>r179872</quote> as per convention.</para> + <para>Don't remove and re-add the same file in a single commit + as this will break the CVS exporter.</para> + <para>Speeding up checkouts and minimising network traffic is possible with the following recipe:</para> @@ -4291,7 +3545,7 @@ $target - head/$source:$P,$Q,$R</screen> <procedure> <step> - <para>Remove the port's files via <command>cvs remove</command>.</para> + <para>Remove the port's files via <command>svn remove</command>.</para> </step> <step> @@ -4333,20 +3587,20 @@ $target - head/$source:$P,$Q,$R</screen> <para>This is essentially the reverse of deleting a port.</para> <procedure> <step> - <para>Figure out when the port was removed. Use the ports - <ulink url="http://www.freebsd.org/cgi/cvsweb.cgi/ports/">cvsweb</ulink> - and then navigate to - <replaceable>category</replaceable>/<replaceable>portname</replaceable>/<filename>Attic</filename>/ . + <para>Figure out when the port was removed. Use this + <ulink url="http://people.freebsd.org/~crees/removed_ports/index.xml">list</ulink> + and then copy the last living revision of the port: + + <screen>&prompt.user; <userinput>cd /usr/ports/<replaceable>category + </replaceable></userinput> +&prompt.user; <userinput>svn cp 'svn+ssh://svn.freebsd.org/ports/<replaceable>category</replaceable>/<replaceable>portname</replaceable>/@{<replaceable>YYYY-MM-DD</replaceable>}' <replaceable>portname</replaceable> + </userinput></screen> + Pick a date that is before the removal but after the last true commit.</para> </step> <step> - <para>In the proper directory: -<command>cvs update -D <replaceable>datespec</replaceable></command>.</para> - </step> - - <step> <para>Perform whatever changes are necessary to make the port work again. If it was deleted because the distfiles are no longer available you will need to volunteer to host them @@ -4354,7 +3608,8 @@ $target - head/$source:$P,$Q,$R</screen> </step> <step> - <para><command>cvs add</command> the updated files.</para> + <para><command>svn add</command> or <command>svn remove</command> + any appropriate files.</para> </step> <step> @@ -4369,7 +3624,7 @@ $target - head/$source:$P,$Q,$R</screen> </step> <step> - <para><command>cvs commit</command> these changes, preferably in + <para><command>svn commit</command> these changes, preferably in one step.</para> </step> </procedure> @@ -4406,42 +3661,27 @@ $target - head/$source:$P,$Q,$R</screen> <qandaentry> <question> - <para>When do we <emphasis>not</emphasis> need a - repository copy?</para> - </question> - - <answer> - <para>When there is no history to preserve. If a port is - added into a wrong category and is moved immediately, - it suffices to simply <command>cvs remove</command> the - old one and <command>addport</command> the new - one.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> <para>What do I need to do?</para> </question> <answer> - <para>File a PR in <application>GNATS</application>, listing the - reasons for the repository copy request. Assign it to - <literal>portmgr</literal> and set <varname>state</varname> to - <literal>repocopy</literal>. In a few days, - <literal>portmgr</literal> will do - a repository copy from the old to the new location, and - reassign the PR back to you. Once everything is done, perform the - following:</para> + <para>With Subversion, a repo copy can be done by any + committer:</para> <itemizedlist> <listitem> - <para>When a port has been repo copied:</para> + <para>Doing a repo copy:</para> <procedure> <step> - <para>Do a force commit on the files of the copied port, - stating repository copy was performed.</para> + <para>First make sure that you were using an up to + date port stree and the target directory does not + exist.</para> + </step> + + <step> + <para>Use <command>svn move</command> or <command>svn + copy</command> to do the repo copy.</para> </step> <step> @@ -4481,6 +3721,11 @@ $target - head/$source:$P,$Q,$R</screen> <filename>ports/MOVED</filename>, if you remove the original port.</para> </step> + + <step> + <para>Commit all changes on one commit. A forced commit + is no longer needed with Subversion.</para> + </step> </procedure> </listitem> @@ -4958,7 +4203,7 @@ bak/packages packages from last complete <major_version> run on <arch& <answer> <para>No, <filename>INDEX</filename> is no longer stored - in the CVS repository. The file can either be generated + in the SVN repository. The file can either be generated by running <command>make index</command>, or a pre-generated version can be downloaded with <command>make fetchindex</command>.</para> diff --git a/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml b/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml index 2c3cdd4c52..90af09b5b2 100644 --- a/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml +++ b/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml @@ -1478,11 +1478,6 @@ </listitem> <listitem> - <para>Bryan Drewery - <email>bryan@shatow.net</email></para> - </listitem> - - <listitem> <para>Byung-Hee HWANG <email> bh@izb.knu.ac.kr</email></para> </listitem> @@ -2608,6 +2603,11 @@ </listitem> <listitem> + <para>Dmitry Pryadko + <email>d.pryadko@rambler-co.ru</email></para> + </listitem> + + <listitem> <para>Dmitry Semkin <email>ds@tic-tac.ru</email></para> </listitem> @@ -5307,6 +5307,11 @@ </listitem> <listitem> + <para>Kubilay Kocak + <email>koobs.freebsd@gmail.com</email></para> + </listitem> + + <listitem> <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.jp</email></para> </listitem> @@ -5929,6 +5934,11 @@ </listitem> <listitem> + <para>Lukasz Stelmach + <email>lukasz.stelmach@iem.pw.edu.pl</email></para> + </listitem> + + <listitem> <para>Lupe Christoph <email>lupe@lupe-christoph.de</email></para> </listitem> @@ -6058,6 +6068,11 @@ </listitem> <listitem> + <para>Marcello Silva Coutinho + <email>marcellocoutinho@gmail.com</email></para> + </listitem> + + <listitem> <para>Marcelo/Porks Rossi <email>marcelorossi@gmail.com</email></para> </listitem> @@ -6286,6 +6301,11 @@ </listitem> <listitem> + <para>Martin Neubauer + <email>m.ne@gmx.net</email></para> + </listitem> + + <listitem> <para>Martin Otto <email>gamato@users.sf.net</email></para> </listitem> @@ -7324,11 +7344,6 @@ </listitem> <listitem> - <para>Niclas Zeising - <email>niclas.zeising@gmail.com</email></para> - </listitem> - - <listitem> <para>Nikola Lecic <email>nikola.lecic@anthesphoria.net</email></para> </listitem> @@ -8717,6 +8732,11 @@ </listitem> <listitem> + <para>Rodrigo Osorio + <email>rodrigo@bebik.net</email></para> + </listitem> + + <listitem> <para>Roger Hardiman <email>roger@cs.strath.ac.uk</email></para> </listitem> @@ -8887,6 +8907,11 @@ </listitem> <listitem> + <para>RyoTa SimaMoto + <email>liangtai.s4@gmail.com </email></para> + </listitem> + + <listitem> <para>Ryuichiro IMURA <email>imura@af.airnet.ne.jp</email></para> </listitem> @@ -9303,7 +9328,7 @@ <listitem> <para>Simon J Gerraty - <email>sjg@melb.bull.oz.au</email></para> + <email>sjg@juniper.net</email></para> </listitem> <listitem> diff --git a/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml b/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml index a3ce3e8401..2f633051b4 100644 --- a/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml +++ b/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml @@ -312,6 +312,10 @@ </listitem> <listitem> + <para>&a.bdrewery;</para> + </listitem> + + <listitem> <para>&a.gad;</para> </listitem> @@ -1600,6 +1604,10 @@ </listitem> <listitem> + <para>&a.zeising;</para> + </listitem> + + <listitem> <para>&a.phantom;</para> </listitem> diff --git a/en_US.ISO8859-1/articles/contributors/contrib.corealumni.sgml b/en_US.ISO8859-1/articles/contributors/contrib.corealumni.sgml index 5ea92905ec..a7115ef558 100644 --- a/en_US.ISO8859-1/articles/contributors/contrib.corealumni.sgml +++ b/en_US.ISO8859-1/articles/contributors/contrib.corealumni.sgml @@ -3,6 +3,26 @@ <itemizedlist> <listitem> + <para>&a.wilko; (2006 - 2012)</para> + </listitem> + + <listitem> + <para>&a.brooks; (2006 - 2012)</para> + </listitem> + + <listitem> + <para>&a.pav; (2010 - 2012)</para> + </listitem> + + <listitem> + <para>&a.cperciva; (2010 - 2012)</para> + </listitem> + + <listitem> + <para>&a.rwatson; (2000 - 2012)</para> + </listitem> + + <listitem> <para>&a.keramida; (2006 - 2010)</para> </listitem> @@ -22,15 +42,15 @@ <para>&a.wes; (2002 - 2008)</para> </listitem> + <!-- <listitem> <para>&a.peter; (1995 - 2006, 2008 - 2010)</para> </listitem> + --> - <!-- <listitem> - <para>&a.imp; (2000 - 2008)</para> + <para>&a.imp; (2000 - 2008, 2010 - 2012)</para> </listitem> - --> <listitem> <para>&a.markm; (2002 - 2006)</para> @@ -123,7 +143,7 @@ </listitem> <listitem> - <para>John Dyson (1993 - 1998)</para> + <para>&a.dyson; (1993 - 1998)</para> </listitem> <listitem> @@ -135,7 +155,7 @@ </listitem> <listitem> - <para>Andreas Schulz (1992 - 1995)</para> + <para>&a.ats; (1992 - 1995)</para> </listitem> <listitem> @@ -151,14 +171,14 @@ </listitem> <listitem> - <para>Andrew Moore (1993 - 1994)</para> + <para>&a.alm; (1993 - 1994)</para> </listitem> <listitem> - <para>Christoph Robitschko (1993 - 1994)</para> + <para>&a.chmr; (1993 - 1994)</para> </listitem> <listitem> - <para>J. T. Conklin (1992 - 1993)</para> + <para>&a.jtc; (1992 - 1993)</para> </listitem> </itemizedlist> diff --git a/en_US.ISO8859-1/articles/hubs/article.sgml b/en_US.ISO8859-1/articles/hubs/article.sgml index 8ff92594ee..9e4a95f06f 100644 --- a/en_US.ISO8859-1/articles/hubs/article.sgml +++ b/en_US.ISO8859-1/articles/hubs/article.sgml @@ -256,14 +256,10 @@ <itemizedlist> <listitem> - <para><filename role="package">www/apache13</filename>: + <para><filename role="package">www/apache22</filename>: <application>Apache</application> is the most widely deployed web server on the Internet. It is used - extensively by the FreeBSD Project. You may also wish to - use the next generation of the - <application>Apache</application> web server, available - in the ports collection as <filename - role="package">www/apache22</filename>.</para> + extensively by the FreeBSD Project.</para> </listitem> <listitem> diff --git a/en_US.ISO8859-1/articles/linux-users/article.sgml b/en_US.ISO8859-1/articles/linux-users/article.sgml index 44a4b7a44a..9d4722c051 100644 --- a/en_US.ISO8859-1/articles/linux-users/article.sgml +++ b/en_US.ISO8859-1/articles/linux-users/article.sgml @@ -316,7 +316,7 @@ apache22_flags="-DSSL"</programlisting> &linux; uses to identify a network interface, &os; uses the driver name followed by a number as the identifier. The following output from &man.ifconfig.8; shows two &intel; Pro 1000 network - interfaces (em0 and em1):</para> + interfaces (<devicename>em0</devicename> and <devicename>em1</devicename>):</para> <screen>&prompt.user; <userinput>ifconfig</userinput> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 diff --git a/en_US.ISO8859-1/articles/portbuild/article.sgml b/en_US.ISO8859-1/articles/portbuild/article.sgml index 7b15b227b4..85d102bc47 100644 --- a/en_US.ISO8859-1/articles/portbuild/article.sgml +++ b/en_US.ISO8859-1/articles/portbuild/article.sgml @@ -2628,8 +2628,8 @@ ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/build </listitem> <listitem> - <para>(Only necessary for old codebase): - In that + <para> + In the <filename>/var/portbuild/errorlogs/</filename> directory, create two more links for the webserver:<screen> ln -s ../<replaceable>arch</replaceable>/archive/buildlogs <replaceable>arch</replaceable>-buildlogs ln -s ../<replaceable>arch</replaceable>/archive/errorlogs <replaceable>arch</replaceable>-errorlogs</screen></para> diff --git a/en_US.ISO8859-1/articles/pxe/Makefile b/en_US.ISO8859-1/articles/pxe/Makefile deleted file mode 100644 index 6f545e20a8..0000000000 --- a/en_US.ISO8859-1/articles/pxe/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# -# $FreeBSD$ -# -# Article: FreeBSD PXE Jumpstart Guide - -DOC?= article - -FORMATS?= html - -INSTALL_COMPRESSED?=gz -INSTALL_ONLY_COMPRESSED?= - -EXTRAS= dhcpd.conf -EXTRAS+= install.cfg -EXTRAS+= loader.rc -EXTRAS+= pkgmaker.sh -EXTRAS+= post -EXTRAS+= pre - -SRCS= article.sgml - -afterinstall: -.for entry in ${EXTRAS} - ${INSTALL_DOCS} ${.CURDIR}/${entry} ${DESTDIR} -.endfor - -DOC_PREFIX?= ${.CURDIR}/../../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/articles/pxe/article.sgml b/en_US.ISO8859-1/articles/pxe/article.sgml deleted file mode 100644 index 9748d9a3b0..0000000000 --- a/en_US.ISO8859-1/articles/pxe/article.sgml +++ /dev/null @@ -1,300 +0,0 @@ -<?xml version="1.0" encoding="ISO8859-1" standalone="no"?> -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" - "../../../share/sgml/freebsd42.dtd" [ -<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//EN" "../../share/sgml/entities.ent"> -%entities; -]> - -<article lang='en'> - <articleinfo> - <title>FreeBSD Jumpstart Guide</title> - - <authorgroup> - <author> - <firstname>Alfred</firstname> - <surname>Perlstein</surname> - - <affiliation> - <address><email>alfred@FreeBSD.org</email></address> - </affiliation> - </author> - </authorgroup> - - <legalnotice id="trademarks" role="trademarks"> - &tm-attrib.freebsd; - &tm-attrib.intel; - &tm-attrib.general; - </legalnotice> - - <pubdate>$FreeBSD$</pubdate> - - <releaseinfo>$FreeBSD$</releaseinfo> - - <abstract> - <para>This article details the method used to allow machines to install - FreeBSD using the &intel; PXE method of booting a machine over a network. - </para> - </abstract> - </articleinfo> - - <sect1 id="warning-outdated"> - <title>This Article is Outdated</title> - - <warning> - <para>This article is outdated and will be removed in a few - weeks. Please see the &os; Handbook chapter <ulink - url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-pxe-nfs.html">here</ulink> - for an updated procedure.</para> - </warning> - </sect1> - - <sect1 id="introduction"> - <title>Introduction</title> - - <warning> - <para>This procedure will make the <quote>Server</quote> both insecure and dangerous, - it is best to just keep the <quote>Server</quote> on its own hub and not in any way - accessible by any machines other than the <quote>Clients</quote>.</para> - </warning> - - <para>Terminology:</para> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - - <tbody> - <row> - <entry>Server</entry> - <entry>The machine offering netboot and install options.</entry> - </row> - - <row> - <entry>Client</entry> - <entry>The machine that will have FreeBSD installed on it.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Requires: - Clients supporting the &intel; PXE netboot option, an Ethernet connection. - </para> - - <para>Please let me know if you come across anything you have problems with - or suggestions for additional documentation.</para> - - <para>If you would like someone to train/implement a specific netinstall system - for you, please send email so that we can discuss terms.</para> - - <para>I would also like to thank &a.ps; and &a.jhb; for doing most of the - programming work on pxeboot, the interface to the &intel; PXE (netboot) - system.</para> - </sect1> - - <sect1 id="server-config"> - <title>Server Configuration</title> - - <procedure> - <step> - <para>Install DHCP: Install <filename role="package">net/isc-dhcp3-server</filename> you can use this config file - <ulink url="dhcpd.conf"> - <filename>dhcpd.conf</filename></ulink>, stick it in <filename>/usr/local/etc/</filename>.</para> - </step> - - <step> - <para>Enable tftp:</para> - - <procedure> - <step> - <para>Make a directory <filename>/usr/tftpboot</filename></para> - </step> - - <step> - <para>Add this line to your - <filename>/etc/inetd.conf</filename>:</para> - -<programlisting>tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /usr/tftpboot</programlisting> - </step> - </procedure> - - </step> - - <step> - <para>Enable NFS:</para> - - <procedure> - <step> - <para>Add this to <filename>/etc/rc.conf</filename>:</para> - - <programlisting>nfs_server_enable="YES"</programlisting> - </step> - - <step> - <para>Add this to <filename>/etc/exports</filename>:</para> - - <programlisting>/usr -alldirs -ro</programlisting> - </step> - </procedure> - </step> - - <step> - <para>Reboot to enable the new services or start them - manually.</para> - </step> - </procedure> - </sect1> - - <sect1 id="bootstrap-config"> - <title>Bootstrap Setup</title> - - <procedure> - <step> - <para>Download bootfiles: Download the - <ulink - url="&snapshots.stable;/floppies/kern.flp"> - kern.flp</ulink> and - <ulink - url="&snapshots.stable;/floppies/mfsroot.flp"> - mfsroot.flp</ulink> floppy images.</para> - </step> - - <step> - <para>Set up tftp/pxe-boot directory:</para> - - <procedure> - <step> - <para>Put pxeboot in the boot directory:</para> - - <screen>&prompt.root; <userinput>rm -rf /usr/obj/*</userinput> -&prompt.root; <userinput>cd /usr/src/sys/boot</userinput> -&prompt.root; <userinput>make</userinput> -&prompt.root; <userinput>cp /usr/src/sys/boot/i386/pxeldr/pxeboot /usr/tftpboot</userinput></screen> - </step> - - <step> - <para>Using the vndevice mount the <filename>kern.flp</filename> - file and copy its contents to - <filename>/usr/tftpboot</filename>:</para> - - <screen>&prompt.root; <userinput>mdconfig -a -t vnode -f kern.flp -u 0</userinput> # (vnconfig vn0 kern.flp) associate a vndevice with the file -&prompt.root; <userinput>mount /dev/md0 /mnt</userinput> # (mount /dev/vn0 /mnt) mount it -&prompt.root; <userinput>cp -R /mnt /usr/tftpboot</userinput> # copy the contents to /usr/tftpboot -&prompt.root; <userinput>umount /mnt</userinput> # unmount it -&prompt.root; <userinput>vnconfig -u vn0</userinput> # disassociate the vndevice from the file</screen> - </step> - </procedure> - </step> - - <step> - <para>Compile a custom kernel for the clients (particularly to avoid - the device config screen at boot) and stick it in - <filename>/usr/tftpboot</filename>.</para> - </step> - - <step> - <para>Make a special <filename>loader.rc</filename> to and install it - in <filename>/usr/tftpboot/boot/loader.rc</filename> so that it - does not prompt for the second disk, here is - <ulink url="loader.rc">mine</ulink>.</para> - </step> - - <step> - <para>Extract the installer and helper utilities from the mfsroot disk - and uncompress them, put them in <filename>/usr/tftpboot</filename> - as well:</para> - - <screen>&prompt.root; <userinput>vnconfig vn0 mfsroot.flp</userinput> # associate a vndevice with the file -&prompt.root; <userinput>mount /dev/vn0 /mnt</userinput> # mount it -&prompt.root; <userinput>cp /mnt/mfsroot.gz /usr/tftpboot</userinput> # copy the contents to /usr/tftpboot -&prompt.root; <userinput>umount /mnt</userinput> # unmount it -&prompt.root; <userinput>vnconfig -u vn0</userinput> # disassociate the vndevice from the file -&prompt.root; <userinput>cd /usr/tftpboot</userinput> # get into the pxeboot directory -&prompt.root; <userinput>gunzip mfsroot.gz</userinput> # uncompress the mfsroot</screen> - </step> - - <step> - <para>Make your sysinstall script <filename>install.cfg</filename>, you - can use - <ulink url="install.cfg">mine</ulink> - as a template, but you must edit it.</para> - </step> - - <step> - <para>Copy the sysinstall script into the extracted and uncompressed - mfsroot image:</para> - - <screen>&prompt.root; <userinput>cd /usr/tftpboot</userinput> -&prompt.root; <userinput>vnconfig vn0 mfsroot</userinput> -&prompt.root; <userinput>mount /dev/vn0 /mnt</userinput> -&prompt.root; <userinput>cp install.cfg /mnt</userinput> -&prompt.root; <userinput>umount /mnt</userinput> -&prompt.root; <userinput>vnconfig -u vn0</userinput></screen> - </step> - </procedure> - </sect1> - - <sect1 id="install-setup"> - <title>Install Setup</title> - - <procedure> - <step> - <para>Put the install files in an NFS accessible location on the - Server. Make a directory corresponding the 'nfs' directive in the - <filename> install.cfg</filename> file and mirror the FreeBSD - install files there, you will want it to look somewhat like - this:</para> - - <screen>ABOUT.TXT TROUBLE.TXT compat20 floppies ports -ERRATA.TXT UPGRADE.TXT compat21 games proflibs -HARDWARE.TXT XF86336 compat22 info src -INSTALL.TXT bin compat3x kern.flp -LAYOUT.TXT catpages crypto manpages -README.TXT cdrom.inf dict mfsroot.flp -RELNOTES.TXT compat1x doc packages</screen> - </step> - - <step> - <para>Copy the compressed packages into the packages/All directory - under <filename>nfs</filename>.</para> - </step> - - <step> - <para>Make sure you have an <filename>INDEX</filename> file prepared - in the packages directory. You can make your own - <filename>INDEX</filename> entries like so:</para> - - <programlisting>alfred-1.0||/|Alfred install bootstrap||alfred@FreeBSD.org||||</programlisting> - - <para>Then you can install custom packages, particularly your own - custom post-install package.</para> - </step> - </procedure> - </sect1> - - <sect1 id="custom-postinst-package"> - <title>Custom Post-Install Package</title> - - <para>You can use the script <ulink url="pkgmaker.sh"><filename>pkgmaker.sh - </filename></ulink> to create a - custom package for post install, the idea is to have it install and - configure any special things you may need done. - <filename>pkgmaker</filename> is run in the directory above the package - you wish to create with the single argument of the package (i.e., mypkg) - which will then create a mypkg.tgz for you to include in your sysinstall - package.</para> - - <para>Inside your custom package dir you will want a file called - <filename>PLIST</filename> which contains all the files that you wish to - install and be incorporated into your package.</para> - - <para>You will also want files called - <ulink url="pre"><filename>pre</filename></ulink> and - <ulink url="post"><filename>post</filename></ulink> - in the directory, these are shell scripts - that you want to execute before and after your package is - installed.</para> - - <para>Since this package is in your <filename>install.cfg</filename> file - it should be run and do the final configuration for you.</para> - </sect1> -</article> diff --git a/en_US.ISO8859-1/articles/pxe/dhcpd.conf b/en_US.ISO8859-1/articles/pxe/dhcpd.conf deleted file mode 100644 index c0f552817e..0000000000 --- a/en_US.ISO8859-1/articles/pxe/dhcpd.conf +++ /dev/null @@ -1,23 +0,0 @@ - -# $Wintelcom: src/freebsd/pxe/doc/dhcpd.conf,v 1.2 2000/09/24 09:18:14 bright Exp $ -# $FreeBSD$ - -option subnet-mask 255.255.255.0; -option routers 10.8.253.254; -filename "pxeboot"; - -ddns-update-style none; - -option domain-name "google.com"; -option broadcast-address 10.8.253.255; -option domain-name-servers 10.8.0.7; -server-name "DHCPserver"; -server-identifier 10.8.253.201; - -default-lease-time 7200; -max-lease-time 7200; - -subnet 10.8.253.0 netmask 255.255.255.0 { - next-server 10.8.253.201; - range 10.8.253.29 10.8.253.200; -} diff --git a/en_US.ISO8859-1/articles/pxe/install.cfg b/en_US.ISO8859-1/articles/pxe/install.cfg deleted file mode 100644 index 4f8ab16a0f..0000000000 --- a/en_US.ISO8859-1/articles/pxe/install.cfg +++ /dev/null @@ -1,203 +0,0 @@ - -# $Wintelcom: src/freebsd/pxe/doc/install.cfg,v 1.1 2000/07/14 12:42:05 bright Exp $ -# $FreeBSD$ - -# This is the installation configuration file for our rackmounted FreeBSD -# cluster machines - -# Turn on extra debugging. -debug=YES - -# Ok, this ought to turn off ALL prompting, don't complain to me that you -# lost a machine because you netbooted it on the same subnet as this -# box -nonInteractive=YES -noWarn=YES -tryDHCP=YES - -################################ -# My host specific data -hostname=booter -domainname=mydomain.com -# DHCP does this for us -#nameserver=10.0.0.1 -#defaultrouter=10.0.0.1 -#ipaddr=DHCP -#netmask=255.255.255.0 -################################ - -################################ -# Which installation device to use -nfs=x.x.x.x:/usr/releng4 -netDev=fxp0 -tryDHCP=YES -mediaSetNFS -################################ - -################################ -# Select which distributions we want. -dists= bin doc games manpages catpages proflibs dict info des compat1x compat20 compat21 compat22 compat3x crypto -distSetCustom -################################ - -################################ -# Now set the parameters for the partition editor on sd0. -disk=ad0 -partition=all -bootManager=standard -diskPartitionEditor -#diskPartitionWrite -################################ - -################################ -# All sizes are expressed in 512 byte blocks! -# -# A 96MB root partition, followed by a 0.5G swap partition, followed by -# a 1G /var, and a /usr using all the remaining space on the disk -# -ad0s1-1=ufs 1999999 / -ad0s1-2=swap 6485760 none -ad0s1-3=ufs 2097152 /var -ad0s1-4=ufs 0 /usr -# Let's do it! -diskLabelEditor -#diskLabelCommit - -# OK, everything is set. Do it! -installCommit - -package=xorg-server-1.10.4_1,1 -packageAdd - -package=arpwatch-2.1.a4 -packageAdd - -package=bash-2.04 -packageAdd - -package=bison-1.28 -packageAdd - -package=bzip2-1.0.0 -packageAdd - -package=ctags-3.5.2 -packageAdd - -package=dvips2ascii-1.3 -packageAdd - -package=electricfence-2.0.5 -packageAdd - -package=emacs-20.6 -packageAdd - -package=enscript-letter-1.6.1 -packageAdd - -package=fping-1.20 -packageAdd - -package=gawk-3.0.4 -packageAdd - -package=gdbm-1.8.0 -packageAdd - -package=gettext-0.10.35 -packageAdd - -package=gmake-3.79 -packageAdd - -package=ispell-3.1.20c -packageAdd - -package=less-352 -packageAdd - -package=libgnugetopt-1.1 -packageAdd - -package=libtool-1.3.4 -packageAdd - -package=linux_base-6.1 -packageAdd - -package=linux_devtools-6.1 -packageAdd - -package=lmbench-1.1 -packageAdd - -package=m4-1.4 -packageAdd - -package=mprof-3.0 -packageAdd - -package=mtr-0.42 -packageAdd - -package=nmap-2.53 -packageAdd - -package=pine-4.21 -packageAdd - -package=portscanner-1.0 -packageAdd - -package=portsentry-1.0 -packageAdd - -package=python-1.5.2 -packageAdd - -package=rpm-2.5.6 -packageAdd - -package=rsaref-2.0 -packageAdd - -package=rsync-2.4.3 -packageAdd - -package=screen-3.9.5 -packageAdd - -package=stlport-3.01 -packageAdd - -package=tcsh-6.09.00 -packageAdd - -package=tk-8.0.5 -packageAdd - -package=vim-lite-5.6.70 -packageAdd - -package=wget-1.5.3 -packageAdd - -package=word2x-0.005 -packageAdd - -package=zip-2.3 -packageAdd - -package=zsh-3.0.7 -packageAdd - -# -# this last package is special. It is used to configure the machine. -# it installs several files (like /root/.rhosts) and its installation -# script tweaks several options in /etc/rc.conf -# -package=mypkg-1.0 -packageAdd - -shutdown diff --git a/en_US.ISO8859-1/articles/pxe/loader.rc b/en_US.ISO8859-1/articles/pxe/loader.rc deleted file mode 100644 index 95130eb4df..0000000000 --- a/en_US.ISO8859-1/articles/pxe/loader.rc +++ /dev/null @@ -1,11 +0,0 @@ -\ $Wintelcom: src/freebsd/pxe/doc/loader.rc,v 1.1 2000/07/15 07:20:37 bright Exp $ -\ $FreeBSD$ -echo Loading Kernel... -load /kernel -echo Loading mfsroot... -load -t mfs_root /mfsroot -echo booting... -echo \007\007 -echo initializing h0h0magic... -set vfs.root.mountfrom="ufs:/dev/md0c" -boot diff --git a/en_US.ISO8859-1/articles/pxe/pkgmaker.sh b/en_US.ISO8859-1/articles/pxe/pkgmaker.sh deleted file mode 100644 index 0ff380b477..0000000000 --- a/en_US.ISO8859-1/articles/pxe/pkgmaker.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -# $Wintelcom: src/freebsd/pxe/doc/pkgmaker.sh,v 1.1 2000/07/14 12:42:05 bright Exp $ -# $FreeBSD$ - -PKGNAME=${1} -PKGDIR=`pwd`/${PKGNAME}/ - -pkg_create -i ${PKGDIR}pre -I ${PKGDIR}post -f ${PKGDIR}PLIST -s ${PKGDIR} -p / -d ${PKGDIR}DESCR -c ${PKGDIR}COMMENT ${PKGNAME}.tgz diff --git a/en_US.ISO8859-1/articles/pxe/post b/en_US.ISO8859-1/articles/pxe/post deleted file mode 100644 index b465f55008..0000000000 --- a/en_US.ISO8859-1/articles/pxe/post +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -# $Wintelcom: src/freebsd/pxe/doc/post,v 1.1 2000/07/14 12:42:05 bright Exp $ -# $FreeBSD$ - -echo post-install - -set PATH=/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin:/usr/bin/X11 -export PATH - -# do timezone -cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime - -conf="/etc/rc.conf.local" - -rm $conf - -echo 'sendmail_enable="NO"' >> $conf -echo 'dumpdev="/dev/ad0s1b"' >> $conf -echo 'sshd_enable="YES"' >> $conf -echo 'linux_enable="YES"' >> $conf - -# set up IP address and hostname -if=`ifconfig fxp1 inet | grep '[ ]*inet' | sed 's/[ ]*//'` -echo "ifconfig_fxp1=\"${if}\"" >> $conf -name=`echo $if | sed 's/[ ][ ]*/ /g' | cut -f2 -d" " | cut -f4 -d.` -echo "hostname=\"suyy${name}\"" >> $conf - -echo "network_interfaces=\"fxp0 fxp1 lo0\"" >> $conf - -# set up gateway, parse netstat output -gw=`netstat -rn | grep '^default' | sed 's/[ ][ ]*/ /g' | cut -f2 -d" "` -echo "defaultrouter=\"${gw}\"" >> $conf - -pwd_mkdb -p /etc/master.passwd -exit 0 diff --git a/en_US.ISO8859-1/articles/pxe/pre b/en_US.ISO8859-1/articles/pxe/pre deleted file mode 100644 index afeb6ab73d..0000000000 --- a/en_US.ISO8859-1/articles/pxe/pre +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# $Wintelcom: src/freebsd/pxe/doc/pre,v 1.1 2000/07/14 12:42:05 bright Exp $ -# $FreeBSD$ - -echo pre-install -exit 0 |