Was muss ich tun, um "Hello World" -Code NICHT mit einer GPL-Lizenz zu stehlen?

42

In dem Projekt fand ich eine Datei math.cmit einem großen GPL-Header und ...

//------------------------------------------------------------------------------
/// Returns the minimum value between two integers.
/// \param a  First integer to compare.
/// \param b  Second integer to compare.
//------------------------------------------------------------------------------
unsigned int min(unsigned int a, unsigned int b)
{
    if (a < b) {
        return a;
    }
    else {
        return b;
    }
}

OK, cool, also muss ich min Wert bekommen und ... diese Datei !? Also muss ich das ganze Projekt deswegen öffnen? Oder muss ich die Mathematik neu erfinden?

Ich glaube nicht, dass es nur verrückt ist, also lautet die Frage: Wann können wir den GPL-Header einfach entfernen?

Muss ich ein Verrückter sein und es tun ?

unsigned int min(             unsigned int
JEIOfuihFHIYEFHyigHUEFGEGEJEIOFJOIGHE,
unsigned int hyrthrtRERG            ) {  if
(JEIOfuihFHIYEFHyigHUEFGEGEJEIOFJOIGHE
< hyrthrtRERG            ) {  return JEIOfuihFHIYEFHyigHUEFGEGEJEIOFJOIGHE;  }
else {return hyrthrtRERG            ;    } }

Wollen sie wirklich, dass ich Code wie den oben genannten schreibe?

cnd
quelle
22
Nun, im aktuellen Fall von Google vs Oracle the jury did find that one nine-line function that Google acknowledged copying was infringing(von ArsTechnica ).
Zenon
5
Ach komm schon, im Ernst, min?
Mircea Chirea
33
Ich würde sagen, die bloße Existenz dieser Frage ist eine schlechte Sache - Die Arbeit eines Programmierers ist weniger programmiert worden, mehr rechtliche Unordnung und Bürokratie
K.Steff
4
Kopieren Sie es . Eine triviale Funktion wie minist nicht urheberrechtlich geschützt. Siehe meine Antwort für Details.
Tony das Pony
6
@Loki, Sie vermissen es um eine Meile. Algorithmen sind durch Patente und nicht durch Urheberrechte geschützt. Das Urheberrecht erlischt 70 Jahre nach dem Tod des Autors, sodass urheberrechtlich geschützte Werke in den 60er Jahren noch recht frisch sind. Schließlich geht es um das Kopieren dieses Codes, nicht um den Algorithmus.
Alexis

Antworten:

53

Im Gegensatz zu vielen Benutzern hier würde ich einfach vorschlagen: Kopieren Sie es!

Vergewissern Sie sich, dass die Formatierung des Codes Ihrem Kodierungsstandard entspricht und dass Sie den Kommentar möglicherweise entfernen oder neu schreiben sollten. Niemand wird jemals erfahren, dass Sie es kopiert haben - wenn ein Stück Code so einfach ist, hätten Sie es genauso gut von Grund auf neu schreiben können. Wenn Ihr Codierungsstandard es irgendwie erfordert, dass die Funktion genau so aussieht wie im Snippet, dann soll es so sein - solange es so aussieht, als ob Sie es von Grund auf neu geschrieben hätten.

Denken Sie darüber nach, dies ist kaum (!) Das erste Mal, dass dieses genaue Stück geschrieben wurde - wenn etwas so trivial ist, gibt es kaum einen Grund, es nicht zu kopieren, wenn Sie keine Lust haben, es selbst zu schreiben.

Selbst diese Diskussion scheint mir ein wenig überflüssig - wir müssen pragmatisch sein, wenn wir echte Arbeit leisten wollen!

