Many people think that they cannot help this process because they do not have enough knowledge, but this is wrong because they can help porters work better and faster. Test submitted updates or new ports which are posted on the ports mailing list. By doing this, 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.
The ports tree is developed against -current; there is no guarantee that new ports or updates will work correctly on the other branches. This means you should upgrade your system and ports tree to -current. Instructions on how to do this can be found at the following current page. It is also recommended that you subscribe to the ports and ports-changes mailing lists. This way, you will be notified about new or updated ports and about changes in the ports tree.
/usr/ports/mystuff/
directory and test from there.
Updates are generally a diff against the -current ports tree, so it is best
to copy the port to mystuff/
and apply the diff to prevent tree
breakage.
If the previous version of the port is installed, it is a good idea to remove
it before building the newer version to avoid side effects, like symbols
missing from the older version of a library.
Step-by-step building is needed to verify that every target, see ports(7), is achieved correctly:
MASTER_SITES
specified to make sure they
are all valid sources.
distinfo
file.
You can re-run make clean=dist && make makesum
and verify that nothing changes.
prepare
target is automatically invoked
before extract
and should install all {BUILD,LIB}_DEPENDS
for this port (such as
bzip2).
patches/
directory.
USE_LIBTOOL=gnu
which uses a patched version from ports.
GNU libtool is notorious for undesired 'features' on OpenBSD, so
if the port does not build with the libtool from base, that should
be fixed and there should be a XXX comment about why in the ports
Makefile
.
${WRKBUILD}/CMakeCache.txt
${WRKBUILD}/CMakeFiles/CMakeError.log
${WRKBUILD}/CMakeFiles/CMakeOutput.log
SEPARATE_BUILD
variable to 'Yes'
and test if the build still works.
{BUILD,RUN}_DEPENDS
, check that TEST_DEPENDS
is
defined correctly.
/usr/local
.
LIB_DEPENDS
or WANTLIB
.
The result should be empty.
The above variables should be inspected when you see lines starting "Extra"
or "Missing."
pkg/PLIST*
and/or
pkg/PFRAG*
are wrong.
INSTALL
script works correctly, and does
not overwrite any files in /etc
.
/etc
.
@extra
and/or
@extraunexec
annotations in pkg/PLIST*
.
Remaining pkg/
files like DESCR
and
MESSAGE
should be checked for grammar and typos.
Paragraphs should be formatted using
fmt(1) and wrapped at 80 characters.
Example:
# make install 2>&1 | /usr/ports/infrastructure/bin/portslogger .This will redirect the output into a log file located in the current directory.
Finally, once the port is found to be okay, other ports depending on it should
also be tested, to check whether they are still working correctly.
The show-required-by
make target will help to find other ports
which depend on the current one.
Makefile
for correct dependencies, typos,
incorrect links, useless or missing variables, correct licensing and categories.
Those who are more skilled can help by examining patches, as well as
providing diffs to correct bugs, add flavors, or other enhancements.
These diffs should be done with the -uNprx CVS
options.
cvs diff -uNp
can also be used to generate patches against the CVS
repository.