web-dev-qa-db-fra.com

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 partie pour une partie de ses fonctionnalités. J'ai l'intention de la vendre à travers l'App Store et mon code ne sera pas ouvert. Quelles licences open source permettent de faire des œuvres dérivées et de les publier sous les conditions propres d'Apple?

61
Corey

En bref/TL; DR:

Les magasins LGPL et les magasins d'applications ont quelques incompatibilités, ce qui signifie que vous n'avez pas les droits de distribution de code LGPL sur les appcepteurs compatibles DRM ou les périphériques verrouillés.

Il est préférable que vous recherchiez des implémentations alternatives de la bibliothèque sous d'autres licences Laxer telles que la licence Apache 2, la licence Microsoft Public ou le MIT X11.

Plus long:

Les États LGPL:

Il se peut que cette exigence contradictente les restrictions de licence d'autres bibliothèques propriétaires qui n'accompagnent normalement pas le système d'exploitation. Une telle contradiction signifie que vous ne pouvez pas les utiliser et la bibliothèque ensemble dans un exécutable que vous distribuez.

Les droits de liaison statique du code LGPL avec code propriétaire proviennent de la section 6 de la LGPL. Outre les droits accordés à cette section traite des exigences de votre part vers les destinataires en aval de votre code.

Vous devriez lire cette section en détail.

Conflits entre le développement de la rémunération et le LGPL

Les magasins d'applications nécessitant des utilisateurs de payer pour entrer le programme et obtenir des certificats clés, des profils de provisioning et des outils à déployer sur l'appareil sont en contradiction directe avec le LGPL.

Le LGPL exige que l'utilisateur final puisse récupérer vos fichiers d'objets, ainsi que la bibliothèque open source (plus des outils, voir la section ci-dessous) et produire du code qui fonctionne. Il n'ya pas de place pour avoir le destinataire en aval doit entrer un accord distinct avec Apple, Microsoft, Amazon ou Google pour pouvoir déployer une version de travail du code sur son propre matériel.

En particulier, cette section est pertinente:

Vous ne pouvez imposer aucune restriction supplémentaire sur l'exercice des bénéficiaires des droits accordés ici. Vous n'êtes pas responsable de faire respecter la conformité des tiers avec cette licence.

Vous n'avez pas besoin de donner aux utilisateurs le droit de republier votre candidature sur une AppStore, mais vous devez 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 tout programme de développement ou périphérique nécessitant Les paiements supplémentaires au déploiement sont en conflit avec le LGPL.

Distribution des fichiers d'objets

Vous devez vous assurer que les termes de l'exécutable résultant permettent au destinataire de modifier le code LGPL et de produire de nouveaux bits de travail de code. Ceci dans la pratique signifie que vous devez distribuer les fichiers d'objet de votre programme afin qu'un tiers puisse relier votre application avec une version modifiée de la bibliothèque, possible pour résoudre des bugs, l'améliorer d'une manière ou d'une autre, ou fournir ses propres caractéristiques.

Vous pouvez vous éloigner de cela en publiant les fichiers d'objet de votre site Web et en fournissant un projet afin que des tiers puissent désigner la demande. Ne pas faire si révoque votre licence à la LGPL.

Droits d'ingénierie inverse

Ceci est une autre exigence de la section 6.