Nilu
quelle
5
Die eigentliche Frage ist, wo die Barriere zwischen Trivialem und Nicht-Trivialem liegt und wie man absolut sicher sein kann, dass die Leute meinen Code nicht mit etwas ähnlichem verweisen: "SEHEN SIE MEINE GPL MIN REALISIERUNG AN!" ... Ich fürchte diese Leute wirklich _ <
CND
20
Nun, es gibt das Konzept der Originalitätsschwelle im Urheberrecht. Und eine so einfache Methode sollte kaum urheberrechtlich geschützt sein. IANAL und Gerichtsbarkeiten variieren jedoch. Dennoch könnte etwas, das jeder CS-Student mindestens fünf Mal auf genau die gleiche Weise geschrieben hat, sehr gut darunter fallen.
Joey,
4
@ Nilu: Let us then say that the programmer wrote his own version of MIN and it ended up looking exactly like the one from math.c - would it then be okay?Ja, wenn es ein Unfall war. "Welchen Unterschied würde es dann machen, wenn er es gerade kopiert hätte?" Bits haben Farbe . ansuz.sooke.bc.ca/entry/23 Das können die meisten Informatiker nicht verstehen - es ist in der Tat ein komplexes Thema, aber es ist etwas, das vom Gesetz anerkannt wird. Wenn Sie Zweifel haben, ob etwas legal ist oder nicht, sollten Sie mit einem Anwalt sprechen .
Mark Byers
4
@alexis: Ich verstehe Ihren Punkt, aber ich stimme nicht wirklich zu - wenn der resultierende Code identisch ist, kann niemand außer dem Programmierer wissen, ob er von Grund auf kopiert oder geschrieben wurde. Offensichtlich sollte man keine Probleme haben, min zu implementieren, und es würde wahrscheinlich weniger Zeit in Anspruch nehmen, als eine andere Implementierung zu finden. Wenn jedoch ein Programmierer es tatsächlich kopiert und niemand weiß, dass er die Funktion nicht selbst geschrieben hat, welcher Schaden wurde dann angerichtet? Wenn der Programmierer keine Schuldgefühle hat, lautet die Antwort "Keine". Der Rest ist einfach Semantik.
Nilu
5
@MarkByers: Wenn ich sage , ‚kann nicht beweisen‘, ich meine , dass keine physischen Beweise existieren zu zeigen , dass ein Verbrechen wurde sogar verpflichtet - das Verbrechen , die den Geist des Programmierers vollständig beschränkt ist verpflichtet worden ist. Offensichtlich kann dies nicht der Fall sein, wenn einige Süßigkeiten gestohlen werden - dies hat physische Auswirkungen auf die Welt (Lutscher - = 1). Wenn das 'Verbrechen' auf Ihren eigenen Verstand beschränkt ist, wer soll beurteilen, ob es moralisch oder unmoralisch ist?
Nilu
18

Es beantwortet Ihre Frage nicht direkt, aber versuchen Sie Folgendes:

#define min(a,b) ((a) < (b) ? (a) : (b))

Ich gebe hiermit dieses herrliche, komplexe Makro für die Öffentlichkeit frei. Möglicherweise muss ich jedoch einen Artikel über diese Technik veröffentlichen.

Wenn Sie Makrophobiker sind, probieren Sie diese Inline-Version aus (wirklich, wenn Sie nicht auf einem SPARC programmieren, sparen Sie viele CPU-Zyklen, indem Sie eine Funktion nicht so allgegenwärtig umschließen wie minim Eingabe- / Beendigungscode):

inline int min(int a, int b)
{
    return a < b ? a : b;
}

Das Problem der Codelizenzierung für triviale Snippets ist wirklich etwas lästig. Wenden Sie sich an einen Anwalt, aber ich bin versucht anzunehmen, dass sie nicht wirklich lizenziert werden können und / oder die Lizenzierung in der Praxis nicht durchgesetzt werden kann. Genauso wie Sie das Wort "Wort" weder urheberrechtlich schützen noch als Marke kennzeichnen können, stützen Sie sich auf Personen, die es verwenden. (Hoppla)

Alexios
quelle
1
Oh, sie können diesen Code sicherlich urheberrechtlich schützen, aber angesichts der Einfachheit des Algorithmus wäre es schwierig, vor Gericht zu beweisen, dass Sie ihn kopiert haben, es sei denn, Sie haben etwas Dummes getan, wie intakte Kommentare usw. Die Regel lautet nicht, dass Sie dies können Verwenden Sie nicht den gleichen Code. Die Regel lautet, dass Sie dies nur tun können, wenn Sie ihn mit Ihrem eigenen Gehirn geschrieben haben und das Original in keiner Weise kopiert haben.
Gort the Robot
2
@StevenBurnap Natürlich hätte der ursprüngliche Code auch die gleichen Probleme: Können sie nachweisen, dass sie ein Urheberrecht haben (dh, dass sie es nicht von einer früheren Implementierung kopiert haben)?
Richard
19
Problem mit der Makro-Version von min kommt, wenn Sie versuchen, dies zu tun min(a++,b++).
4
"release this ... to the public domain" ist sehr US-zentriert. In vielen Ländern bedeutet dies nicht dasselbe, und in einigen Ländern ist dies rechtlich nicht möglich.
9
Danke, aber auf einem Compiler aus den 2000er Jahren kann ein Compiler Trivialitäten wie Inline min.
DeadMG
18

