Bijdragen aan de FreeBSD Portscollectie

Sam Lawrance

Mark Linimon

Herziening: 43184

FreeBSD is een geregistreerd handelsmerk van de FreeBSD Foundation.

Veel van de termen die door fabrikanten en verkopers worden gebruikt om hun producten te onderscheiden worden geclaimd als handelsmerk. Op de plaatsen waar deze handelsmerken in dit document voorkomen, en het FreeBSD Project op de hoogte was van de claim op het handelsmerk, worden de termen gevolgd door het symbool of het symbool ģ.

2013-11-13 door hrs.
Abstract

Dit artikel beschrijft de manieren waarop een individu kan bijdragen aan de FreeBSD Portscollectie.

Vertaald door Renť Ladan.

[ Opgedeeld HTML bestand / Enkel HTML bestand ]

Inhoudsopgave
1. Introductie
2. Wat u kunt doen om te helpen
3. Een nieuwe port creŽeren
4. Een niet-onderhouden port adopteren
5. De uitdaging voor port-onderhouders
6. Een kapotte port vinden en repareren
7. Wanneer het tijd wordt om te stoppen
8. Bronnen voor onderhouders en vrijwilligers voor ports
Register

1. Introductie

De Portscollectie is een eeuwig werk-in-uitvoering. We willen onze gebruikers een reservoir van software van derde partijen bieden dat gemakkelijk te gebruiken, bijgewerkt, en van hoge kwaliteit is. We hebben mensen nodig die wat tijd en moeite investeren om ons dit doel te helpen bereiken.

Iedereen kan erin betrokken raken, en er zijn vele manieren om dat te doen. Bijdragen aan ports is een uitstekende manier om te helpen om iets aan het project terug te geven. Of u nu op zoek bent naar een blijvende rol, of naar een uitdaging voor een regenachtige dag, wij stellen uw hulp zeer op prijs!

Als een vrijwilliger kunt u doen en laten wat u wilt. We vragen echter wel dat u op de hoogte bent van wat andere leden van de FreeBSD-gemeenschap van u verwachten. U doet er goed aan om dit te overwegen voordat u besluit om vrijwilliger te worden.

2. Wat u kunt doen om te helpen

Er zijn een aantal gemakkelijke manieren waarop u bij kunt dragen om de portsboom actueel en in een goede toestand te houden:

3. Een nieuwe port creŽeren

Er is een apart document beschikbaar om u door het creŽeren (en bijwerken) van een port te loodsen genaamd het Porter's Handbook. Het Porter's Handbook is het beste naslagwerk wat betreft het werken met het portssysteem. Het noemt details over hoe het portssysteem werkt en bespreekt aangeraden praktijken.

4. Een niet-onderhouden port adopteren

4.1. Een niet-onderhouden port kiezen

Het beheer overnemen van ports die niet onderhouden worden is een uitstekende manier om betrokken te raken. Niet-onderhouden ports worden alleen bijgewerkt en gerepareerd wanneer iemand zich aanbiedt om eraan te werken. Er is een groot aantal ports dat niet onderhouden wordt. Het is een goed idee om met het adopteren van een port te beginnen die u regelmatig gebruikt.

Voor niet-onderhouden ports staat de MAINTAINER op ports@FreeBSD.org. Een lijst van ports die niet onderhouden wordt en hun huidige fouten en probleemrapporten kan worden bekeken op het FreeBSD Ports Monitoring System.

Sommige ports beÔnvloeden een groot aantal anderen vanwege afhankelijkheden en relaties als slaafport. Over het algemeen wensen we dat mensen wat ervaring hebben voordat ze zulke ports onderhouden.

U kunt uitzoeken of een port wel of geen afhankelijkheden of slaafpoorten heeft door in een hoofdindex van ports genaamd INDEX te kijken. (De naam van het bestand varieert naar gelang de uitgave van FreeBSD; bijvoorbeeld INDEX-8.) Sommige ports hebben conditionele afhankelijkheden die niet standaard in een bouw van INDEX worden opgenomen. We verwachten dat u zulke ports kunt herkennen door naar de Makefile van andere ports te kijken.

4.2. Hoe een port te adopteren

Zorg eerst dat u uw verantwoordelijkheden als onderhouder begrijpt. Lees ook het Porter's Handbook. Neem alstublieft niet meer werk op u dan dat u op een comfortabele manier aankunt.

