version 1.7, 2002/09/11 09:31:13 |
version 1.8, 2002/09/11 12:16:10 |
|
|
"#0000e0">Introduction</font></a></h2> |
"#0000e0">Introduction</font></a></h2> |
|
|
<p>The <a href="ports.html">ports tree</a> is an huge piece of work that |
<p>The <a href="ports.html">ports tree</a> is an huge piece of work that |
permits OpenBSD users to use third-party programs without losing time in |
permits OpenBSD users to use third-party programs without wasting time |
patching, configuring, etc. This work is done by a few volunteers who |
patching, configuring and installing each one individually. This work |
spend hours making your favorite applications work fine on your |
is done by a few volunteers who spend hours making your favorite |
system. Many people think that they can't help our project because they |
applications work fine on your system. Many people think that they |
don't have enough knowledge; this is false because they can help porters |
cannot help our project because they do not have enough knowledge; |
work better and faster.</p> |
this is false because they can help porters work better and faster.</p> |
|
|
<h2><a name="How"><font color="#0000e0">How</font></a></h2> |
<h2><a name="How"><font color="#0000e0">How</font></a></h2> |
|
|
<p>Simply by testing submitted updates or new ports which are posted on |
<p>Testing submitted updates or new ports which are posted on the |
<a href="mail.html">ports mailing list</a>. By doing this |
<a href="mail.html">ports mailing list</a>. By doing this |
you reduce the latency of commits and also increase the number of ports to |
you reduce the latency of commits and also increase the number of ports to |
be committed (many ports are not committed because of lack of testing!).</p> |
be committed (many ports are not committed because of lack of testing!).</p> |
|
|
<h2><a name="First"><font color="#0000e0">First step</font></a></h2> |
<h2><a name="First"><font color="#0000e0">First step</font></a></h2> |
|
|
<p>Before starting the tester must have in mind that ports development is |
<p>The ports tree is developed against |
done with <a href="plus.html">OpenBSD-current</a> as target.This means |
<a href="plus.html">OpenBSD-current</a>; there is no guarantee that |
that there is no guarantee that new ports will work correctly on the other |
new ports will work correctly on the other branches. This also means |
branches. This also means that the tester should upgrade his system to |
you should upgrade your system and ports tree to -current |
-current as well as the ports tree (instructions on how to do this can be |
(instructions on how to do this can be found at the |
found at the <a href="../anoncvs.html">anoncvs</a> page and in the |
<a href="../anoncvs.html">anoncvs</a> page and in the |
proper <a href="./upgrade-minifaq.html">faq section</a>. |
<a href="./upgrade-minifaq.html">FAQ</a>). |
Having this done, the system is now prepared to do port testing. It is also |
It is also recommended that you subscribe to the ports and ports-changes |
advisable the subscription of ports and ports-changes |
<a href="../mail.html">mailing-lists</a>. This way you will be notified |
<a href="../mail.html">mailing-lists</a>, this way the tester will be notified |
about new or updated ports and about changes in the ports tree.</p> |
about new/updated ports (to be tested) and about changes in the ports |
|
tree.</p> |
|
|
|
<h2><a name="Testing"><font color="#0000e0">Testing</font></a></h2> |
<h2><a name="Testing"><font color="#0000e0">Testing</font></a></h2> |
|
|
<p>In the mailing-lists two types of submission can be found; new ports |
<p>There are two types of submissions on the mailing-lists; new ports |
and updates. New ports are generally posted as tarball attachment |
and updates. New ports are generally posted as tarball attachments |
(or an url is given) which contains the port tree. A good idea is to extract |
or urls. A good idea is to extract them into the |
it into the <tt>/usr/ports/mystuff/</tt> directory and test the port from here. |
<tt>/usr/ports/mystuff/</tt> directory and test from there. |
Updates are generally a diff against current ports tree, so it is suggested |
Updates are generally a diff against the -current ports tree, so it is best |
to copy the port in <tt>mystuff/</tt> and apply the diff to prevent tree |
to copy the port to <tt>mystuff/</tt> and apply the diff to prevent tree |
breakage.</p> |
breakage.</p> |
|
|
<p>Step-by-step building is needed to verify that every target, see |
<p>Step-by-step building is needed to verify that every target, see |
|
|
ports(7)</a>, is achieved correctly :</p> |
ports(7)</a>, is achieved correctly :</p> |
|
|
<ul> |
<ul> |
<li>fetch : Needed to verify that distfile(s) are correctly downloaded.</li> |
<li><i>fetch</i> |
|
<ul> |
|
<li>Needed to verify that distfile(s) are correctly downloaded. Try to test all of the <tt>MASTER_SITES</tt> specified to make sure they are all valid sources.</li> |
|
</ul> |
|
|
<li>extract : Generally extract is done without a problem, this target can |
<li><i>extract</i> |
be ignored in most cases.</li> |
<ul><li>Each of the distfiles should install any dependent programs (such as bzip2) beforehand.</li></ul> |
|
|
<li>patch : Check if patches are applied correctly and track down |
<li><i>patch</i> |
forgotten <tt>.orig</tt> files.</li> |
<ul> |
|
<li>Patches should apply cleanly without any warnings. |
|
<li>There shouldn't be any <tt>.orig</tt> files left behind in the |
|
<tt>patches/</tt> directory. |
|
<li>Another common mistake is to include RCS tags in a patch; this will break when the port is checked into the repository and the RCS tag expanded. |
|
</ul> |
|
|
<li>configure : For ports which use a configure script the tester can |
<li><i>configure</i> |
verify if it has the correct path for dependencies, use(less) features, |
<ul> |
etc ...</li> |
<li>Check that configure scripts correctly detect features |
|
on your platform. |
|
<li>GNU libtool is notorious for undesired 'features' on OpenBSD, |
|
so check that the port is using a recent version which creates |
|
correct libraries on your architecture. |
|
<li>The configure script should not detect stray applications already |
|
installed on your system without explicit dependencies being |
|
set in the port. |
|
</ul> |
|
|
<li>build : The build itself should not give errors but could contain |
<li><i>build</i> |
minor warnings about <a href= |
<ul> |
|
<li>Check for build errors and suspicious warnings. |
|
<li>Warnings about <a href= |
"http://www.openbsd.org/cgi-bin/man.cgi?query=tmpnam&sektion=3&"> |
"http://www.openbsd.org/cgi-bin/man.cgi?query=tmpnam&sektion=3&"> |
tmpnam(3)</a> issues to be resolved by using |
tmpnam(3)</a> issues should be resolved by using |
<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mkstemp&sektion=3&"> |
<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mkstemp&sektion=3&"> mkstemp(3)</a>.</li> |
mkstemp(3)</a>.</li> |
<li>Try to set the <tt>SEPARATE_BUILD</tt> variable to 'concurrent' and test if the build still works. |
|
<li>Make sure dependencies on GNU make are really necessary. |
|
</ul> |
|
|
<li>fake : This target fakes installation of the package and prepares |
<li><i>fake</i> |
its installation. Checking can be done by verifying that files are |
<ul> |
properly installed in the fake directory.</li> |
<li>This target installs the application into a fake working |
|
directory, to ensure that all files can be easily packaged up |
|
without affecting the base system. |
|
<li>The port should <b>never</b> install files outside of the |
|
fake directory (such as into <tt>/usr/local</tt>). |
|
<li>GNU libtool occasionally has trouble relinking libraries |
|
during the fake process on some architectures. |
|
</ul> |
|
|
<li>package : Package creation can break if pkg/PLIST* and/or |
<li><i>package</i> |
pkg/PFRAG* are wrong.</li> |
<ul> |
|
<li>Package creation can break if pkg/PLIST* and/or |
|
pkg/PFRAG* are wrong.</li> |
|
</ul> |
|
|
<li>install : Check that package installation works fine.</li> |
<li><i>install</i> |
|
<ul> |
|
<li>Packages should install all of the files from their packaging |
|
lists successfully and with the correct permissions. Be especially |
|
careful of files with the setuid bits set. |
|
<li>Make sure that the package <tt>INSTALL</tt> script works |
|
correctly, and does not overwrite any files in <tt>/etc</tt>. |
|
</ul> |
|
|
<li>deinstall : Don't forget to test deinstall.</li> |
<li><i>deinstall</i> |
|
<ul> |
|
<li>This should remove all files installed by the package, except |
|
those in <tt>/etc</tt>. |
|
<li>Make sure that the <tt>DEINSTALL</tt> script works as expected. |
|
</ul> |
</ul> |
</ul> |
|
|
<p>Checking of pkg/ files like DESCR, MESSAGE, INSTALL, |
<p>Checking of pkg/ files like DESCR, MESSAGE, INSTALL, |
|
|
as well as providing diffs to correct bugs, add flavors, or other |
as well as providing diffs to correct bugs, add flavors, or other |
enhancements.</p> |
enhancements.</p> |
<hr> |
<hr> |
|
<small> |
<address> |
|
<p>$OpenBSD$<br> |
<p>$OpenBSD$<br> |
OpenBSD Copyright © 2002 OpenBSD</p> |
OpenBSD Copyright © 2002 OpenBSD</p> |
</address> |
</small> |
</body> |
</body> |
</html> |
</html> |