66 votes

Quelles licences open source sont compatibles avec l'iPhone d'Apple et son App Store officiel?

J'écris une application iPhone et j'aimerais utiliser une bibliothèque tierce pour une partie de ses fonctionnalités. J'ai l'intention de le vendre via l'App Store et mon code ne sera pas en open source. Quelles licences open source permettent de créer des travaux dérivés et de les publier dans les conditions propres à Apple?

51voto

miguel.de.icaza Points 27138

En Bref/TL;DR:

La LGPL et de l'application des magasins ont un peu d'incompatibilités qui signifie que vous n'avez pas les droits pour distribuer le code LGPL sur DRM activé AppStores ou le verrouillage des appareils.

Il est préférable si vous regardez pour les autres implémentations de la bibliothèque, sous d'autres plus lâches des licences comme la Licence Apache 2, Microsoft Public License ou le MIT Licence X11.

Plus:

La LGPL états:

Il peut arriver que cette exigence contredit la licence restrictions d'autres propriétaires de bibliothèques qui ne sont normalement pas accompagner le système d'exploitation. Une telle contradiction signifie que vous ne pouvez pas utiliser la Bibliothèque dans un fichier exécutable que vous distribuer.

Les droits pour la liaison statique de code LGPL avec du code propriétaire vient de la section 6 de la LGPL. En plus des droits accordés cette section traite des exigences de votre part vers l'aval les destinataires de votre code.

Vous devez lire cette section en détail.

Les conflits entre la Rémunération du Développement et de la LGPL

Les banques de l'Application qui obligent les utilisateurs à payer pour entrer dans le programme et d'obtenir des certificats de clé, les profils d'approvisionnement et des outils pour déployer de l'appareil sont en contradiction directe avec la LGPL.

La LGPL nécessite que l'utilisateur final est en mesure d'extraire les fichiers de l'objet en plus de la bibliothèque open source (ainsi que des outils, voir la section ci-dessous) et de produire un code qui fonctionne. Il n'y a pas de place pour avoir l'aval de destinataire avoir à entrer dans un accord séparé avec Apple, Microsoft, Amazon ou de Google afin d'être en mesure de déployer une version de travail de la code sur son propre matériel.

En particulier, cette section est pertinente:

Vous ne pouvez pas imposer davantage restrictions sur les bénéficiaires de l'exercice des droits accordés par les présentes. Vous n'êtes pas responsable de l'application de la conformité par des tiers cette Licence.

Vous n'avez pas besoin de donner aux utilisateurs le droit de republier votre application sur l'AppStore, mais vous avez besoin de donner aux utilisateurs le droit de déployer votre application avec la version modifiée du code LGPL sur leurs propres appareils, de sorte que n'importe quel développeur de programme ou d'un dispositif qui exige des paiements supplémentaires à déployer est en conflit avec la LGPL.

Distribution des Fichiers Objets

Vous devez vous assurer que les termes de l'exécutable résultant de permettre au bénéficiaire d'effectuer des modifications au code LGPL et de produire un travail des morceaux de code. Cela signifie en pratique que vous avez besoin de distribuer des fichiers de l'objet de votre programme de sorte qu'un tiers puisse rétablir le lien de votre application avec une version modifiée de la bibliothèque, possible de corriger les bugs, améliorer, d'une certaine façon, ou de fournir leurs propres caractéristiques.

Vous pourriez vous en sortir avec ce en affichant les fichiers objet dans votre site web et de fournir un projet de cette manière, les tiers peuvent les lier à nouveau l'application. Ne pas le faire révoquer votre licence LGPL.

Les droits de la rétro-Ingénierie

C'est une autre exigence de l'Article 6.