U kunt zo snel als u wilt het beheer van een niet-onderhouden port aanvragen. Stel MAINTAINER in op uw emailadres en stuur een PR (probleemrapport) in met de verandering. Als de port bouwfouten bevat of moet worden bijgewerkt, dan kunt u deze veranderingen in hetzelfde PR opnemen. Dit helpt omdat veel committers minder bereid zijn om beheer aan iemand toe te kennen die geen bekende geschiedenis met FreeBSD heeft. Het insturen van PR's die bouwfouten repareren of ports bijwerken zijn de beste manier om er een op te bouwen.

Stuur uw PR in met categorie ports en klasse change-request. Een committer zal uw PR nakijken, de veranderingen committen, en uiteindelijk het PR sluiten. Soms kan dit proces even duren (committers zijn ook vrijwilligers).

5. De uitdaging voor port-onderhouders

Deze sectie geeft u een idee waarom ports onderhouden moeten worden en schetst de verantwoordelijkheden van een onderhouder van een port.

5.1. Waarom ports onderhoud nodig hebben

Een port creŽeren is een eenmalige taak. Er zeker van zijn dat een port actueel is en blijft bouwen en draaien is een voortdurende inspanning. Onderhouders zijn mensen die wat van hun tijd wijden aan het vervullen van deze doelen.

De voornaamste reden waarom ports onderhoud nodig hebben is om het nieuwste en beste van software van derde partijen aan de FreeBSD-gemeenschap te geven. Een aanvullende uitdaging is om individuele ports werkend te houden binnen het evoluerende raamwerk van de Portscollectie.

Als onderhouder zult u de volgende uitdagingen moeten aangaan:

  • Nieuwe versies en updates van software.†Nieuwe versies en updates van bestaande geporteerde software komen continu beschikbaar, en moeten in de Portscollectie worden verwerkt om actuele software aan te bieden.

  • Veranderingen aan afhankelijkheden.†Als er significante wijzigingen zijn gemaakt aan de afhankelijkheden van uw port, kan het zijn dat de port moet worden bijgewerkt zodat het correct blijft werken.

  • Veranderingen die afhankelijke ports beÔnvloeden.†Als andere ports afhankelijk zijn van een port die u onderhoudt, kan het zijn om veranderingen aan uw port met andere onderhouders te coŲrdineren.

  • Interactie met andere gebruikers, onderhouders, en ontwikkelaars.†Een gedeelte van een onderhouder zijn is het vervullen van een ondersteunende rol. Er wordt niet van u verwacht dat u algemene ondersteuning biedt (maar we juichen het toe als u dat doet). U dient een centraal punt voor FreeBSD-specifieke zaken met betrekking tot uw ports te bieden.

  • Bugs oplossen.†Een port kan vatbaar zijn voor bugs die specifiek zijn voor FreeBSD. U dient deze bugs te onderzoeken en te repareren wanneer ze worden gerapporteerd. Het grondig testen van een port om problemen te identificeren voordat ze in de Portscollectie terechtkomen is nog beter.

  • Veranderingen aan portsinfrastructuur en beleid.†Af en toe worden die systemen die gebruikt worden om ports en pakketten te bouwen bijgewerkt of wordt er een nieuwe aanbeveling met betrekking tot de infrastructuur gemaakt. U dient van deze veranderingen op de hoogte te zijn indien ze betrekking hebben op uw ports en ze bijgewerkt moeten worden.

  • Veranderingen aan het basissysteem.†FreeBSD is constant in ontwikkeling. Veranderingen aan software, bibliotheken, de kernel, of zelfs beleidsveranderingen kunnen noodzakelijke veranderingen aan ports veroorzaken.

5.2. Verantwoordelijkheden als onderhouder

5.2.1. Houd uw ports actueel

Deze sectie schetst het proces dat gevolgd wordt om uw ports actueel te houden.

