Whitespace-only fixes. Wrap long lines, close up straggling </para> tags,

a few indentation and other fixes.
This commit is contained in:
Warren Block 2012-01-28 06:15:41 +00:00
parent 3314d49e02
commit e2edac3176
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=38333

View file

@ -11,9 +11,9 @@
<abstract> <abstract>
<title>Abstract</title> <title>Abstract</title>
<para>This article describes the ways in which an individual <para>This article describes the ways in which an individual
can contribute to the FreeBSD Ports Collection. can contribute to the FreeBSD Ports Collection.</para>
</para>
</abstract> </abstract>
<authorgroup> <authorgroup>
@ -46,9 +46,9 @@
<para>Anyone can get involved, and there are lots of different <para>Anyone can get involved, and there are lots of different
ways to do so. Contributing to ports is an excellent way to ways to do so. Contributing to ports is an excellent way to
help <quote>give&nbsp;back</quote> something to the project. Whether you are help <quote>give&nbsp;back</quote> something to the project.
looking for an ongoing role, or a fun challenge for a rainy day, Whether you are looking for an ongoing role, or a fun challenge
we would love to have your help!</para> for a rainy day, we would love to have your help!</para>
<para>As a volunteer, what you do is limited only by what you want <para>As a volunteer, what you do is limited only by what you want
to do. However, we do ask that you are aware of what other to do. However, we do ask that you are aware of what other
@ -60,33 +60,32 @@
<title>What you can do to help</title> <title>What you can do to help</title>
<para>There are a number of easy ways you can contribute to <para>There are a number of easy ways you can contribute to
keeping the ports tree up to date and in good working order: keeping the ports tree up to date and in good working
</para> order:</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>Find some cool or useful software and <para>Find some cool or useful software and
<link linkend="create-port"> create a port</link> for it. <link linkend="create-port"> create a port</link> for
</para> it.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>There are a large number of ports that have no <para>There are a large number of ports that have no
maintainer. Become a maintainer and maintainer. Become a maintainer and
<link linkend="adopt-port">adopt a port</link>. <link linkend="adopt-port">adopt a port</link>.</para>
</para>
</listitem> </listitem>
<listitem> <listitem>
<para>If you have created or adopted a port, be <para>If you have created or adopted a port, be
aware of <link linkend="maintain-port">what you need to do aware of <link linkend="maintain-port">what you need to do
as a maintainer</link>.</para> as a maintainer</link>.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>When you are looking for a quick challenge you <para>When you are looking for a quick challenge you
could <link linkend="fix-broken">fix a bug or a broken could <link linkend="fix-broken">fix a bug or a broken
port</link>.</para> port</link>.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</sect1> </sect1>
@ -95,11 +94,11 @@
<title>Creating a new port</title> <title>Creating a new port</title>
<para>There is a separate document available to help guide you <para>There is a separate document available to help guide you
through creating (and upgrading) a port called the through creating (and upgrading) a port called the <ulink
<ulink url="&url.books.porters-handbook;">Porter's Handbook</ulink>. url="&url.books.porters-handbook;">Porter's Handbook</ulink>.
The Porter's Handbook is the best reference to working with The Porter's Handbook is the best reference to working with the
the ports system. It provides details about how the ports ports system. It provides details about how the ports system
system operates and discusses recommended practices.</para> operates and discusses recommended practices.</para>
</sect1> </sect1>
<sect1 id="adopt-port"> <sect1 id="adopt-port">
@ -115,12 +114,13 @@
ports. It is a good idea to start with adopting a port that ports. It is a good idea to start with adopting a port that
you use regularly.</para> you use regularly.</para>
<para>Unmaintained ports have their <makevar>MAINTAINER</makevar> <para>Unmaintained ports have their
set to <literal>ports@FreeBSD.org</literal>. A list of <makevar>MAINTAINER</makevar> set to
unmaintained ports and their current errors and problem <literal>ports@FreeBSD.org</literal>. A list of unmaintained
reports can be seen at the ports and their current errors and problem reports can be seen
<ulink url="http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org">&os; Ports Monitoring System</ulink>. at the <ulink
</para> url="http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org">&os;
Ports Monitoring System</ulink>.</para>
<para>Some ports affect a large number of others due to <para>Some ports affect a large number of others due to
dependencies and slave port relationships. Generally, we dependencies and slave port relationships. Generally, we
@ -130,11 +130,12 @@
<para>You can find out whether or not a port has dependencies <para>You can find out whether or not a port has dependencies
or slave ports by looking at a master index of ports called or slave ports by looking at a master index of ports called
<filename>INDEX</filename>. (The name of the file varies <filename>INDEX</filename>. (The name of the file varies
by release of &os;; for instance, <filename>INDEX-8</filename>.) by release of &os;; for instance,
Some ports have conditional dependencies that are not <filename>INDEX-8</filename>.) Some ports have conditional
included in a default <filename>INDEX</filename> build. We dependencies that are not included in a default
expect you to be able to recognize such ports by looking through <filename>INDEX</filename> build. We expect you to be able to
other ports' <filename>Makefile</filename>s.</para> recognize such ports by looking through other ports'
<filename>Makefile</filename>s.</para>
</sect2> </sect2>
<sect2> <sect2>
@ -142,21 +143,21 @@
<para>First make sure you understand your <para>First make sure you understand your
<link linkend="maintain-port">responsibilities as a <link linkend="maintain-port">responsibilities as a
maintainer</link>. maintainer</link>. Also read the
Also read the <ulink url="&url.books.porters-handbook;">Porter's
<ulink url="&url.books.porters-handbook;">Porter's Handbook</ulink>. Handbook</ulink>. <emphasis>Please do not commit yourself
<emphasis>Please do not commit yourself to more than you feel to more than you feel you can comfortably
you can comfortably handle.</emphasis></para> handle.</emphasis></para>
<para>You may request maintainership of any unmaintained port <para>You may request maintainership of any unmaintained port
as soon as you wish. Simply set <makevar>MAINTAINER</makevar> as soon as you wish. Simply set <makevar>MAINTAINER</makevar>
to your own email address and send a PR (Problem Report) with to your own email address and send a PR (Problem Report) with
the change. If the port has build errors or needs updating, the change. If the port has build errors or needs updating,
you may wish to include any other changes in the same PR. you may wish to include any other changes in the same PR.
This will help because many committers are less willing to assign This will help because many committers are less willing to
maintainership to someone who does not have a known track record assign maintainership to someone who does not have a known
with &os;. Submitting PRs that fix build errors or track record with &os;. Submitting PRs that fix build errors
update ports are the best ways to establish one.</para> or update ports are the best ways to establish one.</para>
<para>File your PR with category <literal>ports</literal> and <para>File your PR with category <literal>ports</literal> and
class <literal>change-request</literal>. A committer will class <literal>change-request</literal>. A committer will
@ -229,9 +230,9 @@
<para>Part of being a maintainer is taking on a support <para>Part of being a maintainer is taking on a support
role. You are not expected to provide general support role. You are not expected to provide general support
(but we welcome it if you choose to do so). What you should (but we welcome it if you choose to do so). What you
provide is a point of coordination for &os;-specific should provide is a point of coordination for
issues regarding your ports.</para> &os;-specific issues regarding your ports.</para>
</formalpara> </formalpara>
</listitem> </listitem>
@ -280,10 +281,10 @@
<para>This section outlines the process to follow to keep your <para>This section outlines the process to follow to keep your
ports up to date.</para> ports up to date.</para>
<para>This is an overview. More information about upgrading a <para>This is an overview. More information about upgrading a
port is available in the port is available in the
<ulink url="&url.books.porters-handbook;"> <ulink url="&url.books.porters-handbook;">
Porter's Handbook</ulink>.</para> Porter's Handbook</ulink>.</para>
<procedure> <procedure>
<step> <step>
@ -343,9 +344,10 @@
<listitem> <listitem>
<para>Verify your port using &man.portlint.1; as a <para>Verify your port using &man.portlint.1; as a
guide. See <link linkend="resources">resources</link> guide. See <link
for important information about using linkend="resources">resources</link> for important
<application>portlint</application>.</para> information about using
<application>portlint</application>.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -357,8 +359,9 @@
case, at the very least, the dependent ports will case, at the very least, the dependent ports will
need to get a <makevar>PORTREVISION</makevar> bump need to get a <makevar>PORTREVISION</makevar> bump
so that they will automatically be upgraded by so that they will automatically be upgraded by
automated tools such as <application>portmaster</application> automated tools such as
or &man.portupgrade.1;.</para> <application>portmaster</application> or
&man.portupgrade.1;.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</step> </step>
@ -369,17 +372,18 @@
<para>Send your update by submitting a PR with an <para>Send your update by submitting a PR with an
explanation of the changes and a patch containing the explanation of the changes and a patch containing the
differences between the original port and the updated differences between the original port and the updated
one. Please refer to one. Please refer to <ulink
<ulink url="&url.articles.problem-reports;">Writing FreeBSD Problem Reports</ulink> url="&url.articles.problem-reports;">Writing FreeBSD
for information on how to write a really good PR.</para> Problem Reports</ulink> for information on how to
write a really good PR.</para>
<note> <note>
<para>Please do not submit a &man.shar.1; archive of the <para>Please do not submit a &man.shar.1; archive of the
entire port; instead, use &man.diff.1; <literal>-ruN</literal>. entire port; instead, use &man.diff.1;
In this way, committers can much more easily see exactly <literal>-ruN</literal>. In this way, committers can
what changes are being made. The Porter's Handbook much more easily see exactly what changes are being
section on made. The Porter's Handbook section on <ulink
<ulink url="&url.books.porters-handbook;/port-upgrading.html">Upgrading</ulink> url="&url.books.porters-handbook;/port-upgrading.html">Upgrading</ulink>
has more information.</para> has more information.</para>
</note> </note>
</step> </step>
@ -388,8 +392,8 @@
<title>Wait</title> <title>Wait</title>
<para>At some stage a committer will deal with your PR. <para>At some stage a committer will deal with your PR.
It may take minutes, or it may take weeks &mdash; so please It may take minutes, or it may take weeks &mdash; so
be patient.</para> please be patient.</para>
</step> </step>
<step> <step>
@ -428,22 +432,23 @@
even better.</para> even better.</para>
<para>Since the majority of &os; installations run on <para>Since the majority of &os; installations run on
PC-compatible machines (what is termed the <literal>i386</literal> PC-compatible machines (what is termed the
architecture), we expect you to keep the port working on that <literal>i386</literal> architecture), we expect you to keep
architecture. We prefer that ports also work on the port working on that architecture. We prefer that ports
the <literal>amd64</literal> architecture running native. also work on the <literal>amd64</literal> architecture
It is completely fair to ask for help if you running native. It is completely fair to ask for help if
do not have one of these machines.</para> you do not have one of these machines.</para>
<note> <note>
<para>The usual failure modes for non-<literal>i386</literal> <para>The usual failure modes for
machines are that the original programmers assumed that, for non-<literal>i386</literal> machines are that the original
instance, pointers are <literal>int</literal>s, or that a programmers assumed that, for instance, pointers are
relatively lax older <application>gcc</application> compiler <literal>int</literal>s, or that a relatively lax older
was being used. More and more, application authors are <application>gcc</application> compiler was being used.
reworking their code to remove these assumptions &mdash; More and more, application authors are reworking their
but if the author is not actively maintaining their code, code to remove these assumptions &mdash; but if the author
you may need to do this yourself.</para> is not actively maintaining their code, you may need to do
this yourself.</para>
</note> </note>
<para>These are the tasks you need to perform to ensure your <para>These are the tasks you need to perform to ensure your
@ -453,15 +458,16 @@
<step> <step>
<title>Watch for build failures</title> <title>Watch for build failures</title>
<para>Regularly check the automated ports building cluster, <para>Regularly check the automated ports building
<ulink url="http://pointyhat.FreeBSD.org">pointyhat</ulink>, cluster, <ulink
and the url="http://pointyhat.FreeBSD.org">pointyhat</ulink>,
<ulink url="http://www.portscout.org">distfiles scanner</ulink> and the <ulink url="http://www.portscout.org">distfiles
to see if any of the ports you maintain are failing to scanner</ulink> to see if any of the ports you
build or fetch (see <link linkend="resources">resources</link> maintain are failing to build or fetch (see <link
for more information about these systems). Reports of linkend="resources">resources</link> for more
failures may also come to you from other users or information about these systems). Reports of failures
automated systems via email.</para> may also come to you from other users or automated
systems via email.</para>
</step> </step>
<step> <step>
@ -470,10 +476,10 @@
<para>Once you are aware of a problem, collect information <para>Once you are aware of a problem, collect information
to help you fix it. Build errors reported by to help you fix it. Build errors reported by
<literal>pointyhat</literal> are accompanied by logs <literal>pointyhat</literal> are accompanied by logs
which will show you where the build failed. If the failure which will show you where the build failed. If the
was reported to you by a user, ask them to send you failure was reported to you by a user, ask them to send
information which may help in diagnosing the problem, you information which may help in diagnosing the
such as:</para> problem, such as:</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
@ -483,7 +489,7 @@
<listitem> <listitem>
<para>The commands and options used to build the <para>The commands and options used to build the
port (including options set in port (including options set in
<filename>/etc/make.conf</filename>)</para> <filename>/etc/make.conf</filename>)</para>
</listitem> </listitem>
<listitem> <listitem>
@ -497,13 +503,14 @@
</listitem> </listitem>
<listitem> <listitem>
<para>When their ports collection was last updated <para>When their ports collection was last
</para> updated</para>
</listitem> </listitem>
<listitem> <listitem>
<para>When their <filename>INDEX</filename> file <para>When their <filename>INDEX</filename> file
was last updated</para></listitem> was last updated</para>
</listitem>
</itemizedlist> </itemizedlist>
</step> </step>
@ -512,8 +519,9 @@
<para>Unfortunately there is no straightforward process to <para>Unfortunately there is no straightforward process to
follow to do this. Remember, though: if you are stuck, follow to do this. Remember, though: if you are stuck,
ask for help! The &a.ports; is a good place to start, and ask for help! The &a.ports; is a good place to start,
the upstream developers are often very helpful.</para> and the upstream developers are often very
helpful.</para>
</step> </step>
<step> <step>
@ -521,37 +529,38 @@
<para>Just as with updating a port, you should now <para>Just as with updating a port, you should now
incorporate changes, review and test, submit your incorporate changes, review and test, submit your
changes in a PR, and provide feedback if required. changes in a PR, and provide feedback if
</para> required.</para>
</step> </step>
<step> <step>
<title>Send patches to upstream authors</title> <title>Send patches to upstream authors</title>
<para>In some cases, you will have to make patches to <para>In some cases, you will have to make patches to the
the port to make it run on FreeBSD. Some (but not all) port to make it run on FreeBSD. Some (but not all)
upstream authors will accept such patches back into upstream authors will accept such patches back into
their code for the next release. If so, this may even their code for the next release. If so, this may even
help their users on other BSD-based systems as well and help their users on other BSD-based systems as well and
perhaps save duplicated effort. Please consider sending perhaps save duplicated effort. Please consider sending
any applicable patches to the authors as a courtesy. any applicable patches to the authors as a
</para> courtesy.</para>
</step> </step>
</procedure> </procedure>
</sect3> </sect3>
<sect3> <sect3>
<title>Investigate bug reports and PRs related to your port
</title>
<para>This section is about discovering and fixing bugs. <title>Investigate bug reports and PRs related to your
</para> port</title>
<para>This section is about discovering and fixing
bugs.</para>
<para>&os;-specific bugs are generally caused by assumptions <para>&os;-specific bugs are generally caused by assumptions
about the build and runtime environments that do not apply to about the build and runtime environments that do not apply
&os;. You are less likely to encounter a problem of this to &os;. You are less likely to encounter a problem of this
type, but it can be more subtle and difficult to diagnose. type, but it can be more subtle and difficult to
</para> diagnose.</para>
<para>These are the tasks you need to perform to ensure your <para>These are the tasks you need to perform to ensure your
port continues to work as intended:</para> port continues to work as intended:</para>
@ -561,49 +570,50 @@
<title>Respond to bug reports</title> <title>Respond to bug reports</title>
<para>Bugs may be reported to you through email via the <para>Bugs may be reported to you through email via the
<ulink url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query"> <ulink
GNATS Problem Report database</ulink>. Bugs may url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
also be reported directly to you by users.</para> GNATS Problem Report database</ulink>. Bugs may also be
reported directly to you by users.</para>
<para>You should respond to PRs and other reports within <para>You should respond to PRs and other reports within
14 days, but please try not to take that long. Try to respond 14 days, but please try not to take that long. Try to
as soon as possible, even if it is just to say you need some respond as soon as possible, even if it is just to say
more time before you can work on the PR.</para> you need some more time before you can work on the
PR.</para>
<para>If you have not responded after 14 days, any committer may <para>If you have not responded after 14 days, any
commit from a PR that you have not responded to via a committer may commit from a PR that you have not
responded to via a
<literal>maintainer-timeout</literal>.</para> <literal>maintainer-timeout</literal>.</para>
</step> </step>
<step> <step>
<title>Collect information</title> <title>Collect information</title>
<para>If the person reporting the bug has not also provided <para>If the person reporting the bug has not also
a fix, you need to collect the information that will provided a fix, you need to collect the information that
allow you to generate one.</para> will allow you to generate one.</para>
<para>If the bug is reproducible, you can collect most of <para>If the bug is reproducible, you can collect most of
the required information yourself. If not, ask the the required information yourself. If not, ask the
person who reported the bug to collect the information person who reported the bug to collect the information
for you, such as: for you, such as:</para>
</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>A detailed description of their actions, <para>A detailed description of their actions,
expected program behavior and actual behavior expected program behavior and actual behavior</para>
</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Copies of input data used to trigger the bug <para>Copies of input data used to trigger the
</para> bug</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Information about their build and execution <para>Information about their build and execution
environment &mdash; for example, a list of installed environment &mdash; for example, a list of installed
packages and the output of &man.env.1;</para> packages and the output of &man.env.1;</para>
</listitem> </listitem>
<listitem> <listitem>
@ -632,8 +642,8 @@
<step> <step>
<title>Find a solution</title> <title>Find a solution</title>
<para>As with build errors, you will need to sort out a fix <para>As with build errors, you will need to sort out a
to the problem. Again, remember to ask if you are fix to the problem. Again, remember to ask if you are
stuck!</para> stuck!</para>
</step> </step>
@ -653,35 +663,35 @@
<sect3> <sect3>
<title>Providing support</title> <title>Providing support</title>
<para>Part of being a maintainer is providing support &mdash; not <para>Part of being a maintainer is providing support &mdash;
for the software in general &mdash; but for the port and any not for the software in general &mdash; but for the port and
&os;-specific quirks and problems. Users may contact you with any &os;-specific quirks and problems. Users may contact
questions, suggestions, problems and patches. Most of the you with questions, suggestions, problems and patches. Most
time their correspondence will be specific to &os;.</para> of the time their correspondence will be specific to
&os;.</para>
<para>Occasionally you may have to invoke your skills in <para>Occasionally you may have to invoke your skills in
diplomacy, and kindly point users seeking general support to diplomacy, and kindly point users seeking general support to
the appropriate resources. Less frequently you will encounter the appropriate resources. Less frequently you will
a person asking why the <literal>RPM</literal>s are not up to date encounter a person asking why the <literal>RPM</literal>s
or how can they get the software to run under Foo Linux. Take the are not up to date or how can they get the software to run
opportunity to tell them that your port is up to date (if it under Foo Linux. Take the opportunity to tell them that
is, of course!), and suggest that they try &os;. your port is up to date (if it is, of course!), and suggest
</para> that they try &os;.</para>
<para>Sometimes users and developers will decide that you are a <para>Sometimes users and developers will decide that you are
busy person whose time is valuable and do some of the work for a busy person whose time is valuable and do some of the work
you. For example, they might: for you. For example, they might:</para>
</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>submit a PR or send you patches to update your port, <para>submit a PR or send you patches to update your
</para> port,</para>
</listitem> </listitem>
<listitem> <listitem>
<para>investigate and perhaps provide a fix to a PR, or <para>investigate and perhaps provide a fix to a PR,
</para> or</para>
</listitem> </listitem>
<listitem> <listitem>
@ -690,12 +700,12 @@
</itemizedlist> </itemizedlist>
<para>In these cases your main obligation is to respond in a <para>In these cases your main obligation is to respond in a
timely manner. Again, the timeout for non-responsive maintainers is timely manner. Again, the timeout for non-responsive
14 days. After this period changes may be committed maintainers is 14 days. After this period changes may be
unapproved. They have taken the trouble to do this for you; committed unapproved. They have taken the trouble to do
so please try to at least respond promptly. Then review, this for you; so please try to at least respond promptly.
approve, modify or discuss their changes with them as soon as Then review, approve, modify or discuss their changes with
possible.</para> them as soon as possible.</para>
<para>If you can make them feel that their contribution is <para>If you can make them feel that their contribution is
appreciated (and it should be) you will have a better chance appreciated (and it should be) you will have a better chance
@ -711,21 +721,22 @@
<para>There are two really good places to find a port that needs <para>There are two really good places to find a port that needs
some attention.</para> some attention.</para>
<para>You can use the <para>You can use the <ulink
<ulink url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">web interface</ulink> url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">web
to the Problem Report database to search through and view unresolved interface</ulink> to the Problem Report database to search
PRs. The majority of ports PRs are updates, but with a little through and view unresolved PRs. The majority of ports PRs are
searching and skimming over synopses you should be able to find updates, but with a little searching and skimming over synopses
something interesting to work on (the <literal>sw-bug</literal> you should be able to find something interesting to work on (the
class is a good place to start). <literal>sw-bug</literal> class is a good place to
</para> start).</para>
<para>The other place is the <para>The other place is the <ulink
<ulink url="http://portsmon.FreeBSD.org/">&os; Ports Monitoring System</ulink>. url="http://portsmon.FreeBSD.org/">&os; Ports Monitoring
In particular look for unmaintained ports with build errors and System</ulink>. In particular look for unmaintained ports
ports that are marked <makevar>BROKEN</makevar>. It is OK to send with build errors and ports that are marked
changes for a maintained port as well, but remember to ask the <makevar>BROKEN</makevar>. It is OK to send changes for a
maintainer in case they are already working on the problem.</para> maintained port as well, but remember to ask the maintainer in
case they are already working on the problem.</para>
<para>Once you have found a bug or problem, collect information, <para>Once you have found a bug or problem, collect information,
investigate and fix! If there is an existing PR, follow up to investigate and fix! If there is an existing PR, follow up to
@ -742,78 +753,78 @@
longer using a port or have otherwise lost time or interest in longer using a port or have otherwise lost time or interest in
being a maintainer. In this way we can go ahead and allow other being a maintainer. In this way we can go ahead and allow other
people to try to work on existing problems with the port without people to try to work on existing problems with the port without
waiting for your response. Remember, &os; is a volunteer project, waiting for your response. Remember, &os; is a volunteer
so if maintaining a port is no fun anymore, it is probably time to project, so if maintaining a port is no fun anymore, it is
let someone else do it!</para> probably time to let someone else do it!</para>
<para>In any case, the Ports Management Team (<literal>portmgr</literal>) <para>In any case, the Ports Management Team
reserves the right to reset your maintainership if you have not (<literal>portmgr</literal>) reserves the right to reset your
actively maintained your port in some time. (Currently, this is maintainership if you have not actively maintained your port in
set to 3 months.) By this, we mean that there are unresolved some time. (Currently, this is set to 3 months.) By this, we
problems or pending updates that have not been worked on during mean that there are unresolved problems or pending updates that
that time.</para> have not been worked on during that time.</para>
</sect1> </sect1>
<sect1 id="resources"> <sect1 id="resources">
<title>Resources for ports maintainers and contributors</title> <title>Resources for ports maintainers and contributors</title>
<para>The <para>The <ulink url="&url.books.porters-handbook;">Porter's
<ulink url="&url.books.porters-handbook;">Porter's Handbook</ulink> Handbook</ulink> is your hitchhiker's guide to the ports
is your hitchhiker's guide to the ports system. Keep it handy! system. Keep it handy!</para>
</para>
<para><ulink url="&url.articles.problem-reports;">Writing FreeBSD Problem Reports</ulink> <para><ulink url="&url.articles.problem-reports;">Writing FreeBSD
describes how to best formulate and submit a PR. In 2005 more Problem Reports</ulink> describes how to best formulate and
than eleven thousand ports PRs were submitted! Following this submit a PR. In 2005 more than eleven thousand ports PRs were
article will greatly assist us in reducing the time needed to submitted! Following this article will greatly assist us in
handle your PRs.</para> reducing the time needed to handle your PRs.</para>
<para>The <para>The <ulink
<ulink url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query"> url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
Problem Report database</ulink>.</para> Problem Report database</ulink>.</para>
<para><ulink url="http://pointyhat.FreeBSD.org/">Pointyhat</ulink> <para><ulink url="http://pointyhat.FreeBSD.org/">Pointyhat</ulink>
is the ports build cluster. You can use Pointyhat to check port is the ports build cluster. You can use Pointyhat to check port
build logs across all architectures and major releases.</para> build logs across all architectures and major releases.</para>
<para>The <para>The <ulink url="http://portsmon.FreeBSD.org/">FreeBSD Ports
<ulink url="http://portsmon.FreeBSD.org/">FreeBSD Ports Monitoring System </ulink> Monitoring System</ulink> can show you cross-referenced
can show you cross-referenced information about ports such as information about ports such as build errors and problem
build errors and problem reports. If you are a maintainer you can reports. If you are a maintainer you can use it to check on the
use it to check on the build status of your ports. As a build status of your ports. As a contributor you can use it to
contributor you can use it to find broken and unmaintained ports find broken and unmaintained ports that need to be fixed.</para>
that need to be fixed.</para>
<para>The <para>The <ulink url="http://www.portscout.org">FreeBSD Ports
<ulink url="http://www.portscout.org">FreeBSD Ports distfile scanner</ulink> distfile scanner</ulink> can show you ports for which the
can show you ports for which the distfiles are not fetchable. You distfiles are not fetchable. You can check on your own ports or
can check on your own ports or use it to find ports that need their use it to find ports that need their
<makevar>MASTER_SITES</makevar> updated. <makevar>MASTER_SITES</makevar> updated.</para>
</para>
<para>The ports <application>tinderbox</application> is the most <para>The ports <application>tinderbox</application> is the most
thorough way to test a port through the entire cycle of installation, thorough way to test a port through the entire cycle of
packaging, and deinstallation. It features a command-line installation, packaging, and deinstallation. It features a
interface but also can be controlled via a web interface. command-line interface but also can be controlled via a web
Please see <filename>ports/ports-mgmt/tinderbox</filename>. interface. Please see
More documentation is located at the <filename>ports/ports-mgmt/tinderbox</filename>. More
<ulink url="http://tinderbox.marcuscom.com/">marcuscom tinderbox home page</ulink>. documentation is located at the <ulink
</para> url="http://tinderbox.marcuscom.com/">marcuscom tinderbox home
page</ulink>.</para>
<para>&man.portlint.1; is an application which can be used to verify <para>&man.portlint.1; is an application which can be used to
that your port conforms to many important stylistic and functional verify that your port conforms to many important stylistic and
guidelines. <application>portlint</application> is a simple functional guidelines. <application>portlint</application> is a
heuristic application, so you should use it <emphasis>only as a simple heuristic application, so you should use it
guide</emphasis>. If <application>portlint</application> suggests <emphasis>only as a guide</emphasis>. If
changes which seem unreasonable, consult the <application>portlint</application> suggests changes which seem
<ulink url="&url.books.porters-handbook;">Porter's Handbook</ulink> or unreasonable, consult the <ulink
ask for advice.</para> url="&url.books.porters-handbook;">Porter's Handbook</ulink>
or ask for advice.</para>
<para>The &a.ports; is for general ports-related discussion. It is <para>The &a.ports; is for general ports-related discussion. It
a good place to ask for help. You can is a good place to ask for help. You can <ulink
<ulink url="http://lists.freebsd.org/mailman/listinfo">subscribe, or url="http://lists.freebsd.org/mailman/listinfo">subscribe, or
read and search the list archives</ulink>. Reading the archives of read and search the list archives</ulink>. Reading the
the &a.ports-bugs; and the &a.cvs-ports; may also be of interest.</para> archives of the &a.ports-bugs; and the &a.cvs-ports; may also be
of interest.</para>
</sect1> </sect1>
</article> </article>