Bijdragen aan FreeBSD

Jordan Hubbard

Bijgedragen door  

Herziening: 43184

Juridische kennisgeving

2013-11-13 07:52:45 door hrs.

Samenvatting

Vertaald door René Ladan.

Dit artikel beschrijft de verschillende manieren waarop een individu of organisatie kan bijdragen aan het FreeBSD Project.

[ Opgedeeld HTML bestand / Enkel HTML bestand ]

Dus u wilt bijdragen aan FreeBSD? Dat is mooi! FreeBSD bouwt op de bijdragen van zijn gebruikers om te overleven. Uw bijdragen worden niet alleen gewaardeerd, ze zijn van vitaal belang voor de aanhoudende groei van FreeBSD.

In tegenstelling tot wat sommige mensen u laten geloven, hoeft u geen doorgewinterde programmeur of een goede vriend van het coreteam van FreeBSD te zijn opdat uw bijdragen geaccepteerd worden. Een groot en groeiend aantal internationale bijdragende vrijwilligers, van een grote variëteit aan leeftijden en technische expertisegebieden, ontwikkelen FreeBSD. Er is altijd meer werk te doen dan dat er mensen zijn om het uit te voeren, en meer hulp wordt altijd gewaardeerd.

Het FreeBSD project is verantwoordelijk voor een complete omgeving van een besturingssysteem, en niet slechts voor alleen een kernel of een paar verspreide gereedschappen. Hierom staan op onze TODO-lijsten een groot aantal verschillende taken: van documentatie, beta-testing en -presentatie, tot de systeeminstaller en ver gespecialiseerde soorten van kernelontwikkeling. Mensen van alle niveaus op bijna alle gebieden kunnen zeer waarschijnlijk meehelpen aan het project.

Commerciële entiteiten die betrokken zijn in FreeBSD-gerelateerde ondernemingen worden ook aangemoedigd om contact met ons op te nemen. Heeft u een speciale uitbreiding nodig om uw product te laten werken? U zult zien dat wij ontvankelijk zijn voor uw verzoeken, op de voorwaarde dat ze niet te vreemdsoortig zijn. Werkt u aan een product met toegevoegde waarde? Laat het ons weten! Misschien kunnen we op sommige punten samenwerken. De wereld van vrije software heeft te maken met vele bestaande aannamen over hoe software wordt ontwikkeld, verkocht, en onderhouden, en we verzoeken u om er op zijn minst nog eens naar te kijken.

1. Wat is er nodig

De onderstaande lijst van taken en deelprojecten representeert een soort amalgaam van verschillende TODO-lijsten en verzoeken van gebruikers.

1.1. Voortdurende taken voor niet-programmeurs

Veel mensen die betrokken zijn bij FreeBSD zijn geen programmeurs. Het Project omvat documentatieschrijvers, Webontwerpers, en mensen ter ondersteuning. Deze mensen hoeven alleen een tijdsinvestering en een wil om te leren bij te dragen.

Lees regelmatig de FAQ en het Handboek door. Laat het ons weten als er iets slecht is uitgelegd, is verlopen of gewoon helemaal verkeerd is. Of stuur een reparatie in (Docbook is niet moeilijk te leren, maar er is geen bezwaar tegen inzendingen in ASCII).

Help bij het vertalen van FreeBSD-documentatie in uw eigen taal. Als er al documentatie in uw taal bestaat, kunt u helpen door aanvullende documenten te vertalen of te controleren dat de vertalingen up-to-date zijn. Kijk eerst op Translations FAQ in de FreeBSD Documentation Project Primer. U bindt zich niet aan het vertalen van elk FreeBSD-document door dit te doen — als vrijwilliger kunt u zo veel of zo weinig vertalen als u wilt. Als iemand eenmaal begint te vertalen, sluiten andere mensen zich hier bijna altijd bij aan. Als u slechts de tijd of energie heeft om één document te vertalen, vertaal dan alstublieft de installatie-instructies.

Lees af en toe (of regelmatig) de FreeBSD algemene vragen mailinglijst en de nieuwsgroep comp.unix.bsd.freebsd.misc. Het kan veel voldoening geven om uw expertise te delen en mensen helpen met het oplossen van hun problemen; soms leert u zelf misschien iets nieuws! Deze fora kunnen ook een inspiratiebron zijn voor dingen om aan te werken.

1.2. Voortdurende taken voor programmeurs

Voor de meeste van de hier genoemde taken is een aanzienlijke tijdsinvestering, of diepe kennis van de kernel van FreeBSD, of beide nodig. Er zijn echter ook vele nuttige taken die geschikt zijn voor “weekend hackers”.

Als u FreeBSD-CURRENT draait en een goede Internetverbinding heeft, dan is er een machine current.FreeBSD.org die elke dag een volledige uitgave bouwt—probeer zo nu en dan om de nieuwste uitgave ervan te installeren en rapporteer alle fouten in het proces.

