2009-08-22 9 views
2

Ich möchte eine GPL-Komponente in einer iPhone-Anwendung verwenden, die nicht ist. Es ist eine unabhängige und eigenständige Komponente, also würde ich es auf jeder anderen Plattform als Programm kompilieren und es mit einigen Argumenten erzeugen, wenn ich es brauche.Wie bette ich eine GPL-Komponente in eine iPhone-Anwendung ein?

Aber wenn ich meine App im Appstore veröffentlichen will, muss ich mit diesem Abschnitt des iPhone SDK erfüllen:

3.3.2 Eine Anwendung kann nicht selbst andere ausführbare Code installieren oder starten, indem Sie eine beliebige bedeutet, einschließlich ohne Einschränkung durch die Verwendung einer Plug-in-Architektur, andere Frameworks, andere APIs oder anderweitig aufrufen. Kein interpretierten Code oder in einer Anwendung verwendet werden, heruntergeladen werden, außer für Code, interpretiert und ausgeführt von Apples dokumentierte APIs und integrierte in Interpreter (s).

Nach meinem Verständnis scheint es, dass Apple mir verbietet zu tun, was ich will.

Gibt es eine technische und/oder rechtliche Lösung, um eine (eigenständige) GPL-Komponente in eine iPhone-Anwendung einzubetten, ohne die gesamte Anwendung mit einer GPL-Lizenz zu lizenzieren.

Hinweis: Bei dieser Frage geht es nicht darum, ob die GPL-Lizenz wie bereits asked elsewhere mit den AppStore-Regeln kompatibel ist. Ich nehme an, es ist so.

+3

Ich stimme, diese Frage als off-topic zu schließen, weil ** es um Lizenzierung oder rechtliche Probleme geht **, nicht Programmierung oder Softwareentwicklung. [Siehe hier] (http://meta.stackoverflow.com/a/274964/1402846) für Details und die [Hilfe/zum Thema] für mehr. –

Antwort

4

Sie sollten den Autor dieser Komponente bitten, sie unter anderen Bedingungen zu lizenzieren, vielleicht gegen echtes Geld.

Wenn der Autor GPL für diese Komponente ausgewählt hat, hat er dies möglicherweise so genau gemacht, dass Sie auch GPL für Ihre Anwendung verwenden.

0

Auf dem iPhone können Sie Quellcode und GPL nicht mischen, da alle Apps eigenständig sind. Sie können die enthaltene ausführbare GPL-Datei nicht anders als mit Ihrer Anwendung verwenden.

Da Sie bereits planen, eine Interprozesskommunikation zu verwenden, um das GPL-Modul ohne Verknüpfung zu verwenden, können Sie das GPL-Teil auf einen Server legen und über das Internet darauf zugreifen. Ich weiß, es ist eine Menge Aufwand und skaliert nicht gut, aber es ist die einzige Lösung, die ich mir vorstellen kann.

3

Sie können keinen separaten Prozess erstellen oder Plugins laden, was bedeutet, dass die einzige Möglichkeit, etwas in Ihre App einzubinden, eine statische Verknüpfung ist. Im Falle von GPL-Code müssen Sie die resultierende abgeleitete Arbeit GPL erstellen. Das ist die Absicht der GPL für besser oder schlechter.

Als beiseite:

auf jeder anderen Plattform, würde ich es als Programm zusammenstellen und laichen es mit einigen Argumenten, wenn ich es brauche.

kann in der Tat eine GPL-Verletzung je nach der Absicht des Autors sein. Wenn Sie eine GPL-Komponente mit einer benutzerdefinierten Schnittstelle explizit umbrechen, um sie aus einer Binärdatei herauszuhalten, führt dies immer noch zu einer einzigen abgeleiteten Arbeit. Natürlich wurde dies meines Wissens nicht vor Gericht geprüft, und das Konzept einer abgeleiteten Arbeit in der GPLv2 ist rechtlich nicht eindeutig.

+0

In meinem speziellen Fall habe ich keine benutzerdefinierte Schnittstelle dafür entwickelt, ich verwende nur das Programm, das in der GPL-Komponente mit seinen Standardparametern verfügbar ist. Ich habe nichts verändert, ich spawne es nur mit meinen Argumenten. – math

Verwandte Themen