Dit is een overzicht. Meer informatie over het bijwerken van een port is beschikbaar in het Porter's Handbook.

  1. Kijk uit naar updates

    Houd de stroomopwaartse leverancier in de gaten wat betreft nieuwe versies, updates, en beveiligingsreparaties voor de software. Mailinglijsten met aankondigingen of webpagina's met nieuws zijn hiervoor handig. Soms zullen gebruikers contact met u opnemen en vragen wanneer uw port wordt bijgewerkt. Als u het druk hebt met andere dingen of u het om enige andere reden niet nu kunt bijwerken, vraag ze dan om u te helpen door een update te sturen.

    U kunt ook geautomatiseerde email van de FreeBSD Ports Version Check ontvangen die u informeert of er een nieuwe versie van het distributiebestand van uw port beschikbaar is. Meer informatie over dat systeem (inclusief hoe toekomstige emails te stoppen) staat in het bericht.

  2. Verwerk veranderingen

    Verwerk veranderingen in de port wanneer ze beschikbaar komen. U dient een patch aan te kunnen maken tussen de originele port en uw bijgewerkte port.

  3. Herzie en test

    Herzie en test uw veranderingen grondig:

    • Bouw, installeer, en test uw port op zoveel mogelijk platforms en architecturen. Het is gebruikelijk dat een port op ťťn tak of platform werkt maar faalt op een ander.

    • Zorg dat de afhankelijkheden van uw port compleet zijn. De aangeraden manier om dit te doen is door uw eigen tinderbox voor ports te installeren. Bekijk bronnen voor meer informatie.

    • Controleer of de pakketlijst actueel is. Dit omvat het toevoegen van nieuwe bestanden en mappen en het verwijderen van ongebruikte regels.

    • Verifieer uw port met portlint(1) als gids. Bekijk bronnen voor belangrijke informatie over het gebruik van portlint.

    • Overweeg of veranderingen aan uw port andere ports zouden kunnen kapotmaken. Bespreek de veranderingen met de onderhouders van die ports als dit het geval is. Dit is speciaal van belang als uw update de versie van de gedeelde bibliotheek verandert; in dit geval dienen de afhankelijke ports minstens een verhoging van de PORTREVISION te krijgen zodat ze automatisch worden bijgewerkt door geautomatiseerde gereedschappen als portmaster of portupgrade(1).

  4. Stuur veranderingen in

    Verzend uw update door een PR met een uitleg van de veranderingen en een patch die de verschillen tussen de originele port en de bijgewerkte port bevat in te sturen. Bekijk alstublieft Probleemrapporten voor FreeBSD schrijven voor informatie over hoe een echt goed PR te schrijven.

    Opmerking:

    Stuur alstublieft geen shar(1)-archief van de gehele port; gebruik in plaats daarvan diff(1) -ruN. Op deze manier kunnen committers veel gemakkelijker zien welke veranderingen er precies gemaakt worden. De sectie in het Porter's Handbook over Upgrading bevat meer informatie hierover.

  5. Wacht

    Op een gegeven moment zal een committer uw PR behandelen. Dit kan minuten, maar ook weken duren — ben dus alstublieft geduldig.

  6. Geef feedback

    Als een committer een probleem vindt in uw veranderingen zullen ze het waarschijnlijk aan u terugkoppelen. Een snel antwoord helpt om uw PR sneller gecommit te krijgen, en is beter voor het behouden van een discussie wanneer er geprobeerd wordt om problemen op te lossen.

  7. En ten slotte

    Uw veranderingen zullen gecommit worden en uw port zal bijgewerkt zijn. Het PR wordt vervolgens door de committer gesloten. Dat is alles!

5.2.2. Zorg ervoor dat uw ports correct blijven bouwen

Deze sectie gaat over het ontdekken en oplossen van problemen die verhinderen dat uw ports correct bouwen.