Lees de FreeBSD problem reports mailinglijst. Er kunnen problemen zijn waarop u constructief commentaar kunt geven of waarvoor u testbare patches kunt geven. U kunt zelfs proberen om een van de problemen zelf op te lossen.

Als u bugfixes weet die succesvol op -CURRENT zijn toegepast maar nog niet na een redelijk interval naar -STABLE zijn samengevoegd (normaliter een aantal weken), stuur de committer dan een beleefde herinnering.

Verplaats bijgedragen software naar src/contrib in de broncodeboom.

Verzeker dat de code in src/contrib up-to-date is.

Bouw de broncodeboom (of slechts een gedeelte ervan) met extra waarschuwingen aangezet en ruim de waarschuwingen op.

Repareer waarschuwingen voor ports die verouderde dingen zoals gets() of malloc.h gebruiken.

Als u ports heeft bijgedragen en u FreeBSD-specifieke veranderingen moest maken, stuur dan uw patches terug naar de originele auteurs (dit maakt het gemakkelijker voor u wanneer ze de volgende versie uitbrengen).

Verkrijg kopieën van formele standaarden zoals POSIX®. Enkele links over deze standaarden staan op de website van het FreeBSD C99 & POSIX Standards Conformance Project. Vergelijk het gedrag van FreeBSD met dat wat de standaard voorschrijft. Als het gedrag verschilt, met name in subtiele of obscure gedeelten van de specificatie, stuur er dan een PR over op. Indien mogelijk, zoek uit hoe het te repareren en voeg een patch bij het PR. Als u meent dat de standaard verkeerd is, vraag dan het standaardorgaan om de vraag te overwegen.

Suggereer verdere taken voor deze lijst!

1.3. Spit de PR-database door

De FreeBSD PR-lijst laat alle huidige actieve probleemrapportages en verzoeken voor verrijkingen zien die door gebruikers van FreeBSD zijn ingestuurd. De PR-database bevat zowel taken voor programmeurs als voor niet-programmeurs. Bekijk de open PR's, en kijk of iets uw interesse wekt. Sommige van deze kunnen heel simpele taken zijn waarvoor gewoon een extra paar ogen nodig is om te bevestigen dat de reparatie in de PR een goede is. Andere kunnen veel complexer zijn, of bevatten in het geheel geen reparatie.

Begin met de PR's die nog niet aan iemand anders zijn toegekend. Als een PR aan iemand anders is toegekend, maar het eruit ziet als iets wat u aankunt, stuur dan een email naar de persoon waaraan het is toegekend en vraag of u eraan kunt werken —ze kunnen al een patch hebben die klaar is om getest te worden, of verdere ideeën hebben die u met ze kan bespreken.

1.4. Kies een van de punten van de “Ideeën” pagina

De FreeBSD-lijst van projecten en ideeën voor vrijwilligers is ook beschikbaar voor mensen die aan het FreeBSD-project willen bijdragen. Deze lijst wordt regelmatig bijgewerkt en bevat punten voor zowel programmeurs als niet-programmeurs met informatie over elk project.

2. Hoe bij te dragen

Bijdragen aan het systeem vallen over het algemeen in één of meer van de volgende 5 categoriën:

2.1. Foutrapportages en algemeen commentaar

Een idee of suggestie van algemene technische aard dient naar FreeBSD technische discussie mailinglijst gemaild te worden. Evenzo kunnen mensen die in dit soort dingen geïnteresseerd zijn (en een tolerantie voor grote hoeveelheden mail hebben!) zich abonneren op de FreeBSD technische discussie mailinglijst. Zie Het FreeBSD Handboek voor meer informatie over deze en andere mailinglijsten.

Als u een bug vindt of een specifieke verandering opstuurt, gebruik dan alstublieft het programma send-pr(1) of het webgebaseerde equivalent om het te rapporteren. Probeer om elk veld van het bugrapport in te vullen. Voeg patches direct bij het rapport tenzij ze 65kB overschrijden. Als de patch geschikt is om op de broncodeboom te worden toegepast, vermeld dan [PATCH] in het overzicht van het rapport. Wanneer u patches bijvoegt, gebruik dan geen knippen-en-plakken omdat knippen-en-plakken tabs in spaties omzet en de patches onbruikbaar maakt. Overweeg wanneer patches veel groter zijn dan 20 kB om ze te comprimeren (bijvoorbeeld met gzip(1) of bzip2(1)) en uuencode(1) te gebruiken om hun gecomprimeerde vorm in uw probleemrapport op te nemen.