Haftungsausschluss : Ich bin kein Anwalt. Verwenden Sie meinen Rat auf eigenes Risiko.

Diese Implementierung von minist nicht urheberrechtlich geschützt , da es nur sehr wenige sinnvolle Schreibweisen gibt.

In der Rechtswelt ist dies als Fusionslehre (auch als Ideenaustausch-Spaltung bekannt) bekannt. Die (nicht urheberrechtlich geschützte) Idee der Funktion soll mit dem (möglicherweise urheberrechtlich geschützten) Ausdruck "verschmolzen" sein . Daher unterliegt der Code nicht dem Urheberrecht - Sie können ihn frei verwenden.

Um auf der sicheren Seite zu sein, kopieren Sie es nicht wörtlich . Verwenden Sie unterschiedliche Namen für Variablen, wenden Sie Ihre eigene Formatierung an und kopieren Sie Kommentare nicht Wort für Wort. Die genaue wörtliche Darstellung dieses Codes ist möglicherweise urheberrechtlich geschützt.

Denken Sie daran, dass dies nicht garantiert, dass jemand Sie nicht verklagt, aber zumindest eine starke Verteidigung hat.

Bedenken Sie auch, dass ein Teil des Codes, der nicht urheberrechtlich geschützt ist, möglicherweise durch ein Softwarepatent geschützt ist (dies ist für Ihre minFunktion nicht der Fall ).

Tony das Pony
quelle
2
Sie versuchen das Oracle zu sagen!
GordonM
1
Vielleicht war diese 9-Zeilen-Funktion nicht trivial ... Ich möchte den Code sehen.
Tony das Pony
1
programmers.stackexchange.com/a/148362/28718 scheint mir ziemlich trivial zu sein, vorausgesetzt, das ist der richtige Code.
GordonM
12

Ich veröffentliche den folgenden Code unter der BSD-Lizenz . Da diese Lizenz viel mehr Erlaubnis gibt, sollten Sie nicht auf Urheberrechtsprobleme stoßen, wenn Sie meine Implementierung verwenden.

unsigned int min(unsigned int a, unsigned int b)
{
    return (a > b? b: a);
}
GordonM
quelle
Wie kann ich sicher sein, dass Sie diesen GPL-Code nicht versiegelt und neu geschrieben haben? : P (nur ein Scherz)
CND
1
Du bist nicht. Aber wenn Sie meinen Code verwendet haben, können Sie behaupten, dass Sie ihn in gutem Glauben verwendet haben.
GordonM
3
Freut euch, liebe Brüder, als das neue Zeitalter angebrochen ist - wir können es jetzt minin Closed-Source-Software finden. @Sholy, jetzt ist es GordonMs Problem, ob er es kopiert hat oder nicht.
K.Steff
5
Sie veröffentlichen es auch unter "Creative Commons". Informationen zu hier eingefügtem Code finden Sie unten auf dieser Seite.
Martin York
11

Es ist eine absurde Situation, stimme ich zu, aber Sie haben nur sich selbst die Schuld. Wenn Sie proprietären Code schreiben, sollten Sie keine GPL-lizenzierten Quelldateien lesen. Entfernen Sie math.c aus Ihrem Dateisystem, bewahren Sie die Dokumentation auf, und implementieren Sie alle erforderlichen Teile der API erneut. Wenn Sie den Code nicht lesen, müssen Sie sich keine Sorgen machen, wenn Ihr eigener Code ähnlich ausfällt.

Verschwenderisch, sagst du? Die GPL verhindert absichtlich, dass Sie von kostenlosem Code profitieren, ohne dem Ökosystem etwas zurückzugeben. Wenn Sie die Bedingungen nicht erfüllen können oder nicht erfüllen und keine weitere Mathematikbibliothek implementieren möchten, können Sie immer eine kaufen oder eine kostenlose kaufen, die mit einer Lizenz geliefert wird, die Sie akzeptieren können.

Microsoft-Programmierer dürfen keinen Open-Source-Code lesen, um das Unternehmen vor rechtlichen Problemen zu schützen. Aus rein ethischen Gründen sollten Sie dasselbe mit jedem Programm tun, dessen Lizenz Sie nicht einhalten möchten.