FreeBSD garandeert alleen dat de Portscollectie op de -STABLE-takken werkt. U dient 7-STABLE of 8-STABLE te draaien, bij voorkeur de laatste. In theorie zou het voldoende moeten zijn om de nieuwste uitgave van elke STABLE-tak te draaien (aangezien de ABI's niet horen te veranderen), maar als u die tak kunt draaien is dat beter.

Aangezien de meerderheid van FreeBSD-installaties op PC-compatibele machines draait (wat wordt aangeduid als de i386-architectuur), verwachten wij van u dat u de port op die architectuur werkend houdt. We prefereren dat de ports ook op de amd64-architectuur draaien. Het is prima om hulp te vragen als u een van deze machines niet heeft.

Opmerking:

De gebruikelijke manieren om te falen voor niet-i386 machines zijn dat de originele programmeurs aannamen dat, bijvoorbeeld, pointers ints zijn of dat een relatief lakse oudere gcc compiler werd gebruikt. Steeds meer reorganiseren applicatie-auteurs hun code om deze aannames te verwijderen — maar als de auteur de code niet actief onderhoudt, zult u dit zelf moeten doen.

Deze taken moet u uitvoeren om ervoor te zorgen dat uw port gebouwd kan worden:

  1. Kijk uit naar bouwfouten

    Controleer regelmatig het geautomatiseerde portbouwcluster, pointyhat, en de scanner voor distributiebestanden om te zien of er ports zijn die u onderhoudt die er niet in slagen om gebouwd of opgehaald te worden (bekijk bronnen voor meer informatie over deze systemen). Rapportages over mislukkingen kunnen ook via email van andere gebruikers of geautomatiseerde systemen tot u komen.

  2. Verzamel informatie

    Als u eenmaal op de hoogte bent van een probleem, verzamel dan informatie die u helpt het op te lossen. Bouwfouten die door pointyhat worden gerapporteerd worden vergezeld door logs die aangeven waar het bouwen mislukte. Als de mislukking door een gebruiker aan u werd gerapporteerd, vraag ze dan om informatie te verzenden die u helpt om het probleem te vast te stellen, zoals:

    • Bouwlogs

    • De commando's en opties die gebruikt werden om de port te bouwen (inclusief opties die in /etc/make.conf zijn ingesteld)

    • Een lijst met op hun systeem geÔnstalleerde pakketten als aangegeven door pkg_info(1)

    • De versie van FreeBSD die ze draaien als aangegeven door uname(1) -a

    • Wanneer hun Portscollectie voor het laatst was bijgewerkt

    • Wanneer hun bestand INDEX voor het laatst was bijgewerkt

  3. Onderzoek en zoek een oplossing

    Helaas is er geen rechttoe-rechtaan proces dat gevolgd kan worden om dit te doen. Herinner: vraag om hulp als u vast zit! De FreeBSD ports mailinglijst is een goede plaats om te starten, en de stroomopwaartse ontwikkelaars zijn vaak zeer behulpzaam.

  4. Stuur veranderingen in

    Net zoals bij het bijwerken van een port, dient u nu de veranderingen te integreren, te herzien en te testen, uw veranderingen als een PR in te sturen, en feedback te geven als dat nodig is.

  5. Stuur patches naar de stroomopwaartse auteurs

    In sommige gevallen moet u patches maken om de port op FreeBSD te laten draaien. Sommige (maar niet alle) stroomopwaartse auteurs zullen zulke patches in hun code accepteren voor de volgende uitgave. Als dit zo is, kan dit zelfs hun gebruikers op andere op BSD-gebaseerde systemen helpen en misschien dubbel werk besparen. Overweeg alstublieft om geschikte patches naar de auteurs te zenden als teken van goede wil.

5.2.3. Onderzoek foutrapporten en PR's die aan uw port gerelateerd zijn

Deze sectie gaat over het ontdekken en repareren van bugs.

FreeBSD-specifieke bugs worden in het algemeen veroorzaakt door aannames over de bouw- en draaiomgevingen die niet voor FreeBSD gelden. U zult zo'n soort fout minder snel aantreffen, maar het kan subtieler en moeilijker zijn om het vast te stellen.

De onderstaande taken moet u uitvoeren om ervoor te zorgen dat uw port als bedoeld blijft werken:

  1. Reageer op bugrapporten

    Bugs kunnen per email via de GNATS Probleemrapportendatabase aan u worden gerapporteerd. Bugs kunnen ook direct door gebruikers aan u gerapporteerd worden.

    U dient binnen 14 dagen op PR's en andere rapporten te reageren, probeer hier alstublieft niet zo lang over te doen. Probeer zo snel mogelijk te reageren, zelfs als het alleen maar is om te zeggen dat u wat meer tijd nodig heeft voordat u aan het PR kan werken.

    Als u niet na 14 dagen heeft gereageerd, mag elke committer via een maintainer-timeout uit een PR committen waarop u niet heeft gereageerd.

  2. Verzamel informatie

    Als degene die de bug heeft gerapporteerd niet ook een reparatie heeft aangeleverd, zult u informatie moeten verzamelen die u in staat stelt om er een te genereren.

    Als de bug reproduceerbaar is, kunt u zelf de meeste vereiste informatie verzamelen. Zo niet, vraag dan degene die de bug rapporteerde om de informatie voor u te verzamelen, zoals:

    • Een gedetailleerde beschrijving van hun acties, verwacht gedrag en eigenlijk gedrag van het programma

    • KopiŽn van invoergegevens die de bug aanzwengelden

    • Informatie over hun bouw- en uitvoeromgeving — bijvoorbeeld een lijst van geÔnstalleerde pakketten en de uitvoer van env(1)

    • Coredumps

    • Stacktraces

  3. Elimineer onjuiste rapporten

    Sommige bugrapporten kunnen onjuist zijn. De gebruiker kan het programma simpelweg verkeerd gebruikt hebben; of hun geÔnstalleerde pakketten kunnen verouderd zijn en bijgewerkt moeten worden. Soms is een gerapporteerde fout niet specifiek voor FreeBSD. Rapporteer in dit geval de bug naar de stroomopwaartse ontwikkelaars. Als u de bug kunt repareren, kunt u de port ook patchen zodat de reparatie is toegepast voor de volgende stroomopwaartse uitgave.

  4. Vind een oplossing

    Net als met bouwfouten dient u een oplossing voor het probleem te vinden. Nogmaals, vraag om hulp als u vastzit!

  5. Stuur veranderingen in of keur ze goed

    Net als bij het bijwerken van een port, dient u nu de veranderingen te integreren, ze te herzien en te testen, en ze in een PR op te sturen (of een vervolg te verzenden als er al een PR voor het probleem bestaat). Als een andere gebruiker veranderingen in het PR heeft ingezonden, kunt u ook een vervolg sturen waarin u zegt of u de veranderingen wel of niet goedkeurt.

5.2.4. Ondersteuning bieden

Deel van een onderhouder zijn is ondersteuning bieden — niet noodzakelijk voor de software in het algemeen — maar voor de port en alle FreeBSD-specifieke rariteiten en problemen. Gebruikers kunnen contact met u opnemen voor vragen, suggesties, problemen, en patches. Meestal zal hun correspondentie specifiek voor FreeBSD zijn.

Af en toe zult u uw diplomatieke vaardigheden moeten gebruiken, en gebruikers die algemene ondersteuning zoeken vriendelijk naar de geschikte bronnen verwijzen. Minder vaak zult u iemand tegenkomen die vraagt waarom de RPMs niet actueel zijn of hoe ze de software onder Foo Linux kunnen draaien. Grijp deze kans om ze te vertellen dat uw port actueel is (als het dat is, uiteraard!) en stel voor dat ze FreeBSD uitproberen.

Soms zullen gebruikers en ontwikkelaars besluiten dat u een druk persoon bent wiens tijd waardevol is en wat werk van u overnemen. Ze kunnen bijvoorbeeld:

  • een PR insturen of u patches toesturen om uw port bij te werken,

  • een PR onderzoeken en er misschien een reparatie voor aanleveren, of

  • op andere wijze veranderen aan uw port insturen.

In deze gevallen is uw hoofdplicht om op tijd te reageren. Nogmaals, de timeout voor niet-reagerende onderhouders is 14 dagen. Na deze periode mogen niet-goedgekeurde veranderingen gecommit worden. Ze hebben de moeite genomen om dit voor u te doen; dus probeer tenminste op tijd te reageren. Daarna dient u zo snel mogelijk hun veranderingen te herzien, goed te keuren, te wijzigen, of met hen te bediscussiŽren.

Als u ervoor kunt zorgen dat ze het gevoel hebben dat hun bijdrage gewaardeerd wordt (wat zo hoort te zijn), dan heeft u een grotere kans om ze te overtuigen om in de toekomst meer voor u te doen :-).

