De ports tree is een enorm stuk werk dat OpenBSD gebruikers in staat stelt om programma's van derden gemakkelijk te installeren zonder deze eerst afzonderlijk te patchen, te configureren en te installeren. Dit werk wordt gedaan door een groep vrijwilligers die hun tijd spenderen aan het porten en testen van applicaties op de verschillende OpenBSD platformen. Veel mensen denken dat ze hier niet bij kunnen helpen vanwege het feit dat ze niet genoeg kennis hebben; dit klopt niet, ze kunnen de porters wel degelijk helpen, zodat ze beter en sneller kunnen werken.
Het testen van updates of nieuwe ports die bekend worden gemaakt op de ports mailinglijst. Door dit te doen kunt u de wachttijd van commits verkleinen en zo ook het aantal ports dat wordt gecommit vergroten (veel ports worden niet gecommit vanwege het gebrek aan testen!).
De ports tree wordt ontwikkeld met behulp van OpenBSD-current; er kan niet worden gegarandeerd dat nieuwe ports of updates op andere branches werken. Dit betekent dat u uw systeem en de ports tree moet upgraden naar -current (instructies hoe u dit moet doen staan op de anoncvs en "-current volgen") pagina's. Het is tevens aan te raden dat u zich inschrijft op de ports en ports-changes mailinglijsten. Op deze manier zal u altijd op de hoogte blijven van nieuwe of bijgewerkte ports en van veranderingen in de ports tree.
Er zijn twee soorten bijdragen op de mailinglijsten; nieuwe ports en updates. De nieuwe ports worden meestal geplaatst als een toegevoegde tarball of URL. Het is een goed idee om deze uit te pakken in de /usr/ports/mystuff directory en van hier uit te testen. Updates worden meestal geleverd als een diff tegen de -current ports tree, het is dus het beste om de port te kopiëren naar mystuff/ en hier de diff toe te passen om een kapotte tree te voorkomen.
Het stap-voor-stap bouwen is vereist om na te kunnen gaan dat ieder doel, zie ports(7), succesvol wordt volbracht:
Overgebleven bestanden in pkg/ zoals DESCR en MESSAGE moeten worden gecontroleerd op grammatica en spelfouten. De paragrafen moeten geformatteerd zijn met behulp van fmt(1) en de regels mogen niet langer zijn dan 70 tekens.
Aan het eind van het testen komt een iets heel belangrijks: opmerkingen. Ook als de port goed werkt moeten er opmerkingen gemaakt worden. Als we tien berichten hebben waarin mensen zeggen dat de port het goed doet op verschillende architecturen, dan zal het eerder gecommit worden. Als het niet werkt, dan moet er aanvullende informatie worden gegeven. Er zijn tools beschikbaar voor deze taak, zoals portslogger, dit is een soort van een "intelligente tee" die de output naar een logbestand schrijft.
Voorbeeld:
# make install 2>&1 | /usr/ports/infrastructure/build/portslogger .
|
Dit zal er voor zorgen dat de output naar een logbestand wordt geschreven in de huidige directory.
Tenslotte, zodra de port ok bevonden wordt, moeten ook afhankelijke ports getest worden, om na te gaan of ze nog steeds juist werken. De show-required-by make target zal u helpen om andere ports te vinden die afhangen van de huidige.
Controleer de Makefile van de port op juiste dependencies, spelfouten, onjuiste links, nutteloze of ontbrekende variabelen, en verbeter de licentie en categorieën. Mensen met meer ervaring kunnen helpen door patches uit te pluizen, patches in te zenden om bugs op te lossen, 'flavors' toe te voegen of andere verbeteringen.
Deze diffs kunnen gemaakt worden met de -uNr --exclude=CVS opties. Met cvs diff -uN kunnen patches worden gemaakt met behulp van de CVS repository.