Na het opsturen van een rapport dient u een bevestiging met daarbij een volgnummer te krijgen. Bewaar dit volgnummer zodat u ons op de hoogte kunt houden met details over het probleem door mail te sturen naar <bug-followup@FreeBSD.org>. Gebruik het nummer als het berichtonderwerp, bijvoorbeeld "Re: kern/3377". Aanvullende informatie voor elk foutrapport dient op deze manier opgestuurd te worden.

Als u geen bevestiging ontvangt binnen een redelijke tijd (3 dagen tot een week, afhankelijk van uw emailverbinding) of als u, om enige reden, het commando send-pr(1) niet kunt gebruiken, dan kunt u iemand vragen om het voor u op te sturen door mail te sturen naar de FreeBSD problem reports mailinglijst.

Zie ook dit artikel over het schrijven van goede probleemrapporten.

2.2. Veranderingen aan de documentatie

Veranderingen aan de documentatie worden overzien door de FreeBSD documentatieproject mailinglijst. Bekijk de FreeBSD Documentation Primer voor volledige instructies. Stuur bijdragen en veranderingen (zelfs kleine zijn welkom!) door send-pr(1) te gebruiken zoals beschreven is in Foutrapportages en algemeen commentaar.

2.3. Veranderingen aan bestaande broncode

Een toevoeging of verandering aan de bestaande broncode is een iets lastigere zaak en hangt in grote mate af van hoe ver u achterloopt met de huidige toestand van FreeBSD-ontwikkelingen. Er is een speciale doorgaande uitgave van FreeBSD die bekend staat als “FreeBSD-CURRENT” die op verscheidene manieren beschikbaar wordt gesteld voor het gemak van ontwikkelaars die actief aan het systeem werken. Zie Het FreeBSD Handboek voor meer informatie over het verkrijgen en gebruiken van FreeBSD-CURRENT.

Het werken met oudere broncode betekent helaas dat uw veranderingen soms te verouderd of te ver afgedwaald zijn om eenvoudig in FreeBSD gerëintegreerd te worden. De kansen hierop kunnen enigszins geminimaliseerd worden door een abonnement te nemen op de FreeBSD aankondigingen mailinglijst en de FreeBSD-CURRENT mailinglijst lijsten, waar discussies over de huidige toestand van het systeem plaatsvinden.

Aannemende dat u in staat bent om redelijk recente broncode veilig te stellen om uw veranderingen op te baseren, is de volgende stap het produceren van een verzameling diffs om naar de onderhoudsmensen van FreeBSD te sturen. Dit wordt gedaan met het commando diff(1).

Het geprefereerde diff(1)-formaat voor het opsturen van patches is het verenigde uitvoerformaat gegenereerd door diff -u.

% diff -u oudbestand nieuwbestand

of

% diff -u -r -N oudemap nieuwemap

zouden een verzameling van verenigde diffs genereren voor het gegeven bronbestand of maphiërarchie.

Zie diff(1) voor meer details.

Als u eenmaal een verzameling aan diffs heeft (welke u kunt testen met het commando patch(1)), dient u ze op te sturen voor opname in FreeBSD. Gebruik het programma send-pr(1) zoals beschreven in Foutrapportages en algemeen commentaar. Stuur de diffs niet alleen naar de FreeBSD technische discussie mailinglijst op omdat ze dan verloren raken! We stellen uw toezending erg op prijs (dit is een vrijwilligersproject!); omdat we het druk hebben kan het zijn dat we het niet direct kunnen behandelen, maar het blijft in de PR-database totdat we het doen. Geef uw toezending aan door [PATCH] in het overzicht van het rapport op te nemen.

Als u het geschikt acht (bijvoorbeeld als u bestanden toegevoegd, verwijderd, of hernoemd heeft), bundelt u uw veranderingen in een tar-bestand en draait u het programma uuencode(1) erop. Archieven die met shar(1) zijn aangemaakt zijn ook welkom.

Als uw verandering mogelijk gevoelig van aard is, bijvoorbeeld als u onzeker bent over copyright-zaken die de verdere distributie ervan dicteren, dan dient u het direct naar FreeBSD core team te sturen in plaats van het met send-pr(1) op te sturen. Het FreeBSD core team bereikt een veel kleinere groep mensen die veel dagelijks werk op FreeBSD doen. Merk op dat deze groep het ook erg druk heeft, daarom dient u alleen mail naar hen te sturen als dit echt noodzakelijk is.

Bekijk alstublieft intro(9) en style(9) voor wat informatie over de codeerstijl. We zouden het op prijs stellen als u op zijn minst op de hoogte bent van deze informatie voordat u code opstuurt.

2.4. Nieuwe code of grote pakketten met toegevoegde waarde

In het geval van een significante bijdrage van een grote bijdrage aan werk, of van een belangrijke nieuwe mogelijkheid aan FreeBSD, is het bijna altijd nodig om de veranderingen als uuencoded tar-bestanden te versturen of ze naar een web- of FTP-site up te loaden zodat andere mensen ze kunnen benaderen. Als u geen toegang heeft tot een web- of FTP-site, vraag dan een geschikte FreeBSD-mailinglijst om iemand de veranderingen voor u te laten hosten.