6. Een kapotte port vinden en repareren

Er zijn twee zeer goede plaatsen om een port te vinden die wat aandacht nodig heeft.

U kunt de webinterface voor de probleemrapportdatabase gebruiken om onopgeloste PR's te doorzoeken en ze te bekijken. De meerderheid van port-PR's zijn updates, maar met een beetje zoeken door en uitkammen van de samenvattingen zou u iets moeten kunnen vinden wat interessant is om aan te werken (de klasse sw-bug is een goede plaats om te beginnen).

De andere plaats is het FreeBSD Ports Monitoring System. Zoek in het bijzonder naar niet-onderhouden ports met bouwfouten en ports die als BROKEN zijn gemerkt. Het is ook goed om veranderingen voor een onderhouden port te versturen, maar denk eraan om de onderhouder te vragen in het geval dat ze al aan het probleem werken.

Als u eenmaal een bug of probleem heeft gevonden, verzamel dan informatie, onderzoek, en repareer het! Als er een bestaand PR is, ga daar dan mee verder. Maak anders een nieuw PR aan. Uw veranderingen zullen worden herzien en, als alles goed is, gecommit.

7. Wanneer het tijd wordt om te stoppen

Wanneer uw interesses en toewijdingen veranderen, zult u erachter komen dat u niet langer tijd heeft om sommige van (of al) uw ports-bijdragen voort te zetten. Dat is prima! Laat ons weten als u een port niet langer gebruikt of om andere redenen de tijd of interesse heeft verloren om ports te onderhouden. Op deze manier kunnen we verder gaan en andere mensen toestaan om te proberen om aan bestaande problemen met de port te werken zonder op uw antwoord te wachten. Herinner dat FreeBSD een vrijwilligersproject is, dus als het onderhouden van een port niet langer leuk is, is het waarschijnlijk tijd om iemand anders het te laten doen!

