aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Linimon <linimon@FreeBSD.org>2004-04-04 17:05:14 +0000
committerMark Linimon <linimon@FreeBSD.org>2004-04-04 17:05:14 +0000
commit1d33692e8e745ac5fe11a5b3bc0fbcbdda0065a2 (patch)
tree6330f4d3a9c3da9255e9a4d79fe5925dc6d9d40f
parent13d8c0a686667e3c8ad3f3dfcc17a7aadd67e612 (diff)
Notes
-rw-r--r--en_US.ISO8859-1/articles/committers-guide/article.sgml173
1 files changed, 170 insertions, 3 deletions
diff --git a/en_US.ISO8859-1/articles/committers-guide/article.sgml b/en_US.ISO8859-1/articles/committers-guide/article.sgml
index d7c2186302..6f44dc7efb 100644
--- a/en_US.ISO8859-1/articles/committers-guide/article.sgml
+++ b/en_US.ISO8859-1/articles/committers-guide/article.sgml
@@ -678,11 +678,11 @@ alias scvs env CVS_RSH=ssh cvs -d <replaceable>user</replaceable>@ncvs.freebsd.o
</itemizedlist>
<para>You will almost certainly get a conflict because
- of the <literal>$Id: article.sgml,v 1.183 2004-04-02 19:30:29 des Exp $</literal> (or in FreeBSD's case,
+ of the <literal>$Id: article.sgml,v 1.184 2004-04-04 17:05:14 linimon Exp $</literal> (or in FreeBSD's case,
<literal>$<!-- stop expansion -->FreeBSD<!-- stop expansion -->$</literal>)
lines, so you will have to edit the file to resolve the conflict
- (remove the marker lines and the second <literal>$Id: article.sgml,v 1.183 2004-04-02 19:30:29 des Exp $</literal> line,
- leaving the original <literal>$Id: article.sgml,v 1.183 2004-04-02 19:30:29 des Exp $</literal> line intact).</para>
+ (remove the marker lines and the second <literal>$Id: article.sgml,v 1.184 2004-04-04 17:05:14 linimon Exp $</literal> line,
+ leaving the original <literal>$Id: article.sgml,v 1.184 2004-04-04 17:05:14 linimon Exp $</literal> line intact).</para>
</listitem>
<listitem>
@@ -2522,6 +2522,173 @@ docs:Documentation Bug:freebsd-doc:</programlisting>
</qandadiv>
<qandadiv>
+ <title>Creating a New Category</title>
+
+ <qandaentry>
+ <question>
+ <para>What is the procedure for creating a new category?</para>
+ </question>
+
+ <answer>
+ <para>A developer who wishes to propose a new category
+ should submit a detailed rationale for the new category,
+ including why existing categories are not sufficient,
+ and the list of ports proposed to move.</para>
+
+ <para>Before submitting, keep in mind that there is a fair
+ amount of work involved from multiple parties; that the
+ changes affect everyone who wants to keep up-to-date with
+ the entire ports tree; and that such proposals tend to
+ attract controversy.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>What do I need to do?</para>
+ </question>
+
+ <answer>
+ <para>The procedure is a strict superset of the one to
+ repocopy individual ports (see above).</para>
+
+ <para>File a PR in <application>GNATS</application>, listing the
+ reasons for the category request. Preferably, this should
+ also include patches for <filename>Makefile</filename>s for
+ the old ports, the <filename>Makefile</filename>s for their
+ old categories, and the <makevar>VALID_CATEGORIES</makevar>
+ definition in <filename>ports/Mk/bsd.port.mk</filename>.
+ Assign the PR to the &a.portmgr; (as <literal>portmgr</literal>).
+ If they approve it, it will be reassigned to &a.cvs; (as
+ <literal>cvs</literal>), who will do a repository copy from
+ the old to the new locations and reassign the PR back to you.
+ Once everything is done, perform the following steps:</para>
+
+ <procedure>
+ <step>
+ <para>Upgrade each copied port's
+ <filename>Makefile</filename>. Do not connect the
+ new category to the build yet.</para>
+
+ <para>To do this, you will need to:
+ <procedure>
+ <step>
+ <para>Change the port's <makevar>CATEGORIES</makevar>
+ (this was the point of the exercise, remember?)
+ The new category should be listed
+ <emphasis>first</emphasis>. This will help to
+ ensure that the the <makevar>PKGORIGIN</makevar>
+ is correct.</para>
+ </step>
+
+ <step>
+ <para>Run a <command>make describe</command>. Since
+ the top-level <command>make index</command> that
+ you will be running in a few steps is an iteration
+ of <command>make describe</command> over the entire
+ ports hierarchy, catching any errors here will
+ save you having to re-run that step later on.</para>
+ </step>
+
+ <step>
+ <para>If you want to be really thorough, now might
+ be a good time to run &man.portlint.1;.</para>
+ </step>
+ </procedure>
+ </step>
+
+ <step>
+ <para>Check that the <makevar>PKGORIGIN</makevar>s are
+ correct. The ports system uses each port's
+ <makevar>CATEGORIES</makevar> entry to create
+ its <makevar>PKGORIGIN</makevar>, which is used to
+ connect installed packages to the port directory they
+ were built from. If this entry is wrong, common port
+ tools like &man.pkg.version.1; and
+ &man.portupgrade.1; fail.</para>
+
+ <para>To do this, use the <filename>chkorigin.sh</filename>
+ tool, as follows: <command>env
+ PORTSDIR=<replaceable>/path/to/ports</replaceable>
+ sh -e <replaceable>/path/to/ports</replaceable>/Tools/scripts/chkorigin.sh
+ </command>. This will check <emphasis>every</emphasis>
+ port in the ports tree, even those not connected to the
+ build, so you can run it directly after the repocopy.
+ Hint: do not forget to look at the
+ <makevar>PKGORIGIN</makevar>s of any slave ports of the
+ ports you just repocopied!</para>
+ </step>
+
+ <step>
+ <para>On your own local system, test the proposed
+ changes: first, comment out the
+ <makevar>SUBDIR</makevar> entries in the old
+ ports' categories' <filename>Makefile</filename>s;
+ then enable building the new category in
+ <filename>ports/Makefile</filename>.
+ Run <command>make checksubdirs</command> in the
+ affected category directories to check the
+ <makevar>SUBDIR</makevar> entries. Next, in
+ the <filename class="directory">ports/</filename>
+ directory, run <command>make index</command>. This
+ can take over 40 minutes on even modern systems;
+ however, it is a necessary step to prevent problems
+ for other people.</para>
+ </step>
+
+ <step>
+ <para>Once this is done, you can commit the
+ updated <filename>ports/Makefile</filename> to
+ connect the new category to the build and also
+ commit the <filename>Makefile</filename> changes
+ for the old category or categories.</para>
+ </step>
+
+ <step>
+ <para>Change all the affected module entries in
+ <filename>CVSROOT-ports/modules</filename>.</para>
+ </step>
+
+ <step>
+ <para>Add appropriate entries to
+ <filename>ports/MOVED</filename>.</para>
+ </step>
+
+ <step>
+ <para>Update the instructions for &man.cvsup.1; by
+ modifying <filename>distrib/cvsup/sup/README</filename>
+ and adding the following files into
+ <filename>cvsup/sup/ports-categoryname</filename>:
+ <filename>list.cvs</filename> and
+ <filename>releases</filename>. (Note: these are
+ in the src, not the ports, repository).</para>
+ </step>
+
+ <step>
+ <para>Submit a docs PR to add the new category to both the
+ <ulink url="../../books/porters-handbook/makefile-categories.html#PORTING-CATEGORIES">
+ Porter's Handbook</ulink> and to
+ <filename>www/en/ports/categories</filename>.</para>
+ </step>
+
+ <step>
+ <para>The procedure to update the <ulink
+ url="../../../../ports/index.html">ports web pages</ulink>
+ to reflect the new category is not yet defined.</para>
+ </step>
+
+ <step>
+ <para>Only once all the above have been done, and
+ no one is any longer reporting problems with the
+ new ports, should the old ports be deleted from
+ their previous locations in the repository.</para>
+ </step>
+ </procedure>
+ </answer>
+ </qandaentry>
+ </qandadiv>
+
+ <qandadiv>
<title>Miscellaneous Questions</title>
<qandaentry>