Bij het werken met grote hoeveelheden code komt het gevoelige onderwerp van copyright ook altijd naar voren. Acceptabele copyrights voor code voor opname in FreeBSD zijn:

Het BSD-copyright. Dit copyright wordt het meeste verkozen wegens zijn natuur van “geen voorwaarden” en de algemene aantrekkelijkheid voor commerciële ondernemingen. Ver van het ontmoedigen van dit soort commercieel gebruik, moedigt het FreeBSD Project zulke participatie door commerciële interesses actief aan die uiteindelijk geneigd kunnen zijn om zelf iets in FreeBSD te investeren.

De GNU General Public License, of “GPL”. Deze licentie is niet zo populair bij ons wegens de extra hoeveelheid moeite die gevraagd wordt van iedereen die de code voor commerciële doeleinden gebruikt, maar vanwege de grote hoeveelheid aan ge-GPL-de code die we momenteel nodig hebben (compiler, assembler, tekstopmaker, enz.) zou het dom zijn om aanvullende bijdragen onder deze licentie te verwerpen. Code onder de GPL gaat ook naar een ander deel van de boom, namelijk /sys/gnu of /usr/src/gnu, en is daardoor eenvoudig te herkennen voor iedereen voor wie de GPL problemen geeft.

Bijdragen die onder een ander soort copyright vallen moeten zorgvuldig worden herzien voordat hun opname in FreeBSD wordt overwogen. Bijdragen waarvoor nogal beperkende commerciële copyrights gelden worden over het algemeen verworpen, alhoewel de auteurs altijd worden aangemoedigd om zulke veranderingen via hun eigen kanalen beschikbaar te maken.

Om een copyright in “BSD-stijl” op uw werk te plaatsen, dient u de volgende tekst aan het uiterste begin van elk broncodebestand te plaatsen dat u wilt beschermen, en daarbij de tekst tussen de %% door de juiste informatie te vervangen:

Copyright (c) %%juiste_jaren_hier%%
        %%uw_naam_hier%%, %%uw_staat%%  %%uw_postcode%%.
	All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer as
   the first lines of this file unmodified.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY %%uw_naam_hier%% ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL %%uw_naam_hier%% BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

        $Id$

Voor uw gemak staat een kopie van deze tekst in /usr/share/examples/etc/bsd-style-copyright.

2.5. Geld, hardware, of Internettoegang

We accepteren altijd graag donaties om het FreeBSD Project verder te verspreiden en in een vrijwilligersonderneming zoals het onze kan een klein beetje een groot verschil maken! Hardwaredonaties zijn ook erg belangrijk om onze lijst van ondersteunde randapparatuur uit te breiden aangezien ons het over het algemeen aan de middelen ontbreekt om zelf zulke dingen te kopen.

2.5.1. Geld doneren

De FreeBSD Foundation is een non-profit, belastinguitgesloten stichting die opgericht is om de doelen van het FreeBSD Project verder te verspreiden. Als een 501(c)3-entiteit is de Foundation over het algemeen uitgesloten van inkomstenbelasting van de overheid van de Verenigde Staten alsook van inkomstenbelasting van de staat Colorado. Donaties aan een entiteit die van belasting is uitgesloten zijn vaak aftrekbaar van het belastbaar overheidsinkomen.

Donaties kunnen als check verstuurd worden aan:

    The FreeBSD Foundation
    P.O. Box 20247
    Boulder,
    CO 80308
    USA

De FreeBSD Foundation is nu in staat om donaties via het web met PayPal te ontvangen. Om een donatie te maken bezoekt u de website van de Foundation.

Meer informatie over de FreeBSD Foundation kan gevonden worden in The FreeBSD Foundation -- an Introduction. Om de Foundation per email te bereiken, schrijft u naar <bod@FreeBSDFoundation.org>.

2.5.2. Hardware doneren

Het FreeBSD Project accepteert graag hardwaredonaties die het goed kan gebruiken. Als u geïnteresseerd bent in het doneren van hardware, neem dan contact op met het Donations Liaison Office.

Register

B

bijdragen, Bijdragen aan FreeBSD

BSD-copyright, Nieuwe code of grote pakketten met toegevoegde waarde

D

diff, Veranderingen aan bestaande broncode

documentatie-inzendingen, Veranderingen aan de documentatie

donaties, Hardware doneren

F

FreeBSD-CURRENT, Veranderingen aan bestaande broncode

G

GNU General Public License, Nieuwe code of grote pakketten met toegevoegde waarde

GPL (zie GNU General Public License)

P

probleemrapportdatabase, Spit de PR-database door

U

uuencode, Veranderingen aan bestaande broncode