Sie haben kein Recht, dies zu nutzen math.c, aber niemand versucht, den Markt für Implementierungen von zu erobern min. Das Ziel der GPL ist es, die "Freiheit" des Programmierers (und die Freiheit des Endbenutzers) zu erhöhen und nicht einzuschränken. Die GNU-Lizenz, die FSF und die Freie-Software-Bewegung begannen mit Richard Stallman, und Stallman begann damit, jede neue Version von Symbolics lisp von Grund auf neu zu implementieren. Die FSF würde (und könnte) niemanden für die Neuimplementierung einer GPL-Bibliothek suchen.

alexis
quelle
Es ist also ein wirklich seltsames Beispiel. Es ist ein Beispiel, das heißt, ich muss es lesen und befolgen ... aber soweit ich weiß, kann ich hier keine GPL-Lizenz auswählen. So weiß ich , wer ist Stallman;)
CND
2
Sholy, sorry, aber ich habe keine Ahnung, was du sagst! Welches Beispiel? (Fragen Sie mich auch, wer Stallman ist? Google it. Oder überprüfen Sie einfach Wikipedia.)
Alexis
3
"Microsofts Programmierer dürfen keinen Open-Source-Code lesen" Oh, das ist schrecklich - gibt es irgendwo einen Ort, an dem ich darüber lesen kann? Google hilft nicht.
Amara
Gute Frage. Ich habe es in einem Iron Python-Entwicklungsforum gelesen, kann es aber leider nicht finden. Zusammenfassung: Jim Hugunin ( hugunin.net/microsoft_farewell.html ) erwähnte, dass sie sich die Python-Implementierung nicht ansehen dürften, und jemand fragte im Scherz, ob sie sich ihren eigenen Code ansehen dürften (Microsoft hatte Iron Python Open Source gemacht). . Die Antwort lautet: Sie machten eine besondere Ausnahme für Iron Python.
Alexis
Die Leute, deren Freiheit die GPL vergrößern soll, sind alle Benutzer des Programms, nicht (speziell) Programmierer.
James Youngman
7

Antwort: Nur mit ausdrücklicher Genehmigung des Autors.

Das ist urheberrechtlich geschützter Code. Sie können es nicht ohne Erlaubnis des Autors kopieren.

Sie müssen eine eigene Version von schreiben minoder eine Variante kopieren min, für die eine andere Lizenz verwendet wird.

Denken Sie daran, dass beim Urheberrecht der Code geschützt ist, nicht der Algorithmus. Das Urheberrecht ergibt sich aus dem Text. Selbst wenn "math.c" nichts als Kommentare und überhaupt keinen ausführbaren Code hätte, wäre es dennoch urheberrechtlich geschützt.

