Source string Read only

(itstool) path: sect1/para
Context English State
<command>make package</command> (as user)
Make certain no warnings are shown in any of the stages.
Thorough automated testing can be done with <package role="port">ports-mgmt/poudriere</package> from the Ports Collection, see <xref linkend="testing-poudriere"/> for more information. It maintains <literal>jails</literal> where all of the steps shown above can be tested without affecting the state of the host system.
Checking the Port with <command>portlint</command>
Please use <command>portlint</command> to see if the port conforms to our guidelines. The <package role="port">ports-mgmt/portlint</package> program is part of the ports collection. In particular, check that the <link linkend="porting-samplem">Makefile</link> is in the right shape and the <link linkend="porting-pkgname">package</link> is named appropriately.
Do not blindly follow the output of <command>portlint</command>. It is a static lint tool and sometimes gets things wrong.
Submitting the New Port
Before submitting the new port, read the <link linkend="porting-dads">DOs and DON'Ts</link> section.
Once happy with the port, the only thing remaining is to put it in the main FreeBSD ports tree and make everybody else happy about it too.
We do not need the <filename>work</filename> directory or the <filename>pkgname.txz</filename> package, so delete them now.
Next, create a <citerefentry><refentrytitle>patch</refentrytitle><manvolnum>1</manvolnum></citerefentry>, file. Assuming the port is called <literal>oneko</literal> and is in the <literal>games</literal> category.
Creating a <filename>.diff</filename> for a New Port
Add all the files with <command>svn add</command>. <command>cd</command> to the base of the ports tree so full paths to the changed files are included in the diff, then generate the diff with <command>svn diff</command>. For example:
<prompt>%</prompt> <userinput>svn add .</userinput>
<prompt>%</prompt> <userinput>cd ../..</userinput>
<prompt>%</prompt> <userinput>svn diff <replaceable>games/oneko</replaceable> &gt; <replaceable>oneko.diff</replaceable></userinput>
To make it easier for committers to apply the patch on their working copy of the ports tree, please generate the <filename>.diff</filename> from the base of your ports tree.
Submit <filename>oneko.diff</filename> with the <link xlink:href="">bug submission form</link>. Use product <quote>Ports &amp; Packages</quote>, component <quote>Individual Port(s)</quote>, and follow the guidelines shown there. Add a short description of the program to the Description field of the PR (perhaps a short version of <varname>COMMENT</varname>), and remember to add <filename>oneko.diff</filename> as an attachment.
Giving a good description in the summary of the problem report makes the work of port committers a lot easier. We prefer something like <quote>New port: <replaceable>category</replaceable>/<replaceable>portname</replaceable> <replaceable>short description of the port</replaceable></quote> for new ports. Using this scheme makes it easier and faster to begin the work of committing the new port.
After submitting the port, please be patient. The time needed to include a new port in FreeBSD can vary from a few days to a few months. A simple search form of the Problem Report database can be searched at <link xlink:href=""/>.
To get a listing of <emphasis>open</emphasis> port <acronym>PR</acronym>s, select <emphasis>Open</emphasis> and <emphasis>Ports &amp; Packages</emphasis> in the search form, then click <guibutton>[ Search ]</guibutton>.
After looking at the new port, we will reply if necessary, and commit it to the tree. The submitter's name will also be added to the list of <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/contributors/contrib-additional.html">Additional FreeBSD Contributors</link> and other files.
It is also possible to submit ports using a <citerefentry><refentrytitle>shar</refentrytitle><manvolnum>1</manvolnum></citerefentry> file. Using the previous example with the <literal>oneko</literal> port above.
Creating a <filename>.shar</filename> for a New Port
go to the directory above where the port directory is located, and use <command>tar</command> to create the shar archive:
<prompt>%</prompt> <userinput>cd ..</userinput>
<prompt>%</prompt> <userinput>tar cf <replaceable>oneko</replaceable>.shar --format shar <replaceable>oneko</replaceable></userinput>
<filename>oneko.shar</filename> can then be submitted in the same way as <filename>oneko.diff</filename> above.
Slow Porting
Okay, so it was not that simple, and the port required some modifications to get it to work. In this section, we will explain, step by step, how to modify it to get it to work with the ports paradigm.
How Things Work
First, this is the sequence of events which occurs when the user first types <command>make</command> in the port's directory. Having <filename></filename> in another window while reading this really helps to understand it.
But do not worry, not many people understand exactly how <filename></filename> is working... <emphasis>:-)</emphasis>
The <_:buildtarget-1/> target is run. The <_:buildtarget-2/> target is responsible for making sure that the tarball exists locally in <varname>DISTDIR</varname>. If <_:buildtarget-3/> cannot find the required files in <varname>DISTDIR</varname> it will look up the URL <varname>MASTER_SITES</varname>, which is set in the Makefile, as well as our FTP mirrors where we put distfiles as backup. It will then attempt to fetch the named distribution file with <varname>FETCH</varname>, assuming that the requesting site has direct access to the Internet. If that succeeds, it will save the file in <varname>DISTDIR</varname> for future use and proceed.


User avatar None

New source string

FreeBSD Doc / books_porters-handbookEnglish

New source string 2 months ago
Browse all component changes

Things to check


The string is used as plural, but not using plural forms



English English
No related strings found in the glossary.

Source information

Source string comment
(itstool) path: sect1/para
Source string location
String age
2 months ago
Source string age
2 months ago
Translation file
books/porters-handbook.pot, string 95