diff --git a/documentation/content/de/articles/contributing/_index.adoc b/documentation/content/de/articles/contributing/_index.adoc index 725ee69a5c..825858a03a 100644 --- a/documentation/content/de/articles/contributing/_index.adoc +++ b/documentation/content/de/articles/contributing/_index.adoc @@ -1,247 +1,247 @@ --- title: FreeBSD unterstützen authors: - author: Jordan Hubbard trademarks: ["freebsd", "ieee", "general"] --- = FreeBSD unterstützen :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Zusammenfassung Dieser Artikel beschreibt, wie Einzelpersonen oder Unternehmen das FreeBSD-Projekt unterstützen können. __Übersetzt von Johann Kois__. ''' toc::[] Sie wollen FreeBSD unterstützen? Das ist großartig! FreeBSD ist auf die Unterstützung seiner Anwender __angewiesen__, um zu überleben. Ihre Beiträge werden nicht nur begrüßt, sie sind für die Weiterentwicklung von FreeBSD von elementarer Bedeutung. Im Gegensatz zu dem, was einige Leute Ihnen einreden wollen, müssen Sie kein Spitzenprogrammierer oder persönlicher Freund eines Mitglieds des FreeBSD-Core-Teams sein, damit Ihre Beiträge akzeptiert werden. Ein große und wachsende Anzahl von internationalen Unterstützern verschiedenen Alters und mit verschiedenen technischen Fähigkeiten entwickelt FreeBSD weiter. Es gibt immer mehr zu tun, als von den beteiligten Personen bewältigt werden kann, daher freuen wir uns über jede Hilfe. Das FreeBSD-Projekt ist für ein komplettes Betriebssytem verantwortlich, nicht nur für einen Kernel oder ein paar verstreute Werkzeuge. Daher umfasst unsere [.filename]#TODO#-Liste viele verschiedene Aufgabenbereiche: Angefangen von der Dokumentation, über Betatests und Präsentationen bis zu Systeminstallationen und speziellen Weiterentwicklungen des Kernels. Da Fähigkeiten in den verschiedensten Bereichen benötigt werden, kann fast jeder etwas zu diesem Projekt beitragen. Personen, die im kommerziellen Umfeld mit FreeBSD zu tun haben, sind ebenfalls aufgefordert, sich bei uns zu melden. Brauchen Sie eine spezielle Erweiterung, damit Ihr Produkt funktioniert? Wir kommen Ihren Wünschen gerne entgegen, vorausgesetzt, sie sind nicht zu speziell. Arbeiten Sie an einem Mehrwertprodukt? Dann informieren Sie uns bitte! Wir könnten in der Lage sein, an einem Teil davon mitzuarbeiten. Die Welt der freien Software fordert viele bestehenden Annahmen über die Entwicklung, den Verkauf und die Wartung von Software heraus, und wir bitten Sie, ernsthaft darüber nachzudenken. [[contrib-what]] == Was wird gebraucht? Die folgende Liste von Aufgaben und Unterprojekten repräsentiert eine Zusammenfassung von verschiedenen [.filename]#TODO#-Listen und Benutzerwünschen. [[non-programmer-tasks]] === Aufgaben für Nicht-Programmierer Viele Menschen, die an FreeBSD beteiligt sind, sind keine Programmierer. Es sind Leute, die an der Dokumentation arbeiten, Internetseiten erstellen oder einfach Hilfe anbieten. Alles, was diese Leute mitbringen müssen, sind Zeit und die Bereitschaft, etwas zu lernen. . Lesen Sie die häufig gestellten Fragen (FAQ) und das Handbuch gelegentlich. Wenn etwas schlecht erklärt wird, veraltet oder einfach falsch ist, teilen Sie es uns mit. Oder noch besser, korrigieren Sie es (SGML ist nicht schwer zu erlernen, wir akzeptieren aber auch Vorschläge im ASCII-Format.). . Helfen Sie dabei, die Dokumentation in Ihre Muttersprache zu übersetzen. Wenn an der Übersetzung in Ihre Sprache bereits gearbeitet wird, helfen Sie, indem Sie weitere Dokumente übersetzen, oder sorgen Sie dafür, dass die Übersetzungen aktuell sind. Lesen Sie zuerst die extref:{fdp-primer}[Übersetzungs-FAQ, translations] der Fibel für neue Mitarbeiter des FreeBSD-Dokumentations-Projekts. Sie verpflichten sich dabei nicht dazu, jede einzelne Seite zu übersetzen - als Freiwilliger übersetzen Sie genau so viel, wie Sie wollen. Wenn jemand mit der Übersetzung beginnt, beteiligen sich fast immer auch andere Personen daran. Wenn Sie nur Zeit und Energie für einen Teil der Dokumentation haben, dann übersetzen Sie bitte die Installationsanleitung. . Lesen Sie {freebsd-questions} sowie die news:comp.unix.bsd.freebsd.misc gelegentlich (oder sogar regelmäßig). Es kann sehr befriedigend sein, wenn Sie Ihr Wissen teilen und anderen Leuten dabei helfen können, deren Probleme zu lösen; vielleicht lernen Sie sogar noch etwas Neues! Diese Foren können auch eine Quelle für Ideen sein, an denen man arbeiten könnte. [[ongoing-programmer-tasks]] === Aufgaben für Programmierer Die meisten der hier aufgeführten Aufgaben erfordern entweder einen bedeutenden Zeitaufwand oder eine sehr gute Kenntnis des FreeBSD-Kernels, oder beides. Es gibt jedoch genug Aufgaben, die auch für "Wochenendprogrammierer" geeignet sind. . Wenn Sie FreeBSD-CURRENT installiert haben und über eine schnelle Internetanbindung verfügen, können Sie von `current.FreeBSD.org` ein täglich neu erzeugtes Release herunterladen - versuchen Sie dann hin und wieder, das neueste Release zu installieren und melden Sie dabei eventuell auftretende Fehler. . Lesen Sie {freebsd-bugs}. Es könnte ein Problem geben, an dem Sie konstruktiv mitarbeiten könnten, oder für das es Patches gibt, die Sie testen könnten. Oder Sie könnten sogar versuchen, eines dieser Probleme selbst zu beheben. . Wenn Sie von Fehlerbehebungen wissen, die zwar erfolgreich auf -CURRENT angewendet wurden, die aber nach einem bestimmten Zeitraum nicht in -STABLE eingebracht wurden (normalerweise innerhalb einiger Wochen), erinnern Sie den Committer höflich daran. . Verschieben Sie beigetragene Software im Quellcodebaum nach [.filename]#src/contrib#. . Stellen Sie sicher, dass der Code in [.filename]#src/contrib# aktuell ist. . Bauen Sie den Quellcodebaum (oder einen Teil des Baumes) mit aktivierten Compilerwarnungen und beheben Sie auftretende Fehlermeldungen. . Beheben Sie Fehlermeldungen bei der Installation von Ports, die auf unsauberen Code hinweisen (etwa die Verwendung von `gets()` oder die Einbindung von [.filename]#malloc.h#). . Wenn Sie einen Port beigetragen und dabei irgendwelche FreeBSD-spezifischen Änderungen getätigt haben, senden Sie Ihre Patches an die ursprünglichen Autoren (das wird ihr Leben einfacher machen, wenn die nächste Version des Ports erscheint). . Besorgen Sie sich Kopien von wichtigen Standards wie POSIX(R). Als Ausgangspunkt für Ihre Suche können Sie die Seite des link:https://www.FreeBSD.org/projects/c99/[FreeBSD C99 & POSIX Standards Conformance Project] verwenden. Vergleichen Sie das Verhalten von FreeBSD mit dem von dem jeweiligen Standard geforderten Verhalten. Verhält sich FreeBSD in einem Bereich unterschiedlich, sollten Sie einen Problembericht (PR) einsenden. Wenn Sie dazu in der Lage sind, können Sie sich auch eine Lösung des Problems überlegen und Ihrem PR einen Patch anfügen. Wenn Sie der Meinung sind, dass der Standard nicht korrekt ist, können Sie auch das jeweilige Standardgremium um weitere Informationen bitten. . Schlagen Sie weitere Aufgaben für diese Liste vor! === Die PR-Datenbank durchsehen Die http://www.FreeBSD.org/cgi/query-pr-summary.cgi[FreeBSD PR-Datenbank] enthält alle derzeit offenen Problemberichte und Verbesserungswüsche, die von Anwendern eingereicht wurden. Die PR-Datenbank enthält sowohl Aufgaben für Programmierer als auch für Nichtprogrammierer. Gehen Sie die Liste der offenen PRs durch, um festzustellen, ob Sie ein Problem interessiert. Bei manchen Berichten geht es nur darum, zu überprüfen, ob der bereitgestellte Patch korrekt funktioniert. Andere Problemberichte sind hingegen komplexer, oder beinhalten überhaupt keinen Lösungsvorschlag. Beginnen Sie mit den PRs, die niemandem zugewiesen sind. Ist ein PR, für den Sie eine Lösung hätten, bereits jemandem zugewiesen, nehmen Sie mit dem dafür Zuständigen Kontakt auf und fragen Sie ihn, ob Sie an der Lösung mitarbeiten können - es könnte etwa bereits ein Patch existieren, der nur noch getestet werden muss, oder Sie könnten weitere Ideen mit ihm diskutieren. === Wählen Sie einen der Einträge auf der "Ideen"-Seite aus Die link:https://www.FreeBSD.org/projects/ideas/[Liste von Projekten und Ideen] für FreeBSD ist auch für Freiwillige interessant, die etwas zum FreeBSD Projekt beitragen möchten. Diese Liste wird regelmäßig aktualisiert und enthält Einträge für Programmierer und Nicht-Programmierer sowie Informationen zu jedem Projekt. [[contrib-how]] == Was Sie tun können Mögliche Beiträge lassen sich in fünf Kategorien einteilen: [[contrib-general]] === Fehlerberichte und allgemeine Vorschläge Eine Idee oder ein Vorschlag von _allgemeinem_ technischen Interesse sollte an {freebsd-hackers} geschickt werden. Personen, die an solchen Fragen interessiert sind (und kein Problem mit einem _hohen_ Mailaufkommen haben!) können die Mailingliste {freebsd-hackers} auch abonnieren. Informationen zu dieser und anderen Mailinglisten finden Sie im extref:{handbook}eresources/[FreeBSD Handbuch, eresources-mail]. Wenn Sie einen Fehler gefunden oder eine Verbesserung entwickelt haben, vergessen Sie nicht, einen Bericht über man:send-pr[1] oder dessen link:https://www.FreeBSD.org/de/send-pr/[Internetschnittstelle] zu erstellen. Versuchen Sie bitte, jedes Feld auszufüllen. Ist Ihr Patch kleiner als 65 KB, sollten Sie ihn direkt in den Bericht einbauen. Kann der Patch direkt auf den Quellcodebaum angewendet werden, fügen Sie `[PATCH]` im Synopsis-Feld ein. Wenn Sie einen Patch einfügen, verwenden Sie bitte __kein copy-and-paste__, weil dadurch Tabulatoren in Leerzeichen umgewandelt werden, was den Patch unbrauchbar macht. Sind die Patches viel größer als 20 KB, sollten Sie sie komprimieren (z.B. mit man:gzip[1] oder man:bzip2[1]) und man:uuencode[1] verwenden, um diese in ihren Problembericht einzufügen. Nachdem Sie einen Bericht versandt haben, erhalten Sie eine E-Mail, die eine Bestätigung sowie eine Identifikationsnummer enthält. Geben Sie diese Nummer im Betreff der Nachricht an (`"Re: kern/3377"`), wenn Sie neue Informationen zu diesem Problem an {bugfollowup} senden. Zusätzliche Informationen zu Problemberichten sollten immer auf diese Art und Weise verschickt werden. Sollten Sie innerhalb einer Woche keine Bestätigung erhalten, oder man:send-pr[1] nicht verwenden können, können Sie über {freebsd-bugs} jemanden bitten, dies für Sie zu erledigen. Weitere Informationen zum Verfassen von guten Problemberichten finden Sie im entsprechenden extref:{problem-reports}[Artikel]. === Änderungen der Dokumentation Änderungen der Dokumentation werden vom {freebsd-doc} überwacht. Lesen Sie bitte die extref:{fdp-primer}[Fibel für neue Mitarbeiter des FreeBSD-Dokumentationsprojekts] für weitere Informationen. Korrekturen und Ergänzungen (selbst kleine Änderungen sind willkommen!) werden mit man:send-pr[1] übermittelt. Lesen Sie dazu den Abschnitt <>. === Änderungen am vorhandenen Quellcode Änderungen des existierenden Quellcodes sind etwas komplizierter. Entscheidend ist hier, wie vertraut Sie mit dem aktuellen Entwicklungsstand von FreeBSD sind. Es existiert eine spezielle, ständig aktualisierte Version von FreeBSD, die als "FreeBSD-CURRENT" bekannt ist. Diese ist auf verschiedenen Wegen erhältlich und stellt den aktuellen Stand der Entwicklung dar. Lesen Sie den Abschnitt extref:{handbook}updating-upgrading/[FreeBSD-CURRENT vs. FreeBSD-STABLE, current-stable] des Handbuchs für weitere Informationen zur Installation und Verwendung von FreeBSD-CURRENT. Arbeiten Sie mit älteren Quellcodeversionen, kann dies leider bedeuten, das Ihre Änderungen obsolet sind, oder sich nicht mehr in FreeBSD reintegrieren lassen. Dieses Risiko lässt sich verringern, wenn Sie die Mailinglisten {freebsd-announce} und {freebsd-current} abonnieren, auf denen aktuelle Systemänderungen diskutiert werden. Wenn Ihre Änderungen auf ausreichend aktuellen Quellen beruhen, erstellen Sie als Nächstes einen Differenzensatz, den Sie an die FreeBSD-Entwickler schicken. Eine solche Differenz erstellen Sie mit man:diff[1]. Das bevorzugte man:diff[1]-Format für das Versenden von Patches ist das sogenannte unified output-Format, das Sie mit `diff -u` erstellen. Für größere Änderungen kann allerdings das context output-Format (erzeugt mit `diff -c`) die bessere Wahl sein. Dazu ein Beispiel: [source,shell] .... % diff -c oldfile newfile .... oder [source,shell] .... % diff -c -r olddir newdir .... würde einen solchen Satz von Differenzen für die angegebene Verzeichnishierarchie erzeugen. Genauso hätte [source,shell] .... % diff -u oldfile newfile .... oder [source,shell] .... % diff -u -r olddir newdir .... den gleichen Effekt, allerdings erfolgt die Ausgabe im unified diff-Format. Lesen Sie dazu auch man:diff[1]. Nachdem Sie den Differenzensatz erstellt und mit man:patch[1] getestet haben, sollten Sie ihn an das FreeBSD-Projekt senden. Verwenden Sie dazu man:send-pr[1] (wie im Abschnitt <> beschrieben). Senden Sie die Differenzen _nicht nur_ an {freebsd-hackers}, da diese sonst verloren gehen. Wir freuen uns über Ihren Beitrag (schließlich ist FreeBSD ein Freiwilligenprojekt); wir sind aber manchmal nicht in der Lage, das Problem sofort anzugehen. Es verbleibt aber in der PR-Datenbank, bis wir dafür Zeit finden. Verwenden Sie den Begriff `[PATCH]` im Synopsis-Feld des Berichts. Sie können auch ein `tar`-Archiv erzeugen (was vor allem dann sinnvoll ist, wenn Sie Dateien hinzugefügt, gelöscht oder umbenannt haben) und man:uuencode[1] auf das Archiv anwenden. Mit man:shar[1] erzeugte Archive sind ebenfalls willkommen. Wenn Ihre Änderungen potentielle Probleme aufweisen, wie Unklarheiten im Hinblick auf das Copyright, oder Sie einfach eine genaue Überprüfung Ihrer Änderungen möchten, sollten Sie die Änderungen an das {core-name} schicken, statt sie mit man:send-pr[1] zu versenden. Die Mailingliste {core-name} erreicht nur eine kleine Gruppe von Leuten, die sich um die tägliche Arbeit an FreeBSD kümmern. Beachten Sie aber, dass diese Gruppe _sehr beschäftigt_ ist. Daher sollten Sie nur dann eine E-Mail an sie schicken, wenn es absolut notwendig ist. man:intro[9] und man:style[9] beschreiben den zu verwendenden Programmierstil. Bevor Sie also Code versenden, sollten Sie diese Informationen gelesen haben. === Neuer Code oder große Mehrwertpakete Handelt es sich um einen bedeutenden Beitrag oder um das Hinzufügen von neuen wichtigen Fähigkeiten zu FreeBSD, ist es fast immer notwendig, die Änderungen als uuencoded tar-Dateien zu versenden, oder diese auf einer Internetseite oder einem FTP-Server bereitzustellen. Haben Sie keinen eigenen Speicherplatz im Internet, sollten Sie auf einer entsprechenden Mailinglisten nachfragen, ob jemand diese Aufgabe für Sie übernehmen kann. Arbeitet man mit großen Codebeständen, kommt man unweigerlich mit den unterschiedlichen Lizenzen in Berührung. Code, der in FreeBSD enthalten ist, kann unter den folgenden Lizenzen stehen: . Der BSD-Lizenz. Diese Lizenz wird von uns bevorzugt, weil sie an "keine Bedingungen" geknüpft ist und daher für kommerzielle Unternehmen sehr attraktiv ist. Das FreeBSD-Projekt unterstützt diese kommerzielle Verwendung, die manchmal sogar in eine Förderung des FreeBSD-Projekts mündet. . Der GNU General Public License, oder "GPL". Diese Lizenz ist nicht ganz so beliebt bei uns, da sie die kommerzielle Nutzung des Quellcodes einschränkt. In Anbetracht der schieren Menge an GPL-Quellcode, den wir derzeit benötigen (wie Compiler, Assembler oder Textformatierer) wären wir aber schlecht beraten, Beiträge, die unter dieser Lizenz stehen, abzulehnen. Code, der unter der GPL steht, befindet sich in einem gesonderten Bereich des Quellcodebaums, und zwar unter [.filename]#/sys/gnu# oder [.filename]#/usr/src/gnu#, und ist daher für jeden, für den die GPL ein Problem darstellt, sofort erkennbar. Beiträge, die unter einer dieser Lizenzen stehen, müssen sorgfältig geprüft werden, bevor ihre Aufnahme in FreeBSD in Betracht gezogen wird. Beiträge, für die besonders restriktive Lizenzen gelten, werden generell abgelehnt, obwohl die Autoren ermutigt werden, ihre Veränderungen über ihre eigenen Kanäle verfügbar zu machen. Um Ihre Arbeit unter die "BSD-Lizenz" zu stellen, fügen Sie den folgenden Text am Beginn jeder von Ihnen erstellten Quellcodedatei ein, wobei Sie den Text zwischen den `%%`-Zeichen durch die entsprechenden Informationen ersetzt: [.programlisting] .... Copyright (c) %%Jahr der Veröffentlichung%% %%Ihr Name%%, %%Ihr Land%% %%Ihre Postleitzahl%%. 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 %%Ihr Name%% ``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 %%Ihr Name%% 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$ .... Eine Kopie dieses Textes finden Sie unter [.filename]#/usr/shared/examples/etc/bsd-style-copyright#. === Geld, Hardware oder Internetzugang Wir freuen uns immer, wenn jemand das FreeBSD-Projekt durch Spenden unterstützen will. Auch kleine Spenden können eine große Wirkung haben. Hardwarespenden sind ebenfalls sehr wichtig, um die Liste der von FreeBSD unterstützten Hardware erweitern zu können, da uns die Mittel zum Erwerb dieser Hardware fehlen. [[donations]] ==== Geldspenden Die FreeBSD Foundation ist eine gemeinnützige Gesellschaft, die zur Unterstützung des FreeBSD-Projekts geschaffen wurde. Sie ist nach dem Paragraphen 501(c)3 sowohl von der amerikanischen Einkommenssteuer als auch von der des Staates Colorado befreit. Spenden an solche steuerbefreiten Gesellschaften können unter gewissen Umständen steuermindernd geltend gemacht werden. Sie können Spenden in Scheckform an folgende Adresse senden: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** Die FreeBSD Foundation ist nun auch in der Lage, Spenden durch das PayPal-System entgegenzunehmen. Solche Spenden können über die http://www.freebsdfoundation.org[Homepage] der Foundation erfolgen. Für weitere Informationen zur FreeBSD Foundation sollten Sie den Artikel http://people.FreeBSD.org/~jdp/foundation/announcement.html[The FreeBSD Foundation -- an Introduction] lesen. Sie erreichen die FreeBSD Foundation über die E-Mail-Adresse mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org]. ==== Hardwarespenden Das FreeBSD-Projekt freut sich, wenn jemand benötigte Hardware spenden will. Sind Sie daran interessiert, setzen Sie sich bitte mit dem link:https://www.FreeBSD.org/donations/[Donations Liaison Office] in Verbindung. ==== Internetzugang zur Verfügung stellen Wir sind ständig auf der Suche nach neuen FTP-, WWW- oder `cvsup`-Spiegeln. Wenn Sie einen solchen Spiegel einrichten wollen, lesen Sie bitte den Artikel extref:{hubs}[Mirroring FreeBSD], der weitere Informationen enthält. diff --git a/documentation/content/el/articles/contributing/_index.adoc b/documentation/content/el/articles/contributing/_index.adoc index 302707118a..944ae8f02b 100644 --- a/documentation/content/el/articles/contributing/_index.adoc +++ b/documentation/content/el/articles/contributing/_index.adoc @@ -1,246 +1,246 @@ --- title: Συνεισφέροντας στο FreeBSD authors: - author: Jordan Hubbard - author: Κυριάκος Κεντρωτής trademarks: ["freebsd", "ieee", "general"] --- = Συνεισφέροντας στο FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Περίληψη Αυτό το άρθρο περιγράφει διάφορους τρόπους με τους οποίους μπορεί ένα άτομο ή μια οργάνωση να συνεισφέρει στο FreeBSD. ''' toc::[] Θέλετε να συμβάλλετε στο FreeBSD λοιπόν; Αυτό είναι υπέροχο! Το FreeBSD _βασίζεται_ στη συνεισφορά των χρηστών για να επιβιώσει ως έργο. Οι συνεισφορές σας δεν είναι απλώς καλοδεχούμενες, αλλά είναι ουσιαστικές προκειμένου το FreeBSD να συνεχίσει να αναπτύσσεται. Δεν είναι ανάγκη να είστε προγραμματιστής ή φίλος με την κεντρική ομάδα του FreeBSD για να γίνει η συνεισφορά σας αποδεκτή. Το FreeBSD αναπτύσσεται από ένα μεγάλο αριθμό ανθρώπων από όλο τον κόσμο. Στην ομάδα ανάπτυξης υπάρχουν άτομα διαφόρων ηλικιών ή γνωστικών αντικειμένων. Οι εργασίες οι οποίες πρέπει να γίνουν είναι αρκετές όμως. Πολλές φορές είναι περισσότερες από ότι μπορούν να κάνουν οι άνθρωποι που είναι διαθέσιμοι στην ομάδα του FreeBSD. Γι αυτό είναι πάντοτε καλοδεχούμενη κάθε βοήθεια. Το FreeBSD είναι υπεύθυνο για ένα ολόκληρο λειτουργικό περιβάλλον, κι όχι μόνο για ένα πυρήνα ή μερικά διάσπαρτα εργαλεία. Έτσι, η λίστα των εργασιών που πρέπει να γίνουν καλύπτει ένα αρκετά μεγάλο εύρος: από την τεκμηρίωση, τη δοκιμή και την παρουσίαση, μέχρι το πρόγραμμα εγκατάστασης του συστήματος και τα πολύ εξειδικευμένα θέματα της ανάπτυξης του πυρήνα. Έτσι είναι σχεδόν σίγουρο ότι όλοι μπορούν να συνεισφέρουν με εποικοδομητικό τρόπο στο έργο ανάπτυξης του FreeBSD, όποιες γνώσεις και να έχουν. Μας ενδιαφέρει επίσης και κάθε επικοινωνία με εμπορικούς οργανισμούς, εφόσον δραστηριοποιούνται σε κάποιο χώρο σχετικό με το FreeBSD. Χρειάζεστε μια ειδική επέκταση για να δουλέψει το προϊόν σας; Θα μας βρείτε δεκτικούς στα αιτήματα σας· ειδικά όταν είναι ρεαλιστικά. Δουλεύετε πάνω σε ένα προϊόν βασισμένο στο FreeBSD; Παρακαλούμε ενημερώστε μας. Μπορεί να συνεργαστούμε με κάποιο τρόπο χρήσιμο και στις δύο πλευρές. Ο κόσμος του ελεύθερου λογισμικού έχει ενδιαφέρουσες επιπτώσεις σε πολλές υπάρχουσες θεωρίες σχετικά με την ανάπτυξη, την πώληση και τη συντήρηση του λογισμικού. Αξίζει, αν όχι να ασχοληθείτε μαζί του, τουλάχιστον να έχετε υπόψη σας πως λειτουργεί. [[contrib-what]] == Τι χρειάζεται Η λίστα εργασιών και μικρότερων έργων που ακολουθεί είναι μια ενδεικτική συλλογή από ιδέες για υλοποίηση και αιτήματα των χρηστών του FreeBSD. [[non-programmer-tasks]] === Εργασίες που δε χρειάζονται προγραμματιστές Αρκετοί άνθρωποι που σχετίζονται με το FreeBSD δεν είναι προγραμματιστές. Το έργο περιλαμβάνει συγγραφείς τεκμηρίωσης, σχεδιαστές ιστοσελίδων και ανθρώπους που το υποστηρίζουν. Το μόνο που χρειάζεται για να συνεισφέρει κάποιος στο έργο αυτής της ομάδας είναι η διάθεση να επενδύσει λίγο χρόνο και η θέληση για γνώση. . Διαβάστε τη λίστα συχνών ερωτήσεων (FAQ) και το Εγχειρίδιο του FreeBSD. Αν κάτι δεν εξηγείται σωστά, περιέχει ξεπερασμένες πληροφορίες ή είναι εντελώς λάθος, ειδοποιήστε μας. Ακόμα καλύτερα, στείλτε μας μια διόρθωση (η SGML δεν είναι δύσκολη στην εκμάθηση, αλλά πάντα δεχόμαστε και διορθώσεις σε μορφή απλού κειμένου ASCII). . Βοηθήστε στη μετάφραση της τεκμηρίωσης του FreeBSD στη μητρική σας γλώσσα. Αν υπάρχει ήδη τεκμηρίωση στη γλώσσα σας, μπορείτε να βοηθήσετε στη μετάφραση επιπρόσθετων κειμένων ή να επιβεβαιώνετε ότι η μετάφραση είναι ενημερωμένη. Πρώτα, κοιτάξτε στις extref:{fdp-primer}[απαντημένες ερωτήσεις σχετικά με τις μεταφράσεις, translations] στο Βασικό Οδηγό για την Τεκμηρίωση του FreeBSD. Το να στείλετε μία μετάφραση δεν σας καθιστά υπεύθυνο να μεταφράσετε όλη την τεκμηρίωση του FreeBSD. Ως εθελοντής μπορείτε να μεταφράσετε όσα κείμενα θέλετε ή μπορείτε· όσο πολλά, μεγάλα, μικρά ή λίγα είναι αυτά. Μόλις αρχίσει κάποιος τη μετάφραση της τεκμηρίωσης του FreeBSD σε μια γλώσσα, σχεδόν αμέσως αρχίσουν να συνεισφέρουν κι άλλοι στην προσπάθεια. Αν έχετε το χρόνο ή την ενέργεια να μεταφράσετε μόνο ένα μέρος της τεκμηρίωσης, παρακαλούμε μεταφράστε τις οδηγίες εγκατάστασης. . Να διαβάζετε περιστασιακά (ή καθημερινά) τις {freebsd-questions} και news:comp.unix.bsd.freebsd.misc. Το να μοιράζεστε την εμπειρία σας και να βοηθάτε ανθρώπους να λύσουν τα προβλήματά τους μπορεί να είναι ιδιαίτερα ικανοποιητικό. Μερικές φορές μπορεί να μάθετε και κάτι νέο μέσα από αυτή τη διαδικασία! Επίσης αυτές οι συζητήσεις μπορεί να σας δώσουν ιδέες για καινούρια ενδιαφέροντα πράγματα με τα οποία μπορείτε να ασχοληθείτε. [[ongoing-programmer-tasks]] === Εργασίες για προγραμματιστές Στις περισσότερες από τις εργασίες που αναφέρονται εδώ χρειάζεται είτε σημαντική επένδυση χρόνου ή μία σε βάθος γνώση του πυρήνα του FreeBSD ή και τα δύο. Υπάρχουν επίσης πολλές εργασίες οι οποίες είναι ταυτόχρονα χρήσιμες και αρκετά εύκολες ακόμη και για κάποιον "hacker του σαββατοκύριακου". . Αν τρέχετε FreeBSD-CURRENT και έχετε γρήγορη σύνδεση στο Internet, υπάρχει ένας εξυπηρετητής στο `current.FreeBSD.org` που "χτίζει" μια πλήρη έκδοση κάθε μέρα. Προσπαθήστε να εγκαταστήσετε την τελευταία έκδοση από εκεί και κάντε αναφορά για οποιοδήποτε πρόβλημα συναντήσετε κατά τη διάρκεια της εγκατάστασης ή μετά από αυτήν. . Διαβάστε τη {freebsd-bugs}. Πιθανόν να υπάρχει κάποιο πρόβλημα το οποίο μπορείτε να σχολιάσετε εποικοδομητικά ή κάποιο patch το οποίο μπορείτε να δοκιμάσετε. Ακόμα καλύτερα, μπορεί να βρείτε κάποιο πρόβλημα το οποίο σας φαίνεται ενδιαφέρον και μπορεί να το διορθώσετε οι ίδιοι. . Αν γνωρίζετε οποιεσδήποτε διορθώσεις προβλήματος οι οποίες έχουν εφαρμοστεί επιτυχημένα στον κλάδο ανάπτυξης -CURRENT αλλά δεν έχουν συγχωνευτεί με τον κλάδο -STABLE μετά από κάποιο λογικό διάστημα (συνήθως μερικές βδομάδες), στείλτε στον committer μια ευγενική υπενθύμιση. . Βοηθήστε μας να ξεχωρίσουμε το λογισμικό από εξωτερικές ομάδες και να μετακινήσουμε τέτοια προγράμματα στον κατάλογο [.filename]#src/contrib# του πηγαίου κώδικα. . Σιγουρευτείτε ότι τα προγράμματα του [.filename]#src/contrib# έχουν ενημερωθεί στις τελευταίες διαθέσιμες εκδόσεις. . Μεταγλωττίστε τον πηγαίο κώδικα (ή ένα μέρος του κώδικα) με επιπλέον ειδοποιήσεις πιθανών λαθών (compiler warnings) και διορθώστε ότι λάθη βρείτε. . Διορθώστε τις προειδοποιήσεις λάθους (warnings) για τα ports τα οποία χρησιμοποιούν μη αποδεκτές κλήσεις, όπως η συνάρτηση `gets()`, ή συμπεριλαμβάνουν παλιά αρχεία include, όπως το [.filename]#malloc.h#. . Αν έχετε συνεισφέρει αλλαγές για κάποια ports και χρειάστηκαν αλλαγές για να δουλέψει το αντίστοιχο λογισμικό σωστά σε FreeBSD, στείλτε τις αλλαγές σας στους αρχικούς δημιουργούς του λογισμικού (αυτό θα κάνει τη ζωή σας ευκολότερη όταν θα κυκλοφορήσουν τη νέα έκδοση). . Προσπαθείστε να βρείτε αντίγραφα από επίσημα πρότυπα όπως το POSIX(R). Μπορείτε να βρείτε συνδέσμους σχετικά με αυτά τα πρότυπα στην ιστοσελίδα link:https://www.FreeBSD.org/projects/c99/index/[FreeBSD C99 & POSIX Standards Conformance Project]. Συγκρίνετε την συμπεριφορά του FreeBSD με την απαιτούμενη από τα πρότυπα. Αν η συμπεριφορά διαφέρει, ιδιαίτερα σε λεπτά ή δυσδιάκριτα σημεία των προδιαγραφών, στείλτε μια αναφορά προβλήματος σχετικά με αυτό. Αν είναι δυνατόν σκεφτείτε ένα τρόπο να διορθώσετε το πρόβλημα και συμπεριλάβετε το patch στην αναφορά σας. Αν θεωρείται ότι τα πρότυπα είναι λανθασμένα, θέστε ερώτημα στον οργανισμό του προτύπου να εξετάσει το θέμα. . Μπορείτε ακόμη να προτείνετε επιπλέον εργασίες για αυτή τη λίστα! === Εργασία Μέσω της Βάσης Αναφορών Προβλημάτων (PR database) Η http://www.FreeBSD.org/cgi/query-pr-summary.cgi[λίστα αναφορών προβλημάτων του FreeBSD] περιέχει όλες τις γνωστές αναφορές προβλημάτων και τα αιτήματα αναβάθμισης τα οποία έχουν υποβάλλει σε αυτή οι χρήστες του FreeBSD. Σε αυτή υπάρχουν εργασίες τόσο για προγραμματιστές όσο και για μη προγραμματιστές. Ένας τρόπος να βοηθήσετε την ανάπτυξη του FreeBSD είναι να διατρέξετε (μία η περισσότερες φορές) τη λίστα προβλημάτων, ψάχνοντας για κάτι που σας ενδιαφέρει. Μερικές από αυτές τις αναφορές προβλημάτων σχετίζονται με πολύ απλές εργασίες. Πολλές φορές αρκεί μία σύντομη ματιά για να επιβεβαιωθεί ότι η προτεινόμενη διόρθωση κάποιου προβλήματος είναι σωστή. Άλλες φορές οι αλλαγές που χρειάζονται είναι πιο δύσκολες ή δεν έχει βρεθεί κάποια λύση ακόμα. Αρχίστε με τις αναφορές προβλημάτων που δεν έχουν εκχωρηθεί σε κάποιον άλλον. Αν η αναφορά είναι καταχωρημένη σε κάποιον, αλλά βλέπετε ότι είναι κάτι που μπορείτε να χειριστείτε, ειδοποιήστε με email τον υπεύθυνο της αναφοράς και ρωτήστε αν μπορείτε να δουλέψετε πάνω σ' αυτήν. Ίσως ο υπεύθυνος έχει ήδη ξεκινήσει κάποιες διορθώσεις και σας δώσει κάτι για δοκιμή ή έχει ήδη κάποιες ιδέες που μπορείτε να συζητήσετε μαζί του. === Διαλέξτε κάποιο αντικείμενο από την σελίδα με τις "ιδέες". Η λίστα link:https://www.FreeBSD.org/projects/ideas/[FreeBSD των έργων και των ιδεών για εθελοντές] είναι επίσης διαθέσιμη για ανθρώπους με διάθεση να συνεισφέρουν στο έργο του FreeBSD. Η λίστα ανανεώνεται τακτικά και περιλαμβάνει αντικείμενα για ενασχόληση τόσο για προγραμματιστές όσο και για μη προγραμματιστές και παρέχει πληροφορίες για κάθε έργο. [[contrib-how]] == Πως μπορείτε να συνεισφέρετε Οι συνεισφορές στο σύστημα κατατάσσονται γενικά σε μια από τις ακόλουθες 5 κατηγορίες: [[contrib-general]] === Αναφορές προβλήματος και γενικές επεξηγηματικές παρατηρήσεις-σχόλια Μια ιδέα ή πρόταση _γενικού_ τεχνικού ενδιαφέροντος θα πρέπει να αποσταλεί στη λίστα {freebsd-hackers}. Επιπλέον, άνθρωποι με ενδιαφέρον για τέτοια θέματα (αλλά και ανεκτικότητα σε _μεγάλο_ αριθμό εισερχόμενων μηνυμάτων!) μπορούν να γραφτούν στη λίστα {freebsd-hackers}. Δείτε το extref:{handbook}eresources[Εγχειρίδιο του FreeBSD, eresources-mail] για περισσότερες πληροφορίες σχετικά με αυτήν αλλά και άλλες λίστες. Αν βρείτε κάποιο bug ή αν έχετε κάνει κάποια συγκεκριμένη αλλαγή, παρακαλούμε κάντε αναφορά χρησιμοποιώντας το πρόγραμμα man:send-pr[1] ή την αντίστοιχη link:https://www.FreeBSD.org/send-pr/[ ιστοσελίδα]. Προσπαθήστε να συμπληρώσετε όλα τα πεδία της αναφοράς. Αν οι αλλαγές που κάνατε δεν ξεπερνούν τα 65KB σε μέγεθος, συμπεριλάβετε τις αλλαγές σας απευθείας στην αναφορά. Αν οι αλλαγές είναι κατάλληλες για εφαρμογή στον πηγαίο κώδικα, προσθέστε την ετικέτα `[PATCH]` στην περίληψη της αναφοράς. Όταν συμπεριλαμβάνετε patches, _μη_ χρησιμοποιείτε αντιγραφή-και-επικόλληση, διότι η αντιγραφή και επικόλληση μετατρέπει συχνά τους στηλοθέτες (TAB) σε κενά και αχρηστεύει το patch. Αν τα patches είναι πολύ μεγαλύτερα από 20KB, δοκιμάστε να τα συμπιέσετε (π.χ. με το man:gzip[1] ή το man:bzip2[1]) και χρησιμοποιήστε το εργαλείο man:uuencode[1] για να εισάγετε τη συμπιεσμένη μορφή στην αναφορά σας. Μετά της υποβολή μιας αναφοράς θα λάβετε επιβεβαίωση παράλληλα με έναν αριθμό αναφοράς. Κρατήστε τον αριθμό ώστε να μπορείτε να μας ενημερώνετε με πληροφορίες σχετικά με το πρόβλημα στέλνοντας mail στο {bugfollowup}. Χρησιμοποιήστε τον αριθμό της αναφοράς σας στο θέμα του μηνύματος, π.χ. `"Re: kern/3377"`. Επιπρόσθετες πληροφορίες για οποιοδήποτε αναφορά προβλήματος θα πρέπει να υποβάλλονται με τον παραπάνω τρόπο. Εάν δε λάβετε επιβεβαίωση εγκαίρως (3 μέρες ως μια βδομάδα, ανάλογα με τη αξιοπιστία του email) ή για κάποιο λόγο αδυνατείτε να χρησιμοποιήσετε την εντολή man:send-pr[1], μπορείτε να απευθυνθείτε σε κάποιον προκειμένου να την αρχειοθετήσει για εσάς στέλνοντας mail στη {freebsd-bugs}. Δείτε επίσης extref:{problem-reports}[αυτό το άρθρο] σχετικά με το πώς να γράφετε καλές αναφορές προβλημάτων. === Αλλαγές στην τεκμηρίωση Οι αλλαγές στην τεκμηρίωση επιβλέπονται από την {freebsd-doc}. Για πλήρεις οδηγίες σχετικά με τον τρόπο που μπορείτε να συνεισφέρετε στην τεκμηρίωση του FreeBSD, δείτε τον extref:{fdp-primer}[Οδηγό τεκμηρίωσης του FreeBSD]. Στείλτε τα καινούρια σας κείμενα ή τις αλλαγές σας (ακόμη και μικροδιορθώσεις είναι πάντα καλοδεχούμενες) χρησιμοποιώντας την εντολή man:send-pr[1] όπως περιγράφετε στο <>. === Αλλαγές στον Πηγαίο Κώδικα Μία προσθήκη ή αλλαγή στον υπάρχοντα κώδικα είναι κατά κάποιο τρόπο περίτεχνη υπόθεση και εξαρτάται αρκετά από τον βαθμό της ενημέρωσης που έχετε με την τρέχουσα κατάσταση της ανάπτυξης του FreeBSD. Υπάρχει μια ειδική συνεχώς αναπτυσσόμενη έκδοση του FreeBSD γνωστή ως "FreeBSD-CURRENT" η οποία είναι διαθέσιμη με διάφορους τρόπους για την ευκολία των προγραμματιστών που δραστηριοποιούνται ενεργά στην ανάπτυξη του συστήματος. Δείτε extref:{handbook}updating-upgrading[το Εγχειρίδιο του FreeBSD, current-stable] για περισσότερες πληροφορίες σχετικά με το που θα βρείτε και πώς μπορείτε να χρησιμοποιήσετε το FreeBSD-CURRENT. Δουλεύοντας από παλιότερο κώδικα δυστυχώς σημαίνει ότι οι αλλαγές σας μπορεί μερικές φορές να είναι αρκετά ξεπερασμένες ή να αποκλίνουν πολύ, οπότε να δυσκολεύει κάπως η ενσωμάτωσή τους στο FreeBSD. Ρίσκα σαν γι' αυτά μπορούν να ελαχιστοποιηθούν κάπως με την συμμετοχή στις λίστες {freebsd-announce} και {freebsd-current}, στις οποίες διεξάγονται συζητήσεις για την τρέχουσα κατάσταση του συστήματος. Αφού εξασφαλίσετε κάπως ένα σχετικά ενημερωμένο αντίγραφο του πηγαίου κώδικα ως βάση για τις αλλαγές σας, το επόμενο βήμα είναι να δημιουργήσετε diffs για αποστολή στην ομάδα ανάπτυξης του FreeBSD. Αυτό γίνεται με την εντολή man:diff[1]. Το προτιμώμενο format του man:diff[1] για την υποβολή patches είναι η ενοποιημένη μορφή εξόδου (unified diff), που δημιουργείται από την εντολή `diff -u`. Μια μικρή εξαίρεση είναι τα τα patches που αλλάζουν μεγάλα κομμάτια κώδικα, ουσιαστικά αντικαθιστώντας τα σχεδόν με μια καινούρια έκδοση. Για τέτοιες αλλαγές μπορεί να είναι πιο ευανάγνωστη η μορφή εξόδου που δημιουργείται από την εντολή `diff -c`. Για παράδειγμα το: [source,shell] .... % diff -c παλιό_αρχείο νέο_αρχείο .... ή το [source,shell] .... % diff -c -r παλιός_κατάλογος νέος_κατάλογος .... θα δημιουργήσει ένα σετ από context diffs για τον κώδικα του συγκεκριμένου αρχείου ή της ιεραρχίας καταλόγων. Ομοίως το, [source,shell] .... % diff -u παλιό_αρχείο νέο_αρχείο .... ή το [source,shell] .... % diff -u -r παλιός_κατάλογος νέος_κατάλογος .... θα κάνει το ίδιο, αλλά θα παράγει diff ενοποιημένη μορφή. Δείτε τη βοήθεια του εργαλείου man:diff[1] για περισσότερες λεπτομέρειες. Από τη στιγμή που έχετε κάποια diffs, (τα οποία μπορείτε να ελέγξετε με την εντολή man:patch[1]), θα πρέπει να τα υποβάλλετε για ενσωμάτωση στο FreeBSD. Χρησιμοποιήστε το πρόγραμμα man:send-pr[1], όπως περιγράφετε στο κείμενο <>. _Μη_ στέλνετε μόνο ένα μήνυμα με τα patches στη {freebsd-hackers} αλλιώς θα χαθούν! Σας ευχαριστούμε προκαταβολικά για οποιαδήποτε προσφορά κώδικα (το έργο ανάπτυξης του FreeBSD είναι εθελοντική προσπάθεια που βασίζεται ακριβώς σε τέτοιες προσφορές!). Επειδή είμαστε απασχολημένοι, μπορεί να μη χειριστούμε την αίτηση για αλλαγή αμέσως, ωστόσο μέχρι να το κάνουμε αυτό, θα παραμείνει στην βάση αναφορών. Θυμηθείτε να επισημάνετε την υποβολή σας με την ετικέτα `[PATCH]` στην περίληψη της αναφοράς. Αν νομίζετε ότι χρειάζεται (π.χ. έχετε προσθέτει, αφαιρέσει ή μετονομάσει κάποια αρχεία), χρησιμοποιείστε το εργαλείο `tar` για να πακετάρετε τις αλλαγές σας, και το εργαλείο man:uuencode[1] για να τις ενσωματώσετε στην αναφορά που θα στείλετε. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το εργαλείο man:shar[1] αντί για το man:tar[1]. Αν η φύση των αλλαγών που θέλετε να κάνετε είναι κάπως ευαίσθητη, π.χ. αν δεν είστε σίγουροι για τα πνευματικά δικαιώματα και τη διανομή των αλλαγών ή αν απλά δεν είστε έτοιμοι να δώσετε στη δημοσιότητα κάποιες αλλαγές χωρίς ένα review ακόμα, τότε είναι καλύτερα να στείλετε τις αλλαγές σας απευθείας στην {core} αντί να τις προωθήσετε μέσω του man:send-pr[1]. Η {core} αποτελείται από ένα πολύ μικρότερο αριθμό ατόμων. Έχετε υπόψιν όμως ότι αυτή η ομάδα είναι __πολύ απασχολημένη__, οπότε καλό είναι να τους στέλνετε μηνύματα μόνο όταν είστε αρκετά σίγουροι ότι είναι απαραίτητο. Κάτι τελευταίο σχετικά με τον πηγαίο κώδικα του FreeBSD. Οι σελίδες τεκμηρίωσης man:intro[9] και man:style[9] περιέχουν πληροφορίες σχετικά με το στυλ κώδικα που προτιμούμε για το FreeBSD. Πριν στείλετε σημαντικές αλλαγές στην ομάδα ανάπτυξης είναι σημαντικό να έχετε εξοικειωθεί με το στυλ που γράφουμε και, όταν είναι δυνατόν, να το ακολουθήσετε στο γράψιμο του κώδικα που θα μας στείλετε. === Νέος Κώδικας και Μεγάλα Πακέτα Πρόσθετων Χαρακτηριστικών Στην περίπτωση μιας σχετικά μεγάλης συνεισφοράς λογισμικού στο FreeBSD και κάθε φορά που προστίθεται ένα σημαντικό καινούριο χαρακτηριστικό στο σύστημα, είναι σχεδόν πάντα απαραίτητο να είναι διαθέσιμες οι αλλαγές με τη μορφή ενός πακέτου tar ή να είναι διαθέσιμες μέσω ενός εξυπηρετητή web ή FTP. Αν δεν έχετε πρόσβαση για να ανεβάσετε τα αρχεία σε κάποιοn εξυπηρετητή web ή FTP, ρωτήστε στην κατάλληλη λίστα ηλεκτρονικού ταχυδρομείου του FreeBSD και κάποιος άλλος μπορεί να φιλοξενήσει τα αρχεία για σας. Το ευαίσθητο θέμα των πνευματικών δικαιωμάτων και των αδειών χρήσης είναι το επόμενο πράγμα που παίζει μεγάλο ρόλο, ιδιαίτερα για μεγάλα έργα λογισμικού. Οι άδειες χρήσης που είναι αποδεκτές για κώδικα που ενσωματώνεται στο FreeBSD είναι οι παρακάτω: . Η άδεια χρήσης BSD. Αυτή η άδεια είναι η προτιμότερη, λόγω της ιδιαίτερης "χωρίς περιορισμούς" φύσης που έχει και της δυνατότητας χρήσης του κώδικα ακόμη και για εμπορικούς σκοπούς. Η Ομάδα του FreeBSD δεν αποθαρρύνει τέτοιου είδους χρήση του πηγαίου κώδικα. Το αντίθετο μάλιστα, ενθαρρύνει τη χρήση του κώδικα, αφού έτσι υπάρχει πιθανότητα ορισμένοι εμπορικοί να συνεισφέρουν με τη σειρά τους στην ανάπτυξη του FreeBSD. . Η άδεια GNU General Public License, ή "GPL". αυτή η άδεια δεν είναι τόσο δημοφιλής επειδή χρειάζεται έξτρα προσπάθεια από οποιονδήποτε χρησιμοποιεί τον κώδικα για εμπορικούς σκοπούς, αλλά επειδή υπάρχει ένα μεγάλο σώμα πηγαίου κώδικα, το οποίο διανέμεται με αυτή την άδεια κι από το οποίο εξαρτιόμαστε (μεταγλωττιστής, assembler, προγράμματα μορφοποίησης κειμένου, κλπ.), θα ήταν κάπως χαζό να μη δεχόμαστε καμία αλλαγή σε τέτοιο κώδικα. Ο κώδικας με άδεια GPL διανέμεται όμως σε δικό του, ξεχωριστό μέρος του πηγαίου κώδικα του FreeBSD, κάτω από τους καταλόγους [.filename]#/sys/gnu# και [.filename]#/usr/src/gnu#. Έτσι είναι εύκολο να ξεχωρίσει κανείς από τον κώδικα του FreeBSD όλα τα μέρη με άδεια GPL, όταν υπάρχει λόγος να γίνει τέτοιος διαχωρισμός. Οι συνεισφορές κώδικα με οποιαδήποτε άλλη άδεια πρέπει να περάσουν από πολύ προσεκτικό έλεγχο πριν αποφασίσουμε αν υπάρχει λόγος να ενσωματωθούν με το FreeBSD. Οι συνεισφορές με ιδιαίτερα αυστηρούς εμπορικούς περιορισμούς απορρίπτονται συνήθως χωρίς πολύ σκέψη, αλλά οι δημιουργοί των αλλαγών ή του συγκεκριμένου κώδικα μπορούν πάντα να διανέμουν τις αλλαγές τους μέσα από τα δικά τους κανάλια διανομής και επικοινωνίας. Για να ορίσετε ότι κάποιο δικό σας έργο πηγαίου κώδικα διανέμεται με τους όρους μιάς άδειας "τύπου BSD" μπορείτε να συμπεριλάβετε στην αρχή των αρχείων πηγαίου κώδικα το παρακάτω κείμενο, αντικαθιστώντας το κείμενο μεταξύ των `%%` με τις κατάλληλες πληροφορίες: [.programlisting] .... Copyright (c) %%χρονιά_ή_χρονιές_αλλαγών%% %%το_όνομά_σας%%, %%η_διεύθυνσή_σας%%. 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 %%το_όνομά_σας%% ``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 %%το_όνομά_σας%% 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$ .... Ένα αντίγραφο αυτού του κειμένου υπάρχει στο αρχείο [.filename]#/usr/shared/examples/etc/bsd-style-copyright#, οπότε μπορείτε να το αντιγράφετε από εκεί κάθε φορά που χρειάζεται. === Χρήματα, Υλικό ή Πρόσβαση στο Διαδίκτυο Κάθε δωρεά που μπορείτε να κάνετε στο έργο του FreeBSD είναι ευπρόσδεκτη. Ακόμα και η πιο μικρή προσφορά μπορεί να έχει μεγάλη σημασία για ένα έργο το οποίο βασίζεται στην εθελοντική εργασία, όπως το δικό μας. Ειδικά οι προσφορές σε υλικό είναι πολύ σημαντικές, αφού έτσι μας δίνεται η δυνατότητα να επεκτείνουμε την υποστήριξη του FreeBSD για το υλικό αυτό - κάτι που μπορεί να μην είναι εύκολο αν πρέπει να αγοράσουμε κάθε κομμάτι υλικού μόνοι μας. [[donations]] ==== Χρηματικές Δωρεές Η οργάνωση FreeBSD Foundation είναι ένας μη κερδοσκοπικός σύλλογος, ο οποίος έχει ιδρυθεί για να προωθήσει το έργο της Ομάδας του FreeBSD. Λόγω της νομικής φύσης του συλλόγου, η οργάνωση παρέχει μερικές φορολογικές ελαφρύνσεις στις Ηνωμένες Πολιτείες και πιο συγκεκριμένα στην πολιτεία του Colorado. Οι δωρεές στην οργάνωση εκπίπτουν από τους φόρους που πρέπει να πληρώσει κάποιος στις Ηνωμένες Πολιτείες· πιθανόν και σε άλλα μέρη. Οι δωρέες σας μπορούν να σταλούν σε μορφή εμβάσματος, στη διεύθυνση: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** Η οργάνωση μπορεί πλέον να δεχτεί και δωρεές μέσω δικτύου από το σύστημα PayPal. Αν ενδιαφέρεστε να κάνετε κάποια δωρεά, παρακαλούμε ξεκινήστε από την http://www.freebsdfoundation.org[ιστοσελίδα της FreeBSD Foundation]. Περισσότερες πληροφορίες για την οργάνωση FreeBSD Foundation μπορείτε να βρείτε στην ανακοίνωση http://people.FreeBSD.org/~jdp/foundation/announcement.html[The FreeBSD Foundation -- an Introduction]. Η επικοινωνία με την οργάνωση μπορεί να γίνει και μέσω ηλεκτρονικής αλληλογραφίας στη διεύθυνση mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org]. ==== Δωρεές Υλικού Η Ομάδα Ανάπτυξης του FreeBSD δέχεται κάθε δωρεά υλικού για την οποία μπορεί να βρει κάποια καλή χρήση. Αν ενδιαφέρεστε να μας δωρίσετε κάποιο υλικό, παρακαλούμε επικοινωνήστε με την link:https://www.FreeBSD.org/donations/[Ομάδα Διαχείρισης των Δωρεών]. ==== Δωρέες Πρόσβασης στο Διαδίκτυο Πάντα είναι χρήσιμο να έχουμε καινούρια mirror sites για το FTP, τον ιστότοπό μας ή το `cvsup`. Αν θέλετε να εγκαταστήσετε ένα τέτοιο mirror, παρακαλούμε δείτε τo άρθρο extref:{hubs}[Mirroring FreeBSD]. Εκεί θα βρείτε περισσότερες πληροφορίες. diff --git a/documentation/content/en/articles/contributing/_index.adoc b/documentation/content/en/articles/contributing/_index.adoc index adbd9bd8ba..63ebc42b39 100644 --- a/documentation/content/en/articles/contributing/_index.adoc +++ b/documentation/content/en/articles/contributing/_index.adoc @@ -1,594 +1,594 @@ --- title: Contributing to FreeBSD authors: - author: Jordan Hubbard - author: Sam Lawrance - author: Mark Linimon description: How to contribute to the FreeBSD Project trademarks: ["freebsd", "ieee", "general"] weight: 15 tags: ["Contributing", "FreeBSD", "Non-Programmer Tasks", "Programmer Tasks"] --- = Contributing to FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Abstract This article describes the different ways in which an individual or organization may contribute to the FreeBSD Project. ''' toc::[] So you want to contribute to FreeBSD? That is great! FreeBSD _relies_ on the contributions of its user base to survive. Your contributions are not only appreciated, they are vital to FreeBSD's continued growth. A large and growing number of international contributors, of greatly varying ages and areas of technical expertise, develop FreeBSD. There is always more work to be done than there are people available to do it, and more help is always appreciated. As a volunteer, what you do is limited only by what you want to do. However, we do ask that you are aware of what other members of the FreeBSD community will expect of you. You may want to take this into account before deciding to volunteer. The FreeBSD project is responsible for an entire operating system environment, rather than just a kernel or a few scattered utilities. As such, our [.filename]#TODO# lists span a very wide range of tasks: from documentation, beta testing and presentation, to the system installer and highly specialized types of kernel development. People of any skill level, in almost any area, can almost certainly help the project. Commercial entities engaged in FreeBSD-related enterprises are also encouraged to contact us. Do you need a special extension to make your product work? You will find us receptive to your requests, given that they are not too outlandish. Are you working on a value-added product? Please let us know! We may be able to work cooperatively on some aspect of it. The free software world is challenging many existing assumptions about how software is developed, sold, and maintained, and we urge you to at least give it a second look. [[contrib-what]] == What Is Needed The following list of tasks and sub-projects represents something of an amalgam of various [.filename]#TODO# lists and user requests. [[non-programmer-tasks]] === Ongoing Non-Programmer Tasks Many people who are involved in FreeBSD are not programmers. The Project includes documentation writers, Web designers, and support people. All that these people need to contribute is an investment of time and a willingness to learn. . Read through the FAQ and Handbook periodically. If anything is poorly explained, ambiguous, out of date or incorrect, let us know. Even better, send us a fix (AsciiDoc is not difficult to learn, but there is no objection to plain text submissions). . Help translate FreeBSD documentation into your native language. If documentation already exists for your language, you can help translate additional documents or verify that the translations are up-to-date and correct. First take a look at the extref:{fdp-primer}[Translations FAQ, translations] in the FreeBSD Documentation Project Primer. You are not committing yourself to translating every single FreeBSD document by doing this - as a volunteer, you can do as much or as little translation as you desire. Once someone begins translating, others almost always join the effort. If you only have the time or energy to translate one part of the documentation, please translate the installation instructions. . Read the {freebsd-questions} occasionally (or even regularly). It can be very satisfying to share your expertise and help people solve their problems; sometimes you may even learn something new yourself! These forums can also be a source of ideas for things to improve upon. [[ongoing-programmer-tasks]] === Ongoing Programmer Tasks Most of the tasks listed here may require a considerable investment of time, an in-depth knowledge of the FreeBSD kernel, or both. However, there are also many useful tasks which are suitable for "weekend hackers". . If you run FreeBSD-CURRENT and have a good Internet connection, there is a machine `current.FreeBSD.org` which builds a full release once a day-every now and again, try to install the latest release from it and report any failures in the process. . Read the {freebsd-bugs}. There may be a problem you can comment constructively on or with patches you can test. Or you could even try to fix one of the problems yourself. . If you know of any bug fixes which have been successfully applied to -CURRENT but have not been merged into -STABLE after a decent interval (normally a couple of weeks), send the committer a polite reminder. . Move contributed software to [.filename]#src/contrib# in the source tree. . Make sure code in [.filename]#src/contrib# is up to date. . Build the source tree (or just part of it) with extra warnings enabled and clean up the warnings. A list of build warnings can also be found from our https://ci.freebsd.org[CI] by selecting a build and checking "LLVM/Clang Warnings". . Fix warnings for ports which do deprecated things like using `gets()` or including [.filename]#malloc.h#. . If you have contributed any ports and you had to make FreeBSD-specific changes, send your patches back to the original authors (this will make your life easier when they bring out the next version). . Get copies of formal standards like POSIX(R). Compare FreeBSD's behavior to that required by the standard. If the behavior differs, particularly in subtle or obscure corners of the specification, send in a PR about it. If you are able, figure out how to fix it and include a patch in the PR. If you think the standard is wrong, ask the standards body to consider the question. . Suggest further tasks for this list! === Work through the PR Database The https://bugs.FreeBSD.org/search/[FreeBSD PR list] shows all the current active problem reports and requests for enhancement that have been submitted by FreeBSD users. The PR database includes both programmer and non-programmer tasks. Look through the open PRs, and see if anything there takes your interest. Some of these might be very simple tasks that just need an extra pair of eyes to look over them and confirm that the fix in the PR is a good one. Others might be much more complex, or might not even have a fix included at all. Start with the PRs that have not been assigned to anyone else. If a PR is assigned to someone else, but it looks like something you can handle, email the person it is assigned to and ask if you can work on it-they might already have a patch ready to be tested, or further ideas that you can discuss with them. === Ongoing Ports Tasks The Ports Collection is a perpetual work in progress. We want to provide our users with an easy to use, up to date, high quality repository of third party software. We need people to donate some of their time and effort to help us achieve this goal. Anyone can get involved, and there are lots of different ways to do so. Contributing to ports is an excellent way to help "give back" something to the project. Whether you are looking for an ongoing role, or a fun challenge for a rainy day, we would love to have your help! There are a number of easy ways you can contribute to keeping the ports tree up to date and in good working order: * Find some cool or useful software and extref:{porters-handbook}[create a port] for it. * There are a large number of ports that have no maintainer. Become a maintainer and <>. * If you have created or adopted a port, be aware of <>. * When you are looking for a quick challenge you could <>. === Pick one of the items from the Ideas page The https://wiki.freebsd.org/IdeasPage[FreeBSD list of projects and ideas for volunteers] is also available for people willing to contribute to the FreeBSD project. The list is being regularly updated and contains items for both programmers and non-programmers with information about each project. [[contrib-how]] == How to Contribute Contributions to the system generally fall into one or more of the following 5 categories: [[contrib-general]] === Bug Reports and General Commentary An idea or suggestion of _general_ technical interest should be mailed to the {freebsd-hackers}. Likewise, people with an interest in such things (and a tolerance for a _high_ volume of mail!) may subscribe to the {freebsd-hackers}. See extref:{handbook}[The FreeBSD Handbook, eresources-mail] for more information about this and other mailing lists. If you find a bug or are submitting a specific change, please report it using the https://bugs.FreeBSD.org/submit/[bug submission form]. Try to fill-in each field of the bug report. Unless they exceed 65KB, include any patches directly in the report. If the patch is suitable to be applied to the source tree put `[PATCH]` in the synopsis of the report. When including patches, _do not_ use cut-and-paste because cut-and-paste turns tabs into spaces and makes them unusable. When patches are a lot larger than 20KB, consider compressing them (eg. with man:gzip[1] or man:bzip2[1]) prior to uploading them. After filing a report, you should receive confirmation along with a tracking number. Keep this tracking number so that you can update us with details about the problem. See also extref:{problem-reports}[this article] on how to write good problem reports. === Changes to the Documentation Changes to the documentation are overseen by the {freebsd-doc}. Please look at the extref:{fdp-primer}[FreeBSD Documentation Project Primer] for complete instructions. Send submissions and changes (even small ones are welcome!) using the same method as any other bug report. === Changes to Existing Source Code An addition or change to the existing source code is a somewhat trickier affair and depends a lot on how far out of date you are with the current state of FreeBSD development. There is a special on-going release of FreeBSD known as "FreeBSD-CURRENT" which is made available in a variety of ways for the convenience of developers working actively on the system. See extref:{handbook}[The FreeBSD Handbook, current-stable] for more information about getting and using FreeBSD-CURRENT. Working from older sources unfortunately means that your changes may sometimes be too obsolete or too divergent for easy re-integration into FreeBSD. Chances of this can be minimized somewhat by subscribing to the {freebsd-announce} and the {freebsd-current} lists, where discussions on the current state of the system take place. Assuming that you can manage to secure fairly up-to-date sources to base your changes on, the next step is to produce a set of diffs to send to the FreeBSD maintainers. This is done with the man:diff[1] command. The preferred man:diff[1] format for submitting patches is the unified output format generated by `diff -u`. [source,shell] .... % diff -u oldfile newfile .... or [source,shell] .... % diff -u -r -N olddir newdir .... would generate a set of unified diffs for the given source file or directory hierarchy. See man:diff[1] for more information. Once you have a set of diffs (which you may test with the man:patch[1] command), you should submit them for inclusion with FreeBSD as a bug report. _Do not_ just send the diffs to the {freebsd-hackers} or they will get lost! We greatly appreciate your submission (this is a volunteer project!); because we are busy, we may not be able to address it immediately, but it will remain in the PR database until we do. Indicate your submission by including `[PATCH]` in the synopsis of the report. If you feel it appropriate (e.g. you have added, deleted, or renamed files), bundle your changes into a `tar` file. Archives created with man:shar[1] are also welcome. If your change is of a potentially sensitive nature, such as if you are unsure of copyright issues governing its further distribution then you should send it to {core-email} directly rather than submitting as a bug report. The {core-email} reaches a much smaller group of people who do much of the day-to-day work on FreeBSD. Note that this group is also _very busy_ and so you should only send mail to them where it is truly necessary. Please refer to man:intro[9] and man:style[9] for some information on coding style. We would appreciate it if you were at least aware of this information before submitting code. === New Code or Major Value-Added Packages In the case of a significant contribution of a large body work, or the addition of an important new feature to FreeBSD, it becomes almost always necessary to either send changes as tar files or upload them to a web or FTP site for other people to access. If you do not have access to a web or FTP site, ask on an appropriate FreeBSD mailing list for someone to host the changes for you. When working with large amounts of code, the touchy subject of copyrights also invariably comes up. FreeBSD prefers free software licenses such as BSD or ISC. Copyleft licenses such as GPLv2 are sometimes permitted. The complete listing can be found on the link:https://www.FreeBSD.org/internal/software-license/[core team licensing policy] page. === Money or Hardware We are always very happy to accept donations to further the cause of the FreeBSD Project and, in a volunteer effort like ours, a little can go a long way! Donations of hardware are also very important to expanding our list of supported peripherals since we generally lack the funds to buy such items ourselves. [[donations]] ==== Donating Funds The https://www.freebsdfoundation.org[FreeBSD Foundation] is a non-profit, tax-exempt foundation established to further the goals of the FreeBSD Project. As a 501(c)3 entity, the Foundation is generally exempt from US federal income tax as well as Colorado State income tax. Donations to a tax-exempt entity are often deductible from taxable federal income. Donations may be sent in check form to: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** The FreeBSD Foundation is also able to accept https://www.freebsdfoundation.org/donate/[online donations] through various payment options. More information about the FreeBSD Foundation can be found in https://people.FreeBSD.org/~jdp/foundation/announcement.html[The FreeBSD Foundation -- an Introduction]. To contact the Foundation by email, write to mailto:info@FreeBSDFoundation.org[info@FreeBSDFoundation.org]. ==== Donating Hardware The FreeBSD Project happily accepts donations of hardware that it can find good use for. If you are interested in donating hardware, please contact the link:https://www.FreeBSD.org/donations/[Donations Liaison Office]. [[ports-contributing]] == Contributing to ports [[adopt-port]] === Adopting an unmaintained port ==== Choosing an unmaintained port Taking over maintainership of ports that are unmaintained is a great way to get involved. Unmaintained ports are only updated and fixed when somebody volunteers to work on them. There are a large number of unmaintained ports. It is a good idea to start with adopting a port that you use regularly. Unmaintained ports have their `MAINTAINER` set to `ports@FreeBSD.org`. A list of unmaintained ports and their current errors and problem reports can be seen at the http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org[FreeBSD Ports Monitoring System]. On https://portsfallout.com/fallout?port=&maintainer=ports%40FreeBSD.org[PortsFallout] can be seen a list of unmaintained ports with errors. Many unmaintained ports can have pending updates, this can be seen at the https://portscout.freebsd.org/ports@freebsd.org.html[FreeBSD Ports distfile scanner]. Some ports affect a large number of others due to dependencies and slave port relationships. Generally, we want people to have some experience before they maintain such ports. You can find out whether or not a port has dependencies or slave ports by looking at a master index of ports called [.filename]#INDEX#. (The name of the file varies by release of FreeBSD; for instance, [.filename]#INDEX-8#.) Some ports have conditional dependencies that are not included in a default [.filename]#INDEX# build. We expect you to be able to recognize such ports by looking through other ports' [.filename]#Makefile#'s. [NOTE] ====== The FreeBSD Ports Monitoring System (portsmon) is currently not working due to latest Python updates. ====== ==== How to adopt the port First make sure you understand your <>. Also read the extref:{porters-handbook}[Porter's Handbook]. _Please do not commit yourself to more than you feel you can comfortably handle._ You may request maintainership of any unmaintained port as soon as you wish. Simply set `MAINTAINER` to your own email address and send a PR (Problem Report) with the change. If the port has build errors or needs updating, you may wish to include any other changes in the same PR. This will help because many committers are less willing to assign maintainership to someone who does not have a known track record with FreeBSD. Submitting PRs that fix build errors or update ports are the best ways to establish one. File your PR with category `ports` and class `change-request`. A committer will examine your PR, commit the changes, and finally close the PR. Sometimes this process can take a little while (committers are volunteers, too :). [[maintain-port]] === The challenge for port maintainers This section will give you an idea of why ports need to be maintained and outline the responsibilities of a port maintainer. [[why-maintenance]] ==== Why ports require maintenance Creating a port is a once-off task. Ensuring that a port is up to date and continues to build and run requires an ongoing maintenance effort. Maintainers are the people who dedicate some of their time to meeting these goals. The foremost reason ports need maintenance is to bring the latest and greatest in third party software to the FreeBSD community. An additional challenge is to keep individual ports working within the Ports Collection framework as it evolves. As a maintainer, you will need to manage the following challenges: * *New software versions and updates.* New versions and updates of existing ported software become available all the time, and these need to be incorporated into the Ports Collection in order to provide up-to-date software. * *Changes to dependencies.* If significant changes are made to the dependencies of your port, it may need to be updated so that it will continue to work correctly. * *Changes affecting dependent ports.* If other ports depend on a port that you maintain, changes to your port may require coordination with other maintainers. * *Interaction with other users, maintainers and developers.* Part of being a maintainer is taking on a support role. You are not expected to provide general support (but we welcome it if you choose to do so). What you should provide is a point of coordination for FreeBSD-specific issues regarding your ports. * *Bug hunting.* A port may be affected by bugs which are specific to FreeBSD. You will need to investigate, find, and fix these bugs when they are reported. Thoroughly testing a port to identify problems before they make their way into the Ports Collection is even better. * *Changes to ports infrastructure and policy.* Occasionally the systems that are used to build ports and packages are updated or a new recommendation affecting the infrastructure is made. You should be aware of these changes in case your ports are affected and require updating. * *Changes to the base system.* FreeBSD is under constant development. Changes to software, libraries, the kernel or even policy changes can cause flow-on change requirements to ports. ==== Maintainer responsibilities ===== Keep your ports up to date This section outlines the process to follow to keep your ports up to date. This is an overview. More information about upgrading a port is available in the extref:{porters-handbook}[Porter's Handbook]. [.procedure] ==== . Watch for updates + Monitor the upstream vendor for new versions, updates and security fixes for the software. Announcement mailing lists or news web pages are useful for doing this. Sometimes users will contact you and ask when your port will be updated. If you are busy with other things or for any reason just cannot update it at the moment, ask if they will help you by submitting an update. + You may also receive automated email from the `FreeBSD Ports Version Check` informing you that a newer version of your port's distfile is available. More information about that system (including how to stop future emails) will be provided in the message. . Incorporate changes + When they become available, incorporate the changes into the port. You need to be able to generate a patch between the original port and your updated port. . Review and test + Thoroughly review and test your changes: ** Build, install and test your port on as many platforms and architectures as you can. It is common for a port to work on one branch or platform and fail on another. ** Make sure your port's dependencies are complete. The recommended way of doing this is by installing your own ports tinderbox. See <> for more information. ** Check that the packing list is up to date. This involves adding in any new files and directories and removing unused entries. ** Verify your port using man:portlint[1] as a guide. See <> for important information about using portlint. ** Consider whether changes to your port might cause any other ports to break. If this is the case, coordinate the changes with the maintainers of those ports. This is especially important if your update changes the shared library version; in this case, at the very least, the dependent ports will need to get a `PORTREVISION` bump so that they will automatically be upgraded by automated tools such as portmaster or man:portupgrade[1]. . Submit changes + Send your update by submitting a PR with an explanation of the changes and a patch containing the differences between the original port and the updated one. Please refer to extref:{problem-reports}[Writing FreeBSD Problem Reports] for information on how to write a really good PR. + [NOTE] ====== Please do not submit a man:shar[1] archive of the entire port; instead, use man:git-format-patch[1] or man:diff[1] `-ruN`. In this way, committers can much more easily see exactly what changes are being made. The Porter's Handbook section on extref:{porters-handbook}[Upgrading, port-upgrading] has more information. ====== . Wait + At some stage a committer will deal with your PR. It may take minutes, or it may take one or two weeks - so please be patient. If it takes any longer, please seek for help on mailing lists ({freebsd-ports}), IRC: #bsdports on EFNet or #freebsd-ports on Libera for example. . Give feedback + If a committer finds a problem with your changes, they will most likely refer it back to you. A prompt response will help get your PR committed faster, and is better for maintaining a thread of conversation when trying to resolve any problems. . And Finally + Your changes will be committed and your port will have been updated. The PR will then be closed by the committer. That's it! ==== ===== Ensure your ports continue to build correctly This section is about discovering and fixing problems that stop your ports from building correctly. FreeBSD only guarantees that the Ports Collection works on the `-STABLE` branches. In theory, you should be able to get by with running the latest release of each stable branch (since the ABIs are not supposed to change) but if you can run the branch, that is even better. Since the majority of FreeBSD installations run on PC-compatible machines (what is termed the `i386` architecture), we expect you to keep the port working on that architecture. We prefer that ports also work on the `amd64` architecture running native. It is completely fair to ask for help if you do not have one of these machines. [NOTE] ==== The usual failure modes for non-`x86` machines are that the original programmers assumed that, for instance, pointers are `int`-s, or that a relatively lax older gcc compiler was being used. More and more, application authors are reworking their code to remove these assumptions - but if the author is not actively maintaining their code, you may need to do this yourself. ==== These are the tasks you need to perform to ensure your port is able to be built: [.procedure] ==== . Watch for build failures + Check your mail for mail from `pkg-fallout@FreeBSD.org` and the http://portscout.FreeBSD.org[distfiles scanner] to see if any of the port which are failing to build are out of date. . Collect information + Once you are aware of a problem, collect information to help you fix it. Build errors reported by `pkg-fallout` are accompanied by logs which will show you where the build failed. If the failure was reported to you by a user, ask them to send you information which may help in diagnosing the problem, such as: ** Build logs ** The commands and options used to build the port (including options set in [.filename]#/etc/make.conf#) ** A list of packages installed on their system as shown by man:pkg-info[8] ** The version of FreeBSD they are running as shown by man:uname[1] `-a` ** When their ports collection was last updated ** When their ports tree and [.filename]#INDEX# was last updated . Investigate and find a solution + Unfortunately there is no straightforward process to follow to do this. Remember, though: if you are stuck, ask for help! The {freebsd-ports} is a good place to start, and the upstream developers are often very helpful. . Submit changes + Just as with updating a port, you should now incorporate changes, review and test, submit your changes in a PR, and provide feedback if required. . Send patches to upstream authors + In some cases, you will have to make patches to the port to make it run on FreeBSD. Some (but not all) upstream authors will accept such patches back into their code for the next release. If so, this may even help their users on other BSD-based systems as well and perhaps save duplicated effort. Please consider sending any applicable patches to the authors as a courtesy. ==== ===== Investigate bug reports and PRs related to your port This section is about discovering and fixing bugs. FreeBSD-specific bugs are generally caused by assumptions about the build and runtime environments that do not apply to FreeBSD. You are less likely to encounter a problem of this type, but it can be more subtle and difficult to diagnose. These are the tasks you need to perform to ensure your port continues to work as intended: [.procedure] ==== . Respond to bug reports + Bugs may be reported to you through email via the https://bugs.FreeBSD.org/search/[Problem Report database]. Bugs may also be reported directly to you by users. + You should respond to PRs and other reports within 14 days, but please try not to take that long. Try to respond as soon as possible, even if it is just to say you need some more time before you can work on the PR. + If you have not responded after 14 days, any committer may commit from a PR that you have not responded to via a `maintainer-timeout`. . Collect information + If the person reporting the bug has not also provided a fix, you need to collect the information that will allow you to generate one. + If the bug is reproducible, you can collect most of the required information yourself. If not, ask the person who reported the bug to collect the information for you, such as: ** A detailed description of their actions, expected program behavior and actual behavior ** Copies of input data used to trigger the bug ** Information about their build and execution environment - for example, a list of installed packages and the output of man:env[1] ** Core dumps ** Stack traces . Eliminate incorrect reports + Some bug reports may be incorrect. For example, the user may have simply misused the program; or their installed packages may be out of date and require updating. Sometimes a reported bug is not specific to FreeBSD. In this case report the bug to the upstream developers. If the bug is within your capabilities to fix, you can also patch the port so that the fix is applied before the next upstream release. . Find a solution + As with build errors, you will need to sort out a fix to the problem. Again, remember to ask if you are stuck! . Submit or approve changes + Just as with updating a port, you should now incorporate changes, review and test, and submit your changes in a PR (or send a follow-up if a PR already exists for the problem). If another user has submitted changes in the PR, you can also send a follow-up saying whether or not you approve the changes. ==== ===== Providing support Part of being a maintainer is providing support - not for the software in general - but for the port and any FreeBSD-specific quirks and problems. Users may contact you with questions, suggestions, problems and patches. Most of the time their correspondence will be specific to FreeBSD. Occasionally you may have to invoke your skills in diplomacy, and kindly point users seeking general support to the appropriate resources. Less frequently you will encounter a person asking why the `RPMS` are not up to date or how can they get the software to run under Foo Linux. Take the opportunity to tell them that your port is up to date (if it is, of course!), and suggest that they try FreeBSD. Sometimes users and developers will decide that you are a busy person whose time is valuable and do some of the work for you. For example, they might: * submit a PR or send you patches to update your port, * investigate and perhaps provide a fix to a PR, or * otherwise submit changes to your port. In these cases your main obligation is to respond in a timely manner. Again, the timeout for non-responsive maintainers is 14 days. After this period changes may be committed unapproved. They have taken the trouble to do this for you; so please try to at least respond promptly. Then review, approve, modify or discuss their changes with them as soon as possible. If you can make them feel that their contribution is appreciated (and it should be) you will have a better chance persuading them to do more things for you in the future :-). [[fix-broken]] === Finding and fixing a broken port There are some really good places to find a port that needs some attention. You can use the https://bugs.freebsd.org/search[web interface] to the Problem Report database to search through and view unresolved PRs. The majority of ports PRs are updates, but with a little searching and skimming over synopses you should be able to find something interesting to work on (the `sw-bug` class is a good place to start). The other place is the http://portsmon.FreeBSD.org/[FreeBSD Ports Monitoring System]. In particular look for unmaintained ports with build errors and ports that are marked `BROKEN`. https://portsfallout.com/[PortsFallout] shows port issues gathered from the FreeBSD package building. It is OK to send changes for a maintained port as well, but remember to ask the maintainer in case they are already working on the problem. Once you have found a bug or problem, collect information, investigate and fix! If there is an existing PR, follow up to that. Otherwise create a new PR. Your changes will be reviewed and, if everything checks out, committed. [NOTE] ====== The FreeBSD Ports Monitoring System (portsmon) is currently not working due to latest Python updates. ====== [[mortal-coil]] === When to call it quits As your interests and commitments change, you may find that you no longer have time to continue some (or all) of your ports contributions. That is fine! Please let us know if you are no longer using a port or have otherwise lost time or interest in being a maintainer. In this way we can go ahead and allow other people to try to work on existing problems with the port without waiting for your response. Remember, FreeBSD is a volunteer project, so if maintaining a port is no fun any more, it is probably time to let someone else do it! In any case, the Ports Management Team (`portmgr`) reserves the right to reset your maintainership if you have not actively maintained your port in some time. (Currently, this is set to 3 months.) By this, we mean that there are unresolved problems or pending updates that have not been worked on during that time. [[resources]] === Resources for ports maintainers and contributors The extref:{porters-handbook}[Porter's Handbook] is your hitchhiker's guide to the ports system. Keep it handy! extref:{problem-reports}[Writing FreeBSD Problem Reports] describes how to best formulate and submit a PR. In 2005 more than eleven thousand ports PRs were submitted! Following this article will greatly assist us in reducing the time needed to handle your PRs. The https://bugs.freebsd.org/bugzilla/query.cgi[Problem Report database]. The http://portsmon.FreeBSD.org/[FreeBSD Ports Monitoring System (portsmon)] can show you cross-referenced information about ports such as build errors and problem reports. If you are a maintainer you can use it to check on the build status of your ports. As a contributor you can use it to find broken and unmaintained ports that need to be fixed. The http://portscout.FreeBSD.org[FreeBSD Ports distfile scanner (portscout)] can show you ports for which the distfiles are not fetchable. You can check on your own ports or use it to find ports that need their `MASTER_SITES` updated. package:ports-mgmt/poudriere[] is the most thorough way to test a port through the entire cycle of installation, packaging, and deinstallation. Documentation is located at the https://github.com/freebsd/poudriere[poudriere github repository] man:portlint[1] is an application which can be used to verify that your port conforms to many important stylistic and functional guidelines. portlint is a simple heuristic application, so you should use it __only as a guide__. If portlint suggests changes which seem unreasonable, consult the extref:{porters-handbook}[Porter's Handbook] or ask for advice. The {freebsd-ports} is for general ports-related discussion. It is a good place to ask for help. You can link:https://lists.freebsd.org/[subscribe, or read and search the list archives]. Reading the archives of the {freebsd-ports-bugs} and the {svn-ports-head} may also be of interest. https://portsfallout.com/[PortsFallout] is a place to help in searching for the https://lists.freebsd.org/archives/freebsd-pkg-fallout/[FreeBSD package-fallout archive]. [[ideas-contributing]] == Getting Started in Other Areas Looking for something interesting to get started that is not mentioned elsewhere in this article? The FreeBSD Project has several Wiki pages containing areas within which new contributors can get ideas on how to get started. The https://wiki.freebsd.org/JuniorJobs[Junior Jobs] page has a list of projects that might be of interest to people just getting started in FreeBSD, and want to work on interesting things to get their feet wet. The https://wiki.freebsd.org/IdeasPage[Ideas Page] contains various "nice to have" or "interesting" things to work on in the Project. diff --git a/documentation/content/es/articles/contributing/_index.adoc b/documentation/content/es/articles/contributing/_index.adoc index 5621b9739a..34eea2edf2 100644 --- a/documentation/content/es/articles/contributing/_index.adoc +++ b/documentation/content/es/articles/contributing/_index.adoc @@ -1,442 +1,442 @@ --- title: Contribuir a FreeBSD authors: - author: Jordan Hubbard - author: Sam Lawrance - author: Mark Linimon trademarks: ["freebsd", "ieee", "general"] --- = Contribuir a FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Resumen Este artículo describe las diferentes formas en que una persona u organización puede contribuir al proyecto FreeBSD. ''' toc::[] ¿Así que quiere contribuir a FreeBSD? ¡Genial! FreeBSD _depende_ de las contribuciones de su base de usuarios para sobrevivir. Sus contribuciones no solo son gratamente apreciadas, son vitales para que FreeBSD continúe creciendo. El grupo de desarrolladores de FreeBSD lo componen un grupo grande y siempre creciente de gente de todas partes del mundo, de edades y áreas de experiencia técnica muy diversas. Siempre hay más trabajo pendiente que manos disponibles y siempre se agradece ayuda adicional. El único límite que ponemos a los voluntarios es el que su disponibilidad misma dicte. Por otra parte le pedimos que esté al tanto de lo que otros miembros de la comunidad de FreeBSD esperan de usted. Tener esto en cuenta es importante antes de decidir ser voluntario. El proyecto FreeBSD es responsable de mantener un sistema operativo completo, en lugar de un solo kernel o unas pocas utilidades sueltas. Por lo tanto nuestra lista de tareas pendientes [.filename]#TODO# incluye una gran variedad de tareas: desde la documentación, realización de pruebas en las versiones beta, hasta el desarrollo del instalador del sistema y tareas de desarrollo del kernel altamente especializadas. Todo el mundo puede ayudar, independientemente del nivel nivel de habilidad, en un área u otra del proyecto. Invitamos a las empresas que tengan proyectos relacionados con FreeBSD a que se pongan en contacto con nosotros. ¿Necesitan de un desarrollo concreto para hacer que su producto funcione? Estaremos encantados de escuchar sus peticiones, siempre y cuando que no sean demasiado raras. ¿Está trabajando en un producto de alto valor añadido? ¡Por favor, háganoslo saber! Podemos trabajar conjuntamente en algunos aspectos del mismo. El mundo del software libre está desafiando muchas de las suposiciones existentes sobre cómo se desarrolla, vende y mantiene el software y le instamos encarecidamente a que al menos considere seriamente su uso. [[contrib-what]] == Qué se necesita La lista de tareas y subproyectos que se muestra a continuación es una amalgama de varias listas de [.filename]#TODO# y solicitudes de los usuarios. [[non-programmer-tasks]] === Tareas en curso para personas que no son programadores Muchas de las personas que están involucradas en FreeBSD no son programadores. El proyecto incluye a escritores de documentación, diseñadores web y personas que dan soporte. Todo lo que estas personas necesitan para contribuir es invertir tiempo y la voluntad de aprender. . Lea cada cierto tiempo las FAQ y el Handbook. Si algo está mal explicado, es ambiguo, está desactualizado o es incorrecto, avísenos. Aún mejor, envíenos una solución (Docbook no es difícil de aprender, pero no hay ningún problema si lo envía en ASCII). . Ayude a traducir la documentación de FreeBSD a su lengua materna. Si ya existe documentación en su idioma, puede ayudar a traducir otros documentos o comprobar si las traducciones están actualizadas y son correctas. Antes de nada, consulte las extref:{fdp-primer}[FAQ de las traducciones, translations] en el FreeBSD Documentation Project Primer. El hecho de traducir algo no implica la obligación de traducir todo; como voluntario, puede tanto o tan poco como desee. Una vez que alguien empieza a traducir, casi siempre se apunta alguien más. Si solo tiene tiempo o energía para traducir una parte de la documentación, por favor, traduzca las instrucciones de instalación. . Lea la http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions[lista de correo de preguntas generales de FreeBSD] de vez en cuando (o regularmente, si es posible). Puede ser muy satisfactorio compartir su experiencia y ayudar a las personas a resolver sus problemas ¡A veces incluso puede aprender algo nuevo! Estos foros también pueden ser una fuente de ideas de cosas que puede ser mejoradas. [[ongoing-programmer-tasks]] === Tareas en curso para personas que son programadores La mayoría de las tareas aquí expuestas requieren de una considerable cantidad de tiempo, o un conocimiento profundo del kernel de FreeBSD, o ambas cosas. Sin embargo, también hay muchas tareas útiles que son ideales para "hackers de fin de semana". . Si usa FreeBSD-CURRENT y tiene una buena conexión a Internet, existe una máquina en `current.FreeBSD.org` que genera una release completa una vez al día--de vez en cuando, intente instalar una de estas releases e informe de cualquier problema en el proceso. . Lea la http://lists.FreeBSD.org/mailman/listinfo/freebsd-bugs[lista de correo de informes de problemas de FreeBSD]. Puede encontrar algún problema sobre el que hacer un comentario constructivo o sobre el que probar parches. O quizás pueda solucionar uno de los problemas usted mismo. . Si sabe de alguna corrección que ha sido aplicada con éxito en -CURRENT y cuya solución no ha sido aplicada aun en -STABLE después de un período de tiempo razonable (normalmente, un par de semanas) envíe, de forma educada, un mensaje al committer responsable del cambio. . Mueva el software de terceros a [.filename]#src/contrib# en el árbol del código fuente. . Asegúrese de que el código de [.filename]#src/contrib# está actualizado. . Compile el árbol del código fuente (o solo una parte del mismo) con un nivel de depuración adicional habilitado y corrija los warnings. . Corrija los warnings en los ports que aún utilizan recursos obsoletos como `gets()` o que incluyan [.filename]#malloc.h#. . Si ha contribuido con algún port y tuvo que hacer cambios específicos para FreeBSD, envíe sus parches a los autores originales (esto les hará la vida más fácil cuando lancen la próxima versión). . Hágase con copias de estándares formales como POSIX(R). Compare el comportamiento de FreeBSD con el requerido por el estándar. Si el comportamiento difiere, particularmente en áreas sutiles u oscuras de la especificación, envíenos un PR al respecto. Si puede, averigüe cómo solucionarlo e incluya un parche en el PR. Si cree que el estándar es incorrecto, pídale al organismo de estándares que considere su propuesta. . ¡Sugiera nuevas tareas para esta lista! === Trabaje en la base de datos de PR La https://bugs.FreeBSD.org/search/[lista de PR de FreeBSD] muestra todos los informes de problemas activos y las solicitudes de mejora que los usuarios de FreeBSD han enviado. La base de datos de PR incluye tanto tareas para programadores como para no programadores. Eche un vistazo a los PR abiertos y mire si alguno de ellos le interesa. Algunos pueden ser tareas muy sencillas que solo necesitan una revisión adicional para confirmar que la solución adjunta al PR es la adecuada. Otros pueden ser mucho más complejos, o incluso no incluir una solución. Comience con los PRs que no han sido asignados a nadie. Si el PR ya ha sido asignado a otra persona, pero cree que puede ayudar, envíe un correo electrónico a la persona que lo tiene asignado y pregúntele si puede colaborar; quizás ya tenga un parche listo para pruebas, o ideas adicionales que proponer. === Tareas en curso relacionadas con la colección de ports La colección de ports es un trabajo que está siempre activo. Queremos ofrecer a nuestros usuarios un repositorio de software de terceros fácil de usar, actualizado y de gran calidad. Necesitamos que las personas den parte de su tiempo y esfuerzo para ayudarnos a lograr este objetivo. Cualquiera puede participar y hay muchas formas diferentes de hacerlo. Contribuir a la colección de ports es una forma excelente de "devolver" algo al proyecto. Si está buscando un trabajo para realizar de forma contínua o un desafío divertido para un día lluvioso estaríamos encantados de que nos ayude. Existen varias formas de ayudar a mantener la colección de ports actualizada y en buen funcionamiento: * Encuentre algún software interesante o útil y extref:{porters-handbook}[cree un port]. * Hay una gran cantidad de ports que no tienen un maintainer. Conviertase en un maintainer y <>. * Si ha creado o adoptado un port tenga en cuenta lo <>. * Si busca un desafío rápido, puede <>. === Escoja uno de los elementos de la página de ideas La https://wiki.freebsd.org/IdeasPage[lista de proyectos e ideas de FreeBSD para voluntarios] también está disponible para las personas que deseen contribuir al proyecto FreeBSD. Esta lista se actualiza regularmente y contiene elementos para programadores y no programadores, así como información sobre cada proyecto. [[contrib-how]] == Cómo colaborar Las contribuciones al sistema generalmente pueden catalogarse en las siguientes 5 categorías: [[contrib-general]] === Informes de errores y comentarios generales Una idea o sugerencia técnica de interés general debe enviarse a la http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers[lista de correo de discusiones técnicas de FreeBSD]. Del mismo modo, las personas interesadas en estas cosas (¡y una tolerancia para un _gran_ volumen de correo!) pueden subscribirse a la http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers[lista de correo de discusiones técnicas de FreeBSD]. Consulte el extref:{handbook}eresources[Handbook de FreeBSD, eresources-mail] para obtener más información sobre esta y otras listas de correo. Si encuentra un error o quiere enviar un cambio concreto puede informar sobre él utilizando el https://bugs.FreeBSD.org/submit/[formulario de envío de errores]. Trate de rellenar cada campo del informe. Incluya el parche directamente en el informe salvo que exceda los 65KB. Si el parche es adecuado para ser añadido al árbol del código fuente incluya `[PATCH]` en la sinopsis del informe. Cuando incluya parches no utilice copiar y pegar, porque copiar y pegar transforma las tabulaciones en espacios, haciendo el parche inútil. Cuando el parche exceda los 20KB por favor comprímalo (por ejemplo, con man:gzip[1] o man:bzip2[1]) antes de enviarlo. Tras rellenar el informe debería recibir un mensaje de confirmación junto con un número de seguimiento. Conserve este número de seguimiento para que pueda informarnos con nuevos detalles sobre el problema. Consulte también extref:{problem-reports}[este artículo] sobre cómo escribir buenos informes de problemas. === Cambios en la documentación Los cambios en la documentación son revisados por los miembros de http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc[la lista de correo del proyecto de documentación de FreeBSD]. Por favor, consulte el extref:{fdp-primer}[FreeBSD Documentation Project Primer] si quiere información detallada. Envíe contribuciones y cambios (¡incluso los más pequeños son bienvenidos!) utilizando el mismo método que cualquier otro informe de errores. === Cambios en el código fuente ya existente Añadir o modificar el código fuente existente es un tema delicado y depende en gran medida de lo obsoleto que esté el desarrollo actual de FreeBSD. Hay una release especial de FreeBSD conocida como "FreeBSD-CURRENT" que está disponible de varias formas para mayor comodidad de los desarrolladores que trabajan activamente en el sistema. Consulte el extref:{handbook}updating-upgrading[Handbook de FreeBSD, current-stable] para obtener más información sobre cómo obtener y usar FreeBSD-CURRENT. Por desgracia trabajar con código fuente antiguo significa que a veces sus cambios podrían resultar obsoletos o diferir demasiado para hacer una reintegración en FreeBSD. Esta posibilidad puede minimizarse suscribiéndose a la http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce[lista de anuncios de FreeBSD] y a la http://lists.FreeBSD.org/mailman/listinfo/freebsd-current[lista de correo FreeBSD-CURRENT], donde tienen lugar los debates sobre el estado actual del sistema. Suponiendo que pueda obtener acceso a una versión lo suficientemente actualizada del código fuente del sistema sobre el que realizar sus cambios, el siguiente paso es generar los diffs para enviar a los maintainers de FreeBSD. Esto se realiza con el comando man:diff[1]. El formato man:diff[1] recomendado para enviar parches es el formato de salida unificado generado por el comando `diff -u`. [source,shell] .... % diff -u fichero-antiguo fichero-nuevo .... o [source,shell] .... % diff -u -r -N directorio-antiguo directorio-nuevo .... debería generar un conjunto de diffs unificados para el archivo de origen o la jerarquía de directorios. Consulte el manual de man:diff[1] para obtener más información. Una vez que tenga el conjunto de diffs (que debería probar con el comando man:patch[1]), debe enviarlos para que sean incluídos en FreeBSD a través de un informe de error. ¡__No envíe__ los diffs a la http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers[lista de correo de discusiones técnicas de FreeBSD] o se perderán! Agradecemos inmensamente su colaboración (¡este es un proyecto voluntario!). Estamos muy ocupados por la gran carga de trabajo, por lo tanto, es posible que no podamos abordarlo de inmediato, pero permanecerán en la base de datos de PR hasta que lo hagamos. Etiquete sus envíos incluyendo `[PATCH]` en la sinopsis del informe. Si lo considera oportuno (por ejemplo si ha agregado, eliminado o renombrado archivos) empaquete sus cambios en un archivo `tar`. También aceptamos los archivos creados con man:shar[1]. Si sus cambios son delicados, por ejemplo, si no está seguro acerca de los problemas de derechos de autor que regirán su distribución en el futuro, envíelos directamente al Core Team mailto:core@FreeBSD.org[core@FreeBSD.org] en lugar de enviarlo como un informe de error. El Core Team mailto:core@FreeBSD.org[core@FreeBSD.org] es un grupo mucho más pequeño de gente que se encarga de muchas de las tareas diarias de administración del proyecto FreeBSD. Tenga en cuenta que este grupo también está _muy ocupado_ y, por lo tanto, solo debe enviarles correos cuando realmente sea necesario. Consulte los manuales de man:intro[9] y man:style[9] para obtener más información sobre el estilo de programación requerido. Agradeceríamos que tuviera esa información en cuenta antes de enviar el código. === Código nuevo o paquetes de gran valor añadido En el caso de una contribución significativa o de gran impacto, o si se trata de añadir una nueva característica importante a FreeBSD es necesario enviar los cambios comprimidos en un archivo tar o subirlos a un sitio web o FTP para que otras personas puedan acceder a ellos. Si no tiene acceso a un sitio web o FTP solicitelo en la lista de correo de FreeBSD más adecuada para que alguien busque un sitio para alojar los cambios. Cuando se trabaja con grandes cantidades de código, siempre surge el delicado tema del copyright. FreeBSD prefiere licencias de software libre como BSD o ISC. Las licencias de Copyleft como la GPLv2, a veces están permitidas. La lista completa se puede encontrar en la link:https://www.FreeBSD.org/internal/software-license/[página de policita de licencias del core team]. === Dinero o hardware Estamos encantados de aceptar donaciones económicas para ayudar a impulsar el proyecto FreeBSD y, como en cualquier proyecto mantenido por voluntarios, ¡un poco puede significar mucho! También son importantes las donaciones de hardware para poder ampliar nuestra lista de hardware soportado, ya que generalmente no podemos permitirnos comprar estos artículos nosotros mismos. [[donations]] ==== Donar dinero La FreeBSD Foundation es una fundación sin ánimo de lucro, libre de impuestos, creada para impulsar los objetivos del proyecto FreeBSD. Como entidad 501(c)3, la FreeBSD Foundation está exenta del impuesto federal de la renta de los EEUU así como del Estado de Colorado. Las donaciones a una entidad exenta de impuestos suelen ser deducibles (en los EEUU). Las donaciones pueden enviarse mediante cheque a: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** La FreeBSD Foundation también puede aceptar donaciones via web mediante PayPal. Para hacer una donación, visite la https://www.freebsdfoundation.org[página web]. de la FreeBSD Foundation. Puede encontrar más información sobre la FreeBSD Foundation en https://people.FreeBSD.org/~jdp/foundation/announcement.html[The FreeBSD Foundation -- an Introduction]. Para contactar con la FreeBSD Foundation por correo electrónico, escriba a mailto:info@FreeBSDFoundation.org[info@FreeBSDFoundation.org]. ==== Donar hardware El proyecto FreeBSD acepta encantado donaciones de hardware que le resulten útiles. Si desea donar componentes de hardware por favor póngase en contacto con la link:https://www.FreeBSD.org/donations/[Donations Liaison Office]. [[ports-contributing]] == Contribuyendo a la colección de ports [[adopt-port]] === Adoptar un port que no está mantenido ==== Elegir un port que no esté mantenido Asumir el mantenimiento de ports que no están matenidos es una forma excelente de involucrarse. Los ports que no están mantenidos solo se actualizan y arreglan cuando alguien se ofrece como voluntario para trabajar en ellos. Hay una gran cantidad de ports sin mantenimiento. Es una buena idea empezar adoptando un port que use de forma regular. Los ports que no están mantenidos tiene como `MAINTAINER` asignado `ports@FreeBSD.org`. Puede ver un listado de todos los ports sin mantenimiento, así como sus errores actuales e informes de problemas en el http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org[FreeBSD Ports Monitoring System]. Algunos ports afectan a muchos otros debido a las dependencias y las relaciones con los ports que dependan de ellos. En general, esperamos que las personas tengan algo de experiencia antes de ofrecerse voluntariamente para mantener dichos ports. Puede comprobar si un port tiene o no dependencias o si otros puertos depende de él consultando el índice maestro de ports, [.filename]#INDEX#. (El nombre del archivo varía según la versión de FreeBSD; por ejemplo, [.filename]#INDEX-8#) Algunos ports tienen dependencias condicionales que no están incluidas en la compilación predeterminada de [.filename]#INDEX#. Esperamos que pueda reconocer dichos ports analizando el archivo [.filename]#Makefile# de otros ports. ==== Cómo adoptar un port Primero, asegúrese de de comprender cuáles serán sus <>. Lea también el extref:{porters-handbook}[Handbook del Porter]. _Por favor, no se comprometa con más de lo que crea que puede manejar cómodamente._ Puede solicitar el mantenimiento de cualquier port que esté sin mantenimiento cuando lo desee. Simplemente configure el parámetro `MAINTAINER` con su propia dirección de correo electrónico y envíe un PR (informe de problemas) con el cambio. Si el port tiene errores de compilación o necesita actualizarse, es posible que desee aprovechar la oportunidad para incluir cualquier otro cambio que se requiera en ese mismo PR. Esto acelerará el proceso, ya que muchos committers no están dispuestos a asignar la responsabilidad del mantenimiento del port a alguien que no tenga un historial de trabajo con FreeBSD. La mejor forma de crear un historial de trabajo es enviando PRs corrigiendo errores de compilación o actualizando ports. Envíe su PR a la categoría `ports` y utilice la clase `change-request`. Un committer revisará su PR, commiteara los cambios y finalmente cerrará el PR. En algunas ocasiones, este proceso puede llevar cierto tiempo (los committers también son voluntarios :). [[maintain-port]] === El desafío para los maintainers de un port Esta sección le dará una visión general de por qué los ports deben mantenerse y describirá las responsabilidades de un maintainer de port. [[why-maintenance]] ==== Por qué los ports requieren mantenimiento Crear un port es una tarea que se realiza una vez. Pero asegurar que un port esté siempre actualizado y continúe compilandose y ejecutándose correctamente requiere de un esfuerzo de mantenimiento continuo. Los Maintainers son las personas que dedican parte de su tiempo a cumplir estos objetivos. La razón principal por la que los ports necesitan mantenimiento es para disponga de las versiones más actualizadas y mejor software de terceros a la comunidad de FreeBSD. Un desafío adicional es mantener los ports para que continuen funcionando dentro del framework de la colección de ports a medida que este evoluciona. Como maintainer deberá enfrentarse a los siguientes desafíos: * *Nuevas versiones y actualizaciones de software.* Las nuevas versiones y actualizaciones de software están disponibles todo el tiempo para las aplicaciones que ya han sido portadas, y deben incorporarse a la colección de ports para proporcionar un software actualizado. * *Cambios en las dependencias.* Si se realizan cambios significativos en las dependencias de su port es posible que deba actualizarlas para que continúe funcionando correctamente. * *Cambios que afectan a los ports que dependen de los suyos.* Si otros ports depende de un port que mantiene, los cambios en su port pueden requerir que se coordine con otros maintainers. * *Interacción con otros usuarios, maintainers y desarrolladores.* Parte de ser maintainer es asumir el rol de proporcionar soporte. No esperamos que de soporte a nivel general (pero aceptaremos gustosos si decide hacerlo). Lo que debe proporcionar es un punto de apoyo para los problemas específicos de FreeBSD que estén relacionados con sus ports. * *Caza de bugs.* Un port puede verse afectado por errores específicos de FreeBSD. Deberá investigar, encontrar y corregir estos errores cuando sean reportados. Es mucho mejor probar meticulosamente un port para identificar todos sus potenciales problemas antes de añadirlo a la colección de ports. * *Cambios en la infraestructura y política de ports.* Ocasionalmente, los sistemas que se utilizan para compilar los ports y paquetes se actualizan o se hace una nueva recomendación que afecta a la infraestructura. Debe tener en cuenta estos cambios en caso de que sus ports se vean afectados y requieran de una actualización. * *Cambios en el sistema base.* FreeBSD está en constante desarrollo. Los cambios en el software, en las bibliotecas, en el kernel o incluso los cambios en las políticas pueden hacer necesarios ciertos de cambios en los ports. ==== Responsabilidades del maintainer ===== Mantenga sus ports actualizados Esta sección describe el proceso a seguir para mantener sus ports actualizados. Esto es un resumen. Dispone de más información sobre la actualización de un port en el extref:{porters-handbook}[Handbook del Porter]. [.procedure] ==== . Esté atento a las actualizaciones + Monitorice el desarrollo para estar al tanto de nuevas versiones, actualizaciones y correcciones de seguridad. Las listas de correo de anuncios o las páginas web de noticias son útiles para este propósito. En ocasiones los usuarios se pondrán en contacto con usted para preguntarle cuándo se actualizará su port. Si está ocupado con otras cosas o simplemente no puede actualizarlo por alguna razón pregunte al usuario si puede ayudarlo enviándole una actualización. + También puede recibir un correo electrónico automatizado de `FreeBSD Ports Version Check` informándole que ya hay una nueva versión disponible del distfile de su port. En el mensaje se incluirá más información (incluido el cómo dejar de recibir los correos electrónicos en el futuro). . Incorporar cambios + Una vez que estén disponibles incorpore los cambios en el port. Es necesario generar un parche con las diferencias entre el port original y el port actualizado. . Revisar y probar + Revise y pruebe a fondo sus cambios: ** Compile, instale y pruebe su port en tantas plataformas y arquitecturas como pueda. Es común que un port funcione en una rama o plataforma y falle en otra. ** Asegúrese de que las dependencias de su port estén completas. La forma recomendada de hacerlo es instalando su propio tinderbox de ports. Tiene más información en la sección de <>. ** Compruebe que la lista de componentes del paquete esté actualizada. Esto implica añadir nuevos archivos y directorios, así como eliminar entradas no utilizadas. ** Compruebe su port utilizando man:portlint[1] como guía. Consulte los <> para obtener información importante sobre el uso de portlint. ** Tenga presente la posilidad de que los cambios en su port puedan causar que otros ports dejen de funcionar (se rompan). Si este es el caso coordine los cambios con los maintainers de esos ports. Esto cobra especial importancia si su actualización cambia la versión de la librería compartida; en este caso, como mínimo, los ports que dependan del suyo deberán aumentar de versión su `PORTREVISION` para que puedan actualizarse de forma automática con herramientas como portmaster o man:portupgrade[1]. . Enviar los cambios + Envíe su actualización enviando un PR con una explicación de los cambios y un parque que contenga las diferencias entre el port original y el actualizado. Consulte el artículo extref:{problem-reports}[Cómo enviar informes de problemas de FreeBSD] para obtener más información sobre como escribir un PR correctamente. + [NOTE] ====== No envíe un archivo man:shar[1] de todo el port; en su lugar, utilice el comando man:diff[1] `-ruN`. De esta forma, los committers pueden ver más fácilmente de forma exacta qué cambios se están están realizando. Consulte la sección de extref:{porters-handbook}[actualización, port-upgrading] del Handbook del Porter para más información. ====== . Esperar + Llegado el momento un committer se encargará de su PR. Esto puede llevar entre unos minutos y varias semanas, así que tenga paciencia. . Proporcione feedback + Si un committer encuentra algún problema en sus cambios lo más probable es que se los devuelva. Una respuesta rápida ayudará a que se haga más rápido el commit. Es muy importante mantener abierto el canal de comunicación para acelerar la resolución de cualquier problema. . Y para concluir + Se hará el commit con sus cambios y el port habrá sido actualizado. Después se cerrará el PR. ¡Eso es todo! ==== ===== Asegúrese de que sus ports continuan compilando correctamente. Esta sección trata sobre descubrir y solucionar problemas que impiden que sus ports se compilen correctamente. El proyecto FreeBSD solo garantiza que la colección de ports funcione en la rama `-STABLE`. En teoría debería poder ejecutarse la última versión de cada rama estable (ya que se espera que las ABIs no cambien) pero si funciona también en las demás ramas es aun mejor. Dado que la mayor parte de las instalaciones de FreeBSD se ejecutan en ordenadores comunes (arquitectura `i386`), esperamos que mantenga el port funcionando en esta arquitectura. También preferimos que los ports funcionen de forma nativa en la arquitectura `amd64`. No dude en pedir ayuda si no dispone de una de estas máquinas. [NOTE] ==== Los fallos habituales para ordenadores que no son `x86` se producen porque los programadores originales asumieron que, por ejemplo, los punteros son `int`s, o que se utilizaría una versión mas antigua del compilador gcc. Cada vez más, los autores de las aplicaciones están reescribiendo su código para eliminar estos fallos -- pero si el autor no mantiene activamente su código, es posible que deba hacerlo usted mismo. ==== Estas son las tareas que debe realizar para garantizar que su port pueda compilarse: [.procedure] ==== . Esté atento a los fallos en la compilación + Revise su correo y busque mensajes de `pkg-fallout@FreeBSD.org` y revise el http://portscout.FreeBSD.org[distfiles scanner] para ver si alguno de los ports que mantiene y que no se está compilando está desactualizado. . Recopile información + Cuando encuentre algún problema recopile información para ayudar a solucionarlo. Los errores de compilación reportados por `pkg-fallout` incluyen registros que le mostrarán dónde falló la compilación. Si un usuario le informó sobre el fallo pídale que le envíe información que pueda ayudar a identificar el problema, como por ejemplo: ** Logs de la compilación ** Los comandos y opciones utilizados para compilar el port (incluidas las opciones establecidas en [.filename]#/etc/make.conf#) ** Un listado de los paquetes instalados en su sistema, por ejemplo la salida del comando man:pkg-info[8] ** La versión de FreeBSD que está ejecutando, es decir, la salida del comando man:uname[1] `-a` ** Cuándo se actualizó por última vez su colección de ports ** Cuándo se actualizó por última vez su árbol de ports e [.filename]#INDEX# . Investigue y encuentre una solución + Lamentablemente no hay un proceso a seguir que sea sencillo. Sin embargo, recuerde que si está atascado puede pedir ayuda. La http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports[lista de correo de los ports de FreeBSD] es un buen sitio para encontrarla, así como los desarrolladores originales del programa. . Enviar los cambios + Al igual que con la actualización de un port, ahora debe incorporar los cambios, revisar, probar y enviar sus cambios en eun PR y proporcionar feedback si es necesario. . Enviar parches a los autores originales + En algunos casos necesitará aplicar parches un port para que se ejecute en FreeBSD. Algunos autores originales (aunque no todos) aceptarán incorporar dichos parches en su código en la próxima versión. Si lo hacen esto podría ayudar a los usuarios de otros sistemas BSD y tal vez evitar duplicar esfuerzos. Como cortesía, recomendamos enviar los parches de este tipo a los autores originales. ==== ===== Investigue los informes de errores y PRs relacionados con su port Esta sección trata sobre encontrar y corregir errores. Los errores específicos de FreeBSD son causados generalmente por suposiciones sobre los entornos de compilación y ejecución que no afectan a FreeBSD. Es poco probable que encuentre este tipo de problemas, pero pueden ser sutiles y difíciles de diagnosticar. Estas son las tareas que debe realizar para garantizar que su port continúe funcionando según lo previsto: [.procedure] ==== . Responda a los informes de errores + Los errores le pueden llegar por correo electrónico a través del https://bugs.FreeBSD.org/search/[sistema de informe de problemas]. Los usuarios también le pueden informar de los errores directamente. + Debe responder a los PRs y otros reportes en máximo 14 días, pero trate de no demorarse tanto. Intente responder lo antes posible, incluso si es solo para decir que necesita más tiempo antes de empezar a trabajar en el PR. + Si no ha respondido después de 14 días, cualquier committer puede realizar el commit de un PR al que no ha respondido utilizando la regla `maintainer-timeout`. . Recopile información + Si la persona que informó del error no ha proporcionado una solución es su obligación recopilar la suficiente información para proporcionar una. + Si puede reproducir el error podrá recoger la mayor parte de la información que necesita. Si esto no es posible solicite a la persona que reportó el error que le proporcione la siguiente información: ** Una descripción detallada de sus acciones, comportamiento esperado del programa y comportamiento real. ** Una copia de los datos de entrada que producen el error ** Información sobre su entorno de compilación y ejecución, por ejemplo, una lista de los paquetes instalados y la salida del comando man:env[1] ** Core dumps ** Stack traces . Eliminar informes incorrectos + Algunos informes de errores pueden ser incorrectos. Por ejemplo el usuario podría simplemente haber usado mal el programa, o los paquetes que tiene instalados pueden estar desactualizados y necesitan actualizarse. Algunas veces un error reportado no es específico de FreeBSD. En este caso informe del error a los desarrolladores originales del software. Si puede corregir el error también puede aplicar el parche al port para que se aplique antes de la próxima versión original. . Encontrar una solución + Al igual que sucede con los errores de compilación su tarea es encontrar una solución para el problema. Una vez más, tenga presente que si se atasca puede (y debe) pedir ayuda. . Enviar o aprobar cambios + Al igual que sucede con la actualización de un port debe incorporar los cambios, revisar, probar y enviar sus cambios en un PR (o hacer un seguimiento si ya existe un PR para el problema). Si otro usuario ha enviado cambios en el PR también puede enviar un seguimiento diciendo si aprueba o no los cambios. ==== ===== Proporcionar ayuda Parte de las funciones de un maintainer es proporcionar soporte, no para el software en general sino para el port y las peculiaridades y problemas específicos de FreeBSD. Los usuarios pueden contactarle con preguntas, sugerencias, problemas y parches. La mayoría de las veces serán para asuntos específicos de FreeBSD. Puede que ocasionalmente tenga que usar sus habilidades diplomáticas y dirigir amablemente a los usuarios que buscan asistencia técnica hacia los recursos apropiados. Alguna que otra vez se encontrará con que alguien le preguntará que por qué los `RPMs` no están actualizados o qué hay que hacer para ejecutar tal software en tal o cual distribución de Linux. Aproveche la oportunidad para decirle que su port está actualizado (si ese es el caso, claro). Y sugiérale que pruebe FreeBSD. A veces, los usuarios y desarrolladores decidirán que usted es una persona icupada cuyo tiempo es valioso y harán parte del trabajo por usted. Por ejemplo, podrían: * enviar un PR o enviarle parches para actualizar su port * investigar y tal vez proporcionar una solución a un PR o * incluso enviar cambios para su port. En estos casos su obligación principal es responder rápidamente. Una vez más, el tiempo de espera para los maintainers es de 14 días. Después de este período se puede realizar el commit sin aprobación. Se han tomado la molestia de hacerlo por usted, así que por lo menos intente responder lo más rápido posible. Hecho esto, revise, apruebe, modifique o discuta los cambios con ellos lo antes posible. Si puede hacerles saber que su contribución no cae en saco roto (y así debería ser) será posible que le ayuden en otras ocasiones más adelante :-). [[fix-broken]] === Encontrar y arreglar un port roto Hay dos lugares realmente buenos para encontrar un port que necesite atención. Puede usar la https://bugs.freebsd.org/search[interfaz web] de la base de datos de informes de problemas para buscar PRs que no están resueltos. La mayoría de los PRs relacionados con ports son actualizaciones, pero con un poco de investigación y hojeando las sinopsis debería encontrar algo interesante en lo que trabajar (la clase `sw-bug` es un buen lugar para empezar). El otro sitio es el http://portsmon.FreeBSD.org/[FreeBSD Ports Monitoring System]. En particular busque ports que no están mantenidos, con errores de compilación y marcados como `BROKEN`. Es totalmente correcto enviar cambios para un port que está mantenido, pero recuerde preguntar al maintainer para así saber si ya están trabajando en el problema. Una vez que haya encontrado un error o problema recopile información, investigue y arréglelo. Si ya existe un PR haga seguimiento del PR. Si no existe un PR créelo. Sus cambios serán revisados. Si son correctos serán aceptados y se hará el commit. [[mortal-coil]] === Cuándo dejarlo En cualquier caso el Ports Management Team (portmgr) se reserva el derecho a revocar su estatus de maintainer si no ha mantenido activamente su port durante un cierto periodo de tiempo. Actualmente este periodo se establece en 3 meses. Es decir, que transcurran tres meses durante los que haya problemas no resueltos o actualizaciones pendientes que no hayan sido abordadas en tiempo y forma. En cualquier caso, el Ports Management Team (`portmgr`) se reserva el derecho a revocar su estatus de maintainer si no ha mantenido activamente su port durante un cierto periodo de tiempo. (Actualmente, este periodo se establece en 3 meses). Con esto, queremos decir que haya problemas no resueltos o actualizaciones pendientes que no hayan sido abordadas durante este periodo. [[resources]] === Recursos para maintainers y colaboradores de los ports El extref:{porters-handbook}[Handbook del Porter] es su guía de referencia para el sistema de ports. ¡Tengala a mano! El artículo extref:{problem-reports}[Cómo enviar informes de problemas de FreeBSD] describe la mejor forma de formular y enviar un PR. ¡En 2005, se enviaron más de once mil PR relacionados con los ports! Seguir este artículo nos ayudará enormemente a reducir el tiempo necesario para lidiar con sus PRs. La https://bugs.freebsd.org/bugzilla/query.cgi[base de datos de informes de problemas]. El http://portsmon.FreeBSD.org/[FreeBSD Ports Monitoring System] puede mostrarle información con referencias cruzadas sobre los ports, como errores de compilación e informes de problemas. Si es un maintainer, puede usarlo para verificar el estado de la compilación de sus ports. Como colaborador, puede usarlo para encontrar ports rotos y sin mantenimiento que deban ser reparados. El http://portscout.FreeBSD.org[FreeBSD Ports distfile scanner] puede mostrarle los ports para los cuales los archivos distfiles no están disponibles. Puede usarlo para verificar sus propios ports o para encontrar ports que necesiten actualizar sus `MASTER_SITES`. package:print/ports-mgmt/poudriere[] es la forma más completa de probar un port a través de todo el ciclo de instalación, empaquetado y desinstalación. La documentación se encuentra en el repositorio de https://github.com/freebsd/poudriere[poudriere en github]. man:portlint[1] es una aplicación que permite verificar que su port cumple con muchas pautas importantes de estilo y funcionamiento. portlint es una aplicación heurística simple, por lo que __solo debe utilizarla como guía__. Si portlint sugiere cambios que parecen no tener sentido, consulte el extref:{porters-handbook}[Handbook del Porter] o pida consejo. La http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports[lista de correo de ports de FreeBSD] está destinada a discusiones generales relacionadas con los ports. Es un buen lugar para pedir ayuda. Puede https://lists.freebsd.org/mailman/listinfo[suscribirse, leer y buscar en los archivos historicos de la lista]. También puede ser de su interés leer los archivos de la http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-bugs[lista de correo de errores en los ports de FreeBSD] y los http://lists.FreeBSD.org/mailman/listinfo/svn-ports-head[mensajes de commit en el árbol del código fuente de los ports de la rama head/]. [[ideas-contributing]] == Empezar en otras áreas ¿Busca algo interesante para empezar que no haya sido mencionado en el artículo? El proyecto FreeBSD tiene varias páginas en la wiki que contienen áreas dentro de las cuales las nuevas personas que tengan interes en contribuir pueden obtener ideas sobre cómo empezar. La página https://wiki.freebsd.org/JuniorJobs[Junior Jobs] tiene una lista de proyectos que pueden ser de interés para las personas que acaban de empezar a usar FreeBSD y desean trabajar en cosas interesantes por primera vez. La https://wiki.freebsd.org/IdeasPage[Ideas Page] contiene propuestas sobre cosas que "sería bueno tener" o son "interesantes" para trabajar en el proyecto. diff --git a/documentation/content/fr/articles/contributing/_index.adoc b/documentation/content/fr/articles/contributing/_index.adoc index 61ae417b2a..5078f8564c 100644 --- a/documentation/content/fr/articles/contributing/_index.adoc +++ b/documentation/content/fr/articles/contributing/_index.adoc @@ -1,244 +1,244 @@ --- title: Collaborer à FreeBSD authors: - author: Jordan Hubbard trademarks: ["freebsd", "ieee", "general"] --- = Collaborer à FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Résumé Cet article décrit les différentes manières pour une personne individuelle ou une organisation de collaborer au projet FreeBSD. Version française de Marc Fonvieille ``. Première version de Tuyet Tram Dang Ngoc `` ''' toc::[] Alors, comme ça vous voulez collaborer à FreeBSD? C'est génial! FreeBSD _s'appuie_ sur les contributions de sa base d'utilisateurs pour survivre. Vos contributions ne sont pas seulement appréciées, elles sont vitales pour la constante progression de FreeBSD. Contrairement à ce que certains pourraient vous faire croire, vous n'avez pas besoin d'être un expert programmeur ou un ami proche de l'équipe principale de FreeBSD pour avoir vos contributions acceptées. Un grand nombre, toujours en augmentation, de collaborateurs à travers le monde, dont les âges et l'expertise technique sont très variables, développent FreeBSD. Il y a toujours plus de travail à faire que de personnes disponibles pour s'en occuper, et davantage d'aide est toujours appréciée. Le projet FreeBSD est responsable de tout l'environnement du système d'exploitation, et pas seulement d'un noyau ou de quelques utilitaires éparpillés. Ainsi, nos listes [.filename]#TODO# (à faire) s'étendent sur une large gamme de tâches: depuis la documentation, les béta-tests et la présentation, jusqu'à l'installateur système et des types de développement du noyau hautement spécialisés. Des personnes de n'importe quel niveau de compétence, dans presque tous les domaines, pourront sûrement aider le projet. Les entités commerciales engagées dans des entreprises relatives à FreeBSD sont également encouragées à nous contacter. Vous avez besoin d'une extension spéciale pour faire fonctionner votre produit? Vous nous trouverez réceptif à vos requêtes, du moment quelles ne sont pas trop exotiques. Vous travaillez sur un produit à valeur ajoutée? Faites-le nous savoir! Nous serons peut être en mesure de coopérer sur certains aspects. Le monde du logiciel libre va à l'encontre de nombreuses idées reçues sur la manière dont les logiciels sont développés, vendus, et maintenus, et nous vous invitons à lui donner au moins un second regard. [[contrib-what]] == Les besoins La liste suivante de tâches et de sous-projets représente une sorte d'amalgame des différentes listes [.filename]#TODO# et des demandes d'utilisateurs. [[non-programmer-tasks]] === Tâches de non-programmeur De nombreuses personnes impliquées dans FreeBSD ne sont pas des programmeurs. Le projet comprend des rédacteurs de documentation, des concepteurs de site web, et des personnes assurant le support. La contribution de ces personnes se matérialise sous la forme d'un investissement en temps et une volonté d'apprendre. . Lisez la FAQ et le Manuel régulièrement. Si quelque chose est mal expliquée, pas à jour ou tout simplement complètement faux, signalez-le nous. Mieux, envoyez nous un correctif (le SGML n'est pas difficile à apprendre, mais il n'y aucune objection à des soumissions en format ASCII). . Aidez à traduire la documentation FreeBSD dans votre langue. Si la documentation existe déjà dans votre langue, vous pouvez aider à traduire des documents supplémentaires ou contrôler que les traductions sont à jour. Consultez tout d'abord la extref:{fdp-primer}[FAQ sur les traductions] dans l'Introduction au Projet de Documentation de FreeBSD. Notez que vous ne vous engagez pas à traduire chacun des documents FreeBSD ce faisant - en tant que volontaire, vous pouvez faire autant que vous le désirez. Une fois que quelqu'un commence à traduire, presque toujours d'autres personnes rejoindront l'effort. Si vous n'avez le temps et l'énergie pour ne traduire qu'une partie de la documentation, traduisez les instructions d'installation. . Lisez la {freebsd-questions} et le news:comp.unix.bsd.freebsd.misc de temps en temps (ou même régulièrement). Il peut être très gratifiant de partager son expérience et d'aider les gens à résoudre leurs problèmes; parfois vous pourrez même apprendre quelque chose de nouveau! Ces forums peuvent être également une source d'idées sur ce qu'il faut améliorer. [[ongoing-programmer-tasks]] === Tâches de programmeur La plupart des tâches listées ici nécessitent soit un investissement considérable en temps, soit une connaissance en profondeur du noyau, ou les deux. Cependant, il y a également de nombreuses tâches utiles pour les "programmeurs occasionnels". . Si vous utilisez FreeBSD-CURRENT et que vous avez une bonne connexion Internet, il existe une machine `current.FreeBSD.org` qui compile une version complète une fois par jour-à chaque fois, essayez d'installer la dernière version et rapportez toutes les erreurs durant le processus. . Lisez la {freebsd-bugs}. Il peut y avoir un problème que vous pouvez commenter de manière constructive ou avec des correctifs que vous pouvez tester. Ou vous pourrez même tenter de corriger un de ces problèmes vous-même. . Si vous connaissez un correctif qui a été appliqué avec succès sur la branche -CURRENT mais qui n'a pas été intégré dans la branche -STABLE après un intervalle de temps raisonnable (normalement quelques semaines), envoyez au responsable un rappel poli. . Déplacer des contributions logiciels vers [.filename]#src/contrib# dans l'arborescence des sources. . Assurez vous que le code dans [.filename]#src/contrib# est à jour. . Compiler l'arbre des sources (ou une partie) avec tous les messages d'avertissements activés et corriger les avertissements. . Corriger les avertissements pour les logiciels portés qui font des choses obsolètes comme utiliser `gets()` ou inclure [.filename]#malloc.h#. . Si vous avez collaboré à un des logiciels portés, envoyez vos correctifs à leur auteur original (cela vous rendra la vie plus facile lors de la sortie de la prochaine version). . Récupérer des copies de normes précises comme POSIX(R). Vous pouvez trouver des liens sur ces normes sur le site du http://www.FreeBSD.org/projects/c99/[Projet FreeBSD de conformité aux normes C99 et POSIX]. Comparer le comportement de FreeBSD avec celui requis par la norme. Si le comportement diffère, en particulier pour des éléments subtiles et obscures de la spécification, envoyez un rapport de bogue à ce sujet. Si vous en êtes capable, déterminez comment le corriger et joignez un correctif à votre rapport de bogue. Si vous pensez que la norme est erronée, demandez à l'organisme de normalisation de considérer la question. . Suggérer d'autres tâches pour cette liste! === Travailler avec la base de données des rapports de bogue (PR) La http://www.FreeBSD.org/cgi/query-pr-summary.cgi[liste des PRs de FreeBSD] donne tous les rapports de problème actuellement actifs et les demandes d'amélioration qui ont été soumis par les utilisateurs de FreeBSD. La base de données des PRs comprend des tâches de programmeurs et de non-programmeurs. Consultez les PRs ouverts, et voyez s'il y a quelque chose qui peut vous intéresser. Certaines de ces tâches peuvent être des tâches très simples qui ne nécessitent qu'une paire d'yeux supplémentaire pour vérifier et confirmer que le correctif dans le PR est correct. D'autres peuvent être bien plus complexes, ou pourront même ne pas inclure de correctif du tout. Commencez avec des PRs qui n'ont pas été assignés à quelqu'un d'autre. Si le PR est assigné à quelqu'un d'autre, mais qu'il semble que c'est quelque chose dont vous pouvez vous charger, envoyez un courrier électronique à la personne en question et demandez si vous pouvez travailler dessus-elle pourra déjà avoir un correctif prêt à être testé, ou des idées supplémentaires sur lesquelles vous pourrez discuter. [[contrib-how]] == Comment participer Les contributions au système tombent généralement dans une ou plusieurs des 5 catégories suivantes: [[contrib-general]] === Rapport de bogue et commentaires généraux Une idée ou une suggestion d'intérêt technique _général_ devrait être envoyée à la {freebsd-hackers}. De même, les personnes intéressées par de telles choses (et qu'un _grand_ volume de courrier électronique ne dérange pas) devraient s'abonner à la {freebsd-hackers} en envoyant un courrier électronique à {majordomo}. Voir le extref:{handbook}eresources[Manuel FreeBSD, eresources-mail] pour plus d'information à ce propos et sur les autres listes de diffusion. Si vous trouvez un bogue ou que vous soumettez une modification spécifique, rapportez-le en utilisant le programme man:send-pr[1] ou son link:www.FreeBSD.org/fr/send-pr/[équivalent web]. Essayez de remplir chaque champ du rapport de bogue. A moins qu'ils ne dépassent 65KO, inclure tous les correctifs directement dans le rapport. Si le correctif peut être appliqué directement sur l'arbre des sources ajoutez `[PATCH]` dans le synopsis du rapport. Quand vous ajoutez des correctifs, _ne pas_ utiliser le copier-coller car ce dernier transforme les tabulations en espaces et rend les correctifs inutilisables. Pensez à compresser les correctifs et à utiliser man:uuencode[1] s'ils dépassent 20KO. Après avoir rempli un rapport, vous devriez recevoir une confirmation accompagnée d'un numéro de suivi. Conservez ce numéro de suivi afin que vous puissiez nous soumettre plus de détails au sujet du problème en envoyant un courrier électronique à mailto:FreeBSD-gnats-submit@FreeBSD.ORG[FreeBSD-gnats-submit@FreeBSD.ORG]. Utilisez le numéro comme sujet du message, e.g. `"Re: kern/3377"`. Toute information supplémentaire sur un rapport de bogue devrait être soumise de cette manière. Si vous ne recevez aucune confirmation dans un temps raisonnable (de 3 jours à une semaine, en fonction de votre connexion pour le courrier électronique) ou qu'il vous est, pour quelque raison que ce soit, impossible d'utiliser la commande man:send-pr[1], vous pouvez demander à quelqu'un de le faire pour vous en envoyant un courrier électronique à la {freebsd-bugs}. Voir aussi extref:{problem-reports}[cet article] sur comment écrire de bon rapports de bogue. === Modifications de la documentation Les modifications de la documentation sont supervisées par la {freebsd-doc}. Veuillez consulter l'extref:{fdp-primer}[Introduction au Projet de Documentation de FreeBSD] pour des instructions complètes. Envoyez les soumissions et les modifications (même les plus petites sont les bienvenues!) en utilisant la commande `send-pr` comme décrit dans <>. === Modifications dans le code source existant Un ajout ou une modification du code source existant est une toute autre affaire et dépend beaucoup de comment est à jour votre version par rapport à l'état courant du développement de FreeBSD. Il y a une version spéciale de FreeBSD, connue sous le nom de "FreeBSD-CURRENT" qui est disponible de diverses manières pour le confort des développeurs qui travaillent activement sur le système. Voir le extref:{handbook}updating-upgrading[Manuel FreeBSD, current-stable] pour plus d'informations sur la manière d'obtenir et d'utiliser FreeBSD-CURRENT. Travailler sur des sources plus anciennes signifie que malheureusement parfois vos modifications pourront être trop obsolètes ou trop divergentes pour permettre une réintégration aisée dans FreeBSD. On peut limiter ce type de changements en souscrivant à la {freebsd-announce} et la {freebsd-current}, où des discussions sur l'état courant du système ont lieu. En supposant que vous pouvez vous arranger pour avoir de manière sure des sources à jour comme base pour vos modifications, l'étape suivante est de produire un ensemble de diffs à envoyer à ceux qui sont chargés de maintenir FreeBSD. Cela est fait à l'aide de la commande man:diff[1]. Le format man:diff[1] préféré pour soumettre des correctifs est le format unifié généré par la commande `diff -u`. Cependant, pour des correctifs qui modifient sensiblement une partie du code, le format de contexte généré par `diff -c` peut s'avérer plus lisible et donc préférable. Par exemple: [source,shell] .... % diff -c oldfile newfile .... ou [source,shell] .... % diff -c -r olddir newdir .... générera un ensemble de "context diffs" pour un fichier source ou une hiérarchie de répertoires donnés. De même, [source,shell] .... % diff -u oldfile newfile .... ou [source,shell] .... % diff -u -r olddir newdir .... effectuera la même chose, mais dans le format unifié. Voir la page de manuel de man:diff[1] pour plus de détails. Une fois que vous avez un ensemble de diffs (que vous pouvez tester avec la commande man:patch[1]), vous devrez les soumettre pour qu'ils puissent être inclus dans FreeBSD. Utiliser le programme man:send-pr[1] comme décrit dans <>. _Ne pas_ simplement envoyez les diffs à la {freebsd-hackers} ou ils seront perdus! Nous apprécions énormément votre soumission (c'est un projet fait par des volontaires!), mais parce que nous sommes très occupés, nous ne pourrons pas les étudier immédiatement, mais cela restera dans la base de données des PRs jusqu'à ce que nous le fassions. Identifiez votre soumission en ajoutant `[PATCH]` dans le synopsis du rapport. Si cela vous semble approprié (e.g. vous avez ajouté, effacé ou renommé des fichiers), archivez vos modifications dans un fichier `tar` et lancez le programme man:uuencode[1] dessus. Les archives man:shar[1] sont aussi les bienvenues. Si votre modification est de nature potentiellement sensible, e.g. si vous n'êtes pas sûr des problèmes de copyright concernant sa distribution ou que vous n'êtes tout simplement pas prêt à le distribuer sans relecture attentive, alors vous devriez l'envoyer directement à la {core} plutôt que de le soumettre avec man:send-pr[1]. La liste de diffusion de l'équipe de base atteint un plus petit groupe de personnes qui réalise la plupart du travail quotidien de FreeBSD. Notez que ce groupe est aussi _très occupé_ et donc que vous ne devriez leur envoyez de courrier électronique que lorsque cela est vraiment nécessaire. Veuillez vous référer à man:intro[9]et man:style[9] pour plus d'informations sur la manière de coder. Nous apprécierons le fait que vous soyez au moins conscient de ces problèmes avant de soumettre du code. === Nouveau code source ou logiciel à valeur ajoutée importante Dans le cas d'une contribution importante, ou l'addition d'une importante fonctionnalité à FreeBSD, il devient presque nécessaire d'envoyer les modifications soit sous la forme d'archives tar uuencodées soit en les chargeant sur un site web ou FTP. Si vous n'avez pas accès à un site web ou FTP, demandez sur la liste de diffusion appropriée à ce que quelqu'un héberge ces modifications pour vous. Lorsque l'on travaille avec un grand volume de code, le sujet sensible des copyrights revient invariablement. Les copyrights acceptables pour le code inclus dans FreeBSD sont: . Le copyright BSD. Ce copyright est le plus apprécié de par son côté "sans attaches" et très attractif pour les entreprises commerciales. Loin de décourager un usage commercial, le projet FreeBSD encourage activement une telle participation avec intérêts commerciaux pour ceux qui pourraient être tentés par la suite d'investir quelque chose dans FreeBSD. . La Licence Publique Générale GNU, ou "GPL". Cette licence n'est pas aussi populaire chez nous à cause du volume d'efforts supplémentaires demandés à celui qui voudrait utiliser le code dans un but commercial, mais étant donné la quantité de code GPL dont nous avons actuellement besoin (compilateur, assembleur, formateur de texte, etc...) il serait absurde de refuser des contributions sous cette licence. Le code sous GPL va également dans une partie différente de l'arborescence, soit [.filename]#/sys/gnu# soit [.filename]#/usr/src/gnu#, et est de ce fait aisément identifiable par toute personne pour laquelle la licence GPL poserait un problème. Les contributions venant avec un autre type de copyright doivent être soigneusement vérifiées avant que leur intégration à FreeBSD ne soit prise en considération. Les contributions pour lesquelles des restrictions commerciales particulières s'appliquent sont généralement rejetées, bien que les auteurs sont toujours encouragés à rendre disponible de telles modifications par leurs propres moyens. Pour mettre un copyright de "style BSD" sur votre travail, inclure le texte suivant au tout début de chaque fichier de code source que vous voulez protéger, en remplaçant le texte entre les `%%` par l'information appropriée. [.programlisting] .... Copyright (c) %%proper_years_here%% %%your_name_here%%, %%your_state%% %%your_zip%%. 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 %%your_name_here%% ``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 %%your_name_here%% 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$ .... Pour votre convenance, une copie de ce texte peut être trouvée dans [.filename]#/usr/shared/examples/etc/bsd-style-copyright#. === Contribution financière, matérielle ou accès Internet Nous sommes toujours très heureux d'accepter des donations pour poursuivre la cause du projet FreeBSD, et dans un effort volontaire comme le notre, un rien peut faire du chemin! Les donations de matériel sont également très importantes pour augmenter notre liste de périphériques supportés puisque nous manquons généralement de fonds pour acheter de tels éléments nous-mêmes. [[donations]] ==== Donation de fonds La Fondation FreeBSD est une fondation à but non lucratif et exempte d'impôts fondée pour servir les objectifs du projet FreeBSD. En tant qu'entitée 501(c)3, la Fondation est généralement exempte de l'impôt fédéral des Etats Unis comme de l'impôt de l'état du Colorado. Les dons à une entitée exempte d'impôts sont souvent déductibles de l'impôt fédéral. Les dons sous forme de chèques peuvent être adressés à: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** La Fondation FreeBSD est désormais en mesure d'accepter les donations par l'intermédiaire du service web PayPal. Pour faire un don, veuillez visiter le http://www.freebsdfoundation.org[site web] de la Fondation. Plus d'informations au sujet de la Fondation FreeBSD peuvent être trouvés dans http://people.FreeBSD.org/~jdp/foundation/announcement.html[La Fondation FreeBSD -- une introduction]. Pour contacter la Fondation par courrier électronique, écrire à mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org]. ==== Contribution en matériel Le projet FreeBSD accepte avec joie les donations de matériel. Si vous êtes interessés pour nous faire un don de matériel, contactez le http://www.FreeBSD.org/donations/[Bureau de liaison des donations]. ==== Contribution d'accès Internet Nous pouvons toujours utiliser de nouveau sites miroirs pour les site FTP, WWW ou `cvsup`. Si vous voulez devenir un tel miroir, voyez le document extref:{hubs}[devenir un site mirroir FreeBSD] pour plus d'informations. diff --git a/documentation/content/ja/articles/contributing/_index.adoc b/documentation/content/ja/articles/contributing/_index.adoc index 25e397133d..b3abba36ca 100644 --- a/documentation/content/ja/articles/contributing/_index.adoc +++ b/documentation/content/ja/articles/contributing/_index.adoc @@ -1,191 +1,191 @@ --- title: FreeBSD への貢献 authors: - author: Hubbard Jordan [FAMILY Given] trademarks: ["freebsd", "ieee", "general"] --- = FreeBSD への貢献 :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] 概要 この文書は、個人や団体が FreeBSD プロジェクトに貢献するためのいくつかの方法について説明しています。 ''' toc::[] あなたも FreeBSD のために貢献したくなりましたか? 素晴らしい! FreeBSD は生き残るためにユーザベースの貢献に__頼っています__。 あなたの貢献は感謝されるだけではなく、FreeBSD が成長し続けるために極めて重要なものなのです! 一部の人達が発言しているのとは反対に、 貢献を受け付けてもらうために腕利きのプログラマーになるとか FreeBSD コアチームの人と親友になる必要はありません。 多くのそして益々増加する世界中の貢献者達が FreeBSD を開発しており、 彼らの年齢、専門技術分野は多岐に渡っています。 手の空いている人よりも成すべき仕事の方が多く、 お手伝いはいつでも歓迎されています。 FreeBSD プロジェクトはカーネルや散在しているユーティリティよりも、 オペレーティングシステム環境に対して責任を持っています。 私たちの [.filename]#TODO# リストには文書整備、ベータテスト、 インストーラや専門化されたタイプのカーネル開発の好例を紹介するなど非常に広い範囲の作業があります。 あなたの技能レベルや分野に関わらず、 プロジェクトを支援できることが必ず何かあります! FreeBSD 関連の事業に携わる商業団体が私たちにコンタクトすることも歓迎しています。 あなたの製品を (FreeBSD 上で) 動作させるには、 特別な拡張が必要ではありませんか? あまりにも風変わりな要求でなければ、 それを受け入れる用意が私たちにあるとわかるはずです。 付加価値のある製品ですか? 私たちに知らせてください! 多分私たちは、 ある面において共同して作業をすることができるでしょう。 フリーソフトウェア界は、 ソフトウェアがどのように開発され、 販売され、保守されていくかについて、既存の仮説に挑戦しています。 少なくとももう一度考慮してみることを私たちは強くお奨めします。 [[contrib-what]] == 何が必要? 次の課題とサブプロジェクトの一覧は、色々な [.filename]#TODO# リストとユーザからの要求を合わせたものです。 [[non-programmer-tasks]] === 進行中の非プログラマ向けの課題 FreeBSD に関わっている中には、プログラマではない人がたくさんいます。 プロジェクトには、文書を書く人、Web デザイナ、サポートを行う人がいます。 貢献するのに必要なのは、時間の投資と学ぶ意欲です。 . 定期的に FAQ とハンドブックを通して読んでみてください。 もしまずい説明や古い事柄や完全に間違っていることなどがあれば私達に教えてください。 さらに良いのは我々に修正案を送ることです (Docbook は学ぶのにそれほど難しくありませんが、 プレインテキストでも問題はありません)。 . FreeBSD の文書を自分の母国語に翻訳するのを手伝ってください。 文書がすでに存在すれば、もっと文書を翻訳したり、 その翻訳が最新の状態かどうか確認するのを手伝うことができます。 まず FreeBSD ドキュメンテーションプロジェクト入門の extref:{fdp-primer}[翻訳に関する FAQ (よくある質問とその答え), translations] を一読してください。 とはいっても、 そうすることによってあなたがすべての FreeBSD 文書の翻訳に携わるようになるわけではないですからね。 - ボランティアとして、 多少に関わらず、自分がやろうと思うだけやってください。 いったん誰かが翻訳を始めたら、 たくさんの人達がいつだって協力してくれますから。 もし翻訳に費す時間やエネルギーが限られているなら、 まずインストール方法の翻訳からお願いします (訳注: なぜなら、 もっとも必要とされている文書がそれだからです)。 . たまに (もしくは定期的に) {freebsd-questions} を読んでください。 これは、あなたの持っている専門知識を共有したり、 誰かが抱えている問題を解決するのに非常に有効なものになり得ることです。 時にはあなた自身で新しいことを学ぶことさえできるかもしれません。 これらのフォーラムはやるべきことのアイディアの源にもなり得るのです。 [[ongoing-programmer-tasks]] === 進行中のプログラマ向けの課題 このセクションで挙げる課題は膨大な時間の投資または FreeBSD のカーネルに関する深い知識、もしくは両方を必要とします。 しかしながら、"週末ハッカー" に適した立派な課題も数多くあります。 . FreeBSD-CURRENT を運用しており、 状態の良いインターネット接続があるならば、 `current.FreeBSD.org` という一日に一回フルリリースを行っているマシンがあります - 時おり最新のリリースをそこからインストールし、 その過程で何か問題があるなら報告してください。 . {freebsd-bugs} を読んでください。 そこではあなたが建設的なコメントを付けたりテストできるパッチが提供されているような問題があるかもしれません。 もしくはそれらの問題の一つをあなた自身で修正することさえできるかもしれません。 . -CURRENT に正しく当てられるがしばらく経っても (通常は 2, 3 週間) -STABLE に取り込まれてないようなバグフィックスがあるならばコミッターに丁寧に思い出させてください。 . 寄贈ソフトウェアをソースツリーの [.filename]#src/contrib# に移動させてください。 . [.filename]#src/contrib# 以下のコードが最新のものであるか確認してください。 . 警告を詳細に報告するようにしてソースツリー全体 (もしくはその一部) を構築してみてください。 そして警告が出ないようにしてください。 . ports で、`gets()` を使っているとか [.filename]#malloc.h# をインクルードしているなどといった警告が出ないようにしてください。 . もしなんらかの ports に関わっていて、 FreeBSD に固有の変更が必要であれば、 あなたのパッチを作者にフィードバックしてください (次のバージョンが出た時にあなたが楽になります)。 . POSIX(R) のような公式標準の写しを入手してください。 FreeBSD の挙動を標準が要求するものと比較してください。 挙動が異なる場合、 特にそれが仕様の取るに足らなかったり分かりにくい細かい部分なら、 障害報告を提出してください。できればどう修正すべきか明らかにして、 障害報告にパッチをつけてください。標準が間違っていると感じたら、 標準化団体にその疑問を糺してください。 . この一覧に追加する課題を提案してください! === 障害報告 (PR; Problem Report) データベースにおける作業 https://bugs.FreeBSD.org/search/[FreeBSD 障害報告一覧]では、現在問題となっている障害報告と、 FreeBSD の利用者によって提出された改良の要望すべての一覧を公開しています。 障害報告データベースには、 プログラマ向けと非プログラマ向けの課題が共に含まれています。 open 状態の障害報告を見て、興味を引くものがあるか確かめてください。 なかには、障害報告に対する修正が適切なものであるかどうか単にチェックするだけのとても簡単な作業もあるでしょうし、 ずっと複雑なものや、修正が含まれてすらいないものもあるでしょう。 まず、まだ誰にも割り当てられていない障害報告から作業を始めてください。 もし、誰か他の人に割り当てが決まっているけれども自分が作業可能だ、 という障害報告があれば、作業ができるかどうか、 割り当てられている人に電子メールで問い合わせてください。- 既にテスト用パッチが用意されているかもしれませんし、 より進んだ考えに関して議論ができるかもしれません。 === "アイディア"ページの項目 FreeBSD プロジェクトに貢献したい人のために http://wiki.freebsd.org/IdeasPage[ボランティアのための FreeBSD のプロジェクトとアイディア一覧] も用意されています。 この一覧は常に更新され続けており、それぞれのプロジェクトについて、 プログラマと非プログラマ両方に向けた項目があります。 [[contrib-how]] == 貢献の仕方 一般的に、システムへの貢献は次の 5 つのカテゴリの 1 つ以上に分類されます: [[contrib-general]] === バグ報告と一般的な論評 __一般的な__技術的関心事に関するアイデアや提案は {freebsd-hackers} へメールしてください。同様に、このような事柄に興味のある (そして__膨大な__メール! に耐えられる) 人は、 {freebsd-hackers} に参加すると良いでしょう。 このメーリングリストや他のメーリングリストに関する詳しい情報については extref:{handbook}eresources[FreeBSD ハンドブック, eresources-mail] を参照してください。 バグを発見したり変更を送付しようとしている場合は https://bugs.FreeBSD.org/submit/[障害報告提出フォーム] を使用して報告してください。 バグレポートの各項目を埋めるようにしてください。65KB を超えるのでなければ、 レポート中に直接パッチを入れてくださって結構です。 パッチがソースツリーにすぐ適用できるものならば、 報告の概要に `[PATCH]` と書いておいてください。 パッチを入れる場合、カット&ペーストは__しないで__ ください。 カット&ペーストではタブがスペースに展開されてパッチが使い物にならなくなってしまいます。 パッチが 20KB を超える場合は、アップロードをする前に、 それらを (man:gzip[1] や man:bzip2[1] で) 圧縮することを検討してください。 レポートがファイリングされれば、 バグ報告の確認とトラッキング番号をメールで受け取るはずです。 このトラッキング番号を覚えておき、 問題に関する詳細情報を更新できるようにしてください。 良い障害報告を書く方法については extref:{problem-reports}[この文書] をご覧ください。 === 文書の変更 文書の変更は {freebsd-doc} が監督しています。 完全な説明は、extref:{fdp-primer}[ドキュメンテーションプロジェクト入門] をご覧ください。 他の障害報告と同様の方法で、提案や変更 (どんな些細なものでも歓迎します!) を送ってください。 === 現存のソースコードの変更 現存のソースコードへの追加または変更は、 いくらかトリッキーな仕事であり、FreeBSD 開発の現状にあなたがどれだけ通じているかに大きく依存します。 "FreeBSD-CURRENT" として知られる FreeBSD の特別な継続的リリースがあります。FreeBSD-CURRENT は開発者の積極的な活動の便宜のために、 色々な方法で利用可能になっています。FreeBSD-CURRENT の入手と使用方法についての詳しい情報については extref:{handbook}updating-upgrading[FreeBSD ハンドブック, current-stable] を参照してください。 古いソースをもとに作業すると、 残念ながらあなたの変更が時として時代遅れもしくは大きく異なるものになってしまって、 FreeBSD に再統合するのは困難になる恐れがあります。 システムの現状に関する議論がおこなわれている {freebsd-announce} と {freebsd-current} へ参加すれば、この可能性を最小限にできます。 十分新しいソースを変更のベースにできることが確実になったと仮定して、 次のステップは FreeBSD の保守担当者へ送る差分ファイルの生成です。これは man:diff[1] コマンドを使用しておこないます。 差分ファイルの提出において好ましい man:diff[1] の形式は、 `diff -u` により生成される unified diff 形式です。 [source,shell] .... % diff -u oldfile newfile .... または、 [source,shell] .... % diff -u -r -N olddir newdir .... で、指定されたソースファイルまたはディレクトリ階層に対する unified diff 形式の差分が生成されます。 詳しい説明は man:diff[1] を参照してください。 差分ファイル (man:patch[1] コマンドでテストできます) を作ったら、それらを FreeBSD に含めてもらうよう障害報告として提出してください。 差分ファイルだけを {freebsd-hackers} へ __送ってはいけません__。 見過ごされてしまうでしょう。 あなたの提案は大歓迎です (これはボランティアのプロジェクトです!)。 私たちは多忙なのですぐに取りかかれないかもしれませんが、 それまで PR データベースに残っているでしょう。 報告の概要に `[PATCH]` と書いてあなたの提案を表明してください。 あなたがそうした方がいいと思う場合 (たとえば、 ファイルの追加、削除または名称変更など)、変更を `tar` ファイルにまとめてください。man:shar[1] アーカイブも歓迎します。 たとえば、再配布に適用される著作権の問題に自信がないといった、 あなたの変更が微妙な性質のものである可能性があれば、 障害報告で提出するよりむしろ直接 {core} へ送ってください。{core} 宛のメールは、 日々の仕事のかなりの割合を FreeBSD に割いている人たちの、 より小さなグループに届きます。 このグループもまた__とても忙しい__ことに注意して、 本当に必要な場合だけコアチームにメールを送るようにしてください。 コーディングスタイルに関して man:intro[9] および man:style[9] を参照してください。コードを提出する前には、 少なくともこの情報を意識しておいてくださるようお願いします。 === 新たなコードやきわめて付加価値の高いパッケージ 大きな分量の作業成果の貢献や、重要な新しい機能を FreeBSD に追加する場合には、大抵、変更点を tar ファイルにまとめて送るか、ウェブサイトや FTP サイトへアップロードしてアクセスできるようにしなければなりません。 web や FTP サイトが利用できなければ、適切な FreeBSD のメーリングリストで誰かその変更をおくサイトを提供してくれるよう頼んでください。 大量のコードを扱っている時は、 常に著作権に関する微妙な問題が出てきます。 FreeBSD では、BSD または ISC といったフリーソフトウェアライセンスが好まれます。 GPLv2 のようなコピーレフトライセンスも、場合によっては許可されます。 完全なリストが、link:https://www.FreeBSD.org/jp/internal/software-license/[コアチームライセンスポリシ] ページにあります。 === 金銭、ハードウェア 私たちは FreeBSD プロジェクトの目的を進めるための寄付を常に喜んで受け入れています。 私たちのようなボランティア活動では、 ちょっとしたことが大いに役立つのです! また一般的に、私たちは自前で周辺機器を買う資金が不足しているため、 周辺機器のサポートを充実させるのにハードウェアの寄付はとても重要です。 [[donations]] ==== 資金の寄付 The FreeBSD Foundation は、 FreeBSD プロジェクトの目標を推進するために設立された、 非営利の、税金を免除された財団です。501(c)3 に適合する団体として、 Foundation はアメリカ合衆国連邦所得税ならびに コロラド州所得税を一般に免除されています。免税団体への寄付は、 多くの場合連邦政府の課税対象所得から控除できます。 寄付は小切手で以下に送ってください。 [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** また、寄付の受け付けを PayPal を通じて web 経由でできるようになりました。 寄付をするには、The FreeBSD Foundation の https://www.freebsdfoundation.org[web サイト]をぜひご覧ください。 The FreeBSD Foundation に関するこれ以上の情報は https://people.FreeBSD.org/~jdp/foundation/announcement.html[The FreeBSD Foundation -- an Introduction] を見てください。 Foundation への email での連絡は mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org] へどうぞ。 ==== ハードウェアの寄贈 FreeBSD プロジェクトは適切な使い道のあるハードウェアの寄付を喜んで受け入れています。 ハードウェアを寄贈しようとしているなら、 link:https://www.FreeBSD.org/donations/[寄贈品受付事務局]に連絡してください。 [[ideas-contributing]] == 他の分野で貢献するには? この文書で説明されていないような他の別な興味のあることを探していますか? FreeBSD プロジェクトの wiki ページには、 新しい貢献者がどのように始めたらよいかについてのアイディアが書かれています。 https://wiki.freebsd.org/JuniorJobs[Junior Jobs] ページには、FreeBSD を使はじめたばかりの人々や、 興味のあることから手始めにやってみたいと考えている方が興味を持ちそうなプロジェクトの一覧があります。 https://wiki.freebsd.org/IdeasPage[アイディアページ] には、プロジェクトに "あると便利" だったり、 "面白い" 作業の一覧があります。 diff --git a/documentation/content/ko/articles/contributing/_index.adoc b/documentation/content/ko/articles/contributing/_index.adoc index 4d37f66969..6fceeba2de 100644 --- a/documentation/content/ko/articles/contributing/_index.adoc +++ b/documentation/content/ko/articles/contributing/_index.adoc @@ -1,433 +1,433 @@ --- title: FreeBSD에 기여하기 authors: - author: Jordan Hubbard - author: Sam Lawrance - author: Mark Linimon trademarks: ["freebsd", "ieee", "general"] --- = FreeBSD에 기여하기 :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] 초록 이 글은 개인이나 단체가 FreeBSD 프로젝트에 기여할 수 있는 여러 가지 방법들을 소개합니다. ''' toc::[] 그러니까 FreeBSD에 기여하고 싶으시다는 말씀이군요? 훌륭합니다! FreeBSD는 살아남기 위해 그 사용자들의 기여에 _의존하고_ 있습니다. 여러분의 기여는 단순히 고맙게 받아들여질 뿐만 아니라, FreeBSD의 지속적인 성장에 필수적이기도 합니다. FreeBSD는 다양한 연령층과 기술적 전문 지식을 가진 전 세계의 기여자들에 의해 개발되고 있는데, 기여자들의 규모는 크고 또 계속 늘어나고 있습니다. 일거리는 이 사람들이 할 수 있는 일보다 항상 더 많이 존재하고, 더 많은 도움은 언제나 감사하게 받아들여지고 있습니다. 자원봉사자로서, 여러분은 여러분이 하고 싶은 일에만 참여하면 됩니다. 그러나, 우리는 여러분이 FreeBSD 커뮤니티의 다른 멤버들이 여러분에게 어떤 일을 할 것을 원하고 있는지 미리 알아볼 것을 부탁드립니다. 여러분은 봉사에 참여하기로 마음먹기 전에 이에 대해 고려해 보고 싶으실 수도 있겠군요. FreeBSD 프로젝트는 단순히 커널 또는 몇몇의 유틸리티들만이 아니라, 운영체제 환경 전체를 책임지고 있습니다. 그렇기 때문에, 우리의 [.filename]#TODO# 목록은 다양한 분야의 일거리들을 수록하고 있습니다: 문서화 작업, 베타 테스트와 프리젠테이션에서부터 시스템 인스톨러 그리고 아주 특화된 종류의 커널 개발에 이르기까지 등등. 어떤 분야에 어떤 수준의 기술을 가지고 있더라도, 거의 확실하게 프로젝트에 도움을 줄 수 있을 것입니다. FreeBSD에 관련된 사업을 하고 있는 기업들도 우리에게 연락할 것이 권장됩니다. 여러분의 제품이 동작하게 할 특별한 확장이 필요한가요? 너무 특이하지만 않다면, 우리는 여러분의 요청을 받아들일 것입니다. 부가 가치 제품으로 작업하고 있나요? 우리에게 알려 주세요! 우리는 부분적으로 협력할 수 있을지도 모릅니다. 자유 소프트웨어 세계는 소프트웨어가 어떻게 개발되고, 판매되고, 또 유지되는지에 대한 기존의 많은 전제들에 도전하고 있고, 우리는 최소한 여러분에게 또 다른 관점을 제시하고 싶습니다. [[contrib-what]] == 어떤 도움이 필요한가요? 아래에 제시된 작업 및 보조 프로젝트들의 목록은 여러 [.filename]#TODO# 항목들과 사용자 요청들을 나타내고 있습니다. [[non-programmer-tasks]] === 비-프로그래머를 위한 진행 작업들 FreeBSD에 관여하는 사람들 중에는 프로그래머가 아닌 사람들도 많습니다. 프로젝트에는 문서 작성자, 웹 디자이너, 기타 도움을 주는 사람들도 포함되어 있습니다. 이들이 기여하는 데에는 시간 투자와 배우려는 의지만 있으면 됩니다. . FAQ와 Handbook을 주기적으로 읽어 보세요. 만약 무언가가 어색하게 설명되어 있거나, 너무 오래 되었거나 심지어 완전히 잘못되어 있다면, 우리에게 알려 주세요. 직접 고친 내용을 보내 주신다면 더욱 좋습니다(DocBook은 배우기 어렵지 않습니다만, 그냥 ASCII 형식으로 보내 주셔도 괜찮습니다). . FreeBSD 문서를 여러분의 모국어로 번역하는 것을 도와 주세요. 만약 문서가 이미 여러분의 언어로 존재한다면, 다른 문서를 추가적으로 번역하거나 번역본이 최신 상태인지를 점검해 보는 것도 좋습니다. 먼저 FreeBSD Documentation Project Primer의 extref:{fdp-primer}[Translation FAQ, translations]를 살펴 보세요. 여러분은 모든 FreeBSD 문서를 다 번역하는 데 헌신할 필요는 없습니다 -- 자원봉사자로서, 여러분은 원하는 만큼 많은 또는 적은 양을 번역할 수 있습니다. 한번 누군가가 번역을 시작하면, 다른 사람들은 거의 항상 그 노력에 동참합니다. 만약 여러분이 문서의 일부만을 번역할 시간 또는 노력밖에 없다면, 설치 과정 부분을 번역해 주세요. . http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions[FreeBSD general questions mailing list]를 종종 (또는 심지어 정기적으로) 읽어 주세요. 여러분의 전문 지식을 나누고 사람들이 문제를 해결하도록 도와 주는 일은 대단히 만족스러울 수 있습니다; 여러분은 심지어 종종 스스로 새로운 것을 배울 수도 있습니다! 이 포럼들은 할 일들의 아이디어의 원천이 되기도 합니다. [[ongoing-programmer-tasks]] === 프로그래머를 위한 진행 작업들 여기에 수록된 일들 대다수는 상당한 시간 투자 또는 FreeBSD 커널에 대한 깊이 있는 지식, 심지어 둘 다를 요구합니다. 그러나, "심심풀이 해커"들을 위한 유용한 작업들도 많이 있습니다. . 만약 여러분이 FreeBSD-CURRENT를 돌리고 있고 인터넷 연결이 괜찮다면, 하루에 한 번씩 전체 릴리즈를 빌드하는 `current.FreeBSD.org` 이 있습니다--종종 최신 릴리즈를 설치해 보고 과정에서 오류가 발생하면 제보해 주세요. . http://lists.FreeBSD.org/mailman/listinfo/freebsd-bugs[FreeBSD problem reports mailing list]를 읽어 보세요. 여러분이 조언을 해줄 수 있거나 패치를 테스트해볼 수 있는 문제들이 있을 수 있습니다. 또는 심지어 그것들 중 하나를 스스로 고쳐볼 수도 있겠지요. . 만약 여러분이 -CURRENT에서는 고쳐졌지만 상당한 시간이 지난 후(대체로 약 2주 정도)에도 -STABLE에 반영되지 않은 버그를 알고 있다면, 커미터에게 예의 바른 알림을 보내 주세요. . contributed software를 소스 트리의 [.filename]#src/contrib# 으로 옮겨 주세요. . [.filename]#src/contrib# 의 소스 코드를 최신 상태로 유지시켜 주세요. . 추가적 경고 표시를 활성화한 뒤 소스 트리 (또는 그 일부) 빌드를 해 보고 경고가 나타나는 내용을 수정해 주세요. . `gets()` 을 사용하거나 [.filename]#malloc.h# 을 include하는 등 deprecate된 방법을 사용하는 포트가 있으면 경고를 수정해 주세요. . 여러분이 FreeBSD에 맞도록 패치한 ports에 기여했다면, 그 패치를 원 저자에게 보내 주세요 (이렇게 하면 그들이 다음 버전을 출시할 때 여러분이 할 일이 훨씬 간편해질 것입니다). . POSIX(R)와 같은 공식 표준들을 살펴 보세요. 그리고 FreeBSD가 그러한 표준이 요구하는 조건에 충족되는지 확인해 보세요. 만약 그렇지 못하다면, 특히 표준의 사소하거나 불분명한 부분에서의 경우에, 그에 대한 PR을 보내 주세요. 가능하다면, 어떻게 고치는지를 찾아서 PR에 패치를 포함시켜 주세요. 만약 표준이 잘못되었다고 생각된다면, 해당 표준을 관리하는 단체에 문의해 보세요. . 이 목록에 추가할 다른 일들을 제안해 주세요! === PR 데이터베이스로 할 것들 https://bugs.FreeBSD.org/search/[FreeBSD PR list]는 FreeBSD 사용자에 의해 제출된 모든 문제점 보고와 개선 사항 요청을 담고 있습니다. PR 데이터베이스는 프로그래머 작업과 비-프로그래머 작업을 모두 포함합니다. PR들을 살펴보고, 흥미로운 것이 있는지 살펴 보세요. 이들 중 일부는 매우 간단해서 누군가 살펴보고 PR에 포함된 수정 사항이 제대로 되어 있는지만 확인하면 됩니다. 다른 것들은 더 복잡하거나, 심지어는 수정 사항이 아예 포함되지 않아 있을 수도 있습니다. 다른 누군가가 맡고 있지 않은 PR부터 시작하세요. 만약 다른 누군가가 PR을 맡고 있는데 여러분이 해결할 수 있는 것처럼 보인다면, 맡고 있는 사람에게 이메일을 보내서 여러분이 작업해도 좋은지 요청해 보세요--그들은 이미 테스트받을 준비가 되어 있는 패치를 가지고 있거나, 여러분과 의논할 만한 아이디어를 가지고 있을 수도 있습니다. === 진행중인 포트 작업들 포트 컬렉션은 끝없이 진행되고 있는 작업입니다. 우리는 사용자들에게 사용하기 쉽고, 최신 상태로 유지되며, 높은 품질의 제3자 소프트웨어 저장소를 제공하고 싶어합니다. 우리는 이 목표를 달성하기 위해 약간의 시간과 노력을 투자해 도와줄 사람들이 필요합니다. 누구나 참여할 수 있고, 참여하는 방법은 여러 가지가 있습니다. 포트에 기여하는 것은 프로젝트에 무언가를 "되돌려 주는" 것을 돕는 훌륭한 방법입니다. 여러분이 책임감 있는 역할을 찾고 있든지, 아니면 비 오는 날 할 만한 재미난 일거리를 찾고 있든지 간에, 우리는 여러분이 도와 준다면 무척이나 기쁠 것입니다! 포트 트리를 최신 상태로 유지하고 잘 동작할 수 있도록 유지하기 위해 할 수 있는 여러 쉬운 방법들이 있습니다: * 멋지거나 유용한 소프트웨어를 찾아 extref:{porters-handbook}[포트를 만들어] 주세요. * 관리자가 없는 포트들이 많이 있습니다. 관리자가 되어 <>해 주세요. * 만약 여러분이 포트를 만들었거나 관리하기로 마음먹었다면, <>에 대해 알아 보세요. * 좀더 빠르게 끝낼 수 있는 일을 찾고 있다면 <> 주세요. === Ideas 페이지에 있는 항목 중 하나를 선택하세요 FreeBSD 프로젝트에 기여하고 싶어하는 사람들은 http://wiki.freebsd.org/IdeaPage[자원봉사자를 위한 FreeBSD 계획과 아이디어 목록]을 살펴볼 수 있습니다. 이 목록은 정기적으로 갱신되며 프로그래머 작업과 비-프로그래머 작업에 대한 항목들이 설명과 함께 제시되어 있습니다. [[contrib-how]] == 어떻게 기여할 수 있나요 시스템에 기여하는 방법은 대개 다음의 5가지 중 한 가지 또는 그 이상에 해당됩니다: [[contrib-general]] === 버그 보고와 일반적 조언 _일반적인_ 기술적 관심사에 대한 아이디어나 제안은 http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers[FreeBSD technical discussions mailing list]에 메일을 보내야 합니다. 마찬가지로, 그러한 내용에 관심이 있는 (그리고 _수많은_ 메일들을 견뎌낼 인내심이 있는) 사람들은 http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers[FreeBSD technical discussions mailing list]를 구독하면 됩니다. 이와 더불어 다른 메일링 리스트에 대한 더 많은 정보는 link:@URL_RELPREFIX@@/doc/ko_KR.UTF-8/books/handbook/eresources.html#eresources-mail[The FreeBSD Handbook]에서 찾아볼 수 있습니다. 만일 여러분이 버그를 찾아냈거나 특별한 수정을 제출하고자 한다면, https://bugs.FreeBSD.org/submit/[bug submission form]을 이용해 주세요. bug report의 각 항목을 완성하기 위해 노력해 주세요. 패치의 크기가 65KB를 넘지 않는다면, report에 직접 패치를 첨부해 주세요. 패치가 소스 트리에 적용되기에 적합하다면 report의 synopsys 부분에 [PATCH]를 적어 주세요. 패치를 첨부할 때, 복사-붙여넣기를 이용하면 탭이 공백(space)으로 바뀌어 적용이 불가능해기지 때문에 복사-붙여넣기 방식으로 첨부하면 __안 됩니다__. 패치가 20KB보다 훨씬 크다면, 업로드하기 전에 (man:gzip[1] 이나 man:bzip2[1] 등을 이용하여) 압축하는 것을 고려해 보세요. report를 제출한 이후에, 여러분은 tracking number가 있는 확인 메일을 받을 겁니다. 이 문제에 대한 상세한 사항을 업데이트할 수 있도록 tracking number를 보관해 두세요. 좋은 problem report를 작성하기 위해서는 extref:{problem-reports}[이 article]을 참고하세요. === 문서 수정하기 문서의 편집은 http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc[FreeBSD documentation project mailing list]에 의해 관리됩니다. 전체적인 방법에 대해서는 extref:{fdp-primer}[FreeBSD Documentation Project Primer]를 참고해 주세요. 다른 버그 리포트와 같은 방법을 사용해서 제출 및 편집(사소한 것이라도 환영합니다!) 내용을 보내 주세요. === 기존 소스 코드 수정하기 기존의 소스 코드에 무언가를 추가하거나 수정하는 것은 까다로운 작업이며 여러분이 FreeBSD 개발의 최신 상태로부터 얼마나 멀리 떨어져 있느냐에 따라 크게 영향을 받습니다. 시스템에 대해 활동적으로 작업하는 개발자들의 여러 편의를 위해 만들어진 "FreeBSD-CURRENT"라는 특별한 on-going 릴리즈가 있습니다. FreeBSD-CURRENT를 설치하고 사용하는 방법에 대한 정보는 extref:{handbook}updating-upgrading[The FreeBSD Handbook, current-stable]에서 찾아볼 수 있습니다. 오래된 소스로 작업하는 것은 불행히도 여러분의 수정이 종종 이미 필요없게 되거나 FreeBSD에 적용되기에 어려울 수도 있다는 것을 의미합니다. 시스템의 최신 상태에 대한 논의가 이루어지는 http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce[FreeBSD announcements mailing list]와 http://lists.FreeBSD.org/mailman/listinfo/freebsd-current[FreeBSD-CURRENT mailing list] 리스트를 구독하면, 이러한 가능성을 최소화할 수 있습니다. Assuming that you can manage to secure fairly up-to-date sources to base your changes on, the next step is to produce a set of diffs to send to the FreeBSD maintainers. 이는 man:diff[1] 명령어를 이용하여 이루어집니다. 패치를 제출하는 데 선호되는 man:diff[1] 형식은 `diff -u` 에 의해 생성되, 하나로 통합된 출력입니다. [source,shell] .... % diff -u oldfile newfile .... 또는 [source,shell] .... % diff -u -r -N olddir newdir .... 는 주어진 소스 파일 또는 디렉토리에 대해 하나로 통합된 diff를 생성할 것입니다. man:diff[1]에 더 많은 정보가 있습니다. 여러분이 diff 파일을 만들었다면 (그리고 man:patch[1] 명령어로 확인했다면), FreeBSD에 반영하기 위해 버그 리포트의 형식으로 제출해야 합니다. diff를 그냥 http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers[FreeBSD technical discussions mailing list]에 보내지 __마세요__! 그것들은 잊혀질지도 모릅니다. 우리는 여러분의 제출을 무척이나 감사히 여기고 있습니다만 (이것은 자원봉사에 의해 이루어집니다!); 우리는 바쁘기 때문에, 때때로 바로 작업에 착수할 수 없을 수도 있습니다. 그것은 우리가 할 때까지 PR 데이터베이스에 남아 있을 것입니다. 제출할 때 리포트의 synopsis에 [PATCH]을 포함시켜서 패치라는 것을 알려 주세요. 적합하다고 생각되는 경우에 (예를 들어 새 파일을 추가했거나, 기존의 파일을 삭제했거나, 파일의 이름을 바꾼 경우), 그 바꾼 내용을 `tar` 파일로 첨부해 주세요. man:shar[1]으로 생성된 아카이브도 괜찮습니다. 만약 여러분의 수정이 잠재적으로 민감할 수 있는 사항을 포함하고 있다면, 예를 들어 배포와 관련된 라이선스 문제에 대해 확신이 없는 경우라면, 버그 리포트로 제출하는 대신 코어 팀 mailto:core@FreeBSD.org[core@FreeBSD.org]에 직접 보내 주세요. 코어 팀 mailto:core@FreeBSD.org[core@FreeBSD.org]은 FreeBSD에 대해 관한 많은 일을 매일 하는 사람들의 작은 모임입니다. 이들은 _매우 바쁘기_ 때문에, 꼭 필요한 경우에만 메일을 보내 주세요. 코딩 스타일에 대해서는 man:intro[9]와 man:style[9]를 참조해 주세요. 여러분이 코드를 제출하기 전에 이 정보에 대해 최소한 알고 있었다면 우리는 감사할 것입니다. === 새로운 코드 또는 주요한 부가가치 패키지들 큰 규모의 작업에서 상당한 기여를 하는 경우에, 혹은 FreeBSD에 새롭고 중요한 기능을 추가하는 경우에, 수정한 내용을 다른 사람이 액세스할 수 있도록 tar 파일 형식으로 보내거나 웹/FTP 사이트에 업로드하는 것은 거의 언제나 필요합니다. 만약 여러분이 액세스할 수 있는 웹 또는 FTP 사이트가 없다면, 적절한 FreeBSD 메일링 리스트에 여러분의 수정사항을 호스팅해줄 것을 요청하세요. 많은 양의 코드에 대해 작업할 때, 저작권에 대한 민감한 주제 역시 언제나 나타납니다. FreeBSD는 BSD 또는 ISC 형식의 오픈 소스 라이선스를 선호합니다. GPLv2와 같은 카피레프트 라이센스 역시 종종 허용됩니다. 전체적인 목록은 link:https://www.FreeBSD.org/internal/software-license/[코어 팀 라이선스 정책] 페이지에서 찾아볼 수 있습니다. === 금전 또는 하드웨어 우리는 FreeBSD 프로젝트를 발전시키기 위한 기부를 받는 것을 매우 기쁘게 여기고 있으며, 우리와 같이 자원봉사 노력을 할 때에, 약간의 기부도 많은 일을 해낼 수 있습니다! 우리는 일반적으로 필요한 장비를 직접 구입할 여유가 없기 때문에, 지원 가능한 장비를 확대하기 위해 하드웨어를 기부받는 것 역시 매우 중요합니다. [[donations]] ==== 재단에 기부하기 FreeBSD 재단은 FreeBSD 프로젝트의 목표를 발전시키기 위해 설립된 비영리, 비과세의 단체입니다. 501(c)3의 회원으로서, FreeBSD 재단은 Colorado 주 소득세뿐만 아니라 미국 연방 소득세도 면제받습니다. 비과세 단체에 기부하는 것은 종종 과세 대상인 연방 소득으로부터 공제받을 수 있습니다. 기부하기 위해서는 다음의 주소로 수표를 보내 주시면 됩니다: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** FreeBSD 재단은 이제 Paypal을 통한 온라인 기부도 받고 있습니다. 기부하기 위해서는, 재단 http://www.freebsdfoundation.org[웹 사이트]를 방문해 주세요. FreeBSD 재단에 대한 더 많은 정보는 http://people.FreeBSD.org/~jdp/foundation/announcement.html[The FreeBSD Foundation -- an Introduction]에서 찾아볼 수 있습니다. 이메일로 재단에 연락하려면, mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org]을 이용하세요. ==== 하드웨어 기부하기 FreeBSD 프로젝트는 유용하게 사용될 수 있는 하드웨어의 기부를 기쁘게 받아들이고 있습니다. 만일 여러분이 하드웨어 기부에 관심이 있다면, link:https://www.FreeBSD.org/donation/[Donations Liaison Office]에 연락해 주세요. [[ports-contributing]] == 포트에 기여하기 [[adopt-port]] === 관리되지 않는 포트를 책임지기 ==== 관리되지 않는 포트 선택하기 관리되지 않는 포트를 책임지는 것은 참여하기에 좋은 방법입니다. 관리되지 않는 포트는 누군가가 자원봉사로 작업할 때에만 업데이트되고 고쳐집니다. 관리되지 않는 포트는 많이 있습니다. 여러분이 정기적으로 사용하는 포트를 책임지는 것부터 시작해 보면 좋을 것입니다. 관리되지 않는 포트는 그 MAINTAINER이 ports@FreeBSD.org로 설정되어 있습니다. 관리되지 않는 포트와 그것들의 현재 문제점 및 problem reports에 대한 목록은 http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org[Ports Monitoring System]에서 찾아볼 수 있습니다. 어떤 포트는 그 의존성 관계 때문에 다른 많은 포트에 영향을 미칠 수 있습니다. 일반적으로, 우리는 사람들이 그러한 포트를 관리하기 전에 약간의 경험을 해볼 것을 원합니다. [.filename]#INDEX# 라고 이름붙여진 포트의 마스터 인덱스를 살펴보면 포트의 의존성 관계를 파악할 수 있습니다. (파일의 이름은 FreeBSD의 릴리즈에 따라 다를 수 있습니다; 예를 들어, [.filename]#INDEX-8#.) 일부 포트는 기본 [.filename]#INDEX# 빌드에는 포함되지 않는 부가적인 의존성 관계를 가지고 있습니다. 우리는 여러분이 다른 포트의 [.filename]#Makefile# 을 살펴봄으로써 이러한 포트를 찾아낼 수 있기를 기대합니다. ==== 포트를 책임지는 방법 우선 <>에 대해 명확히 이해해야 합니다. 또 extref:{porters-handbook}[Porter's Handbook]을 읽어 보세요. _여러분이 편안하게 다룰 수 있을 범위를 넘어서서 무리할 필요는 없습니다._ 여러분은 원한다면 관리되지 않는 포트의 관리 권한을 언제든지 요청할 수 있습니다. 그냥 `MAINTAINER` 을 여러분의 이메일 주소로 설정하고 해당 내용을 PR(Problem Report)로 보내 주세요. 포트에 빌드 에러가 있거나 업데이트가 필요하다면, 같은 PR에 그러한 수정 내용을 포함해도 좋습니다. 많은 커미터들은 FreeBSD에 남긴 흔적이 없는 누군가에게 관리 권한을 부여하고 싶어하지 않기 때문에, 이는 도움이 되는 행동일 것입니다. 빌드 오류를 고치거나 포트를 업데이트하는 PR을 제출하는 것은 이러한 흔적을 남기는 가장 좋은 방법입니다. 여러분의 PR을 `ports` 카테고리와 `change-request` 클래스로 설정한 뒤 제출해 주세요. 커미터가 여러분의 PR을 검토하고, 수정 사항을 커밋하고, 마침내 PR을 종료시킬 것입니다. 이 과정은 종종 시간이 걸릴 수도 있습니다(커미터들 역시 자원봉사자들입니다 :). [[maintain-port]] === 포트 관리자를 위한 도전 과제 이 항목은 포트가 관리되어야 하는 이유 및 포트 관리자의 책임에 대해 설명해줄 것입니다. [[why-maintenance]] ==== 포트의 관리가 필요한 이유 포트를 만드는 일은 일회성 작업입니다. 포트가 최신 상태인지, 그리고 빌드 및 실행이 문제없이 되는지를 확인하는 일은 지속적인 관리 노력이 필요합니다. 관리자는 그들의 시간 중 일부를 이 목표를 달성하는 데 투자하는 사람들입니다. 포트에 관리가 필요한 가장 주요한 이유는 FreeBSD 커뮤니티에 최신의 많은 3rd party 소프트웨어를 제공하기 위함입니다. 추가적인 목표는 각각의 포트들이 지속적으로 개선되어도 계속 포트 컬렉션 프레임워크 안에서 동작할 수 있도록 유지시키기 위함입니다. 관리자로서, 여러분은 다음의 도전 과제들을 담당할 필요가 있습니다: * *새로운 소프트웨어 버전 및 업데이트.* 포팅된 소프트웨어에 대해서는 언제든지 새로운 버전과 업데이트가 있을 수 있고, 최신의 소프트웨어를 제공하기 위해서 이들은 포트 컬렉션에 포함될 필요가 있습니다. * *종속된 포트가 수정되었을 경우.* 여러분의 포트에 종속된 포트가 크게 수정되었을 경우, 여러분의 포트 역시 올바르게 동작하기 위해 업데이트되어야 할 수 있습니다. * *종속된 포트에 영향을 미치는 수정 사항들.* 만일 여러분이 관리하는 포트에 다른 포트가 의존하고 있다면, 여러분은 여러분의 포트를 수정하기 위해 다른 관리자들과 공동 작업을 해야 할 수도 있습니다. * *다른 사용자, 관리자 및 개발자와의 소통.* 관리자로서의 역할 중 하나는 지원자의 역할입니다. 일반적인 지원을 제공해야 할 필요는 없습니다 (여러분이 그렇게 한다면 우리는 환영할 것입니다). 여러분이 제공해야 하는 것은 FreeBSD 환경에서 여러분의 포트에 나타나는 특정한 문제들의 해결에 도움을 주는 것입니다. * *버그 추적하기.* 포트는 FreeBSD 환경에서 특정하게 나타나는 버그의 영향을 받을 수도 있습니다. 여러분은 그러한 버그들이 제보되었을 때 조사하고, 찾아내고, 이들을 고쳐야 합니다. 포트 컬렉션에 넣기 전에 포트를 전체적으로 테스트해보는 것은 더욱 좋습니다. * *포트의 기반 및 정책의 수정* 때때로 포트와 패키지를 빌드하는 데 사용되는 시스템이 업데이트되거나 그 기반에 영향을 미치는 새로운 제안이 나오기도 합니다. 여러분은 여러분의 포트가 영향을 받아 업데이트를 필요로 하게 될 경우를 위해 이러한 변화에 대해 알고 있어야 합니다. * *베이스 시스템의 수정.* FreeBSD는 지속적으로 개발되고 있습니다. 소프트웨어, 라이브러리, 커널 또는 심지어 정책이 바뀌면 포트 역시 자연스럽게 수정이 필요해질 수 있습니다. ==== 관리자로서의 책임 ===== 여러분의 포트를 최신 상태로 유지하세요 이 항목은 여러분의 포트를 최신 상태로 유지시키기 위한 과정을 설명하고 있습니다. 이것은 개괄적인 내용입니다. 포트를 업그레이드하는 것에 대한 더 자세한 정보는 extref:{porters-handbook}[Porter's Handbook]에서 찾아볼 수 있습니다. [.procedure] ==== . 업데이트 지켜보기 + 소프트웨어의 새로운 버전, 업데이트 그리고 보안 수정 사항을 위해 upstream vendor를 주시하세요. 이를 위해서 announcement 메일링 리스트 또는 뉴스 웹 페이지가 도움이 될 것입니다. 사용자들이 종종 여러분에게 연락해서 여러분의 포트가 언제 업데이트될 것인지에 대해 문의할 수 있습니다. 만약 여러분이 다른 이유로 바쁘거나 지금 업데이트할 수 없는 어떤 이유가 있다면, 그들에게 업데이트 제출을 도와줄 수 있는지 요청해 보세요. + 여러분은 또한 `FreeBSD Ports Version Check` 로부터 여러분의 포트에 대한 새 버전의 distfile이 사용 가능하다는 자동 이메일을 받을 수도 있습니다. 그 시스템에 대한 (앞으로의 이메일을 그만 받는 방법을 포함한) 더 많은 정보는 해당 메시지에 제공될 것입니다. . 수정 사항을 적용시키기 + 변경 사항이 사용 가능해지면, 포트에 적용시켜 주세요. 원본 포트와 업데이트된 포트 사이의 패치를 생성할 수 있어야 할 것입니다. . 검토 및 테스트하기 + 여러분의 수정 사항 전체를 검토하고 테스트해보세요: ** 가능한 많은 플랫폼과 아키텍처에서 여러분의 포트를 빌드, 설치 그리고 테스트해보세요. 하나의 브랜치 혹은 플랫폼에서 잘 작동하던 포트가 다른 곳에서 실패하는 것은 드문 일이 아닙니다. ** 여러분의 포트의 의존성 관계가 완전한지 점검해 주세요. 권장되는 방법은 여러분의 포트를 tinderbox 로 설치해 보는 것입니다. 더 자세한 정보를 위해서는 <>를 참조해 주세요. ** 패킹 리스트가 최신 상태인지 확인하세요. 이는 새로운 파일 및 디렉토리를 추가하는 일과 사용되지 않는 내용을 제거하는 일을 포함합니다. ** man:portlint[1]를 이용하여 여러분의 포트를 검토하세요. portlint 를 사용하는 방법에 대한 중요한 사항을 위해서는 <>를 참조하세요. ** 여러분의 포트에 대한 수정 사항이 다른 포트를 고장내는 일이 있을지에 대해 고려해 주세요. 만약 그럴 가능성이 있는 경우에는, 해당 포트의 관리자와 수정 내용을 조율해 주세요. 이는 여러분의 업데이트가 shared library의 버전에 수정을 가하는 경우에 특히 중요합니다; 이 경우, 적어도, 종속된 포트는 `PORTREVISION` bump를 얻어서 portmaster 또는 man:portupgrade[1]와 같은 자동화된 도구에 의해 자동으로 업데이트될 수 있도록 할 필요가 있습니다. . 수정 내용 제출하기 + 수정 사항에 대한 설명 및 원본과 수정본 사이의 변경 내역을 포함한 패치를 담은 PR을 통해 여러분의 업데이트를 보내 주세요. 좋은 PR을 작성하는 방법에 대한 내용은 extref:{problem-reports}[Writing FreeBSD Problem Reports]를 참조해 주세요. + [NOTE] ====== 포트 전체에 대한 man:shar[1] 아카이브를 제출하지는 말아 주세요; 그 대신에, man:diff[1] `-ruN` 를 사용해 주세요. 이렇게 하면, 정확히 무엇이 수정되었는지 커미터들이 훨씬 쉽게 파악할 수 있습니다. Porter's Handbook에 있는 extref:{porters-handbook}[Upgrading, port-upgrading] 항목에서 더 많은 정보를 찾아볼 수 있습니다. ====== . 기다리기 + 때가 되면 커미터가 여러분의 PR을 담당할 것입니다. 이는 몇 분, 또는 몇 주가 소요될 수 있습니다 -- 그러므로 그동안 기다려 주세요. . 피드백하기 + 만약 커미터가 여러분의 수정 사항에서 문제점을 찾아내면, 그들은 대체로 여러분에게 다시 알려줄 것입니다. 신속한 답변은 여러분의 PR이 빨리 커밋되는 데 도움이 되고, 어떤 문제를 해결하고자 할 때 대화의 흐름을 유지하는 데에도 좋습니다. . 그리고 마지막으로 + 여러분의 수정 사항이 커밋되고 여러분의 포트가 업데이트될 것입니다. 그런 다음 PR은 커미터에 의해 닫힐 것입니다. 그것으로 끝입니다! ==== ===== 여러분의 포트가 지속적으로 올바르게 빌드되는지를 확인해 주세요 이 항목은 포트가 올바르게 빌드되지 못하도록 하는 문제를 찾아내고 고치는 방법에 대한 것입니다. FreeBSD는 포트 컬렉션이 `-STABLE` 가지에서 동작하는 것만을 보장합니다. FreeBSD는 포트 컬렉션이 `-STABLE` 가지에서 동작하는 것만을 보장합니다. FreeBSD 설치본의 대부분은 (`i386` 아키텍처라고 불리는) PC-호환 기종에서 동작하기 때문에, 우리는 여러분이 포트를 그 아키텍처에서 동작하도록 작업할 것을 기대합니다. 포트가 `amd64` 아키텍처에서 네이티브로 동작한다면 더욱 좋습니다. 만약 여러분이 이러한 기종을 가지고 있지 않다면 얼마든지 도움을 요청해도 괜찮습니다. [NOTE] ==== `x86` 이외의 장치에서의 빌드 실패에 대한 대부분의 이유는 프로그램 작성자가, 예를 들어, 포인터를 `int` 로 가정했거나, 또는 상대적으로 오래된 gcc 컴파일러가 사용된 경우입니다. 점점 더 많은 프로그램 작성자들은 이러한 가정을 제거하기 위해 그들의 코드에 대해 재작업을 하고 있습니다 -- 그러나 작성자가 그들의 코드를 적극적으로 유지보수하지 않는다면, 여러분은 스스로 이 일을 해야 할 수도 있습니다. ==== 여러분의 포트가 성공적으로 빌드될 수 있도록 하기 위해 여러분은 다음의 작업을 해야 합니다: [.procedure] ==== . 빌드 실패 주시하기 + 빌드에 실패하거나 오래된 포트가 있는지 살펴보기 위해 `pkg-fallout@FreeBSD.org` 와 http://portscout.FreeBSD.org[distfiles scanner]로부터의 메일을 확인해 주세요. . 정보 모으기 + 여러분이 문제점을 인식하면, 그것을 고치는 데 도움이 되는 정보를 모으세요. 여러분이 문제점을 인식하면, 그것을 고치는 데 도움이 되는 정보를 모으세요. 만약 그러한 빌드 실패가 사용자에 의해 여러분에게 보고되었다면, 문제점을 진단하는 데 도움이 될 수 있는 다음과 같은 정보를 요청하세요: ** 빌드 로그 ** 포트를 빌드하는 데 사용되는 명령어 및 옵션들 ([.filename]#/etc/make.conf# 에 세팅된 옵션들을 포함) ** man:pkg_info[1]를 통해 보여지는, 그들의 시스템에 설치된 패키지들의 목록 ** man:uname[1] `-a` 을 통해 보여지는, 그들의 현재 FreeBSD의 버전 ** 그들의 포트 컬렉션이 마지막으로 업데이트된 때 ** 그들의 포트 트리와 [.filename]#INDEX# 가 마지막으로 업데이트된 때 . 문제점을 조사하고 해결책을 찾아보기 + 불행히도 이를 위한 간단한 프로세스는 없습니다. 그렇지만, 기억하세요: 뭔가 잘 안 풀린다면, 도움을 요청하세요! http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports[FreeBSD 포트 메일링 리스트]는 시작하기에 좋은 곳이고, 상부의 개발자들은 대개 대단히 잘 도와줍니다. . 수정 내용 제출하기 + 포트를 업데이트할 때와 마찬가지로, 여러분은 이제 수정 사항을 적용하고, 검토하고 테스트하고, PR로 수정 사항을 제출하고, 필요하다면 피드백을 제공해야 합니다. . 상부의 저자에게 패치 보내주기 + 특정한 경우에, 여러분은 포트가 FreeBSD에서 동작하도록 하기 위해 패치를 만들어야 합니다. 일부 (그러나 모두는 아닌) 상부의 작성자들은 다음 릴리즈에 그러한 패치를 그들의 코드에 반영할 것입니다. 그렇게 되면, 이는 다른 BSD 기반 시스템 사용자들에게 도움이 될 뿐만 아니라 중복된 작업을 할 노력을 절약해줄 수도 있습니다. 적용 가능한 패치를 작성자에게 보내 주는 호의를 베푸는 것을 고려해 보세요. ==== ===== 여러분의 포트에 관련된 버그 보고와 PR을 살펴 보세요 이 항목은 버그를 찾아내고 고치는 방법에 대한 것입니다. FreeBSD에 특정한 버그는 일반적으로 FreeBSD에는 적용되지 않는 빌드 및 런타임 환경을 가정하기 때문에 일어납니다. 여러분이 이런 유형의 문제를 마주하게 될 가능성은 낮지만, 이것은 더 미묘한 문제이며 찾아내기 어려울 수 있습니다. 여러분의 포트가 의도한 대로 계속 동작하도록 하기 위해 여러분은 다음의 작업들을 해야 합니다: [.procedure] ==== . 버그 보고에 응답하기 + 버그는 https://bugs.FreeBSD.org/search/[Problem Report database]를 통한 이메일로 여러분에게 보고될 것입니다. 버그는 또한 사용자들에 의해 여러분에게 직접적으로 보고될 수도 있습니다. + 여러분은 PR 및 다른 보고에 대해 14일 이내로 응답해야 합니다만, 그렇게 오래 걸리지는 않도록 노력해 주세요. 단지 여러분이 해당 PR에 대해 작업하기까지 시간이 더 필요하다는 답장만이라도, 가능한 한 빨리 응답할 수 있도록 노력해 주세요. + 만약 여러분이 14일이 지나도록 응답하지 않았다면, 다른 커미터는 `maintainer-timeout` 을 통해 여러분이 응답하지 않은 PR로부터 커밋할 수 있습니다. . 정보 모으기 + 만약 버그를 보고한 사람이 수정 사항을 제공하지 않았다면, 여러분은 그 수정을 하기 위한 정보를 모을 필요가 있습니다. + 만약 버그를 재현할 수 있다면, 여러분은 필요한 정보의 대부분을 스스로 모을 수 있습니다. 그렇지 않다면, 버그를 보고한 사람에게 다음과 같은 정보들을 모아줄 것을 요청하세요: ** 그들의 행동에 대한 자세한 설명, 예상했던 프로그램의 행동과 실제 행동 ** 버그를 발생시키기 위해 입력했던 데이터의 복사본 ** 그들의 빌드 및 실행 환경에 대한 정보 -- 예를 들어, 설치된 패키지들의 목록과 man:env[1]의 출력값 ** Core dumps ** Stack traces . 잘못된 보고를 배제하기 + 일부 버그 제보는 잘못되었을 수도 있습니다. 예를 들어, 사용자가 단순히 프로그램을 잘못 사용했을 수 있습니다; 또는 그들이 설치한 패키지가 오래되었고 업데이트를 필요로 하는 경우일 수도 있습니다. 종종 제보된 버그는 FreeBSD에 국한되는 것이 아닐 수도 있습니다. 이 경우에는 upstream 개발자에게 버그를 제보해 주세요. 만약 여러분이 고칠 수 있을 만한 버그라면, 다음 upstream 릴리즈가 배포되기 전에 여러분이 직접 포트를 패치해서 수정 사항을 적용시켜도 됩니다. . 해결책을 찾아보기 + 빌드 오류와 마주쳤다면, 여러분은 문제점에 대한 해결 방안을 찾아볼 필요가 있을 것입니다. 다시 한 번 강조하겠습니다, 뭔가 잘 안 풀린다면 도움을 요청하세요! . 수정 사항을 제출하거나 승인하기 + 포트를 업데이트할 때와 마찬가지로, 여러분은 이제 수정 사항을 적용시키고, 검토 및 테스트를 수행하고, 그 내용을 PR로 제출(또는 해당 문제점에 대해 이미 존재하는 PR에 follow-up을 제출)해야 합니다. 다른 사용자가 이미 PR로 변경 사항을 제출했다면, 여러분은 그 변경 사항에 대한 승인 여부를 말하는 follow-up을 보낼 수도 있습니다. ==== ===== 지원을 제공해 주세요 관리자로서의 역할 중 하나는 지원을 제공하는 것입니다 -- 이는 소프트웨어 자체에 대한 일반적인 지원이 아니라 -- 포트 그리고 FreeBSD에 특정한 특이 사항과 문제점에 대한 지원을 의미합니다. 사용자들은 질문, 제안, 문제점 그리고 패치에 대해서 여러분에게 연락할 수 있습니다. 대부분의 경우 그러한 연락들은 FreeBSD에 특정한 내용들일 것입니다. 종종 여러분은 외교적 수완을 발휘해서, 일반적인 지원을 찾는 사람들에게 적절한 리소스를 알려 주어야 합니다. 이보다는 덜 자주 있는 일이지만, 여러분은 `RPM` 이 왜 최신 상태가 아닌지 또는 소프트웨어를 아무개 리눅스에서 어떻게 실행시키는지에 대해 묻는 사람과 마주칠 수도 있습니다. 그들에게 여러분의 포트가 최신 상태임을 알리고(물론, 그럴 경우에만요!), 그들에게 FreeBSD를 사용해볼 것을 권하는 기회를 잡아 보세요. 종종 사용자와 개발자들은 여러분을 (여러분의 시간을 귀중히 여기는) 바쁜 사람으로 여기고 여러분을 위해 약간의 일을 해줄 수도 있습니다. 예를 들어, 그들은 다음과 같은 일들을 해줄 수도 있습니다: * 여러분의 포트를 업데이트하는 PR을 제출하거나 패치를 보내주는 일, * 조사하고 아마도 PR에 고친 내용을 제공하는 일, 또는 * 아니면 여러분의 포트에 대한 수정 사항을 제출하는 일. 이러한 경우에 여러분의 주요 의무는 적절한 때에 응답하는 것입니다. 다시 한번 강조합니다, 관리자의 무응답에 대한 제한 시간은 14일입니다. 이 기간이 지마면 수정 사항은 미승인 상태(unapproved)로 커밋될 것입니다. 그들은 여러분을 위해 이 일을 하는 수고를 했습니다; 그러므로 최소한 신속하게 답변할 수 있도록 노력해 주세요. 그리고 나서 가급적 빨리 이를 검토하고, 승인하고, 그들과 함께 수정 사항을 다듬거나 이에 대해 논의해 주세요. 만약 여러분이 그들의 기여에 감사를 표한다면 (물론 그래야 합니다만) 앞으로 그들이 여러분을 위해 더 많은 일을 해줄 수도 있을 것입니다 :-). [[fix-broken]] === 고장난 포트를 찾아내고 고치기 관심이 필요한 포트를 찾아보기에 정말 좋은 두 개의 장소가 있습니다. 여러분은 해결되지 않은 PR들을 찾아보기 위해 Problem Report 데이터베이스의 http://bugs.freebsd.org/search[웹 인터페이스]를 사용할 수 있습니다. 포트 PR의 대부분은 업데이트이지만, 요약된 내용을 조금만 훑어보면 여러분은 흥미로운 일거리를 찾을 수 있을 것입니다 (`sw-bug` 클래스는 시작하기에 좋은 장소입니다). 다른 장소는 http://portsmon.FreeBSD.org/[FreeBSD Ports Monitoring System]입니다. 빌드 오류가 있고 관리되지 않는 포트와 `BROKEN` 이라고 표시된 포트에 특히 유의해서 살펴 보세요. 이미 관리되고 있는 포트에 대한 수정 사항을 제출하는 것도 괜찮지만, 관리자가 이미 같은 문제에 대해 작업하고 있는지 물어 보아야 한다는 것을 기억해 주세요. 여러분이 버그나 문제점을 발견했다면, 정보를 모으고, 분석한 뒤 고쳐 보세요! 이미 PR이 존재한다면, 같이 협력하세요. 그렇지 않다면 새로운 PR을 생성하세요. 여러분의 수정 사항은 검토되고 나서, 만약 모든 것이 괜찮다면, 커밋될 것입니다. [[mortal-coil]] === 그만두어야 할 때 여러분의 흥미와 상황이 변함에 따라, 여러분은 여러분의 포트에 대한 일부 (또는 모든) 기여를 계속할 시간이 없을 수도 있습니다. 괜찮습니다! 만약 여러분이 더이상 포트를 사용하지 않거나 투자할 시간이 없거나 관리자로서의 흥미를 잃었다면 우리에게 알려 주세요. 그러면 우리는 일을 진행하면서 여러분의 답변을 기다리지 않고 포트의 문제들에 다른 사람들이 작업하도록 허락할 수 있습니다. 기억하세요, FreeBSD는 자원봉사자들에 의한 프로젝트입니다, 그러므로 포트를 관리하는 일이 이제 재미없다면, 다른 누군가에게 넘겨줄 때입니다! 어느 경우에든지, 여러분이 일정 기간동안 여러분의 포트를 활동적으로 관리하지 않았다면 포트 관리 팀(`portmgr`)은 여러분의 관리 권한을 초기화시킬 권한을 가지고 있습니다. (현재, 이 기간은 3개월로 정해져 있습니다.) 이것은, 이 기간동안 해결되지 않은 문제나 미루어진 업데이트가 있다는 것을 의미합니다. [[resources]] === 포트 관리자와 기여자를 위한 자료 extref:{porters-handbook}[Porter's Handbook]은 포트 시스템을 여행하는 히치하이커를 위한 안내서입니다. 곁에 두고 자주 살펴 보세요! extref:{problem-reports}[Writing FreeBSD Problem Reports]은 훌륭한 PR을 작성하고 제출하는 방법에 대해서 설명합니다. 2005년에는 11000개 이상의 포트 PR이 제출되었습니다! 이 글을 따라하는 것은 여러분의 PR을 다루는 데 필요한 시간을 절약해 준다는 점에서 큰 도움이 됩니다. http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query[Problem Report database]. http://portsmon.FreeBSD.org/[FreeBSD Ports Monitoring System]은 빌드 에러 또는 problem report와 같이 포트에 대한 상호 참조 정보를 보여줄 수 있습니다. 여러분이 관리자라면 이러한 정보를 여러분의 포트의 빌드 상태를 확인하는 데 사용할 수 있습니다. contributor로서 여러분은 제대로 동작하지 않고 관리되지 않아서 고쳐질 필요가 있는 포트를 찾아보는 데 사용할 수 있습니다. http://portscout.FreeBSD.org[FreeBSD Ports distfile scanner]는 distfiles를 다운로드할 수 없는 포트를 보여줍니다. 여러분은 이를 여러분의 포트를 확인해 보거나 `MASTER_SITES` 이 업데이트될 필요가 있는 포트를 찾아보는 데 사용할 수 있습니다. package:ports-mgmt/poudriere[] 는 포트의 설치, 패키징, 그리고 제거까지의 전 과정을 전체적으로 테스트해볼 수 있는 방법입니다. 관련된 문서는 https://fossil.etoilebsd.net/poudriere/[poudriere home page]에서 찾아볼 수 있습니다. man:portlint[1]는 여러분의 포트가 많은 중요한 외형적 그리고 기능적 지침을 준수하고 있는지를 검증하는 데 사용되는 애플리케이션입니다. portlint 는 단순한 휴리스틱 애플리케이션이기 때문에, 여러분은 이를 _지침서의 역할로만_ 사용해야 합니다. 만약 portlint 가 합리적이지 않아 보이는 수정을 제안한다면, extref:{porters-handbook}[Porter's Handbook]를 참고하거나 도움을 요청하세요. http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports[FreeBSD ports mailing list]는 포트와 관련된 일반적인 논의가 이루어지는 곳입니다. 여기는 도움을 요청하기에 좋은 장소입니다. 여러분은 http://lists.freebsd.org/mailman/listinfo[구독하거나, 리스트 아카이브를 읽어보고 검색해볼 수 있습니다]. http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-bugs[FreeBSD ports bugs mailing list]와 http://lists.FreeBSD.org/mailman/listinfo/cvs-ports[FreeBSD CVS ports commit list]의 아카이브를 읽어보는 것도 흥미로울 수 있습니다. diff --git a/documentation/content/nl/articles/contributing/_index.adoc b/documentation/content/nl/articles/contributing/_index.adoc index 6d5224a2df..2de2f3adc5 100644 --- a/documentation/content/nl/articles/contributing/_index.adoc +++ b/documentation/content/nl/articles/contributing/_index.adoc @@ -1,225 +1,225 @@ --- title: Bijdragen aan FreeBSD authors: - author: Jordan Hubbard trademarks: ["freebsd", "ieee", "general"] --- = Bijdragen aan FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Samenvatting __Vertaald door René Ladan__. Dit artikel beschrijft de verschillende manieren waarop een individu of organisatie kan bijdragen aan het FreeBSD Project. ''' toc::[] 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 [.filename]#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. [[contrib-what]] == Wat is er nodig De onderstaande lijst van taken en deelprojecten representeert een soort amalgaam van verschillende [.filename]#TODO#-lijsten en verzoeken van gebruikers. [[non-programmer-tasks]] === 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 extref:{fdp-primer}[Translations FAQ, translations] 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-questions} en news: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. [[ongoing-programmer-tasks]] === 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-bugs}. 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 [.filename]#src/contrib# in de broncodeboom. . Verzeker dat de code in [.filename]#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 [.filename]#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(R). Enkele links over deze standaarden staan op de website van het link:https://www.FreeBSD.org/projects/c99/[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! === Spit de PR-database door De http://www.FreeBSD.org/cgi/query-pr-summary.cgi[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. === Kies een van de punten van de "Ideeën" pagina De http://wiki.freebsd.org/IdeasPage[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. [[contrib-how]] == Hoe bij te dragen Bijdragen aan het systeem vallen over het algemeen in één of meer van de volgende 5 categoriën: [[contrib-general]] === Foutrapportages en algemeen commentaar Een idee of suggestie van _algemene_ technische aard dient naar {freebsd-hackers} 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-hackers}. Zie extref:{handbook}eresources[Het FreeBSD Handboek, eresources-mail] voor meer informatie over deze en andere mailinglijsten. Als u een bug vindt of een specifieke verandering opstuurt, gebruik dan alstublieft het programma man:send-pr[1] of het link:https://www.FreeBSD.org/send-pr/[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 man:gzip[1] of man:bzip2[1]) en man: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 {bugfollowup}. 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 man: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-bugs}. Zie ook extref:{problem-reports}[dit artikel] over het schrijven van goede probleemrapporten. === Veranderingen aan de documentatie Veranderingen aan de documentatie worden overzien door de {freebsd-doc}. Bekijk de extref:{fdp-primer}[FreeBSD Documentation Primer] voor volledige instructies. Stuur bijdragen en veranderingen (zelfs kleine zijn welkom!) door man:send-pr[1] te gebruiken zoals beschreven is in <>. === 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 extref:{handbook}updating-upgrading[Het FreeBSD Handboek, current-stable] 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-announce} en de {freebsd-current} 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 man:diff[1]. Het geprefereerde man:diff[1]-formaat voor het opsturen van patches is het verenigde uitvoerformaat gegenereerd door `diff -u`. [source,shell] .... % diff -u oudbestand nieuwbestand .... of [source,shell] .... % diff -u -r -N oudemap nieuwemap .... zouden een verzameling van verenigde diffs genereren voor het gegeven bronbestand of maphiërarchie. Zie man:diff[1] voor meer details. Als u eenmaal een verzameling aan diffs heeft (welke u kunt testen met het commando man:patch[1]), dient u ze op te sturen voor opname in FreeBSD. Gebruik het programma man:send-pr[1] zoals beschreven in <>. Stuur de diffs _niet_ alleen naar de {freebsd-hackers} 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 man:uuencode[1] erop. Archieven die met man: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 {core} te sturen in plaats van het met man:send-pr[1] op te sturen. Het {core} 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 man:intro[9] en man: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. === 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 [.filename]#/sys/gnu# of [.filename]#/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: [.programlisting] .... 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 [.filename]#/usr/shared/examples/etc/bsd-style-copyright#. === 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. [[donations]] ==== 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: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + 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 http://www.freebsdfoundation.org[website] van de Foundation. Meer informatie over de FreeBSD Foundation kan gevonden worden in http://people.FreeBSD.org/~jdp/foundation/announcement.html[The FreeBSD Foundation -- an Introduction]. Om de Foundation per email te bereiken, schrijft u naar mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org]. ==== 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 link:https://www.FreeBSD.org/donations/[Donations Liaison Office]. diff --git a/documentation/content/pt-br/articles/contributing/_index.adoc b/documentation/content/pt-br/articles/contributing/_index.adoc index 7844a32dce..a925b0beca 100644 --- a/documentation/content/pt-br/articles/contributing/_index.adoc +++ b/documentation/content/pt-br/articles/contributing/_index.adoc @@ -1,436 +1,436 @@ --- title: Contribuindo com o FreeBSD authors: - author: Jordan Hubbard - author: Sam Lawrance - author: Mark Linimon trademarks: ["freebsd", "ieee", "general"] --- = Contribuindo com o FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Resumo Este artigo descreve maneiras diferentes sobre como um indivíduo ou organização pode contribuir com o Projeto FreeBSD. ''' toc::[] Então você quer contribuir com o FreeBSD? Isso é ótimo! O FreeBSD _depende_ das contribuições da sua base de usuários para sobreviver. Suas contribuições não são apenas apreciadas, elas são vitais para que o FreeBSD continue crescendo. Um grande e crescente número de contribuidores internacionais, de uma grande variedade de idade e áreas de conhecimento técnico, desenvolvem o FreeBSD. Sempre existe mais trabalho a ser feito do que pessoas disponíveis para realizá-lo, e mais ajuda é sempre bem vinda. Como um voluntário, o que você pode fazer só é limitado pelo que você quer fazer. Entretanto, o que lhe pedimos é que esteja ciente a respeito do que outros membros da comunidade FreeBSD esperará de você. Você pode querer levar isso em consideração antes de decidir se voluntariar. O Projeto FreeBSD é responsável por um ambiente completo de sistema operacional, em vez de apenas um kernel ou alguns utilitários dispersos. Assim sendo, nossa lista [.filename]#TODO# passa por uma grande variedade de tarefas: da documentação do sistema, testes de versão beta e apresentação, ao instalador do sistema e outros tipos altamente especializados de desenvolvimento do kernel. Pessoas de qualquer nível de conhecimento, em quase qualquer área, quase que certamente poderá ajudar no projeto. Entidades comerciais engajadas em iniciativas relacionadas ao FreeBSD também são encorajadas a entrar em contato conosco. Você precisa de uma extensão especial para fazer seu produto funcionar? Você vai nos encontrar receptivos às suas solicitações, considerando que não sejam muito estranhas. Está trabalhando em um produto de valor adicionado? Por favor nos informe! Podemos ser capazes de trabalhar cooperativamente em algum aspecto dele. O mundo do software livre está desafiando muitas premissas sobre como um software é desenvolvido, vendido e mantido, e nós pedimos que você pelo de uma segunda olhada. [[contrib-what]] == O que é necessário A lista de tarefas e sub-projetos a seguir representa algo como uma amálgama de várias listas de [.filename]#TODO# e outras solicitações. [[non-programmer-tasks]] === Tarefas em execução por não-programadores. Muitas pessoas que estão envolvidas com o FreeBSD não são programadores. O Projeto inclui escritores de documentação, Web designers, e pessoas de suporte. Todas estas pessoas contribuem investindo tempo e sua vontade de aprender. . Leia o FAQ e Handbook periodicamente. Se algo estiver explicado de forma pobre, ambígua, desatualizada ou incorreta, nos comunique. Melhor ainda, envie-nos uma versão ajustada (O formato Docbook não é difícil de aprender, mas não existem objeções em relação ao envio de material no formato ASCII). . Ajude a traduzir a documentação do FreeBSD para a sua linguagem nativa. Se a documentação já existe na sua língua, você pode ajudar a traduzir documentos adicionais ou verificar se as traduções estão atualizadas e corretas. Primeiro dê uma olhada no extref:{fdp-primer}[FAQ de Traduções, translations] contido no Manual de Documentação do Projeto FreeBSD. Você não estará se comprometendo a traduzir toda a documentação do FreeBSD fazendo isto - como um voluntário, você pode fazer tantas quantas traduções desejar. Uma vez que alguém começa a traduzir, outros se unem ao esforço. Se você tem tempo ou energia para traduzir apenas uma parte da documentação, por favor traduza as instruções de instalação. . Leia a http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions[lista de discussão para perguntas gerais sobre o FreeBSD] ocasionalmente (ou regularmente se possível). Pode ser muito recompensador compartilhar a sua experiência e ajudar outras pessoas a resolverem seus problemas; Às vezes você poderá até aprender algo novo! Estes fóruns também podem ser uma fonte de ideias de coisas a serem melhoradas. [[ongoing-programmer-tasks]] === Tarefas em execução por programadores A maioria das tarefas listadas aqui requerem um investimento considerável de tempo ou conhecimento profundo do kernel do FreeBSD; ou, ambos. Entretanto, também existem muitas tarefas úteis que são apropriadas para os "hackers de final de semana". . Se você executa o FreeBSD-CURRENT e possui uma boa conexão com a Internet, existe uma máquina `current.FreeBSD.org` a qual compila uma release completa uma vez por dia - de vez em quando, tente instalar uma destas versões e informe quaisquer problemas no processo. . Leia a http://lists.FreeBSD.org/mailman/listinfo/freebsd-bugs[Lista de discussão de relatórios de problemas do FreeBSD]. Talvez exista um problema que você possa comentar construtivamente ou existam correções que você possa testar. Ou você pode até consertar um dos problemas por conta própria. . Se você souber de qualquer problema que tenha sido corrigido com sucesso no -CURRENT e cuja correção não tenha sido aplicada ao -STABLE após um intervalo razoável de tempo (normalmente algumas semanas), envie ao committer um lembrete educado. . Mova as contribuições de software para [.filename]#src/contrib# na árvore do código fonte. . Tenha certeza que o código disponível em [.filename]#src/contrib# está atualizado. . Compile o sistema (ou apenas uma parte dele) com um nível de debug extra habilitado e corrija a causa dos alertas encontrados. . Corrija os alertas existentes para os ports que ainda fazem coisas ultrapassadas tais como utilizar `gets()` ou incluir [.filename]#malloc.h#. . Se você contribuiu com algum dos ports, e teve que fazer alguma mudança específica para o FreeBSD, envie suas correções de volta aos autores originais (isto tornará sua vida mais fácil quando eles lançarem a próxima versão). . Consiga cópias de padrões formais tais como o POSIX(R). Compare o comportamento do FreeBSD àquele requerido pelo padrão. Se o comportamento diferir, particularmente em pontos sutis ou obscuros da especificação, envie-nos um PR sobre ele. Se você for capaz, descubra como corrigi-lo e inclua um patch em seu PR. Se você acredita que o padrão está errado, peça ao comitê de padrões que considere a pergunta. . Sugira novas tarefas para esta lista! === Trabalhe no banco de dados de PR (relatório de problemas) A https://bugs.FreeBSD.org/search/[Lista de PRs do FreeBSD] mostra todos os relatórios de problemas ativos no momento e os pedidos de melhoria que foram submetidos pelos usuários do FreeBSD. O banco de dados inclui tarefas para programadores e para não-programadores. Consulte os PRs abertos, e veja se algum deles é de seu interesse. Alguns deles podem ser tarefas muito simples que necessitam apenas que um par extra de olhos olhe para eles e confirme que a correção proposta funciona. Outros podem ser muito mais complexos, ou podem nem ter vindo com uma correção. Comece com os PRs que ainda não foram atribuídos a ninguém. Se um PR estiver atribuído a outra pessoa, mas se parecer com algo que você possa cuidar, envie um e-mail para a pessoa encarregada do mesmo e pergunte se você pode trabalhar nele -- ele pode já ter um patch pronto para ser testado, ou você pode discutir novas idéias com ele. === Tarefas em andamento relacionadas a coleção de Ports A coleção de Ports é um trabalho permanente em andamento. Queremos fornecer aos nossos usuários um repositório de software de terceiros fácil de usar, atualizado e de alta qualidade. Precisamos que as pessoas doem parte de seu tempo e esforço para nos ajudar a alcançar esse objetivo. Qualquer um pode se envolver e existem muitas maneiras diferentes de fazer isso. Contribuir para a coleção de ports é uma excelente maneira de ajudar "a devolver algo" ao projeto. Se você está procurando um papel contínuo ou um desafio divertido para um dia chuvoso, nós adoraríamos ter a sua ajuda! Existem várias maneiras fáceis de contribuir para manter a árvore de ports atualizada e em boas condições de funcionamento: * Encontre algum software legal ou útil e extref:{porters-handbook}[crie um port] para ele. * Existe um grande número de ports que não possuem nenhum mantenedor. Torne-se um mantenedor e <>. * Se você criou ou adotou um port, esteja ciente <>. * Quando estiver procurando um desafio você poderá <>. === Escolha um dos itens da "`página de idéias`" A https://wiki.freebsd.org/IdeasPage[lista de projetos do FreeBSD e de idéias para voluntários] também está disponível para as pessoas dispostas a contribuir com o projeto FreeBSD. Esta lista é atualizada regularmente e contém itens tanto para programadores e como para não programadores e traz ainda informações sobre cada projeto . [[contrib-how]] == Como Contribuir Contribuições para o sistema geralmente se enquadram em uma das 5 categorias seguintes: [[contrib-general]] === Relatórios de Bugs e Comentários Gerais Uma ideia ou sugestão técnica de interesse _geral_ deverá ser enviada para a http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers[Lista de discussão de assuntos técnicos do FreeBSD]. Da mesma forma, pessoas com este tipo de interesse (e tolerância para um _alto_ volume de mensagens!) poderão assinar a http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers[Lista de discussão de assuntos técnicos do FreeBSD]. Veja o extref:{handbook}eresources[Handbook do FreeBSD, eresources-mail] para mais informações sobre esta e outras listas. Se você encontrar um bug ou estiver enviando uma mudança específica, por favor relate-o usando o https://bugs.FreeBSD.org/submit/[relatório de envio de bug]. Tente preencher cada campo com do relato de bug. A não ser que exceda 65KB, inclua qualquer correção diretamente no relatório. Se o patch é apropriado para ser aplicado na árvore do código fonte coloque `[PATCH]` no resumo do relatório. Ao incluir patches, _não_ use copiar-e-colar, pois o copiar-e-colar transforma tabs em espaços e os torna inúteis. Quando os patches são muito maiores que 20KB, considere comprimi-los (por exemplo, com man:gzip[1] ou man:bzip2[1]) antes de fazer o envio. Após preencher o relatório, você receberá a confirmação com o número de rastreamento. Guarde este número para que você possa nos atualizar com detalhes sobre do problema. Veja também extref:{problem-reports}[este artigo] sobre como escrever bons relatórios de problemas. === Mudanças na Documentação Mudanças na documentação são supervisionadas pela http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc[lista de documentação do projeto FreeBSD]. Por favor veja o extref:{fdp-primer}[Manual do Projeto de Documentação do FreeBSD] para instruções completas. Envie contribuições e mudanças (mesmo as pequenas são bem vindas!) utilizando o mesmo método de qualquer outro relatório de bug. === Mudanças no Código Fonte Existente Um acréscimo ou mudança em um código fonte existe é um tema um pouco complicado e depende muito de como você está desatualizado com o estado atual do desenvolvimento do FreeBSD. Existe uma release especial do FreeBSD em andamento conhecida como "FreeBSD-CURRENT" que é disponibilizada de várias maneiras para conveniência dos desenvolvedores que trabalham ativamente no sistema. Veja o extref:{handbook}updating-upgrading[Handbook do FreeBSD, current-stable] para mais informação sobre como obter e usar o FreeBSD-CURRENT. Trabalhar com versões antigas do código, infelizmente, muitas vezes significa que as suas alterações serão demasiadamente obsoletas ou muito divergentes para possibilitar uma fácil re-integração ao FreeBSD. As possibilidades de que isso ocorra podem ser minimizadas um pouco através da sua inscrição na http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce[lista de distribuição de comunicados oficiais do projeto FreeBSD] e na http://lists.FreeBSD.org/mailman/listinfo/freebsd-current[lista de discussão do FreeBSD-CURRENT], nas quais as discussões sobre o estado atual do sistema ocorrem. Supondo que você consiga obter acesso à uma versão razoavelmente atualizada do código fonte do sistema para basear as suas alterações, o próximo passo é produzir um conjunto de diffs para enviar aos mantenedores do FreeBSD. Isto é feito com o comando man:diff[1]. O formato preferido do man:diff[1] para o envio de um patch, é o formato de saída unificada gerado pelo comando `diff -u`. [source,shell] .... % diff -u oldfile newfile .... ou [source,shell] .... % diff -u -r -N olddir newdir .... deverá gerar um conjunto de diffs unificados para o arquivo de origem informado ou para a hierarquia de diretórios. Consulte o manual do man:diff[1] para maiores informações. Uma vez que você tenha o conjunto de diffs (os quais você pode testar com o comando man:patch[1]), você deve submetê-lo para inclusão no FreeBSD por meio de um relatório de bug. Você _não_ deve enviar os diffs para a http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers[lista de discussão de assuntos técnicos do FreeBSD] ou eles irão se perder! Agradecemos imensamente a sua submissão (este é um projeto voluntário!); Devido ao alto volume de trabalho, nós podemos não ser capazes de resolvê-lo imediatamente, mas ele permanecerá em nosso banco de dados até que o façamos. Marque a sua submissão incluindo a palavra `[PATCH]` na sinopse do relatório. Se você achar adequado (por ex. você adicionou, deletou ou renomeou arquivos), agrupe as suas mudanças em um arquivo `tar`. Arquivos criados com o man:shar[1] também são bem vindos. Se as suas mudanças são de uma natureza potencialmente sensível, por exemplo, se você não tiver certeza sobre os problemas de direitos autorais que regerão sua distribuição no futuro, envie-as para o Core Team mailto:core@FreeBSD.org[core@FreeBSD.org] ao invés de submetê-las por meio de um relatório de bug. O FreeBSD Core Team mailto:core@FreeBSD.org[core@FreeBSD.org] é formado por um grupo muito pequeno de pessoas as quais cuidam de muitas das tarefas diárias de administração do projeto FreeBSD. Observe que este grupo também é _muito ocupado_ e portanto você só deve enviar um e-mail para eles se for realmente necessário. Por favor, consulte os manuais man:intro[9] e man:style[9] para algumas informações sobre estilo de codificação. Nós apreciaríamos se você estivesse ao menos ciente destas informações antes de submeter o seu código. === Código novo ou pacotes de maior valor agregado No caso de uma contribuição significativa de um trabalho de grande porte, ou a adição de uma nova característica importante ao FreeBSD, torna-se quase sempre necessário que se envie as alterações em um arquivo tar ou então que se faça o upload das mesmas para um servidor WWW ou FTP para que as outras pessoas possam acessá-las. Se você não possui acesso a um servidor WWW ou FTP, pergunte em uma lista de discussão apropriada do FreeBSD se alguém pode hospedar essas alterações para você. Quando se trabalha com grandes quantidades de código, o sensível assunto de direitos autorais invariavelmente vem a tona. O Projeto FreeBSD prefere licenças de software livre tais como BSD ou ISC. Licenças copyleft, como a GPLv2, às vezes são permitidas. A lista completa pode ser encontrada na página sobre a link:https://www.FreeBSD.org/internal/software-license/[política de licenciamento do core team]. === Dinheiro ou Hardware Nós ficamos sempre muito felizes em aceitar doações para agregar a causa do Projeto FreeBSD, em um esforço voluntário como o nosso, um pouco pode significar muito! Doações de hardware também são muito importantes para expandir a nossa lista de periféricos suportados, uma vez que normalmente não temos recursos para comprar estes itens nós mesmos. [[donations]] ==== Doando Dinheiro A Fundação FreeBSD é uma entidade sem fins lucrativos e isenta de impostos, estabelecida com o objetivo de promover os objetivos do Projeto FreeBSD. Como uma entidade 501(c)3, a fundação é isenta de recolher as taxas do governo federal, bem como as do Estado do Colorado. As doações para uma entidade isenta de impostos são frequentemente dedutíveis dos impostos federais. As doações podem ser enviadas através de cheques para: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** A Fundação FreeBSD é agora capaz de receber doações através da web com o PayPal. Para fazer uma doação, por favor visite o https://www.freebsdfoundation.org[website a Fundação]. Maiores informações sobre a Fundação FreeBSD podem ser obtidas no documento https://people.FreeBSD.org/~jdp/foundation/announcement.html[A Fundação FreeBSD - Uma introdução]. Para contatar a Fundação por e-mail, escreva para mailto:info@FreeBSDFoundation.org[info@FreeBSDFoundation.org]. ==== Doando Hardware O projeto FreeBSD aceita alegremente doações de hardware para os quais pode encontrar bom uso. Se você estiver interessado em doar componentes de hardware, por favor contate o link:https://www.FreeBSD.org/donations/[Escritório de Relacionamento com Doadores]. [[ports-contributing]] == Contribuindo com a coleção de ports [[adopt-port]] === Adotando um port não mantido ==== Escolhendo um port não mantido Assumir a manutenção de um port sem mantenedor é uma ótima maneira de se envolver. Os ports sem mantenedor só são atualizados e corrigidos quando alguém se oferece para trabalhar neles. Há um grande número de ports não mantidos. É uma boa ideia começar com a adoção de uma port que você usa regularmente. Os ports sem um responsável tem o seu `MAINTAINER` configurado como `ports@FreeBSD.org`. Uma lista com todos os ports nesta situação, bem como os seus erros atuais e os seus relatórios de problemas pode ser visualizada no http://portsmon.FreeBSD.org/portsconcordanceformaintainer.py?maintainer=ports%40FreeBSD.org[Sistema de Monitoração da coleção de ports do FreeBSD]. Alguns ports afetam um grande número de outros devido a dependências e relacionamentos de ports escravos. Geralmente, esperamos que as pessoas tenham alguma experiência antes de se voluntariarem para manter tais ports. Você pode verificar se um port tem ou não dependências ou se outros ports dependem dele consultando o índice mestre de ports chamado [.filename]#INDEX#. (O nome do arquivo varia de acordo com a versão do FreeBSD; por exemplo, [.filename]#INDEX-8#.) Alguns ports têm dependências condicionais que não estão incluídas na construção do [.filename]#INDEX# padrão. Esperamos que você seja capaz de reconhecer estes ports através da analise do arquivo [.filename]#Makefile# de outros ports. ==== Como adotar o port Primeiro, certifique-se de entender quais serão as suas <>. Leia também o extref:{porters-handbook}[Porter's Handbook]. _Por favor, não se comprometa com mais do que você acha que pode lidar sem se sobrecarregar._ Você pode solicitar para se tornar o responsável pela manutenção de qualquer port que não esteja sendo mantido por outra pessoa assim que desejar. Basta definir o parâmetro `MAINTAINER` para o seu próprio endereço de e-mail e enviar um PR (Relatório de Problemas) com a alteração. Se o port tiver erros de compilação ou precisar de atualização, você pode aproveitar para incluir quaisquer outras alterações que sejam necessárias neste mesmo PR. Isso irá acelerar o processo pois muitos committers não estão dispostos a atribuir a responsabilidade de manutenção de um port para alguém que não tenha um histórico conhecido com o FreeBSD. O envio de PRs (relatórios de problema) para corrigir erros de compilação ou para atualizar um port é a melhor maneira de estabelecer este histórico. Submeta o seu relatório de problema na categoria `ports` e utilize a classe `change-request`. Um committer irá examinar o seu relatório, confirmará as alterações e, por fim, fechará o relatório. Às vezes, esse processo pode demorar um pouco (os committers também são voluntários). [[maintain-port]] === O desafio para os mantenedores de um port Esta seção lhe dará uma ideia do motivo pelo qual os ports precisam ser mantidos e descreve as responsabilidades de um mantenedor de ports. [[why-maintenance]] ==== Por que os ports requerem manutenção Criar um port é uma tarefa eventual. Mas garantir que um port esteja sempre atualizado e que continue a ser compilado e executado corretamente requer um esforço de manutenção contínuo. Os mantenedores são as pessoas que dedicam parte do seu tempo para atingir esses objetivos. O principal motivo pelo qual a coleção de ports precisa de manutenção é o de trazer os mais recentes e o melhores softwares de terceiros para a comunidade FreeBSD. Um desafio adicional é manter os ports individuais funcionando dentro do framework da coleção de ports à medida que ela evolui. Como mantenedor, você precisará gerenciar os seguintes desafios: * *Novas versões e atualizações de software.* Novas versões e atualizações de software são disponibilizadas o tempo todo para os aplicativos já convertidos, e elas precisam ser incorporadas à Coleção de Ports a fim de prover software atualizado. * *Mudanças nas dependências.* Se forem feitas alterações significativas nas dependências do seu port, talvez seja necessário atualizá-las para que ele continue funcionando corretamente. * *Mudanças que afetem os ports que dependem do seu.* Se outros ports dependerem de um port que você mantém, as mudanças no seu port podem requerer um alinhamento prévio com outros mantenedores. * *Interação com outros usuários, mantenedores e desenvolvedores.* Parte de ser um mantenedor é assumir uma função de suporte. Não existe a expectativa de que você ofereça suporte de uma maneira geral (mas você é bem vindo se quiser fazer isso). O que você deve prover é um ponto de coordenação para as questões específicas do FreeBSD relacionadas aos seus ports. * *Caça aos bugs* Um port pode ser afetado por bugs específicos do FreeBSD. Você precisará investigar, encontrar e consertar estes bugs quando forem reportados. Testar meticulosamente um port para identificar todos os seus possíveis problemas antes que ele seja adicionado à Coleção de Ports é ainda melhor. * *Alterações na infraestrutura e política de ports.* Ocasionalmente os sistemas utilizados para construir os ports e pacotes são atualizados ou uma nova recomendação que afeta a infraestrutura é realizada. Você deverá estar atento a estas mudanças caso seus ports sejam afetados e necessitem de atualização. * *Mudanças no sistema base.* O FreeBSD está em constante desenvolvimento. Mudanças no software, bibliotecas, kernel ou até mesmo mudanças de políticas podem resultar em necessidade de mudança nos ports. ==== Responsabilidades do mantenedor ===== Manter seus ports atualizados Esta seção descreve o processo a ser seguido para manter seus ports atualizados. Esta é uma visão geral. Mais informações sobre a atualização de um port está disponível no extref:{porters-handbook}[Porter's Handbook]. [.procedure] . Preste atenção às atualizações + Monitorar os fabricantes upstream em relação a liberação de novas versões, patches e correções de segurança para o software. Listas de discussão de anúncios ou páginas web de noticias sobre o software são úteis para este propósito. Algumas vezes os usuários entrarão em contato com você perguntando quando seu port será atualizado. Se você estiver ocupado com outras atividades ou devido a qualquer outra razão não puder realizar a atualização naquele momento, pergunte se o usuário pode te ajudar enviando uma atualização. + Você também pode receber emails automáticos do `Verificador de Versões de Ports do FreeBSD` informando a você que uma nova versão do disftile do seu port está disponível. Mais informações sobre este sistema (incluindo como deixar de receber seus emails no futuro) serão enviadas na mensagem. . Incorporar mudanças + Quando estiverem disponíves, incorpore as mudanças em seu port. Você precisa ser capaz de gerar um patch entre o port original e o port atualizado. . Revisão e teste + Examine cuidadosamente e teste as suas mudanças ** Compile, instale e teste o seu port em todas plataformas e arquiteturas que você puder. É comum um port funcionar em uma branch ou plataforma e falhar em outra. ** Certifique-se de que as dependências do seu port estão completas. A maneira recomendada de fazer isso é instalando seu próprio ports tinderbox. Consulte a seção sobre <> para mais informações. ** Verifique se a lista de componentes do pacote está atualizada. Isto envolve adicionar novos arquivos e diretórios , bem como remover as entradas sem uso. ** Verifique seu port usando o man:portlint[1] como um guia. Consulte a seção sobre <> para informações importantes sobre o uso do portlint. ** Considere se as mudanças no seu port podem fazer com que outros ports tenham problemas. Se este for o caso, coordene as mudanças com os mantenedores destes ports. Isto é especialmente importante se a sua atualização modifica a versão de uma biblioteca compartilhada; neste caso, os ports afetados precisarão obter no mínimo um incremento no seu `PORTREVISION` para que eles possam ser atualizados automaticamente por ferramentas automatizadas como o portmaster ou o man:portupgrade[1]. . Envie as alterações + Submeta sua atualização enviando um relatório de problema (PR) com uma explicação das alterações e um patch contendo as diferenças entre o port original e a versão atualizada. Por favor, consulte o artigo extref:{problem-reports}[Escrevendo um Relatório de Problema para o FreeBSD] para mais informações sobre como escrever um PR realmente bom. + [NOTE] ==== Por favor não submeta um arquivo man:shar[1] do port inteiro, ao invés disso, utilize o comando man:diff[1] `-ruN`. Desta forma, os committers podem ver com mais facilidade exatamente quais alterações estão sendo feitas. Consulte a seção extref:{porters-handbook}[Upgrading, port-upgrading] do Porter's Handbook para maiores informações. ==== . Aguarde + Em algum momento, um commiter lidará com o seu PR. Isto pode levar alguns minutos ou pode levar semanas - portanto, seja paciente. . Dê feedback + Se um committer encontrar um problema nas suas alterações, ele provavelmente o encaminhará de volta para você. Uma resposta rápida a este contato irá ajudá-lo a ter o seu PR resolvido mais rapidamente. É muito importante manter o canal de comunicação aberto para agilizar a resolução de qualquer eventual problema. . E finalmente + As suas alterações serão incorporadas na arvore de código fonte e o seu port será atualizado. O PR então será fechado pelo committer. É isso! ===== Certifique-se de que seus ports continuem a ser compilados corretamente Esta seção é sobre a descoberta e a solução de problemas que fazem seus ports deixarem de ser compilados corretamente. O projeto FreeBSD garante o funcionamento da coleção de Ports apenas na branch `-STABLE`. Teoricamente, você deve será capaz de garantir o funcionamento do port ao executá-lo na ultima release de cada branch(já que não se espera que as ABIs mudem), mas se você puder executar a branch, será ainda melhor. Como a maioria das instalações do FreeBSD rodam em máquinas compatíveis com o PC (o que é chamado de arquitetura `i386`), esperamos que você mantenha o port funcionando nesta arquitetura. Nós preferimos que os ports também funcionem de forma nativa na arquitetura `amd64`. É completamente justo pedir ajuda caso você não tenha uma dessas máquinas para fazer seus testes. [NOTE] ==== Os padrões usuais nas falhas para máquinas não-`x86` são que os programadores originais assumiram que, por exemplo, os ponteiros são `int`-s, ou que um compilador gcc mais antigo seria utilizado. Cada vez mais, os autores de aplicativos estão retrabalhando o código das suas aplicações para remover essas suposições - mas se o autor não estiver mantendo ativamente o código, talvez seja necessário que você mesmo faça isso. ==== Estas são as tarefas que você precisa executar para garantir que o seu port pode ser compilado: [.procedure] . Preste atenção para falhas de compilação + Confira o seu e-mail e busque por mensagens do `pkg-fallout@FreeBSD.org` e consulte o http://portscout.FreeBSD.org[scanner de arquivos distfiles] para verificar se algum dos ports que estão falhando na compilação estão desatualizados. . Colete informação + Quando você estiver ciente de um problema, colete informações para ajudá-lo a solucioná-lo. Os erros de compilação relatados pelo `pkg-fallout` são acompanhados por logs que mostram onde a compilação falhou. Se a falha foi reportada para você por um usuário, peça para que ele lhe envie informações que possam ajudar no diagnóstico do problema, tais como: ** Logs de compilação ** Os comandos e opções usados para compilar o port (incluindo opções definidas no [.filename]#/etc/make.conf#) ** Uma lista dos pacotes instalados no sistema como mostrado pelo comando man:pkg-info[8] ** A versão do FreeBSD que ele está executando como mostrado pelo comando man:uname[1] `-a` ** Quando a coleção de ports dele foi atualizada pela última vez ** Quando a árvore de ports e o arquivo [.filename]#INDEX# dele foram atualizados pela última vez . Investigue e encontre uma solução + Infelizmente não existe nenhum processo direto a ser seguido para fazer isso. Porém, lembre-se: se você está emperrado, peça ajuda! A http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports[lista de discussão de ports do FreeBSD] é um bom lugar para começar, e os desenvolvedores de upstream são frequentemente muito prestativos. . Envie as alterações + Assim como na atualização de um port, agora você deve incorporar as alterações, revisar, testar e enviar suas alterações em um relatório de problemas (PR) e fornecer feedback, se solicitado. . Envie os patches para os autores upstream + Em alguns casos, você terá que fazer um patch para que um port execute no FreeBSD. Alguns (mas não todos) autores upstream aceitarão incorporar tais patches em seu código na próxima versão. Se eles aceitarem, isto poderá até ajudar os usuários de outros sistemas BSD e talvez evitar um esforço duplicado. Por favor, considere o envio aos autores de quaisquer patches aplicáveis como uma cortesia. ===== Investigue relatórios de bugs e PRs relacionados ao seu port Esta seção é sobre como descobrir e corrigir bugs. Bugs específicos do FreeBSD são causados geralmente por suposições sobre os ambientes de compilação e execução que não se aplicam ao FreeBSD. É pouco provável que você encontre um problema desse tipo, mas se encontrar ele poderá ser mais sutil e difícil de diagnosticar. Estas são as tarefas que você precisa executar para garantir que o seu port continuará funcionando como pretendido: [.procedure] . Responda os relatórios de bugs + Bugs podem ser reportados para você por e-mail através do https://bugs.FreeBSD.org/search/[Sistema de Relatório de Problemas]. Os bugs também podem ser reportados diretamente a você pelos usuários. + Você deve responder os PRs (Relatório de Problemas) e outros relatórios dentro de 14 dias, mas por favor, tente não levar tanto tempo. Tente responder o mais rápido possível, mesmo que seja apenas para dizer que você precisa de mais algum tempo antes de poder trabalhar no PR. + Se você não tiver respondido após 14 dias, qualquer committer poderá efetuar o commit de um PR que você não tenha respondido por meio da regra de `maintainer-timeout`. . Colete informação + Se a pessoa que reportou o bug não tiver fornecido uma correção, você precisará coletar as informações que permitirão gerar uma. + Se o bug for reproduzível, você poderá coletar a maior parte das informações necessárias você mesmo. Caso contrário, peça à pessoa que relatou o bug para coletar as informações para você, tais como: ** Uma descrição detalhada das suas ações, comportamento esperado e comportamento real do aplicativo ** Cópias dos dados de entrada usados para acionar o bug ** Informações sobre seu ambiente de compilação e execução - por exemplo, uma lista de pacotes instalados e a saída de man:env[1] ** Core dumps ** Stack traces . Elimine os relatórios incorretos + Alguns relatórios de erros podem estar incorretos. Por exemplo, o usuário pode ter simplesmente usado de forma errada o programa; ou seus pacotes instalados podem estar desatualizados e precisam ser atualizados. Às vezes, um bug relatado não é específico do FreeBSD. Neste caso relate o bug para os desenvolvedores upstream. Se você for capaz de corrigir o bug, você também poderá criar um patch do port para que a correção seja aplicada antes da próxima versão do upstream. . Encontre uma solução + Tal como acontece com erros de compilação, você precisará encontrar uma correção para o problema. Mais uma vez, lembre-se de perguntar se você estiver emperrado! . Envie ou aprove alterações + Assim como na atualização de um port, agora você deve incorporar alterações, revisar, testar e enviar suas alterações em um PR (ou enviar um follow-up se já existir um PR para o problema). Se outro usuário tiver enviado alterações no PR, você também poderá enviar um follow-up dizendo se aprova ou não as alterações. ===== Forneça Suporte Parte de ser um mantenedor é prover suporte - não para o software em geral - mas para o port e quaisquer peculiaridades e problemas específicos dele no FreeBSD. Os usuários podem entrar em contato com dúvidas, sugestões, problemas e patches. Na maioria das vezes, sua correspondência será específica para o FreeBSD. Ocasionalmente, você pode ter que invocar suas habilidades diplomáticas, e gentilmente, direcionar os usuários que buscam suporte genérico para os recursos apropriados. Com menos frequência você encontrará uma pessoa perguntando por que os `RPMS` não estão atualizados ou como eles podem fazer o software rodar sob o Foo Linux. Aproveite a oportunidade para dizer a eles que o seu port está atualizado (se estiver, é claro!) e sugira que eles experimentem o FreeBSD. Às vezes, os usuários e os desenvolvedores podem decidir que você é uma pessoa ocupada cujo tempo é valioso e farão parte do trabalho para você. Por exemplo, eles podem: * enviar um PR ou lhe enviar patches para atualizar o seu port, * investigar e talvez fornecer uma correção para um PR, ou * caso contrário, enviar alterações para o seu port. Nestes casos, a sua principal obrigação é responder rapidamente. Mais uma vez, o tempo limite para mantenedores não responsivos é de 14 dias. Após esse período, as alterações podem ser aceitas mesmo sem terem sido aprovadas. Eles se deram ao trabalho de fazer isso por você; por favor, tente pelo menos responder prontamente. Em seguida, revise, aprove, modifique ou discuta as alterações com eles o mais rápido possível. Se você puder fazê-los sentir que a contribuição deles é apreciada (e deveria ser), você terá uma chance maior de persuadi-los a fazer mais coisas para você no futuro :-). [[fix-broken]] === Encontre e conserte um port quebrado Existem dois lugares realmente bons para se encontrar um port que precisa de alguma atenção. Você pode usar a https://bugs.freebsd.org/search[interface web] do banco de dados dos Relatório de Problemas para pesquisar e visualizar os PRs não resolvidos. A maioria dos PRs relacionados aos ports são atualizações, mas com um pouco de pesquisa e análise das sinopses você deve encontrar algo interessante para trabalhar (a classe `bug-bug` é um bom lugar para começar). O outro lugar é o http://portsmon.FreeBSD.org/[Sistema de Monitoramento de Ports do FreeBSD]. Em particular, procure por ports sem mantenedores com erros de compilação e por ports marcados com `BROKEN`. Não existe nenhum problema em também enviar alterações para um port com um mantenedor ativo, mas antes lembre-se de consultar o mantenedor para o caso dele já estar trabalhando no problema. Depois de encontrar um bug ou problema, colete informações, investigue e corrija! Se houver um PR existente, de seguimento a ele. Caso contrário, crie um novo PR. Suas alterações serão analisadas e, se tudo estiver OK, elas serão aceitas e incorporadas. [[mortal-coil]] === Quando parar À medida que seus interesses e compromissos mudam, você pode descobrir que não tem mais tempo para continuar com algumas (ou todas) as suas contribuições para a coleção de ports. Tudo bem! Por favor, nos avise se você não estiver mais usando um port ou se não tiver mais tempo ou interesse em ser um mantenedor. Desta forma, podemos seguir em frente e permitir que outras pessoas tentem trabalhar nos problemas existentes com o port sem termos que esperar por sua resposta. Lembre-se, o FreeBSD é um projeto voluntário, então se a manutenção de um port não for mais divertida, provavelmente é hora de deixar alguém fazer isso! De qualquer forma, a Equipe de Gerenciamento da Coleção de Ports (`portmgr`) reserva-se o direito de redefinir o seu status de mantenedor se você não tiver mantido ativamente o seu port durante um determinado período de tempo. (Atualmente, este período é definido como 3 meses.) Com isso, queremos dizer que existem problemas não resolvidos ou atualizações pendentes que não foram tratadas por você durante esse período. [[resources]] === Recursos para mantenedores de ports e contribuidores O extref:{porters-handbook}[Porter's Handbook] é o seu Guia de Mochileiro para o sistema de ports. Mantenha-o à mão! O artigo extref:{problem-reports}[Escrevendo um relatório de problemas para o FreeBSD] descreve como melhor formular e enviar um PR. Em 2005, foram submetidos mais de onze mil relatórios de problemas relacionados aos ports! Ao seguir as boas práticas descritas neste artigo você nos ajudará a reduzir em muito o tempo necessário para lidar com seus PRs. O https://bugs.freebsd.org/bugzilla/query.cgi[Banco de dados de problemas reportados]. O http://portsmon.FreeBSD.org/[Sistema de Monitoramento de Ports do FreeBSD] pode mostrar informações cruzadas sobre os ports, tais como erros de compilação e relatórios de problemas. Se você é um mantenedor, você pode usá-lo para verificar o status de compilação dos seus ports. Como colaborador, você pode usá-lo para encontrar ports quebrados e ports sem um mantenedor ativo que precisam ser consertados. O http://portscout.FreeBSD.org[scanner de arquivos distfile] da coleção de ports do FreeBSD pode lhe mostrar os ports para os quais os arquivos distfiles não estão disponíveis. Você pode utilizá-lo para verificar seus próprios ports ou para encontrar ports que precisam ter seu `MASTER_SITES` atualizado. O uso do package:ports-mgmt/poudriere[] é a maneira mais completa de testar um port durante todo o ciclo de instalação, empacotamento e desinstalação. A documentação está localizada no https://github.com/freebsd/poudriere[Repositório do poudriere no github] O man:portlint[1] é uma aplicação que pode ser utilizada para verificar se o seu port está em conformidade com muitas diretrizes importantes de estilo e função. O portlint é um aplicativo heurístico simples, portanto você deve usá-lo __apenas como um guia__. Se o portlint sugerir alterações que não sejam razoáveis, consulte o extref:{porters-handbook}[Porter's Handbook] ou peça conselhos. A http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports[Lista de discussão de ports do FreeBSD ] é destinada para discussões gerais relacionadas aos ports. É um bom lugar para pedir ajuda. Você pode se https://lists.freebsd.org/mailman/listinfo[inscrever, ler e pesquisar os arquivos da lista]. Ler os arquivos da http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-bugs[Lista de discussão sobre bugs dos ports do FreeBSD] e as http://lists.FreeBSD.org/mailman/listinfo/svn-ports-head[mensagens de commit no SVN da árvore de ports para head/] também pode ser interessante. [[ideas-contributing]] == Começando em outras áreas Procurando por algo interessante para começar, e que não foi mencionado em outras partes deste artigo? O Projeto FreeBSD tem várias páginas Wiki contendo áreas nas quais novos colaboradores podem ter ideias sobre como começar. A página https://wiki.freebsd.org/JuniorJobs[Júnior Jobs] tem uma lista de projetos que podem ser de interesse para pessoas que estão apenas começando no FreeBSD, e querem trabalhar em coisas interessantes para molhar os pés. A https://wiki.freebsd.org/IdeasPage[Página de Idéias] contém várias coisas "legais" ou "interessantes" para se trabalhar no Projeto. diff --git a/documentation/content/ru/articles/contributing/_index.adoc b/documentation/content/ru/articles/contributing/_index.adoc index c29f50bc99..16a3b6878e 100644 --- a/documentation/content/ru/articles/contributing/_index.adoc +++ b/documentation/content/ru/articles/contributing/_index.adoc @@ -1,225 +1,225 @@ --- title: Участие в проекте FreeBSD authors: - author: Джордан Хаббард trademarks: ["freebsd", "ieee", "general"] --- = Участие в проекте FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Аннотация В этой статье описаны различные способы, которыми отдельные лица и организаций могут принять участие в Проекте FreeBSD. ''' toc::[] Итак, вы хотите внести свой вклад во FreeBSD? Это великолепно! Жизнеспособность FreeBSD _основана_ на помощи её пользователей. Ваша помощь не только принимается, она жизненно необходима для продолжения роста FreeBSD. Несмотря на уверения некоторых людей, вам не нужно быть гениальным программистом или персоной, лично связанной с руководящей группой FreeBSD, чтобы ваша помощь была принята. FreeBSD разрабатывает большое и увеличивающееся количество участников со всего мира, самого разного возраста и разных областей технической экспертизы. Работы, которую необходимо сделать, всегда больше, чем разработчиков, могущих её выполнить, и дополнительная помощь всегда приветствуется. Проект FreeBSD занимается операционной системой в целом, а не только ядром или несколькими отдельными утилитами. Таким образом, в нашем [.filename]#TODO#-списке широкий спектр задач: от документации, бета-тестирования и презентаций до программы установки системы и специфических разработок уровня ядра. Люди любого уровня практически в любой области определённо смогут помочь проекту. Коммерческие структуры, связанные с использованием FreeBSD, также приглашаются к диалогу. Нужны ли вам особые расширения, для работы вашего продукта? Вы увидите, что мы отвечаем на ваши запросы, если они не слишком необычны. Вы работаете над дополнительными продуктами? Дайте нам знать! Мы сможем работать вместе над некоторыми его аспектами. Мир свободного программного обеспечения ставит под сомнение многие существующие представления о том, как программного обеспечение разрабатывается, продаётся и поддерживается, и мы настоятельно просим вас посмотреть на него ещё раз. [[contrib-what]] == Что нужно В следующем перечне представлены задачи и подпроекты, являющиеся некоторым отражением различных списков [.filename]#TODO# и запросов пользователей. [[non-programmer-tasks]] === Текущие задачи не для программистов Многие люди, связанные с FreeBSD, не являются программистами. В Проекте участвуют создатели документации, Web-дизайнеры и специалисты по поддержке пользователей. Все, что им нужно для участия, это своё время и желание учиться. . Периодически читайте FAQ и Руководство. Если что-то описано плохо, устарело или даже полностью неправильно, дайте нам знать. Ещё лучше, если вы пришлёте нам исправление (выучить Docbook не так сложно, но и против посланий в формате ASCII никто возражать не будет). . Помогите перевести документацию FreeBSD на ваш родной язык. Если документация на вашем языке уже существует, вы можете помочь перевести дополнительные документы или проверить, не устарели ли переводы. Первым делом взгляните на extref:{fdp-primer}[FAQ по переводам, translations] в Учебнике проекта документирования FreeBSD. Вас не призывают перевести все документы FreeBSD - как доброволец, вы можете делать столько переводов, сколько захотите. Если кто-то начал перевод, другие всегда присоединятся. Если у вас есть время и желание перевести одну часть документации, пожалуйста, переведите инструкции по установке. . Время от времени (или даже регулярно) читайте {freebsd-questions} и news:comp.unix.bsd.freebsd.misc. Вам может понравиться делиться своим опытом и помогать людям решать их проблемы; иногда вы сможете узнать для себя что-то новое! Эти форумы могут также стать источником идей, над которыми вам стоит поработать. [[ongoing-programmer-tasks]] === Текущие задачи для программистов Большинство задач, перечисленных здесь, требуют либо значительных затрат времени, либо глубоких знаний ядра FreeBSD, либо того и другого. Однако имеется также много полезных задач, которые подойдут для "воскресных хакеров". . Если вы работаете с FreeBSD-CURRENT и обладаете хорошим подключением к Internet, то существует машина `current.FreeBSD.org`, которая строит полный релиз ежедневно-сейчас и всегда. Попробуйте установить самый последний релиз с этой машины и сообщите обо всех обнаруженных при этом ошибках. . Читайте {freebsd-bugs}. Здесь может встретиться проблема, которую вы сможете конструктивно прокомментировать или патчи, которые вы можете протестировать. Либо вы можете даже попытаться исправить какую-то проблему самостоятельно. . Если вы знаете о существовании каких-либо исправлений ошибок, успешно применённых к -CURRENT, но ещё не перенесённых в -STABLE после достаточно большого интервала времени (обычно несколько недель), направьте коммиттеру вежливое напоминание. . Перенос стороннего программного обеспечения в каталог [.filename]#src/contrib# дерева исходных текстов. . Проверка актуальности кода в каталоге [.filename]#src/contrib#. . Построение из дерева исходных текстов (или её части) с включением режима дополнительных предупреждений, избавление от них. . Исправление предупреждений от портов, которые используют недопустимые вызовы типа `gets()` или включают файл объявлений [.filename]#malloc.h#. . Если вы создавали порты и вам приходилось делать специфичные для FreeBSD исправления, пошлите ваши патчи авторам оригинального программного обеспечения (это упростит вам жизнь при выпуске следующей версии). . Найдите копии официальных стандартов, например, POSIX(R). Вы можете найти несколько ссылок на них на странице Web-сайта link:https://www.FreeBSD.org/projects/c99/[Проекта соответствия FreeBSD стандартам C99 & POSIX]. Сравните поведение FreeBSD с тем, что определено стандартом. Если реакция отличается, особенно в незначительных или непонятных разделах спецификации, направьте об этом PR. Если можете, найдите, как исправить это и включите в PR патч. Если вы полагаете, что в стандарте есть ошибка, направьте запрос его разработчикам. . Предложите дополнительные задачи для этого списка! === Работа с базой сообщений об ошибках PR http://www.FreeBSD.org/cgi/query-pr-summary.cgi[Список сообщений об ошибках FreeBSD] содержит все актуальные сообщения о проблемах и запросы на улучшения, которые были посланы пользователями FreeBSD. База данных PR содержит задачи как для программистов, так и не для них. Просмотрите открытые PR, найдите те, что привлекут ваше внимание. Некоторые из них могут быть очень простыми, требующими лишь ещё одной пары глаз, чтобы посмотреть и подтвердить, что предлагаемое в PR исправление достаточно. Другие могут быть гораздо сложнее и даже вовсе не содержать исправления. Начните с тех PR, которые никому ещё не назначены. Если PR уже за кем-то закреплено, но содержит проблему, которую вы можете решить, направьте по электронной почте письмо человеку, которому назначено это PR, и спросите, можете ли вы поработать над ней-у них уже может готов патч для тестирования или какие-то идеи, которые можно вместе обсудить. === Выберите один из пунктов со странички "идей" http://wiki.freebsd.org/IdeasPage[Список проектов и идей для добровольцев] также доступен для людей, желающих помочь проекту FreeBSD. Список постоянно обновляется и содержит пункты, как для программистов, так и для не программистов, с информацией о каждом проекте. [[contrib-how]] == Как принять участие в работе Характер участия в работе над системой обычно подпадает под одну или несколько из следующих 5 категорий: [[contrib-general]] === Сообщения об ошибках и отзывы общего характера Идеи или пожелания _общего_ технического характера должны направляться по электронной почте в адрес {freebsd-hackers}. Подобным же образом тот, кто интересуется такими вещами (и устойчив к _большому_ потоку почты!) может подписаться на список рассылки {freebsd-hackers}. Обратитесь к extref:{handbook}eresources[Руководству FreeBSD, eresources-mail] для получения дополнительной информации об этом и других списках рассылки. Если вы нашли ошибку или предлагаете внести какое-то конкретное исправление, пожалуйста, отправьте сообщение при помощи программы man:send-pr[1] или её link:https://www.FreeBSD.org/send-pr/[Web-эквивалента]. Постарайтесь заполнить все поля в сообщении об ошибке. Если его размер оно не превышает 65 Кбайт, включите все патчи непосредственно в сообщение. Если патч предназначен для дерева исходных текстов, поместите `[PATCH]` в теме сообщения. При включении патчей _не используйте_ технику cut-and-paste, потому что при этом символы табуляции преобразуются в пробелы и патч становится непригодным к использованию. Если объём патчей превышает 20 Кбайт, лучше включать их в сообщение в сжатом виде, для чего упакуйте их (например, при помощи man:gzip[1] или man:bzip2[1]) и обработайте архив утилитой man:uuencode[1]. После отправки сообщения вы должны получить подтверждение и номер для отслеживания. Сохраните этот номер, чтобы использовать его в дальнейшем при направлении подробностей о проблеме по электронной почте на адрес {bugfollowup}. Используйте номер в качестве темы письма, например, `"Re: kern/3377"`. Дополнительная информация о любом сообщении об ошибке должна направляться этим способом. Если вы не получили подтверждения в течение разумного периода времени (от 3 дней до недели, в зависимости от вашего подключения к электронной почты) или по какой-то причине не можете воспользоваться командой man:send-pr[1], то можете попросить кого-нибудь направить сообщение за вас на адрес {freebsd-bugs}. Прочтите также extref:{problem-reports}[эту статью], чтобы узнать, как писать хорошие сообщения о проблемах. === Изменения в документации Изменения в документации обсуждаются в {freebsd-doc}. Пожалуйста, посмотрите extref:{fdp-primer}[Учебник Проекта документирования FreeBSD] для получения полных инструкций. Посылайте свои пожелания и изменения (принимаются даже самые небольшие!) при помощи man:send-pr[1], как это описано в разделе о <>. === Изменения к имеющемуся исходному коду Добавление нового исходного кода или внесение изменений в существующий является не такой простой задачей, и зависит во многом от того, насколько вы далеки от текущего состояния разработок во FreeBSD. Существуют специальные промежуточные релизы FreeBSD, известные как "FreeBSD-CURRENT", которые доступны несколькими разными способами, удобными разработчикам, активно работающим над системой. Обратитесь к extref:{handbook}updating-upgrading[Руководству FreeBSD, current-stable] для получения дополнительной информации о получении и использовании FreeBSD-CURRENT. Если вы работаете с несколько устаревшими исходными текстами, то ваши изменения иногда могут оказаться уже ненужными или слишком большими, чтобы повторно интегрировать их во FreeBSD. Уменьшить такой риск можно, подписавшись на списки рассылки {freebsd-announce} и {freebsd-current}, в которых обсуждается текущее состояние системы. Предположим, что вы смогли получить актуальные исходные тексты, на базе которых делали свои изменения. Тогда следующим шагом является создание набора файлов, отражающих ваши изменения для их посылки тем, кто отвечает за поддержку FreeBSD. Это делается при помощи команды man:diff[1]. Предпочтительным форматом man:diff[1] для посылки патчей является унифицированная выдача, создаваемая командой `diff -u`. К примеру: [source,shell] .... % diff -u oldfile newfile .... или [source,shell] .... % diff -u -r -N olddir newdir .... создаст набор патчей в унифицированном формате для конкретного файла с исходным текстом или для иерархии каталогов. Дополнительную информацию можно найти в man:diff[1]. После того, как вы получили набор diff-файлов (которые вы можете протестировать командой man:patch[1]), вы должны прислать их для включения во FreeBSD. Воспользуйтесь программой man:send-pr[1], как это описано в разделе о <>. _Не посылайте_ diff-файлы в список рассылки {freebsd-hackers}, они будут потеряны! Нам очень нужна ваша помощь (это добровольный проект!); из-за нашей занятости мы не сможем рассмотреть его сразу, и он будет находиться в базе данных PR, пока мы не сделаем это. Укажите на вашу посылку, включив строку `[PATCH]` в тему сообщения. Если вы считаете, что это нужно (к примеру, вы добавляли, удаляли или переименовывали файлы), то объедините ваши изменения в `tar`-файл и обработайте его программой man:uuencode[1]. Принимаются также и архивы, созданные программой man:shar[1]. Если ваше изменение потенциально может оказаться сомнительным, например, вы не уверены в отсутствии лицензионных ограничений относительно его распространения, то вы должны послать его напрямую в список рассылки {core}, а не через man:send-pr[1]. В списке рассылки {core} участвует гораздо меньшее количество людей, которые выполняют основную ежедневную работу над FreeBSD. Заметьте, что эта группа также __очень занята__, так что сюда письма нужно посылать только в случае действительной необходимости. Пожалуйста, обратитесь к справке по man:intro[9] и man:style[9] для получения некоторой информации о стиле кодирования. Мы надеемся, что вы хотя бы примете эту информацию к сведению перед тем, как прислать нам свой код. === Новый код или большие дополнительные пакеты В случае значительного объёма присланного вами кода и соответствующей работы, либо добавления к FreeBSD важной новой функции, становится практически всегда необходимо посылать изменения в виде tar-файлов, обработанных uuencode, или передавать их на Web-сайт или FTP-сервер для получения другими людьми. Если у вас нет доступа к Web- или FTP-серверам, попросите в соответствующем списке рассылке FreeBSD кого-нибудь разместить изменения за вас. При работе с большим объёмом кода неизбежно возникает вопрос о соблюдении авторских прав. Допустимыми лицензионными соглашениями для кода, включаемого во FreeBSD, являются следующие: . Лицензионное соглашение BSD. Оно является самым предпочтительным из-за "отсутствия дополнительных условий" и общей привлекательности для коммерческих компаний. Проект FreeBSD далёк от того, чтобы выступать против коммерческого использования, но активно популяризирует такое пересечение коммерческих интересов, которое позволит постепенно запустить механизм инвестиций во FreeBSD. . GNU General Public License, или "GPL". Это лицензионное соглашение не очень популярно у нас из-за объёма требований, которые нужно выполнять всем, кто собирается использовать код в коммерческих целях. Однако, учитывая абсолютное превосходство объёма этого кода (компилятор, ассемблер, инструменты форматирования текста и так далее) было бы глупо отказываться от дополнительных разработок, подпадающих под действие этой лицензии. Код, распространяемый по условиям лицензионного соглашения GPL также размещается в отдельной части дерева исходных текстов, в [.filename]#/sys/gnu# или [.filename]#/usr/src/gnu#, и поэтому легко идентифицируется всяким, для кого GPL представляет проблему. Разработки, подпадающие под действие других типов лицензионных соглашений, должны быть тщательно просмотрены перед принятием решения об их включении во FreeBSD. Разработки, на которые распространяются жёсткие ограничения коммерческих лицензионных соглашений, обычно отвергаются, а авторам всегда предлагается распространять подобные изменения по собственным каналам. Для того, чтобы на вашу работу распространялись условия лицензионного ограничения "в стиле BSD", разместите следующий текст в самом начале каждого файла с исходными текстами, которые вы хотите защитить, заменив текст между `%%` соответствующей информацией: [.programlisting] .... Copyright (c) %%полные_номера_годов%% %%ваше_имя%%, %%ваш_штат%% %%ваш_почтовый_индекс%%. 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 %%your_name_here%% ``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 %%your_name_here%% 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. $FreeBSD$ .... Для вашего удобства копия этого текста размещена в файле [.filename]#/usr/shared/examples/etc/bsd-style-copyright#. === Деньги, оборудование или Internet-доступ Мы всегда с удовольствием примем материальную помощь, нужную для дальнейшего существования Проекта FreeBSD, а в добровольном проекте, типа нашего маленькая помощь может послужить долго! Безвозмездная передача вычислительной техники также очень важна для расширения списка поддерживаемого периферийного оборудования, так как обычно у нас нет средств для самостоятельного его приобретения. [[donations]] ==== Финансовая помощь The FreeBSD Foundation является некоммерческой организацией, освобождённой от уплаты налогов, созданной с целью реализации целей Проекта FreeBSD. Как организация типа 501(c)3, Фонд обычно освобождается от федерального налога США на прибыль. Суммы безвозмездных пожертвований таким организациям часто вычитаются из общей суммы налогооблагаемой прибыли. Финансовая помощь может быть направлена в виде чеков на адрес: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** The FreeBSD Foundation теперь может принимать помощь через Web по системе PayPal. Для направления помощи, пожалуйста, посетите http://www.freebsdfoundation.org[Web-сайт] Фонда. Дополнительную информацию о Фонде FreeBSD можно найти на странице, содержащей http://people.FreeBSD.org/~jdp/foundation/announcement.html[ вводную информации о Фонде FreeBSD]. Для того, чтобы обратиться в Фонд по электронной почте, напишите письмо на адрес mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org]. ==== Помощь в виде оборудования Проект FreeBSD с удовольствие примет помощь в виде оборудования, которому он найдёт хорошее применение. Если вы заинтересованы в передаче оборудования, пожалуйста, обратитесь к link:https://www.FreeBSD.org/donations/[Руководству Центра пожертвований]. diff --git a/documentation/content/zh-cn/articles/contributing/_index.adoc b/documentation/content/zh-cn/articles/contributing/_index.adoc index dfd55a43bc..5ec3711a99 100644 --- a/documentation/content/zh-cn/articles/contributing/_index.adoc +++ b/documentation/content/zh-cn/articles/contributing/_index.adoc @@ -1,245 +1,245 @@ --- title: 为 FreeBSD 提供帮助 authors: - author: Jordan Hubbard trademarks: ["freebsd", "ieee", "general"] --- = 为 FreeBSD 提供帮助 :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] 摘要 无论是作为个人还是组织机构,如果您希望为FreeBSD项目提供帮助, 都可以在本文中找到合适的方法。 ''' toc::[] 您希望给 FreeBSD 项目做点什么吗? 太好了, 我们欢迎您。 FreeBSD 正是 _依靠_ 广大用户的贡献才得以发展壮大的。 我们不仅非常感谢您所做的贡献,而且,这些工作对于 FreeBSD 的持续发展也至关重要。 也许与您想象的不同, 您既不必是一名出色的程序员, 也无须和 FreeBSD 核心团队成员有很好的私交, 我们会一视同仁的对待您的工作。 FreeBSD 的开发人员遍布全球, 大家技术专长各异, 年龄分布也非常广泛。 每天, 我们都在面对持续增长的工作而苦于没有足够的人手, 因此我们随时欢迎您的帮助。 FreeBSD 项目处理的是一个完整的操作系统环境, 而不只是一个内核或是一些零散的工具包。 因此, 我们的 [.filename]#TODO# 任务列表里包含各种各样的工作, 从文档、用户测试、演示, 到系统安装程序和高度专业的内核开发。 因此无论您的技术水平如何, 从事何种领域, 都可以帮助这个项目。 我们鼓励从事和 FreeBSD 相关工作的企业和我们联系。 您需要一些特殊的扩展来使您的产品运转起来么? 您会发现我们很乐意答应您的请求, 除非是特别稀奇古怪的。 您是否正从事相关的增值业务? 让我们来帮助您吧, 我们也许可以在其中的某些方面相互协作。 自由软件世界正在努力打破旧有的关于软件开发、 销售和维护的框框, 我们希望恳请您至少能给它一次机会。 [[contrib-what]] == 我们的需求 下面列出了一些需要完成的任务和子项目, 它们基本上可以被等同于 [.filename]#TODO#(任务列表) 列表, 以及用户的要求。 [[non-programmer-tasks]] === 正在进行中的非开发任务 很多参加FreeBSD项目的人不是程序员。 这个项目里有文档撰写者、 网页设计师、 以及技术支持人员。 对于这些志愿者来说, 他们只需要贡献一些时间, 并且具有学习的意愿。 . 您可以经常通读FAQ和手册, 如果您发现了繁琐的解释, 或者是过时的知识, 甚至完全不正确的地方, 都请告诉我们。 如果您能顺手把他们改过来那就更好了 (SGML其实并不难学, 但我们也不反对您直接提交 ASCII 的版本)。 . 帮助我们把 FreeBSD 文档翻译成您的母语。 如果您的母语版本已经存在了, 您也可以翻译一些其他的文档或者检查那些已有的文档是否是最新更新过的。 您可以先简单看看 FreeBSD 文档计划中有关 extref:{fdp-primer}[翻译的常见问题, translations]。 参加翻译工作并不是说您要孤军奋战翻译所有的 FreeBSD 文档。 作为一个志愿者, 做多少工作完全取决于您的意愿。 一旦某个人开始翻译了, 其他人几乎一定会参与到这些工作中来。 如果您只有有限的时间或者精力去翻译部分文档, 您可以首先去翻译安装指南。 . 阅读 {freebsd-questions} 并偶尔看一看 link:news:comp.unix.bsd.freebsd.misc[comp.unix.bsd.freebsd.misc] (甚至有规律地这样做)。 与别人分享您的专业知识, 并帮助他们解决问题是一件令人愉悦的事情; 有些时候您甚至可以在这个过程中学到一些新东西! 这些论坛有时也会为您提供一些有价值的主意。 [[ongoing-programmer-tasks]] === 正在进行的开发任务 列在这里的大部分任务都需要您投入可观的时间, 或者需要您在 FreeBSD 内核方面有丰富的知识, 或者两者都要。 当然这里也有很多重要的任务也许您一个 "周末开发人员" 就可以干完。 . 如果您正在运行 FreeBSD-CURRENT 版本并且有一条高速的 Internet接入线路, 您可以访问 `current.FreeBSD.org`, 这里每天会有一个新版本 - 如果您有空, 您可以隔三岔五地下载一份并且安装它, 其间如果出了什么问题,请告诉我们。 . 阅读 {freebsd-bugs}。 您可能会为这些问题提供具有建设性意义的评论, 或者帮忙测试一些补丁。 此外, 您甚至可以尝试修正其中的一些问题。 . 如果您知道有一些修正已经在 -CURRENT 上成功地进行, 但在经过一段时间之后仍然没有合并到 -STABLE (通常是 2周左右), 给相关的 committer 发一封礼貌的提示信。 . 将第三方软件加入到源代码中的 [.filename]#src/contrib# 目录。 . 确保 [.filename]#src/contrib# 中的代码是最新的 . 以更高的警告级别构建源代码 (或一部分源代码) 并清理这些警告。 . 更新那些在 ports 中使用过时的东西, 例如 `gets()` 或包含 [.filename]#malloc.h# 所产生的警告。 . 如果您制作了 ports, 并进行了一些针对 FreeBSD 的改动, 将您的补丁发回给原作者 (这样下次升级时您的工作会变得轻松一些)。 . 获取一份正式的标准, 如 POSIX(R) 的副本。 您可以在 link:https://www.FreeBSD.org/projects/c99/[FreeBSD C99 & POSIX 标准顺应项目] 网站上得到相关的链接。 将 FreeBSD 的行为同标准进行比较。 如果与标准不同, 特别是那些细节地方的微小差异, 请发送一个关于它的 PR (问题报告)。 如果可能, 请指出如何修正它, 并随 PR 提交补丁。 如果您认为标准有问题, 请向标准化团体要求对其进行重新的考虑。 . 为这份列表建议更多的内容! === 查看整个 PR 数据库 http://www.FreeBSD.org/cgi/query-pr-summary.cgi[FreeBSD PR 列表] 展示了所有当前处于活跃状态的问题报告, 以及由 FreeBSD 用户提交的改进建议。 PR 数据库同时包括了开发人员和非开发人员的任务。 查看那些尚未解决的 PR, 并看看是否有您感兴趣的任务。 这其中可能有一些是非常简单的问题, 只需要看一看并确认 PR 是正确的。 另外一些可能会非常复杂, 或者完全没有包括任何修正。 首先看一看那些还没有人接手的 PR。 如果 PR 已经分配给了其它人, 但看起来是您能够处理的, 您可以给那个人发信, 并询问您是否可以提供帮助 - 他们可能已经有了可供测试的补丁, 或有一些可供讨论的意见。 === 从 "点子" 网页上认领项目 link:https://www.FreeBSD.org/projects/ideas/[FreeBSD 志愿者项目和点子清单] 也是提供给愿意为 FreeBSD 项目做出贡献的人们的。 这张清单一直在被定期更新着, 包含了对程序员和非程序员有用的每个项目的信息。 [[contrib-how]] == 如何提供帮助 帮助改进系统基本上可以分为 5 类: [[contrib-general]] === 错误报告和一般的注解 通常, _一般意义上的_ 技术想法和建议应该发到 {freebsd-hackers}。 同样地, 对于这些东西有兴趣的人 (当然, 他们同时还要能够容忍 _大量的_ 邮件!) 可以考虑订阅 {freebsd-hackers}。 参见 extref:{handbook}eresources[FreeBSD 使用手册, eresources-mail] 以了解关于这个邮件列表, 以及其它邮件列表的详细情况。 如果您发现了 bug 或者想要提交某些修改, 请通过 man:send-pr[1] 程序或使用 link:https://www.FreeBSD.org/send-pr/[基于 WEB 的提交页面] 来提交。 请试着填写 bug 报告的每一项。 一般来说, 我们建议在 bug 报告中直接附上补丁, 除非它超过了 65KB。 如果补丁可以直接应用到源代码上, 则建议您在报告的 synopsis 一栏写上 `[PATCH]`。 在附带补丁时, 请 _不要_ 通过复制和粘贴来进行, 因为这样做会把 tab 变成空格, 结果补丁很可能就不能用了。 如果补丁超过 20KB 很多, 应考虑将其压缩 (例如使用 man:gzip[1] 或 man:bzip2[1]) 之后用 man:uuencode[1] 进行编码之后再放进您的问题报告中。 一旦报告被存档, 您会收到一封确认邮件以及一个事件追踪编号。 请保留这个编号, 因为您可以在之后使用这个编号, 发邮件到 {bugfollowup} 来提供关于该事件的进一步信息。 您需要做的是将编号放到邮件的标题中, 例如 `"Re: kern/3377"`。 关于同一问题更进一步的情况应该通过这种方式来提交。 如果您在一段时间之后仍然没有收到确认信 (超过 3 天甚至 1 周, 这取决于您的邮件服务) 或者由于某种原因无法使用 man:send-pr[1] 命令, 则可以发信给 {freebsd-bugs} 要求别人代您发送它。 请参见 extref:{problem-reports}[这篇文章] 了解如何撰写好的问题报告。 === 对于文档的修订 对于文档的修改由 {freebsd-doc} 来审查。 请参见 extref:{fdp-primer}[FreeBSD 文档计划初级读本] 来获得完整的指导。 请按照 <> 中介绍的方法使用 man:send-pr[1] 来发送新的文档或者对于现有文档的完善 (哪怕是很小的改进也是欢迎的!)。 === 对于现有源代码的修改 在现有代码上进行修改或增加功能在某种程度上是需要更多技巧的事情, 并且还和您对于目前 FreeBSD 的开发现状的了解有关。 有多种方式可以得到被称作 "FreeBSD-CURRENT" 的 FreeBSD 开发版本, 您可以通过它来了解最近的开发情况。 请参见 extref:{handbook}updating-upgrading[FreeBSD 使用手册, current-stable] 来了解使用 FreeBSD-CURRENT 的进一步详情。 在旧的代码上进行修改, 则通常可能由于代码已经过时, 或与新的开发版本差异太大而无法被重新集成到 FreeBSD 中。 如果您订阅了 {freebsd-announce} 以及 {freebsd-current} 邮件列表, 则可以通过它们来大体了解目前的开发状态。 假如说您能够基于尽可能新的代码来完成您的修改, 则下一步要做的事情就是生成您所进行的修改的差异文件, 并将它发给 FreeBSD 的维护人员。 这项工作可以通过 man:diff[1] 命令来完成。 提交补丁时推荐的 man:diff[1] 格式是一致差异 (unified diff), 它可以通过 `diff -u` 来生成。 不过, 如果您修改了大量的代码, 则使用 `diff -c` 来生成的上下文格式 (context diff) 的差异可能更容易阅读, 因而推荐使用。 例如: [source,shell] .... % diff -c oldfile newfile .... 或者 [source,shell] .... % diff -c -r olddir newdir .... 将分别生成给定文件或目录结构的 context diff。 类似地, [source,shell] .... % diff -u oldfile newfile .... 或 [source,shell] .... % diff -u -r olddir newdir .... 的作用与前面的类似, 但采用的格式是 unified diff。 请参见 man:diff[1] 联机手册了解更多细节。 一旦您使用 man:diff[1] 生成了差异集 (可以使用 man:patch[1] 命令来测试一下), 就可以提交它们, 以便被 FreeBSD 收录。 通过使用 <> 中所介绍的 man:send-pr[1] 程序就可以完成这项工作。 _不要_ 只是把差异集发到 {freebsd-hackers}, 否则它们可能会被丢掉! 我们会非常感激您提交的修改 (这是一个志愿者项目!); 因为我们都很忙, 因此有时不一定能够立即修正问题, 但 PR 数据库将一直保持着这些记录, 因此只要有人有了时间它们就能被改正了。 如果您的问题报告中包括补丁, 一定不要忘了在标题上用 `[PATCH]` 来强调一下。 如果您认为合适 (例如您添加、 删除或重命名了文件), 还可以考虑使用 `tar` 来将文件打包, 然后用 man:uuencode[1] 来编码。 我们也欢迎用 man:shar[1] 创建的包。 如果您的修改可能存在潜在的争议, 例如, 您不确定与之相关的版权问题, 或者感觉需要经过更严格的复审才可以发布它们, 则应直接发给 {core-name}, 而不是通过 man:send-pr[1] 来发送。 {core-name} 是一个小组, 其成员更多的从事 FreeBSD 的日常工作。 需要注意的是, 这个小组也因此 __很忙__, 因此只有在非常必要的时候才应给他们写信。 请参考 man:intro[9] 和 man:style[9] 以了解关于编码习惯和约定的详情。 如果您了解这些约定, 则对我们来说将是极大的帮助。 === 新代码或重要的增值软件包 如果您打算提供规模较大的代码, 或者为 FreeBSD 增加重要的新功能, 则可能必须将它们通过 uuencode 进行编码, 或传到某个 Web 或 FTP 站点, 以便更多的人能够得到它。 如果您没有这样的服务器, 请到相关的 FreeBSD 邮件列表提出, 看看是否有人愿意帮您放置它们。 对于大量的代码而言, 关于版权的问题肯定会被提出。 FreeBSD 基本系统中能够使用的版权声明包括: . BSD 版权。 我们倾向于使用这类授权的代码, 因为它 "不附加多余的条件", 因而更能够吸引商业企业使用。 FreeBSD 并不反对商业公司使用它的代码, 相反, 我们积极地鼓励商业公司使用我们的代码, 当然, 如果它们最终把一部分代码重新捐赠给 FreeBSD 就更好了。 . GNU General Public License, 或简称 "GPL"。 我们并不很欢迎使用这样授权的代码, 因为商业公司使用它需要做更多的工作。 不过, 由于很多使用 GPL 授权的代码目前是无法避免的 (编译器、 汇编器, 文本排版程序等等), 拒绝使用所有采用这样授权的软件是很不明智的。 采用 GPL 授权的代码会被放到源代码的一些专门的位置, 例如 [.filename]#/sys/gnu# 或 [.filename]#/usr/src/gnu#, 以方便那些使用 GPL 代码可能会给他们带来问题的人识别。 使用其它授权的代码在进入 FreeBSD 之前必须经过慎重的复审和考虑。 采用包含严厉限制的商业授权的代码, 一般来说会被拒绝, 但我们鼓励这些代码的作者通过自己的渠道来发布它们。 要在您的成果上加入 "BSD式" 的版权, 请把下列文本放到每一个源文件的最开始部分, 并用适当的文字替换 `%%` 之间的文字。 [.programlisting] .... Copyright (c) %%proper_years_here%% %%your_name_here%%, %%your_state%% %%your_zip%%. 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 %%your_name_here%% ``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 %%your_name_here%% 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$ .... 为了方便您的使用, 在 [.filename]#/usr/shared/examples/etc/bsd-style-copyright# 也可以找到此授权的副本。 === 资金、 硬件或 Internet 接入 我们非常愿意接受各种形式的捐赠, 以进一步拓展 FreeBSD Project 的事业, 因为有您的支持, 像我们这样的志愿者努力才能够有更大的成就! 捐赠硬件也非常重要, 因为这样能够帮助我们增加可以支持的硬件种类, 而我们中的很多人并没有足够的资金来购置这些硬件。 [[donations]] ==== 捐款 FreeBSD 基金会是一个非营利的、 有课税豁免权的基金会, 建立这个基金会的目标是为了让 FreeBSD Project 能够达成更加长远的目标。 作为 501(c)3 实体, 一般而言基金会可以免予上缴美国联邦收入税, 以及科罗拉多州收入税。 通常对于课税豁免的实体进行捐赠, 可以折抵联邦收入中应课税部分的金额。 您可以把支票寄往: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** FreeBSD 基金会现在可以通过 PayPal 从网上接受捐款。 如果您想向基金会捐款, 请访问它的 http://www.freebsdfoundation.org[web 站点]。 关于 FreeBSD 基金会的更多详情, 可以在 http://people.FreeBSD.org/~jdp/foundation/announcement.html[FreeBSD 基金会 -- 介绍] 找到。 要联络基金会, 请发送电子邮件到 mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org]。 ==== 捐赠硬件 FreeBSD 计划欢迎任何人捐赠可以使用的硬件。 如果您有兴趣捐赠硬件, 请联系 link:https://www.FreeBSD.org/donations/[捐赠联络人办公室]。 ==== 捐赠 Internet 接入 我们欢迎新的 FTP、 WWW 或 `cvsup` 镜像。 如果您希望成为这样的镜像, 请参见 extref:{hubs}[如何架设 FreeBSD 镜像] 一文, 以了解进一步的情况。 diff --git a/documentation/content/zh-tw/articles/contributing/_index.adoc b/documentation/content/zh-tw/articles/contributing/_index.adoc index faf066201e..33df0602a0 100644 --- a/documentation/content/zh-tw/articles/contributing/_index.adoc +++ b/documentation/content/zh-tw/articles/contributing/_index.adoc @@ -1,245 +1,245 @@ --- title: 幫助 FreeBSD authors: - author: Jordan Hubbard trademarks: ["freebsd", "ieee", "general"] --- = 幫助 FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] 摘要 無論是個人或是各種組織,如果希望為 FreeBSD 提供幫助,都可以在本文中找到合適的方法。 ''' toc::[] 你希望替 FreeBSD 做點什麼嗎?太好了,我們歡迎你。FreeBSD 正是有賴於廣大使用者的貢獻才得以發展壯大的。我們不僅非常感謝您所做的貢獻,而且,這些工作對於 FreeBSD 的持續發展也至關重要。 也許與您想像的不同,您既不必得是一名出色的 Programmer,也無須和 FreeBSD core team 成員有很好的私交,我們會一視同仁的對待您的工作。 FreeBSD 的開發人員遍布全球,大家技術專長各異,年齡分布也非常廣泛。 然而,每天我們都在面對持續增加的工作,而苦於沒有足夠的人手,因此我們隨時歡迎您的幫助。 FreeBSD 計劃所處理的是一個完整的作業系統環境,而不只是一個 kernel 或是一些零散的工具包。 因此,我們的 [.filename]#TODO# 待辦任務列表裡包含各式各樣的工作: 從文件、使用者測試、demo,到系統安裝程式和更專業的 kernel 開發。 因此無論您的技術水準如何,從事何種領域,都可以幫助這個計劃。 我們鼓勵從事和 FreeBSD 相關工作的企業和我們聯繫。 您需要一些特殊的擴展來使您的產品運轉起來嗎? 您會發現我們很樂意答應您的請求,除非是特別稀奇古怪的。 您是否正從事相關的增值業務? 讓我們來幫助您吧, 我們也許可以在某些方面相互合作。 自由軟體界正在努力打破舊有的框框(像是關於軟體開發、銷售和維護), 我們希望懇請您至少能給它一次機會。 [[contrib-what]] == 我們的需求 下面列出了一些需要完成的任務和子計劃, 它們代表 [.filename]#TODO#(待辦任務列表) 列表的意思,以及使用者的要求。 [[non-programmer-tasks]] === 正在進行中的任務(非程式開發人員) 很多參加 FreeBSD 計劃的人不是 Programmer。 這個計劃裡有文件撰寫者、網頁設計師、以及技術支援人員。 對於這些義工來說,他們只需要貢獻一些時間,並且具有學習的意願。 . 您可以時常翻閱 FAQ 和手冊(Handbook) ,如果發現有解釋不清楚的地方,或是不合時宜的文件,甚至完全不正確的地方, 都請告訴我們。當然,若能順手把他們修正,並把勘誤寄給我們,那就更好了。:) (SGML 其實並不難學,但我們也不反對您直接提交一般 ASCII 的純文字版本)。 . 幫助我們把 FreeBSD 文件翻譯成你的母語。 如果你的母語版本已經存在了, 也可以翻譯一些額外的文件,或者檢查那些已有的文件是否為最新版。 您可以先簡單看看 FreeBSD 文件計劃中有關 extref:{fdp-primer}[翻譯時的常見問題, translations]。 參加翻譯工作,並不是說您要孤軍奮戰翻譯所有 FreeBSD 文件。 身為義工,要做多少工作完全取決於您的意願。一旦某個人開始翻譯了, 之後幾乎一定會有其他人參與到這些工作中來。 如果時間有限,或者精力不夠去翻譯整份文件,那可以首先去翻譯安裝指南。 . 閱讀 {freebsd-questions} 並偶爾翻閱(甚至有規律地這樣做) link:news:comp.unix.bsd.freebsd.misc[comp.unix.bsd.freebsd.misc] 。與別人分享您的專業知識, 並幫助他們解決問題,是件令人愉悅的事情; 有時候,您甚至可以在這個過程中學到一些新東西! 這些論壇有時也會為您激發出一些不錯的想法。 [[ongoing-programmer-tasks]] === 正在進行中的任務(程式開發人員) 列在這裡的大部分任務都需要您投入可觀的時間,或者需要您在 FreeBSD kernel 方面有豐富的知識,或者兩者都要。當然這裡也有很多重要的任務,適合像是 "weekend hackers" 這類只用週末就可以搞定的 Hacker。 . 如果您正在跑的是 FreeBSD -CURRENT 版本,並且網路速度還不錯, 那麼可以到 `current.FreeBSD.org`, 這台每天會有一個新版本 - 如果您有空, 您可以三不五時下載並安裝, 其間如果出了什麼問題,請告訴我們。 . 閱讀 {freebsd-bugs}。這些問題,或許您能提供有建設性意義的意見, 或者幫忙測試一些 patch 。此外,甚至可以嘗試修正其中的一些問題。 . 如果您知道有一些修正已經在 -CURRENT 上成功地使用, 但在經過一段時間(通常是 2 週左右)之後,仍未合併到 -STABLE (這步驟就是 MFC -- Merged From Current),那麼可以給相關的 committer 人員發封禮貌的提醒信。 . 將第三方(3rd party)軟體加入到原始碼中的 [.filename]#src/contrib# 目錄。 . 確保 [.filename]#src/contrib# 中的原始碼是最新的。 . 編譯原始碼(或是部分原始碼)時,請改用更高的警告等級(warning level) 以便偵錯(debug)用,並在完成測試、確認正常完畢之後,清除這些編譯的警告等級。 . 更新那些在 ports 中使用過時的東西, 例如 `gets()` 或包含 [.filename]#malloc.h# 所產生的警告。 . 如果有為 ports 作了任何修正, 請記得將您的 patch 發給原作者 (這樣下次升級時,您的工作會變得輕鬆一些)。 . 先取得正式的標準,如 POSIX(R) 的副本。 在 link:https://www.FreeBSD.org/projects/c99/[FreeBSD C99 & POSIX 標準相容計劃] 網站上,可以得到相關鏈接。 請將 FreeBSD 的行為與上述的標準進行比較,若所得結果與 C99 & POSIX 標準不同的話, 特別是那些細節地方的微小差異,請發一個關於它的 PR (問題報告)。 如果可能,請指出如何修正它,並隨 PR 提交 patch 。 如果您認為標準有問題,請向這些規格標準的相關團體,請求對其進行重新的考慮。 . 為這份列表提供更多建議! === 查閱整個 PR 資料庫 http://www.FreeBSD.org/cgi/query-pr-summary.cgi[FreeBSD PR 列表] 這裡會顯示目前所有 PR 的問題狀態,以及由 FreeBSD 使用者提交的改進建議。 PR 資料庫同時包括了開發人員和非開發人員的任務。 查看那些尚未解決的 PR,並看看是否有您感興趣的任務。 這其中可能有一些是非常簡單的問題,只需要看一看並確認 PR 是正確的。 另外一些可能會非常複雜,或者完全未附任何修正。 首先看一看那些還沒有人接手的 PR。 如果 PR 已經分配給了其它人,但看起來是您能夠處理的, 您可以寄信給那個人,並詢問您是否可以提供幫助 - 他們可能已經有可供測試的 patch ,或有一些可供討論的意見。 === 由 "Ideas" 中選一項 link:https://www.FreeBSD.org/projects/ideas/[FreeBSD list of projects and ideas for volunteers] 同樣地開放給有意願參與 FreeBSD 計劃的人。 這份清單將持續地更新,同時提供各個項目的資訊給所有人 (不論是否為程式設計人員)。 [[contrib-how]] == 如何提供幫助 基本上可以分為以下 5 種方式: [[contrib-general]] === 錯誤報告和意見發表 通常,__一般__ 的技術想法和建議應該發到 {freebsd-hackers}。 同樣地,對於這些東西有興趣的人 (當然, 他們同時還要能夠容忍 _大量的_ 郵件!) 可以考慮訂閱 {freebsd-hackers}。 請參閱 extref:{handbook}eresources[FreeBSD 使用手冊, eresources-mail] 以了解關於這個郵遞論壇, 以及其它郵遞論壇的詳細情況。 如果您發現了 bug 或者想要提交某些修改, 請透過 man:send-pr[1] 程式或使用 link:https://www.FreeBSD.org/send-pr/[網頁介面 的回報] 來提交。請試著填寫 PR 的每個項目。 一般來說,除非 patch 檔超過 65 KB,我們建議在 PR 中直接附上 patch 就可以了。 若可直接套用 patch 到原始碼的話,那麼建議在 PR 的 Synopsis 欄位註明 `[PATCH]`。 對了,在附上 patch 時,請 _不要_ 透過滑鼠的『複製、貼上』來進行,因為這樣做會把 Tab 變成空格, 會導致 patch 就不能用了。如果 patch 超過 20KB, 請考慮壓縮它並使用 man:uuencode[1] 來進行編碼。 在寫完 PR 之後,您會收到一封確認郵件以及事件追蹤編號。 請保留這個編號,因為事後可以用這編號發信到 {bugfollowup} 來回覆、提供關於該事件的後續資料。您需要做的是將編號放到郵件的標題中, 例如 `"Re: kern/3377"`。 若是同一問題的回覆方面,應該透過這種方式來進行。 如果您在一段時間 (超過 3 天甚至 1 週,這取決於您的郵件服務)之後仍然沒有收到確認信 或者由於一些原因無法使用 man:send-pr[1] 程式, 則可以發信到 {freebsd-bugs} 來請別人幫你代寄。 請參閱 extref:{problem-reports}[這篇文章] 了解如何撰寫好的問題報告。 === 對於文件的修訂 文件的修改方面,是由 {freebsd-doc} 來審查。 請參閱 extref:{fdp-primer}[FreeBSD Documentation Project Primer] 來獲得完整的教學細節。 請按照 <> 中介紹的方法使用 man:send-pr[1] 來提交新的文件,或者改善現有的文件 (哪怕是很小的改進也是歡迎的!)。 === 對於現有原始碼的修改 在現有原始碼上進行修改或增加功能,在某種程度上是需要更多技巧的事, 並且還跟您對於目前 FreeBSD 的開發現狀了解程度有關。 有多種方式可以得到被稱作 "FreeBSD-CURRENT" 的 FreeBSD 開發版本。 請參閱 FreeBSD 使用手冊的 extref:{handbook}updating-upgrading[相關部份, current-stable] ,來了解使用 FreeBSD-CURRENT 的詳情。 在舊的原始碼上進行修改,則通常可能原始碼已過時, 或與新的版本差異太大而無法被重新整合到 FreeBSD 中。 如果您有訂 {freebsd-announce} 以及 {freebsd-current} 的話, 則可以透過它們來大致了解目前的開發狀態。 若您能夠儘量以最新的原始碼來進行您的修改, 則下一步要做的事情就是產生您所修改的 diff 檔, 並將它發給 FreeBSD 的維護人員。這項工作可以透過 man:diff[1] 命令來完成。 提交 patch 時,建議 man:diff[1] 格式採用 unified diff (可以用 `diff -u` 來產生)。不過,如果您修改了大量的原始碼, 則使用 `diff -c` 來生成的 context diff 的 diff 可能更容易閱讀,因而推薦使用。一般而言,大都是採用 `diff -ruN` 即可。 例如: [source,shell] .... % diff -c oldfile newfile .... 或 [source,shell] .... % diff -c -r olddir newdir .... 將會對特定目錄,產生 context 的 diff 檔。 或者像是... [source,shell] .... % diff -u oldfile newfile .... 或 [source,shell] .... % diff -u -r olddir newdir .... 將產生一樣的 diff ,但是格式為 unified 。 更多的細節部份,請參閱 man:diff[1]。 一旦您使用 man:diff[1] 來產生 diff 檔 (可以使用 man:patch[1] 命令來測試一下),就可以提交它們,以便被 FreeBSD 收錄。 透過使用 <> 中所介紹的 man:send-pr[1] 程式就可以完成這項工作。 請注意:不要只把 diff 檔發到 {freebsd-hackers}, 否則它們可能會被遺忘! 我們會非常感激您提交的修改 (這是一個義工計劃!); 因為我們都很忙, 因此有時不一定能夠立即修正問題,但 PR 資料庫將一直保持著這些記錄, 因此只要有人有了時間它們就能被改正了。 如果您的問題報告中包括 patch ,不要忘了在標題加上 `[PATCH]` 來強調一下。 如果您認為合適 (例如增、刪檔案或更改檔名), 還可以考慮使用 `tar` 來將檔案打包,然後用 man:uuencode[1] 來編碼。此外,也可以用 man:shar[1] 產生的方式。 如果您的修改可能存在潛在的爭議,例如, 您不確定相關的版權問題,或者感覺需要經過更嚴格的復審才可以發佈它們, 則應直接發給 {core},而不是透過 man:send-pr[1] 來發送。 {core} 這小組成員大多從事 FreeBSD 的日常工作。 需要注意的是,這個小組也因此十分忙碌, 因此只有在非常必要的時候,才應寫信給他們。 請參考 man:intro[9] 和 man:style[9] 以了解關於撰寫程式碼的風格偏好。 若能在送出相關程式碼之前,先了解這些,那對大家來說將是極大的幫助。 === 新原始碼或重要的加值軟體包 如果您打算提供規模較大的原始碼,或者為 FreeBSD 增加重要的新功能, 則可能必須將它們透過 uuencode 進行編碼,或傳到某個 Web 或 FTP 站點,以便更多的人能夠得到它。如果您沒有這樣的主機, 請到相關的 FreeBSD 郵遞論壇提出,看看是否有人願意幫您放置它們。 對於大量的原始碼而言,關於版權的問題肯定會被提出。 FreeBSD 基本系統中能夠使用的版權聲明包括: . BSD 版權。我們傾向於使用這類授權的原始碼, 因為它『不附加多餘的條件』,因而更能夠吸引商業企業使用。 FreeBSD 並不反對商業公司使用它的原始碼,相反, 我們積極地鼓勵商業公司使用我們的原始碼, 當然,如果它們若最終能把部分原始碼,重新捐贈給 FreeBSD 就更好了。 . GNU General Public License,或簡稱 "GPL"。 我們並不很歡迎使用這樣授權的原始碼, 因為商業公司使用它需要做更多的工作。不過,由於很多使用 GPL 授權的原始碼目前是無法避免的 (compiler, assembler, text formatter等等) ,拒絕使用所有採用這樣授權的軟體是很不明智的。 採用 GPL 授權的原始碼會被放到原始碼的一些特定的位置,例如 [.filename]#/sys/gnu# 或 [.filename]#/usr/src/gnu#,以便那些認為 GPL 可能會造成麻煩的人能夠作出適當的判斷。 使用其它授權的原始碼在進入 FreeBSD 之前必須經過慎重的復審和考慮。 採用包含嚴厲限制的商業授權的原始碼,一般來說會被拒絕, 但我們鼓勵這些原始碼的作者,透過自己的管道來發布它們。 若要在您的成果上加入 "BSD-based" 版權的話, 請把下列文字放到每份原始碼的最開始部分, 並用適當的文字替換 `%%` 之間的文字。 [.programlisting] .... Copyright (c) %%proper_years_here%% %%your_name_here%%, %%your_state%% %%your_zip%%. 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 %%your_name_here%% ``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 %%your_name_here%% 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$ .... 為了方便您的使用,在 [.filename]#/usr/shared/examples/etc/bsd-style-copyright# 也可以找到此授權的副本。 === 贊助資金、硬體或 Internet mirror 我們非常願意接受各種形式的捐贈,以進一步拓展 FreeBSD 計劃 ,因為有您的支持,像我們這樣的義工努力才能夠有更大的成就! 捐贈硬體也非常重要,因為這樣能夠幫助我們增加可支援的硬體種類, 而我們中的很多人並沒有足夠的資金來購置這些硬體。 [[donations]] ==== 捐款 FreeBSD 基金會是一個非營利的、有課稅豁免權的基金會, 之所以會建立這個基金會,是為了讓 FreeBSD 計劃能夠可長可久。 因為該基金會屬 501(c)3 實體,一般而言捐款給基金會的話,可以免繳美國聯邦收入稅, 以及科羅拉多州收入稅。通常對於有課稅豁免權的實體進行捐贈的話, 可以折抵聯邦收入中應課稅部分的金額。 您可以把支票寄往: [.address] **** The FreeBSD Foundation + -P.O. Box 20247, + -Boulder, + -CO 80308 + +3980 Broadway Street + +STE #103-107 + +Boulder CO 80304 + USA **** FreeBSD 基金會現在可以透過 PayPal 從網上接受捐款。 如果您想向基金會捐款,請參閱 http://www.freebsdfoundation.org[FreeBSD 基金會] 網站。 關於 FreeBSD 基金會的更多詳情,可以在 http://people.FreeBSD.org/~jdp/foundation/announcement.html[FreeBSD 基金會 -- 介紹] 找到。要聯絡基金會, 請發送電子郵件到 mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org]。 ==== 捐贈硬體 FreeBSD 計劃歡迎任何人捐贈可以使用的硬體。 如果您有興趣捐贈硬體,請聯繫 link:https://www.FreeBSD.org/donations/[捐贈聯絡人辦公室]。 ==== 成為 FreeBSD mirror 的網站 我們歡迎新的 FTP、WWW 或 `cvsup` mirror 站。如果您希望成為這樣的 mirror 站, 請參閱 extref:{hubs}[如何架設 FreeBSD mirror] 一文,以了解進一步的情況。