svn commit: r43952 - head/en_US.ISO8859-1/books/porters-handbook/quick-porting
Warren Block
wblock at FreeBSD.org
Sun Feb 16 02:10:30 UTC 2014
Author: wblock
Date: Sun Feb 16 02:10:29 2014
New Revision: 43952
URL: http://svnweb.freebsd.org/changeset/doc/43952
Log:
Whitespace-only cleanup, translators please ignore.
Modified:
head/en_US.ISO8859-1/books/porters-handbook/quick-porting/chapter.xml
Modified: head/en_US.ISO8859-1/books/porters-handbook/quick-porting/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/quick-porting/chapter.xml Sun Feb 16 00:44:25 2014 (r43951)
+++ head/en_US.ISO8859-1/books/porters-handbook/quick-porting/chapter.xml Sun Feb 16 02:10:29 2014 (r43952)
@@ -4,45 +4,47 @@
$FreeBSD$
-->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="quick-porting">
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
+ xml:id="quick-porting">
+
+ <title>Quick Porting</title>
+
+ <para>This section tells you how to quickly create a new port. In
+ many cases, it is not sufficient, so you will have to read
+ further on into the document.</para>
+
+ <para>First, get the original tarball and put it into
+ <varname>DISTDIR</varname>, which defaults to
+ <filename>/usr/ports/distfiles</filename>.</para>
+
+ <note>
+ <para>The following assumes that the software compiled
+ out-of-the-box, i.e., there was absolutely no change required
+ for the port to work on your &os; box. If you needed to
+ change something, you will have to refer to the next section
+ too.</para>
+ </note>
+
+ <note>
+ <para>It is recommended to set the <varname>DEVELOPER</varname>
+ &man.make.1; variable in <filename>/etc/make.conf</filename>
+ before getting into porting.</para>
+
+ <screen>&prompt.root; <userinput>echo DEVELOPER=yes >> /etc/make.conf</userinput></screen>
+
+ <para>This setting enables the <quote>developer mode</quote>
+ that displays deprecation warnings and activates some further
+ quality checks on calling <command>make</command>.</para>
+ </note>
- <title>Quick Porting</title>
+ <sect1 xml:id="porting-makefile">
+ <title>Writing the <filename>Makefile</filename></title>
- <para>This section tells you how to quickly create a new port. In
- many cases, it is not sufficient, so you will have to read
- further on into the document.</para>
+ <para>The minimal <filename>Makefile</filename> would look
+ something like this:</para>
- <para>First, get the original tarball and put it into
- <varname>DISTDIR</varname>, which defaults to
- <filename>/usr/ports/distfiles</filename>.</para>
-
- <note>
- <para>The following assumes that the software compiled
- out-of-the-box, i.e., there was absolutely no change required
- for the port to work on your &os; box. If you needed to
- change something, you will have to refer to the next section
- too.</para>
- </note>
-
- <note>
- <para>It is recommended to set the <varname>DEVELOPER</varname>
- &man.make.1; variable in <filename>/etc/make.conf</filename>
- before getting into porting.</para>
-
- <screen>&prompt.root; <userinput>echo DEVELOPER=yes >> /etc/make.conf</userinput></screen>
-
- <para>This setting enables the <quote>developer mode</quote>
- that displays deprecation warnings and activates some further
- quality checks on calling <command>make</command>.</para>
- </note>
-
- <sect1 xml:id="porting-makefile">
- <title>Writing the <filename>Makefile</filename></title>
-
- <para>The minimal <filename>Makefile</filename> would look
- something like this:</para>
-
- <programlisting># $FreeBSD$
+ <programlisting># $FreeBSD$
PORTNAME= oneko
PORTVERSION= 1.1b
@@ -54,101 +56,100 @@ COMMENT= Cat chasing a mouse all over th
.include <bsd.port.mk></programlisting>
+ <note>
+ <para>In some cases, the <filename>Makefile</filename> of an
+ existing port may contain additional lines in the header,
+ such as the name of the port and the date it was created.
+ This additional information has been declared obsolete, and
+ is being phased out.</para>
+ </note>
+
+ <para>See if you can figure it out. Do not worry about the
+ contents of the <literal>$FreeBSD$</literal>
+ line, it will be filled in automatically by
+ <application>Subversion</application> when the port is
+ imported to our main ports tree. You can find a more detailed
+ example in the
+ <link linkend="porting-samplem">sample Makefile</link>
+ section.</para>
+ </sect1>
+
+ <sect1 xml:id="porting-desc">
+ <title>Writing the Description Files</title>
+
+ <para>There are two description files that are required for
+ any port, whether they actually package or not. They are
+ <filename>pkg-descr</filename> and
+ <filename>pkg-plist</filename>. Their
+ <filename>pkg-</filename> prefix distinguishes them from other
+ files.</para>
+
+ <sect2>
+ <title><filename>pkg-descr</filename></title>
+
+ <para>This is a longer description of the port. One to a few
+ paragraphs concisely explaining what the port does is
+ sufficient.</para>
+
<note>
- <para>In some cases, the <filename>Makefile</filename> of an
- existing port may contain additional lines in the header,
- such as the name of the port and the date it was created.
- This additional information has been declared obsolete, and
- is being phased out.</para>
+ <para>This is <emphasis>not</emphasis> a manual or an
+ in-depth description on how to use or compile the port!
+ <emphasis>Please be careful if you are copying from the
+ <filename>README</filename> or manpage</emphasis>; too
+ often they are not a concise description of the port or
+ are in an awkward format (e.g., manpages have justified
+ spacing, which looks particularly bad with monospaced
+ fonts).</para>
</note>
- <para>See if you can figure it out. Do not worry about the
- contents of the <literal>$FreeBSD$</literal>
- line, it will be filled in automatically by
- <application>Subversion</application> when the port is
- imported to our main ports tree. You can find a more detailed
- example in the
- <link linkend="porting-samplem">sample Makefile</link>
- section.</para>
- </sect1>
-
- <sect1 xml:id="porting-desc">
- <title>Writing the Description Files</title>
-
- <para>There are two description files that are required for
- any port, whether they actually package or not. They are
- <filename>pkg-descr</filename> and
- <filename>pkg-plist</filename>. Their
- <filename>pkg-</filename> prefix distinguishes them from other
- files.</para>
-
- <sect2>
- <title><filename>pkg-descr</filename></title>
-
- <para>This is a longer description of the port. One to a few
- paragraphs concisely explaining what the port does is
- sufficient.</para>
-
- <note>
- <para>This is <emphasis>not</emphasis> a manual or an
- in-depth description on how to use or compile the port!
- <emphasis>Please be careful if you are copying from the
- <filename>README</filename> or manpage</emphasis>; too
- often they are not a concise description of the port or
- are in an awkward format (e.g., manpages have justified
- spacing, which looks particularly bad with monospaced
- fonts).</para>
- </note>
-
- <para>A well-written <filename>pkg-descr</filename> describes
- the port completely enough that users would not have to
- consult the documentation or visit the website to understand
- what the software does, how it can be useful, or what
- particularly nice features it has. Mentioning certain
- requirements like a graphical toolkit, heavy dependencies,
- runtime environment, or implementation languages help users
- decide whether this port will work for them.</para>
-
- <para>Include a URL to the official WWW homepage. Prepend
- <emphasis>one</emphasis> of the websites (pick the most
- common one) with <literal>WWW:</literal> (followed by single
- space) so that automated tools will work correctly. If the
- URI is the root of the website or directory, it should be
- terminated with a slash.</para>
-
- <note>
- <para>If the listed webpage for a port is not available, try
- to search the Internet first to see if the official site
- moved, was renamed, or is hosted elsewhere.</para>
- </note>
+ <para>A well-written <filename>pkg-descr</filename> describes
+ the port completely enough that users would not have to
+ consult the documentation or visit the website to understand
+ what the software does, how it can be useful, or what
+ particularly nice features it has. Mentioning certain
+ requirements like a graphical toolkit, heavy dependencies,
+ runtime environment, or implementation languages help users
+ decide whether this port will work for them.</para>
+
+ <para>Include a URL to the official WWW homepage. Prepend
+ <emphasis>one</emphasis> of the websites (pick the most
+ common one) with <literal>WWW:</literal> (followed by single
+ space) so that automated tools will work correctly. If the
+ URI is the root of the website or directory, it should be
+ terminated with a slash.</para>
- <para>The following example shows how your
- <filename>pkg-descr</filename> should look:</para>
+ <note>
+ <para>If the listed webpage for a port is not available, try
+ to search the Internet first to see if the official site
+ moved, was renamed, or is hosted elsewhere.</para>
+ </note>
+
+ <para>The following example shows how your
+ <filename>pkg-descr</filename> should look:</para>
- <programlisting>This is a port of oneko, in which a cat chases a poor mouse all over
+ <programlisting>This is a port of oneko, in which a cat chases a poor mouse all over
the screen.
:
(etc.)
WWW: http://www.oneko.org/</programlisting>
- </sect2>
+ </sect2>
- <sect2>
- <title><filename>pkg-plist</filename></title>
+ <sect2>
+ <title><filename>pkg-plist</filename></title>
- <para>This file lists all the files installed by the port. It
- is also called the <quote>packing list</quote> because the
- package is generated by packing the files listed here. The
- pathnames are relative to the installation prefix (usually
- <filename>/usr/local</filename>.
- If the
- port creates directories during installation, make sure to
- add <literal>@dirrm</literal> lines to remove them when the
- package is deleted.</para>
+ <para>This file lists all the files installed by the port. It
+ is also called the <quote>packing list</quote> because the
+ package is generated by packing the files listed here. The
+ pathnames are relative to the installation prefix (usually
+ <filename>/usr/local</filename>. If the port creates
+ directories during installation, make sure to add
+ <literal>@dirrm</literal> lines to remove them when the
+ package is deleted.</para>
- <para>Here is a small example:</para>
+ <para>Here is a small example:</para>
- <programlisting>bin/oneko
+ <programlisting>bin/oneko
man/man1/oneko.1.gz
lib/X11/app-defaults/Oneko
lib/X11/oneko/cat1.xpm
@@ -156,34 +157,34 @@ lib/X11/oneko/cat2.xpm
lib/X11/oneko/mouse.xpm
@dirrm lib/X11/oneko</programlisting>
- <para>Refer to the &man.pkg-create.8; manual page for details
- on the packing list.</para>
+ <para>Refer to the &man.pkg-create.8; manual page for details
+ on the packing list.</para>
- <note>
- <para>It is recommended that you keep all the filenames in
- this file sorted alphabetically. It will make verifying
- the changes when you upgrade the port much easier.</para>
- </note>
-
- <note>
- <para>Creating a packing list manually can be a very tedious
- task. If the port installs a large numbers of files,
- <link linkend="plist-autoplist">creating the packing list
- automatically</link> might save time.</para>
- </note>
-
- <para>There is only one case when
- <filename>pkg-plist</filename> can be omitted from a port.
- If the port installs just a handful of files, and perhaps
- directories, the files and directories may be listed in the
- variables <varname>PLIST_FILES</varname> and
- <varname>PLIST_DIRS</varname>, respectively, within the
- port's <filename>Makefile</filename>. For instance, we
- could get along without <filename>pkg-plist</filename> in
- the above <filename>oneko</filename> port by adding the
- following lines to the <filename>Makefile</filename>:</para>
+ <note>
+ <para>It is recommended that you keep all the filenames in
+ this file sorted alphabetically. It will make verifying
+ the changes when you upgrade the port much easier.</para>
+ </note>
+
+ <note>
+ <para>Creating a packing list manually can be a very tedious
+ task. If the port installs a large numbers of files,
+ <link linkend="plist-autoplist">creating the packing list
+ automatically</link> might save time.</para>
+ </note>
- <programlisting>PLIST_FILES= bin/oneko \
+ <para>There is only one case when
+ <filename>pkg-plist</filename> can be omitted from a port.
+ If the port installs just a handful of files, and perhaps
+ directories, the files and directories may be listed in the
+ variables <varname>PLIST_FILES</varname> and
+ <varname>PLIST_DIRS</varname>, respectively, within the
+ port's <filename>Makefile</filename>. For instance, we
+ could get along without <filename>pkg-plist</filename> in
+ the above <filename>oneko</filename> port by adding the
+ following lines to the <filename>Makefile</filename>:</para>
+
+ <programlisting>PLIST_FILES= bin/oneko \
man/man1/oneko.1.gz \
lib/X11/app-defaults/Oneko \
lib/X11/oneko/cat1.xpm \
@@ -191,215 +192,211 @@ lib/X11/oneko/mouse.xpm
lib/X11/oneko/mouse.xpm
PLIST_DIRS= lib/X11/oneko</programlisting>
- <para>Of course, <varname>PLIST_DIRS</varname> should be left
- unset if a port installs no directories of its own.</para>
-
- <note>
-
- <para>Several ports can share a common directory. In that
- case, <varname>PLIST_DIRS</varname> should be replaced by
- <varname>PLIST_DIRSTRY</varname> so that the directory is
- removed only if empty, otherwise it is silently ignored.
- <varname>PLIST_DIRS</varname> and
- <varname>PLIST_DIRSTRY</varname> are equivalent to using
- <literal>@dirrm</literal> and <literal>@dirrmtry</literal>
- in <filename>pkg-plist</filename>, as described in
- <xref linkend="plist-dir-cleaning"/>.</para>
- </note>
-
- <para>The price for this way of listing port's files and
- directories is that you cannot use command sequences
- described in &man.pkg-create.8;. Therefore, it is suitable
- only for simple ports and makes them even simpler. At the
- same time, it has the advantage of reducing the number of
- files in the ports collection. Please consider using this
- technique before you resort to
- <filename>pkg-plist</filename>.</para>
-
- <para>Later we will see how <filename>pkg-plist</filename>
- and <varname>PLIST_FILES</varname> can be used to fulfill
- <link linkend="plist">more sophisticated
- tasks</link>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="porting-checksum">
- <title>Creating the Checksum File</title>
-
- <para>Just type <command>make makesum</command>. The ports make
- rules will automatically generate the file
- <filename>distinfo</filename>.</para>
-
- <para>If a file fetched has its checksum changed regularly and
- you are certain the source is trusted (i.e., it comes from
- manufacturer CDs or documentation generated daily), you should
- specify these files in the <varname>IGNOREFILES</varname>
- variable. Then the checksum is not calculated for that file
- when you run <command>make makesum</command>, but set to
- <literal>IGNORE</literal>.</para>
- </sect1>
-
- <sect1 xml:id="porting-testing">
- <title>Testing the Port</title>
-
- <para>You should make sure that the port rules do exactly what
- you want them to do, including packaging up the port. These
- are the important points you need to verify.</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>pkg-plist</filename> does not contain
- anything not installed by the port.</para>
- </listitem>
-
- <listitem>
- <para><filename>pkg-plist</filename> contains everything
- that is installed by the port.</para>
- </listitem>
-
- <listitem>
- <para>The port can be installed using the
- <buildtarget>install</buildtarget> target. This verifies
- that the install script works correctly.</para>
- </listitem>
-
- <listitem>
- <para>The port can be deinstalled properly using the
- <buildtarget>deinstall</buildtarget> target. This
- verifies that the deinstall script works correctly.</para>
- </listitem>
-
- <listitem>
- <para>Make sure that <command>make package</command> can be
- run as a normal user (that is, not as
- <systemitem class="username">root</systemitem>). If that
- fails, <literal>NEED_ROOT=yes</literal> must be added to
- the port <filename>Makefile</filename>.</para>
- </listitem>
- </itemizedlist>
-
- <procedure>
- <title>Recommended Test Ordering</title>
-
- <step>
- <para><command>make stage</command></para>
- </step>
-
- <step>
- <para><command>make check-orphans</command></para>
- </step>
-
- <step>
- <para><command>make package</command></para>
- </step>
-
- <step>
- <para><command>make install</command></para>
- </step>
-
- <step>
- <para><command>make deinstall</command></para>
- </step>
-
- <step>
- <para><command>pkg add package-filename</command></para>
- </step>
-
- <step>
- <para><command>make package</command> (as user)</para>
- </step>
- </procedure>
-
- <para>Make certain no warnings are shown in any of
- the stages.</para>
-
- <para>Thorough automated testing can be done with
- <package role="port">ports-mgmt/tinderbox</package> or
- <package role="port">ports-mgmt/poudriere</package> from the
- Ports Collection. These applications maintain
- <literal>jails</literal> where all of the steps shown above
- can be tested without affecting the state of the host
- system.</para>
- </sect1>
-
- <sect1 xml:id="porting-portlint">
- <title>Checking Your Port with
- <command>portlint</command></title>
-
- <para>Please use <command>portlint</command> to see if your port
- conforms to our guidelines. The
- <package role="port">ports-mgmt/portlint</package>
- program is part of the ports collection. In particular, you
- may want to check if the
- <link linkend="porting-samplem">Makefile</link> is in the
- right shape and the
- <link linkend="porting-pkgname">package</link> is named
- appropriately.</para>
- </sect1>
-
- <sect1 xml:id="porting-submitting">
- <title>Submitting the New Port</title>
-
- <para>Before submitting the new port, read
- the <link linkend="porting-dads">DOs and DON'Ts</link>
- section.</para>
-
- <para>Once happy with your port, the only thing remaining is to
- put it in the main &os; ports tree and make everybody else
- happy about it too. We do not need the
- <filename>work</filename> directory or the
- <filename>pkgname.tgz</filename> package, so delete them
- now.</para>
-
- <para>Next, build the &man.shar.1; file. Assuming the port is
- called <literal>oneko</literal>, <command>cd</command> to the
- directory above where the <literal>oneko</literal> directory
- is located, and then type:
- <command>shar `find oneko` > oneko.shar</command></para>
-
- <para>Include <filename>oneko.shar</filename> in a bug
- report and send it with &man.send-pr.1;. See
- <link
- xlink:href="&url.articles.contributing;/contrib-how.html#CONTRIB-GENERAL">Bug
- Reports and General Commentary</link> for more information
- about &man.send-pr.1;.</para>
-
- <para>Classify the bug report as Category
- <literal>ports</literal> and Class
- <literal>change-request</literal>. Do
- <emphasis>not</emphasis> mark the report
- <literal>confidential</literal>! Add a short description of
- the program to the Description field of the PR (perhaps a
- short version of the <varname>COMMENT</varname>), and add the
- <filename>.shar</filename> file to the Fix field.</para>
+ <para>Of course, <varname>PLIST_DIRS</varname> should be left
+ unset if a port installs no directories of its own.</para>
<note>
- <para>Giving a good description in the synopsis of the problem
- report makes the work of port committers a lot easier. We
- prefer something like <quote>New port:
- <category>/<portname> <short description of
- the port></quote> for new ports. Using this
- scheme makes it easier and faster to begin the work of
- committing the new port.</para>
+ <para>Several ports can share a common directory. In that
+ case, <varname>PLIST_DIRS</varname> should be replaced by
+ <varname>PLIST_DIRSTRY</varname> so that the directory is
+ removed only if empty, otherwise it is silently ignored.
+ <varname>PLIST_DIRS</varname> and
+ <varname>PLIST_DIRSTRY</varname> are equivalent to using
+ <literal>@dirrm</literal> and <literal>@dirrmtry</literal>
+ in <filename>pkg-plist</filename>, as described in
+ <xref linkend="plist-dir-cleaning"/>.</para>
</note>
- <para>One more time, <emphasis>do not include the original
- source distfile, the <filename>work</filename> directory, or
- the package you built with
- <command>make package</command></emphasis>; and, do use
- &man.shar.1; for new ports, not &man.diff.1;.</para>
-
- <para>After submitting the port, please be patient. The time
- needed to include a new port in &os; can vary from a few days
- to a few months. The list of pending port
- <acronym>PR</acronym>s can be viewed at <link
- xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?category=ports"></link>.</para>
-
- <para>After looking at the new port, we will reply if necessary,
- and put it in the tree. Your name will also be added to the
- list of <link
- xlink:href="&url.articles.contributors;/contrib-additional.html">Additional
- &os; Contributors</link> and other files.</para>
- </sect1>
- </chapter>
+ <para>The price for this way of listing port's files and
+ directories is that you cannot use command sequences
+ described in &man.pkg-create.8;. Therefore, it is suitable
+ only for simple ports and makes them even simpler. At the
+ same time, it has the advantage of reducing the number of
+ files in the ports collection. Please consider using this
+ technique before you resort to
+ <filename>pkg-plist</filename>.</para>
+
+ <para>Later we will see how <filename>pkg-plist</filename>
+ and <varname>PLIST_FILES</varname> can be used to fulfill
+ <link linkend="plist">more sophisticated
+ tasks</link>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="porting-checksum">
+ <title>Creating the Checksum File</title>
+
+ <para>Just type <command>make makesum</command>. The ports make
+ rules will automatically generate the file
+ <filename>distinfo</filename>.</para>
+
+ <para>If a file fetched has its checksum changed regularly and
+ you are certain the source is trusted (i.e., it comes from
+ manufacturer CDs or documentation generated daily), you should
+ specify these files in the <varname>IGNOREFILES</varname>
+ variable. Then the checksum is not calculated for that file
+ when you run <command>make makesum</command>, but set to
+ <literal>IGNORE</literal>.</para>
+ </sect1>
+
+ <sect1 xml:id="porting-testing">
+ <title>Testing the Port</title>
+
+ <para>You should make sure that the port rules do exactly what
+ you want them to do, including packaging up the port. These
+ are the important points you need to verify.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>pkg-plist</filename> does not contain
+ anything not installed by the port.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>pkg-plist</filename> contains everything
+ that is installed by the port.</para>
+ </listitem>
+
+ <listitem>
+ <para>The port can be installed using the
+ <buildtarget>install</buildtarget> target. This verifies
+ that the install script works correctly.</para>
+ </listitem>
+
+ <listitem>
+ <para>The port can be deinstalled properly using the
+ <buildtarget>deinstall</buildtarget> target. This
+ verifies that the deinstall script works correctly.</para>
+ </listitem>
+
+ <listitem>
+ <para>Make sure that <command>make package</command> can be
+ run as a normal user (that is, not as
+ <systemitem class="username">root</systemitem>). If that
+ fails, <literal>NEED_ROOT=yes</literal> must be added to
+ the port <filename>Makefile</filename>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <procedure>
+ <title>Recommended Test Ordering</title>
+
+ <step>
+ <para><command>make stage</command></para>
+ </step>
+
+ <step>
+ <para><command>make check-orphans</command></para>
+ </step>
+
+ <step>
+ <para><command>make package</command></para>
+ </step>
+
+ <step>
+ <para><command>make install</command></para>
+ </step>
+
+ <step>
+ <para><command>make deinstall</command></para>
+ </step>
+
+ <step>
+ <para><command>pkg add package-filename</command></para>
+ </step>
+
+ <step>
+ <para><command>make package</command> (as user)</para>
+ </step>
+ </procedure>
+
+ <para>Make certain no warnings are shown in any of
+ the stages.</para>
+
+ <para>Thorough automated testing can be done with
+ <package role="port">ports-mgmt/tinderbox</package> or
+ <package role="port">ports-mgmt/poudriere</package> from the
+ Ports Collection. These applications maintain
+ <literal>jails</literal> where all of the steps shown above
+ can be tested without affecting the state of the host
+ system.</para>
+ </sect1>
+
+ <sect1 xml:id="porting-portlint">
+ <title>Checking Your Port with
+ <command>portlint</command></title>
+
+ <para>Please use <command>portlint</command> to see if your port
+ conforms to our guidelines. The
+ <package role="port">ports-mgmt/portlint</package>
+ program is part of the ports collection. In particular, you
+ may want to check if the
+ <link linkend="porting-samplem">Makefile</link> is in the
+ right shape and the
+ <link linkend="porting-pkgname">package</link> is named
+ appropriately.</para>
+ </sect1>
+
+ <sect1 xml:id="porting-submitting">
+ <title>Submitting the New Port</title>
+
+ <para>Before submitting the new port, read the
+ <link linkend="porting-dads">DOs and DON'Ts</link>
+ section.</para>
+
+ <para>Once happy with your port, the only thing remaining is to
+ put it in the main &os; ports tree and make everybody else
+ happy about it too. We do not need the
+ <filename>work</filename> directory or the
+ <filename>pkgname.tgz</filename> package, so delete them
+ now.</para>
+
+ <para>Next, build the &man.shar.1; file. Assuming the port is
+ called <literal>oneko</literal>, <command>cd</command> to the
+ directory above where the <literal>oneko</literal> directory
+ is located, and then type:
+ <command>shar `find oneko` > oneko.shar</command></para>
+
+ <para>Include <filename>oneko.shar</filename> in a bug
+ report and send it with &man.send-pr.1;. See <link
+ xlink:href="&url.articles.contributing;/contrib-how.html#CONTRIB-GENERAL">Bug
+ Reports and General Commentary</link> for more information
+ about &man.send-pr.1;.</para>
+
+ <para>Classify the bug report as Category
+ <literal>ports</literal> and Class
+ <literal>change-request</literal>. Do <emphasis>not</emphasis>
+ mark the report <literal>confidential</literal>! Add a short
+ description of the program to the Description field of the PR
+ (perhaps a short version of the <varname>COMMENT</varname>), and
+ add the <filename>.shar</filename> file to the Fix field.</para>
+
+ <note>
+ <para>Giving a good description in the synopsis of the problem
+ report makes the work of port committers a lot easier. We
+ prefer something like <quote>New port:
+ <category>/<portname> <short description of
+ the port></quote> for new ports. Using this
+ scheme makes it easier and faster to begin the work of
+ committing the new port.</para>
+ </note>
+ <para>One more time, <emphasis>do not include the original
+ source distfile, the <filename>work</filename> directory, or
+ the package you built with
+ <command>make package</command></emphasis>; and, do use
+ &man.shar.1; for new ports, not &man.diff.1;.</para>
+
+ <para>After submitting the port, please be patient. The time
+ needed to include a new port in &os; can vary from a few days
+ to a few months. The list of pending port
+ <acronym>PR</acronym>s can be viewed at <link
+ xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?category=ports"></link>.</para>
+
+ <para>After looking at the new port, we will reply if necessary,
+ and put it in the tree. Your name will also be added to the
+ list of <link
+ xlink:href="&url.articles.contributors;/contrib-additional.html">Additional
+ &os; Contributors</link> and other files.</para>
+ </sect1>
+</chapter>
More information about the svn-doc-all
mailing list