Cela pourrait être en conflit direct avec les termes de divers magasins d'applications, mais vous devez vérifier les termes exacts avec le magasin d'applications que vous utilisez (Apple, Amazon, Android ou d'autres tiers).

Avis et annonces

Dans le cadre des conditions requises pour le code LGPL, l'application expédiée à l'utilisateur en aval doit expédier avec la licence LGPL et pointez sur cette licence sur tous les endroits de l'application qui affiche les avis de copyright. Certains magasins d'applications publient ceci sur le site du magasin d'applications, tandis que d'autres peuvent avoir les informations sur le droit d'auteur sur l'exécutable lui-même.

Distribution du code LGPL modifié

Ceci est très facile à respecter, il vous suffit de distribuer la copie du code LGPL sur votre site Web (il y a quelques détails supplémentaires à ce sujet sur la licence de la durée de la durée nécessaire pour garder le code disponible).

Exigences que vous ne pouvez pas remplir

L'un des principaux problèmes liés à la LGPL et à l'utilisation de bibliothèques statiques dans des applications distribuées via des magasins d'applications est l'exigence que vous distribuez les outils et les scripts nécessaires à un utilisateur final pour reconstruire le logiciel.

Pour certains scénarios de système intégrés, vous auriez besoin du fournisseur de système intégré de divulguer ses outils de développeurs et ses API à tous les utilisateurs finaux, ce qui pourrait ne pas être possible. Il n'est pas clair si quelque chose comme l'iPhone ou les SDK Windows peut être librement redistribué pour répondre aux obligations dans ce cas, vous voudrez peut-être discuter avec vos avocats et découvrir à quel point vous êtes à l'aise avec l'exposition des exigences.

Ce que tu peux faire

Si vous avez absolument besoin d'utiliser un code LGPL dans un système AppStore ou un système intégré, vous pouvez toujours contacter les auteurs originaux du code et leur demander de vous accorder une licence au code sous différentes conditions.

Vous pouvez également rechercher des implémentations alternatives de la bibliothèque sous d'autres licences Laxer, telles que la licence Apache 2, la licence publique Microsoft ou le MIT x11.

49
miguel.de.icaza

En ce qui concerne le LGPL, je crois que ST3FAN est incorrect, mais Louis Gerbarg est correct: il est possible d'utiliser des bibliothèques LGPL dans des applications iPhone à source fermée, mais avec des restrictions.

Si vous jetez un coup d'œil à http://fr.wikipedia.org/wiki/gnu_lesser_general_public_license , vous pouvez lire ". "

Ainsi, comme l'a mentionné Louis Gerbarg, si vous utilisez une bibliothèque LGPL, vous êtes autorisé à conserver votre application fermée à la source aussi longtemps que vous offrez librement les fichiers objet (par exemple, * .O) nécessaires pour que vos clients prennent votre application et lier.

Je passe en profondeur dans le sujet de compatibilité iPhone et LGPL ici .


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

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

0) Transmettez la source correspondante minimale aux termes de la présente licence et le code d'application correspondant sous un formulaire adapté à, et en termes qui permettent, l'utilisateur de recombiner ou de relier l'application avec une version modifiée de la version liée pour produire un Travaux combinés modifiés, de la manière spécifiée par la section 6 du GNU GPL pour la source correspondante.

8
huyz

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

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

7
Stefan Arentz

Le Apple App Store est incompatible avec l'idée de Copyleft de la FSF qui est présente dans toutes les versions de la GPL et de LGPL, ainsi que de l'AFFERO GPL. Le Apple App Store ne permet pas aux utilisateurs de prendre des logiciels libres, de le modifier, puis de l'exécuter sur leurs propres appareils librement. Ils nécessitent que vous utilisiez DRM, payez 100 $ par an pour accepter leurs termes supplémentaires, etc. Il y a une assez bonne rédaction de cela ici: http://michelf.com/weblog/2011/gplpl-ios-app-store/