In elk geval houdt het Ports Management Team (portmgr) zich het recht voor om u als onderhouder te wissen als u uw port voor enige tijd niet actief heeft onderhouden. (Momenteel is dit 3 maanden.) Hiermee bedoelen we dat er onopgeloste problemen of wachtende updates zijn waaraan binnen die tijd niet gewerkt is.

8. Bronnen voor onderhouders en vrijwilligers voor ports

Het Porter's Handbook is uw overlevingsgids voor het portssysteem. Houd het in de buurt!

Probleemrapporten voor FreeBSD schrijven beschrijft hoe het beste een PR geformuleerd en ingezonden kan worden. In 2005 werden er meer dan elfduizend port-PR's ingestuurd! Het volgen van dit artikel helpt ons enorm om de tijd te verkorten die nodig is om uw PR's te behandelen.

De Probleemrapportendatabase.

Pointyhat is het bouwcluster voor ports. U kunt Pointyhat gebruiken om bouwlogs van ports over alle architecturen en grote uitgaven te controleren.

Het FreeBSD Ports Monitoring System kan u kruislingse informatie over ports zoals bouwfouten en probleemrapporten laten zien. Als u een onderhouder bent kunt u het gebruiken om de bouwstatus van uw ports te controleren. Als een vrijwilliger kunt u het gebruiken om kapotte en niet-onderhouden ports te vinden die gerepareerd moeten worden.

De scanner voor distributiebestanden voor FreeBSD ports kan u ports laten zien waarvoor de distributiebestanden niet kunnen worden opgehaald. U kunt uw eigen ports controleren of u kunt het gebruiken om ports te vinden waarvan de MASTER_SITES moet worden bijwerkt.

De tinderbox voor ports is de meest grondige manier om een port door de gehele cyclus van installatie, inpakken, en deÔnstallatie te halen. Het biedt een opdrachtregelinterface maar kan ook via een webinterface worden beheerd. Meer informatie staat op de marcuscom tinderbox homepage.

portlint(1) is een applicatie die gebruikt kan worden om te verifiŽren dat uw port zich aan vele belangrijke stilistische en functionele richtlijnen houdt. portlint is een eenvoudige heuristieke applicatie, dus dient u het alleen als gids te gebruiken. Als portlint veranderingen voorstelt die onredelijk lijken, raadpleeg dan het Porter's Handbook of vraag om advies.

De FreeBSD ports mailinglijst dient voor algemene ports-gerelateerde discussies. Het is een goede plaats om hulp te vragen. U kunt zich aanmelden, of de lijstarchieven lezen en doorzoeken. Het lezen van de archieven van de FreeBSD ports bugs mailinglijst en de FreeBSD CVS ports commitlijst kan ook interessant zijn.

Register