Gort den Roboter
quelle
1
Was bedeutet eigene Version? MY OWN Version von MIN, hört sich komisch an!
CND
2
Denken Sie daran, Sie besitzen keine minbestimmte Zeichenfolge, die gerade implementiert wird min.
Gort the Robot
2
Sie können es ohne Erlaubnis des Autors nur für den persönlichen Gebrauch ändern. Sie müssen es von Grund auf neu schreiben. Das ist der springende Punkt. Beachten Sie, dass es in Ordnung ist, wenn Sie sich an einen leeren Editor setzen und etwas schreiben, das fast mit diesem identisch ist, weil Sie es nicht kopiert haben. (Vorausgesetzt, Sie haben nicht aus dem Gedächtnis
getippt
2
Nein, ich scherze nicht. Und ja, in solchen Fällen können Sie wahrscheinlich davonkommen. Es wäre Sache des Urhebers, zu beweisen, dass Sie es getan haben. Beachten Sie, dass ich Ihnen nur sage, was das Gesetz ist, und es nicht verteidige.
Gort the Robot
3
Denn wenn Sie diese trivialen Dinge nicht neu codieren, verwenden Sie die Arbeit eines anderen auf eine Weise, zu der er Ihnen keine Erlaubnis erteilt hat. Wenn es so trivial ist, dass Sie es nicht brauchen, verwenden Sie es nicht.
Alexis
6

Dies ist, was Google angeblich abgezockt hat. Dies scheint ein gesunder Menschenverstand für ein Array zu sein.

 908     /**
 909      * Checks that fromIndex and toIndex are in range, and throws an
 910      * appropriate exception if they aren't.
 911      *
 912      * @param arrayLen the length of the array
 913      * @param fromIndex the index of the first element of the range
 914      * @param toIndex the index after the last element of the range
 915      * @throws IllegalArgumentException if fromIndex > toIndex
 916      * @throws ArrayIndexOutOfBoundsException if fromIndex < 0
 917      *         or toIndex > arrayLen
 918      */
 919     private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {
 920         if (fromIndex > toIndex)
 921             throw new IllegalArgumentException("fromIndex(" + fromIndex +
 922                        ") > toIndex(" + toIndex+")");
 923         if (fromIndex < 0)
 924             throw new ArrayIndexOutOfBoundsException(fromIndex);
 925         if (toIndex > arrayLen)
 926             throw new ArrayIndexOutOfBoundsException(toIndex);
 927     }
Chrispix
quelle
Wenn dies alles ist, wird das Urteil im Berufungsverfahren fallen gelassen. Laut Wired hat der Richter jedoch auch festgestellt, dass Google 8 weitere Dateien kopiert hat. Siehe wired.com/wiredenterprise/2012/05/google-oracle-decompile
Tony the Pony
5
Ja, aber "gesunder Menschenverstand" ist nicht die Messlatte für das Urheberrecht. Es ist, ob sie kopiert und bearbeitet oder selbst von Grund auf neu geschrieben haben. Ob etwas "gesunder Menschenverstand" ist, ist der Test für Patente, nicht für Urheberrechte. Mit anderen Worten, Oracle kann diesen Text urheberrechtlich schützen, diesen Algorithmus jedoch nicht patentieren.
Gort the Robot
Diese 9 Zeilen sind ein klassisches Beispiel für die Fusionslehre. Wie viele andere Möglichkeiten gibt es, um eine Bereichsprüfung für ein Array durchzuführen?
Tony das Pony
1
@TonythePony, Lose, wenn die Funktion eine Ausnahme auslöst, die eine Textnachricht enthält.
Avakar
4
Nur wenige Leute haben erwähnt, dass die Person, die diesen Text bei Google kopiert hat, auch die Person ist, die ihn bei Sun geschrieben hat . Programmierer müssen erkennen, dass Stallman - der verrückte bärtige Extremist - Recht hatte . Geld, die Wurzel allen Übels, lässt die Menschen vergessen, warum sie überhaupt an der Technologie teilnehmen. : - /
HostileFork
5

Ich werde diesen Code sowieso nicht verwenden, da der Kommentar nicht mit dem Code übereinstimmt. Der Kommentar spricht über integer, während der Code verwendet unsigned int. Wer weiß, welche Fehler in den Tiefen dieser Funktion verborgen sind?

Im Ernst, hier wird "erfinde das Rad nicht neu" lächerlich und du hast vergessen, es mit einem Körnchen Salz einzunehmen. Schreiben Sie einfach Ihre eigene Version von Grund auf neu, stimmen Sie sie mit der Namenskonvention und dem Style-Guide Ihres Codes überein (z. B. math_min_uint(x, y)), stellen Sie sicher, dass sie funktioniert (Komponententest oder was auch immer), und fahren Sie mit dem Leben und ohne Copyright-Probleme fort.

Mit zunehmender Erfahrung befinden sich diese trivialen Schnipsel, die Sie immer wieder benötigen, nur in Ihrer Toolbox und Sie werden sie neu schreiben, ohne zu viel darüber nachzudenken, oder sie einfach aus Ihrer eigenen Bibliothek beziehen.

Sichern
quelle
2

Die Leute scheinen zu vergessen, dass das Urheberrecht sowohl im Geiste als auch im Buchstaben bedeutet, dass das Kopieren verboten ist - nicht das Ausdrücken des gleichen Gedankens selbst, auch wenn das Ergebnis verdächtig ähnlich ausfällt.

Wenn Sie den GPL-Code nehmen, ändern, in einer Weise verwenden, die gegen die Lizenz verstößt, unter der Sie ihn erhalten haben, und behaupten, es handele sich nicht um eine abgeleitete Arbeit, verstoßen Sie gegen das Gesetz. Auch wenn Sie Ihre zweite Version verwenden - Sie haben die Namen aller Variablen geändert und die Formatierung geändert, sie wurde jedoch immer noch vom Original abgeleitet.

Wenn Sie jedoch Ihre eigene Version schreiben minund aufgrund der Trivialität der Aufgabe, der Tatsache, dass es nur so viele Möglichkeiten gibt, wie Sie so etwas sinnvoll schreiben können, und ein bisschen Zufall, ist Ihre Version letztendlich genau identisch in den GPL-Code, dann haben Sie nichts kopiert.

Ob eine der beiden Geschichten vor Gericht verhandelt wird oder nicht, ist jedoch eine andere Frage. Wenn ein größeres oder komplexeres Codebeispiel mit Kommentaren, Formatierungs- und Rechtschreibfehlern an anderer Stelle auftaucht, fällt es Ihnen schwer, jemanden davon zu überzeugen, dass Sie es unabhängig geschrieben haben source (was angesichts der Tatsache, dass Sie es hier gepostet haben, ziemlich trivial sein sollte).

tdammers
quelle
1

Wenn der Code als "min" -Beispiel wirklich trivial ist, besteht eine sehr hohe Wahrscheinlichkeit, dass jemand anderes dieselbe Funktionalität bereits unter einer anderen Open-Source-Lizenz implementiert hat.

Abhängig von der Lizenz kann es durchaus sein, dass Sie den Code in Ihre Closed-Source-Anwendung aufnehmen dürfen.

Niels Basjes
quelle
1

Schreiben Sie es einfach selbst in 30 Sekunden. Sie können genau denselben Algorithmus verwenden. Nur nicht kopieren / einfügen.

Das Urheberrecht schützt nur den Ausdruck einer Idee, nicht die Idee selbst. Sie können die Idee direkt verwenden, sofern Sie sie nicht kopieren.

FWIW, ich bezweifle, dass das Kopieren eines so trivialen Codes Sie sowieso in Schwierigkeiten bringen würde. Schäden wären gleich Null und würden wahrscheinlich in den meisten Ländern unter fairen Bedingungen verwendet. Aber Rechtsfälle sind so schmerzhaft, dass ich es nicht riskieren möchte.

mikera
quelle
1

Da es sich um einen GPL-Code handelt, ist die große Frage, ob Sie planen, Ihren Code zu verbreiten oder Ihre Software zu verkaufen.

Wenn Sie es nur intern verwenden, können Sie mit der GPL völlig frei tun, was Sie möchten.

Wenn Sie vorhaben, Ihr Paket zu vertreiben, ist es am einfachsten, Ihr Paket zu denselben Bedingungen wie die von Ihnen verwendeten GPL-Quellen zu veröffentlichen. Es gibt andere Möglichkeiten, aber es wird kompliziert.

Wenn Sie vorhaben, Ihre Software zu verkaufen, müssen Sie den Quellcode für jeden von Ihnen verwendeten und / oder geänderten GPL-Code unter derselben GPL-Lizenz verbreiten, unter der Sie ihn erhalten haben.

James Anderson
quelle
0

Wenn Sie C ++ und nicht C verwenden, umgehen Sie dieses Problem, indem Sie die Standardbibliothek verwenden std::minoder std::maxin <algorithm>:

http://www.cplusplus.com/reference/algorithm/min/

Das verschafft Ihnen Allgemeingültigkeit und funktioniert für jeden vergleichbaren Typ. Außerdem: Wenn d-bag behauptet, sie hätten es erfunden und seien durch Softwarepatente geschützt, werden sie vor dem ISO-Komitee rumoren ... nicht Sie.

Notieren Sie sich im Allgemeinen, wer den Code veröffentlicht hat. Firma oder gesunde Person? Wenn es sich um eine vernünftige Person handelt (wie dies bei vielen Open Source-Anwendungen der Fall ist), schreiben Sie ihnen eine nette Nachricht und holen Sie die Erlaubnis ein. Speichern Sie die Antwort und sagen Sie, dass es in Ordnung ist. Problem gelöst.

HostileFork
quelle
-2

Für den allgemeinen Fall: Komplexerer Code, der definitiv urheberrechtlich geschützt ist, im Gegensatz zu min und max (der urheberrechtlich geschützt sein kann oder nicht).

Dann lizensieren Sie Ihren Code in Übereinstimmung mit der Bibliothek, dh GPL! Beachten Sie jedoch, dass es LGPL-Bibliotheken (und GPL mit Ausnahmen) gibt, mit denen Sie deren Implementierungen verwenden können, während Sie Ihren Code mit einer beliebigen Lizenz versehen.

Strg-Alt-Delor
quelle