Il est totalement légal de distribuer un logiciel GPL/LGPL pour iOS en dehors de l'App Store, le problème réside avec le Apple App Store. Donc, je vous recommande le lobbying Apple Pour modifier leurs restrictions. Mac OS X et iOS Même fondamentalement s'appuient sur le logiciel GPL/LGPL (par exemple, GCC et bien d'autres), donc Apple profite de la liberté de la même liberté de la liberté .

Quant aux licences que l'App Store est compatible avec, vous devrez accéder aux licences très permissives telles que BSD, MIT, Apache ou Public Domain.

7

Ce n'est pas un avis juridique, je ne suis pas un 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 a des restrictions supplémentaires pour les applications iPhone.

5
Ryan Ahearn

(Je ne suis pas un avocat.)

La liaison de fichiers d'objet statique peut aborder la question de savoir comment autoriser une application qui utilise un code licencié LGPL à mettre à disposition sans distribuer les parties non-LGPL'D de son code source.

Mais il semble que LGPL, comme une variante sur GPL, impose un problème d'insurmontable plus important pour le développement de l'application iPhone en ce que les outils de développement nécessaires pour créer et distribuer une application iPhone ne sont disponibles que sous des termes de Apple= qui sont incompatibles avec gpl. C'est-à-dire des frais de 100 $/an, et il existe de nombreux termes et conditions sur l'utilisation de ces outils qui ne font pas partie de la licence GPL. Les termes de la licence des outils de développeur iPhone d'Apple semblent être incompatible avec l'esprit de et peut-être aussi la lettre de GPL.

3
Richard Lawler

Un bon exemple est Wunderradio. Ils utilisent FFMPEG et d'autres cadres agréés LGPLV2 et fournissent les fichiers .O sur leur site Web.

Étrangement, ils fournissent également un code source complet pour leur application.

http://wunderradio.com/code.html

1
steipete

Lorsque j'essaie de Port Feugo sur iPhone , j'ai posé une question similaire sur la liste de diffusion FUEGO . Jusqu'à présent, ma compréhension est "lglpl is non Compatible avec AppStore". Une précédente question reçoit également une réponse comme suit: non.

1
ohho

Si vous ne publiez pas votre code source, vous ne pouvez utiliser aucune licence de copieft stricte. Vous ne pouvez utiliser aucune licence GPLV3 dans n'importe quel cas, car la distribution iPhone est conflit avec la clause de non-Tivoisation.

Si vous utilisez LGPLV2, vous devrez fournir votre programme en format linable, qui peut être acceptable ou non (au moins ce n'est pas un code source), et cela est probablement quelque chose que vous ne voulez pas traiter avec , à moins que la bibliothèque offre beaucoup d'avantages.

S'il y a un titulaire du droit d'auteur sur la bibliothèque, vous pouvez toujours voir si vous pouvez obtenir une exception de licence.

Vous n'aurez aucun problème avec la BSD/MIT/Boost/Boost/Quelles que soient les licences permissives. Il y a beaucoup de licences logicielles open source/gratuites, et pour le reste, vous devrez les lire et voir.

1
David Thornley

Les gens qui soutiennent que les termes App Store de service sont problématiques, en particulier les 100 $ par année Apple Dev frais du programme, ont tort. Ce 100 $ est même pas proche d'un Showstopper. Il est typique de les développeurs qu'ils passent tellement de temps se soucier de ce genre de choses, 0) Les avocats ont été maniement du bâton autour de dispositions contractuelles pour des milliers d'années et ceux-ci ne sont guère la peine de perdre de dormir.

Pré-requis: Fournir les fichiers objet et un fichier de projet de base à partir d'un emplacement web accessible via un lien dans l'application.

Option 1, pour les cow-boys: Jailbreaker est officiellement légal (et gratuit). Rien que des vides des inquiétudes sur la compatibilité entre les LGPL et les termes App Store. Où la LGPL spécifie un canal de distribution particulier? Nulle part. Vous souhaitez mettre à jour une bibliothèque liée statiquement dans une application téléchargée via l'App Store? Suck it up, alpha dev et jailbreak votre téléphone! Tout simplement parce que Apple est une brute dans la cour de récréation ne développeurs entreprenantes peuvent ainsi recevoir la force pas rester sur leur-go-round joyeux. Droits de vantardise de valeur à la prochaine meetup. De plus le fait que vous jailbroke votre téléphone afin de mettre à jour une bibliothèque LGPL vous donne accès à la salle de tonnelet au sous-sol de Richard Stallman!

Option 2 pour se déplacer légalement et de bonne foi: Section 1 de LGPL v2.1 (et l'article 4 de la GPL v3) permet développeur de facturer des frais pour l'acte physique de la copie de la bibliothèque. Cela fournit un mécanisme pour le développeur de réaffecter cette taxe vers les 99 $ Apple Dev frais d'abonnement.

Qu'en est-il de la limite de l'appareil 100? Les utilisateurs finaux qui souhaitent améliorer leur binaire modernisent une application commerciale, si propres conditions de licence du développeur d'application entrent en jeu. Il est trivial d'ajouter une limite de dispositif 100 à un accord de licence personnalisé. Combien de personnes possèdent plus de 100 appareils iOS? Même les emplois ne possédait pas que beaucoup! Il est à peine une limite déraisonnable. Étant donné qu'il n'y a pas d'exigence qu'un utilisateur final soit autorisé à libérer leur propre version modifiée de l'application commerciale d'origine dans la nature, il n'y aura aucune base pour les plaintes quand il ne parvient pas à charger sur l'appareil d'un ami 101e du modificateur.

Il n'y a pas d'exigence dans la LGPL que l'utilisateur final doit avoir un confortable, sans risque, ou même choix évident. Ils ont juste besoin d'avoir un choix, et il y a 2 parfaitement bons.

0
Tuique