2009-01-20 6 views
7

Ich möchte einen Code wiederverwenden, der unter einer BSD-Lizenz lizenziert ist, aber ich weiß nicht, wie ich klarstellen kann, was ich geschrieben, was ich wiederverwendet und was ich geändert habe.Wie kann ich bei der Wiederverwendung von Code klarstellen, wer der Urheberrechtsinhaber für jede Datei ist?

Sprechen Sie das Projekt Ich mag Code wiederverwenden aus der folgenden Verzeichnisstruktur hat:

project/ 
|-- LICENSE.txt 
|-- module1/ 
| |-- file1.c 
| |-- file2.c 
| `-- file3.c 
|-- module2/ 
`-- module3/ 

und den Inhalt von LICENSE.txt ist eine BSD-Lizenz, dh ihr Inhalt ist:

Copyright (c) <year>, <copyright holder> 
All rights reserved. 

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met: 
[...] 

(Eine Vorlage des Volltexts finden Sie unter wikipedia.)

Das Copyright wird nur in der Datei LICENSE.txt und nicht in jeder einzelnen Quellcodedatei angegeben.

Wenn ich jetzt alles unter Projekt/module1/mein eigenes Projekt zu kopieren:

my_project/ 
|-- module1/ 
| |-- file1.c 
| |-- file2.c 
| `-- file3.c 
|-- my_file1.c 
|-- my_file2.c 
|-- my_source_code1/ 
`-- my_source_code2/ 

Wie soll ich sagen, dass ich nicht der Urheberrechtsinhaber der Dateien unter module1 bin? Wäre es genug, um die ursprüngliche LICENSE.txt, mit dem ursprünglichen Urheberrechtsinhaber in seiner Kopfzeile, in das Unterverzeichnis module1 zu kopieren? Oder sollte ich jeder einzelnen Datei einen Copyright-Header hinzufügen?

Was passiert, wenn ich eine der Dateien unter module1 modifiziere? Soll ich mich dann irgendwie als zusätzlichen Urheberrechtsinhaber für die von mir modifizierten Dateien eintragen?

Hinweis: Ich bin völlig in Ordnung mit der Verwendung derselben (oder einer kompatiblen) Lizenz für den Code, den ich geschrieben habe.

Antwort

3

Kopieren Sie LICENSE.txt in Ihrem module1 Verzeichnis, und erwähnen Sie in Ihren Dokumenten (README, LICENSE, etc.), dass Sie diesen Teil des Projekts verwenden. BSD-Style-Lizenz ist sehr liberal: Solange Sie gebührende Kredit geben und respektieren ihre Anforderungen (dies beinhaltet in der Regel die Bereitstellung der unmodifizierten Lizenz und Copyright-Hinweise), können Sie tun, was Sie wollen mit dem Code.

Wenn Sie eine Datei ändern, empfiehlt es sich, sie im Dateiheader, bei Ihren Änderungen und in Ihren globalen Dokumenten zu erwähnen. Wenn die geänderten Dateien keinen Copyright-Hinweis enthielten, fügen Sie einfach einen hinzu, der Ihre Änderungen beschreibt. Auf diese Weise können Benutzer wissen, welche Dateien geändert wurden, wer es getan hat, warum und wie.

Es ist so einfach: Tun Sie es auf sehr anschauliche Weise. Im Gegensatz zu Lizenzen im GPL-Stil gibt es kein formales Verfahren. Dies ist mehr Dokumentation als juristische Arbeit.

+0

Und wenn ich eine der Dateien in Modul1 ändern? Würdest du das explizit irgendwo erwähnen? – davitenio

+0

Wenn der Code, den ich wiederverwende, GPL-lizenziert wäre, würde es ein formales Verfahren geben? Können Sie Hinweise zu diesem Verfahren geben oder es selbst erklären? – davitenio

+0