Cela pourrait être en conflit direct avec les conditions d'application différents magasins, mais vous devez vérifier les termes exacts avec le magasin d'application que vous utilisez (Apple, Amazon, Android ou d'autres tierces parties).

Avis et Annonces

Dans le cadre des exigences pour le code LGPL, l'application qui est livré à l'utilisateur en aval doit expédier avec la licence LGPL et le point de cette licence sur les lieux de l'application d'affichage de tout avis de droit d'auteur. Certains magasins d'application ce post sur l'application du site de la banque, tandis que d'autres pourraient avoir les informations de droits d'auteur sur l'exécutable lui-même.

La Distribution de la modification du code LGPL

C'est très facile à respecter, vous avez juste besoin de distribuer la copie de la LGPL code sur votre site web (il y a quelques détails supplémentaires à ce sujet sur la licence sur la longueur de temps vous devez conserver le code).

Les exigences que vous ne pouvez pas répondre

L'un des problèmes majeurs avec la LGPL et l'utilisation de bibliothèques statiques dans les applications qui sont distribués par les banques de l'application est la condition de distribuer les outils et les scripts qui sont nécessaires pour un utilisateur final pour reconstruire le logiciel.

Pour certains système intégré de scénarios, vous auriez besoin de le système intégré de fournisseur de divulguer son développeur d'outils et d'Api pour tous les utilisateurs finaux, ce qui pourrait ne pas être possible. Il n'est pas clair si quelque chose comme l'iPhone ou Windows Sdk peut être librement redistribué à remplir les obligations dans ce cas, vous pouvez discuter avec votre avocat et découvrez comment vous êtes à l'aise avec l'exposition des exigences.

Ce que vous pouvez faire

Si vous avez absolument besoin d'utiliser certains code LGPL dans un appstore ou d'un système embarqué, vous pouvez toujours aller pour les auteurs du code et leur demander de vous accorder une licence pour le code sous des termes différents.

Alternativement, vous pouvez rechercher d'autres implémentations de la bibliothèque, sous d'autres plus lâches des licences comme la Licence Apache 2, Microsoft Public License ou le MIT Licence X11.

9voto

huyz Points 979

Concernant la LGPL, je crois que St3fan est incorrect, mais Louis Gerbarg est correct: il est possible d'utiliser la LGPL bibliothèques en closed-source des applications de l'iPhone, mais avec des restrictions.

Si vous jetez un oeil à http://en.wikipedia.org/wiki/GNU%5FLesser%5FGeneral%5FPublic%5FLicense, vous pouvez lire "Sinon, statiquement bibliothèque est autorisée si la source de code ou réticulable fichiers objets sont fournis."

Alors que Louis Gerbarg mentionné, si vous utilisez une bibliothèque LGPL, vous êtes autorisé à garder votre demande de code source fermé aussi longtemps que vous le mettre gratuitement à la disposition de l'objet (par exemple *.o) les fichiers qui sont nécessaires pour vos clients de prendre votre application et de faire un lien.

- Je aller en profondeur dans le sujet de l'iPhone et de la LGPL compatibilité ici.


Les exigences détaillées sur votre application imposées par la licence LGPL de la bibliothèque:

d) effectuez l'une des opérations suivantes:

0) Transmettre le Minimum Source Correspondant sous les termes de la présente Licence, et le Code de l'Application sous une forme appropriée pour, et suivant des modalités qui permettent à l'utilisateur de se recombiner ou rétablir le lien de l'Application avec une version modifiée de la Version Liée à produire une modification de la combinaison de Travail, de la manière prescrite par l'article 6 de la GNU GPL pour le transport de la Source Correspondante.

9voto

L'App Store d'Apple est incompatible avec la FSF est le copyleft idée qui est présente dans toutes les versions de la GPL et de la LGPL, et aussi l'Affero GPL. L'App Store d'Apple ne permet pas aux utilisateurs de prendre du Logiciel Libre, de le modifier, puis l'exécuter sur leurs propres appareils librement. Ils nécessitent l'utilisation de DRM, payer 100 $par année, à accepter leurs conditions supplémentaires, etc. Il y a une assez bonne écriture de ce sujet ici: http://michelf.com/weblog/2011/gpl-ios-app-store/

Il est tout à fait légal de distribuer les licences GPL/LGPL les logiciels pour iOS en dehors de l'App Store, le problème réside avec l'App Store d'Apple. Donc je vous recommande de lobbying Apple à modifier leurs restrictions. Mac OS X et iOS, même fondamentalement compter sur GPL/LGPL les logiciels (par exemple gcc et beaucoup plus), de sorte que Apple est en profitant de la liberté mais c'est nier ses utilisateurs de la même liberté.

Comme pour les licences que l'App Store est compatible avec, vous aurez besoin d'aller avec la très permissive des licences comme BSD, MIT, Apache, ou du domaine public.

7voto

St3fan Points 16196

Je ne pense pas que LGPL fonctionnera pour les applications iPhone.

Le problème est que l'exécution de l'iPhone ne vous permet pas de regrouper des bibliothèques partagées (ou des frameworks) avec votre application. Seules les applications binaires simples sont autorisées. La LGPL est basée sur l'hypothèse que vous associez une bibliothèque partagée à une application. La liaison directe est toujours interdite.

5voto

Ryan Ahearn Points 3829

Ce n’est pas un avis juridique, je ne suis pas avocat, mais il semble que vous ayez besoin d’une bibliothèque avec une licence BSD ou Apache. Ce serait le cas si vous développiez un programme de bureau propriétaire qui utilisait une bibliothèque open source. Je ne sais pas si Apple impose d'autres restrictions aux applications pour iPhone.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X