Es ist gängige Praxis, einige Optimierungen oder Korrekturen im Code von Drittanbietern vorzunehmen (sei es eine einfache Zusammenfassung oder eine gesamte Bibliothek). Es ist jedoch auch üblich, dass viele dieser Codes ihre eigenen Lizenzierungsregeln und eventuell einen Header auf jeder Datei mit Copyright-Informationen haben.
Was ist nach diesen Änderungen als Nächstes zu tun? Halten Sie die Lizenzinformationen unantastbar oder versuchen Sie, sie zu aktualisieren, indem Sie sich mit etwas wie @author
oder @revision
Tags versehen?
Ein weiteres häufiges Problem besteht darin, den Namespace / das Paket von Drittanbietern so zu ändern, dass es Ihren Projektkonventionen entspricht. Einige Lizenztypen enthalten diese Informationen in ihrem Lizenzblock. Kann ich sie frei ändern?
Ich weiß, dass die Antwort auf diese Fragen von den einzelnen Lizenztypen abhängt, um meine Frage zu präzisieren ...
Unter Berücksichtigung der allgemeinen Lizenzregeln (normalerweise unterscheiden sie sich in untergeordneten Aspekten, oder?) Ist es ethisch (oder zumindest zulässig), dass ich dem Lizenzblock Informationen zu meinen Änderungen hinzufüge und möglicherweise auch ändere, wie ich in meinem Code darauf verweise (zB verwenden YACorp.YALib
als Utils.YALib
)?
Antworten:
Ich denke, Sie verwechseln die Softwarelizenz und jeden Prolog, der Teil der Software sein könnte.
In der Lizenz legen die Inhaber des Urheberrechts an dem Programm die Nutzungsbedingungen (die Lizenz) für andere Personen fest. Einige Lizenzen sind sehr freizügig, andere viel restriktiver.
Der Prolog ist , wo Autoren Einsatz
@author
und@revision
Tags einen Weg , um Änderungen an den Quellcode zu verfolgen. In einigen Fällen können Sie durch das Verfassen eines nicht trivialen Zusatzes zum Code Anspruch auf das Urheberrecht für diesen Abschnitt des Codes erheben. Das Entflechten von Urheberrechtsbelangen kann schwierig sein und wird am besten von Anwälten behandelt. Sie haben jedoch ausdrücklich angegeben, dass Sie sich nicht mit diesem Aspekt befassen, und ich gehe weiter.Dies hängt wirklich von den Konventionen des Projekts ab.
Wenn Sie das Projekt verzweigen, können Sie tun, was Sie wollen.
Wenn Sie beabsichtigen, Ihre Änderungen wieder in das Projekt einzubringen, sollten Sie die festgelegte Konvention einhalten. Wenn es einen zwingenden Grund gibt, den Namespace zu ändern, müssen Sie dies der Community der Anwendung präsentieren.
Ändern Sie nicht die Lizenz!
Zunächst einmal haben Sie wahrscheinlich nicht die gesetzlichen Rechte, die Lizenz zu ändern. Zweitens werden alle Änderungen, die Sie vornehmen, wahrscheinlich die Lizenz durcheinander bringen. Überlassen Sie Lizenzänderungen den Anwälten.
Die Aktualisierung des Prologs hängt von den Projektnormen ab. Einige Projekte möchten keinen Prolog, da sie die Quellcodeverwaltung verwenden, um dies zu verfolgen. Andere Projekte tun es. Befolgen Sie die Konventionen des Projekts.
Wenn Sie Ihre Änderungen für sich behalten, warum interessiert es Sie, was andere denken? Etwas, das Sie nur für sich selbst verwenden und niemals an andere weitergeben, hat keine Auswirkungen auf das ursprüngliche Projekt. Es ist ihnen also egal, was du tust.
Wenn Sie beabsichtigen, Ihre Änderungen zu verteilen oder sie wieder in das Projekt einzubringen, müssen Sie die Konventionen dieses Projekts evaluieren. Einige Projekte möchten nicht gespalten werden und verfügen über eine Lizenz, die dies verhindert. Andere gehen so weit zu sagen "Tu was du willst" und du erhältst die Erlaubnis zu tun was du für richtig hältst. Letztendlich hängt die Antwort hier von dem jeweiligen Projekt ab, das Sie sich ansehen.
quelle
Ich würde einen Kommentar hinzufügen, teilweise um einem Leser zu signalisieren, dass die Datei nicht "vanille" ist, mit Links zu relevanten Dokumentationen oder einem Fehlerverfolgungssystem.
Edit: Also diese Situation erinnert mich daran, wann eine Linux-Distribution zB eine Bibliothek paketiert. Debian hat Richtlinien und Standards, die festlegen, wie Pakete erstellt und benannt werden sollen. Diese können durchaus von der Art und Weise abweichen, wie die Bibliothek normalerweise vorab erstellt verteilt wird.
Ich denke nicht, dass Sie sich scheuen sollten, eine Bibliothek zu benennen, zu bauen oder zu modifizieren, da Sie das Ergebnis vermutlich nicht in die weite Welt verbreiten werden. In diesem Fall würde ich der Quelle eine README-Datei beifügen, in der beschrieben wird, welche Änderungen Sie vorgenommen haben und warum. ZB README. $ {CompanyName} .changes
quelle
Sie müssen die Lizenzierungsregel des Codes beachten.
Im Allgemeinen betrachten viele Open-Source-Frontend-Anwendungen (z. B. Firefox, OpenOffice) ihren Anwendungsnamen und ihr Logo als Markenzeichen. Wenn Sie also eine geänderte Version der App veröffentlichen, können Sie nicht die Originalmarken / -kleidung (also IceWeasel, Torbrowser, LibreOffice) verwenden.
Die meisten Programmierbibliotheken kümmern sich jedoch weniger um Marken, solange nicht klar ist, wer was tut (normalerweise finden Sie dies in den Metadaten der Versionskontrolle).
Autoreninformationen dienen zwei Zwecken:
Letztere werden wichtiger, wenn Ihre Änderungen größer werden. Die eigentlichen Informationen zur Urheberschaft finden Sie in der Regel in der Versionskontrolle. Bei einigen Projekten wird jedoch eine Gruppe von Autoren in einer separaten Datei aufgeführt. Der Cutoff-Punkt, an dem Personen offiziell angerechnet werden, variiert für jedes Projekt. Wenden Sie sich im Zweifelsfall an die ursprünglichen Autoren.
quelle