Das Kommentarfeld ist zu kurz, um die rechtlichen Verpflichtungen zu beschreiben, die die GPL den Nutzern auferlegt. Ich schlage vor, dass Sie die Wikipedia-Seite lesen: http://en.wikipedia.org/wiki/Gpl. Zum Beispiel können Sie nicht in einer einzigen binären Form verteilen und müssen alle Ihre Änderungen als GPL-Quellen veröffentlichen. – fbonnet

1

Ich möchte die Lizenz innerhalb eines Kommentars im Quellcode referenziert haben - es ist einfacher, da Leute eher eine Quelldatei öffnen und herumspielen, als zuerst die Verzeichnisstruktur untersuchen. Ein einfacher Kommentar, der besagt, dass der Code von X urheberrechtlich geschützt ist und von Y lizenziert wird, hilft nur, jemanden auf die entsprechende Lizenzdatei hinzuweisen.

+0

Also, obwohl die ursprünglichen Dateien, die ich wiederverwende, keinen Kommentar mit dem Copyright hatten, würden Sie einen hinzufügen? Und wenn ich eine Datei ändere, würde ich einen Kommentar hinzufügen, der besagt, dass die Datei von mir geändert wurde? – davitenio

1

Sie wollen hier kein Risiko einer Fehlinterpretation des Urheberrechts eingehen.Also, ich würde so weit wie die folgende Struktur gehen:

my_project/ 
|-- the_other_project 
| |-- LICENSE.txt 
| |-- module1/ 
| | |-- file1.c 
| | |-- file2.c 
| | `-- file3.c 
|-- my_file1.c 
|-- my_file2.c 
|-- my_source_code1/ 
`-- my_source_code2/ 

Zusätzlich dazu:

  • jede Datei einen Header das Urheberrecht, Eigentümer und Lizenz
  • Erwähnung in Ihrem eigenen mentionning haben sollte Lizenz, die Sie Codeabschnitte eines anderen Projekts verwenden
  • Wenn Sie Code in den anderen Projekten ändern, fügen Sie Ihr Copyright und Ihren Namen in den Quelldateien des Projekts hinzu.

Das ist, wenn Sie nicht zu viele Änderungen an dem anderen Quellcode vornehmen. Wenn Sie alles neu schreiben, erwähnen Sie einfach in Ihrer Lizenz den Ursprung des anderen Codes.

1

Ich gerade gefunden Maintaining Permissive-Licensed Files in a GPL-Licensed Project: Guidelines for Developers, veröffentlicht von der Software Freedom Law Center. Obwohl es speziell darum geht, BSD-Stillizenzen (sie nennen sie permissive) in GPL-lizenzierten Code aufzunehmen, denke ich, dass die Empfehlung in Abschnitt 2.1, einschließlich nicht modifizierter permissiv lizensierter Dateien, eine gute allgemeine Empfehlung wäre. Ich zitiere:

Wenn das externe Projekt die einzelne Copyright-Datei-Methode verwendet, die Entwickler sollte die Namen aller die Urheberrechtsinhaber aus dieser Datei und legen Sie sie zusammen mit allen Urheberrecht, die Erlaubnis kopieren, und Garantie Haftungsausschluss Hinweise von der permissive Lizenz, an der Spitze der eingebundenen Quelldatei erforderlich.

Bei ändern Sie die darin enthaltenen Dateien und Ihr Projekt ist GPL gibt es zwei relevante Abschnitte in dem genannten Dokument:

Der Fall wo Sie die enthaltenen Dateien ändern und Ihr Projekt ist nicht GPL ist offensichtlich nicht durch das Dokument angesprochen. Aber aus dem, was ich aus den anderen Antworten entnommen habe, würde ich sagen, solange die Lizenz, die Sie für Ihr Projekt verwenden, nicht viral ist, wäre es das Richtige, sich einfach als Copyright-Inhaber in den Copyright-Header von die Datei, die Sie geändert haben, und erwähnen Sie den Ursprung des enthaltenen Codes irgendwo in Ihren Dokumenten.