Question Utilisation de la bibliothèque LGPL dans les applications Android payantes [fermé]


Puis-je utiliser une bibliothèque LGPL dans mon application Android payante? Je ne vais pas modifier la librairie LGPL, je veux juste l'utiliser. Est-ce légal?


18
2018-02-06 22:09


origine


Réponses:


Si vous créez une application Android payante, vous aurez probablement des problèmes avec un problème spécifique de LGPL: la substituabilité. En règle générale, il est indiqué que lorsque vous distribuez une œuvre combinée, vous devez fournir à un utilisateur la possibilité de remplacer la bibliothèque par une version différente (par exemple, plus récente). Très douteux dans le cas du fichier DEX, comme mentionné dans les commentaires précédents.

Une alternative à un seul fichier DEX consiste à faire d’une bibliothèque dépendante une application distincte, publiée sur LGPL. Dans une telle application, vous créez un service auquel vous vous connectez depuis votre application payante. Ensuite, pour remplacer la bibliothèque LGPL par une version plus récente, seule la recompilation et la réinstallation de la bibliothèque APK est requise.

Le problème est que, bien sûr, vous avez maintenant plus d’un APK à installer.


11
2018-02-01 14:10



L'utilisation de LGPL dans une application Android gratuite ou payante est légale, mais pour être conforme à la LGPL, vous devez:

  1. Indiquez à l'utilisateur la bibliothèque utilisée et où trouver le code d'origine.
  2. Configurer proguard à ne pas masquer le code couvert par la LGPL;
  3. Évitez toute vérification dans votre application concernant la conformité des signatures;
  4. Indiquez à l'utilisateur comment remplacer la bibliothèque.

Pour le point 4, vous pouvez indiquer d'utiliser dex2jar, remplacer le code LGPL et signer à nouveau l'APK. Il faut beaucoup de travail pour l'utilisateur mais c'est possible pour le faire et permettre à l'utilisateur final de recombiner ou relier le code comme le dit la LGPL. En outre, si votre application utilise des services Google, l'utilisateur doit créer un compte pour générer sa propre clé API, etc.


11
2017-12-23 08:33



Je ne suis pas avocat, mais d'après ma compréhension de la licence publique générale limitée GNU 3.0, Section 4 explicité exclut la liaison statique car l'exigence stipule:

Vous pouvez transmettre un travail combiné selon les termes de votre choix qui, prises ensemble, n'empêchent pas la modification des parties de la bibliothèque contenues dans le travail combiné et du reverse engineering pour le débogage de telles modifications, si vous faites aussi chacun des suivants:

  • [...]
  • d) faire un des le suivant:

    • 0) Transmettre la source correspondante minimale selon les termes de cette licence et le code d'application correspondant sous une forme adaptée à, et dans des conditions permettant à l'utilisateur de recombiner ou de relier l'application avec une version modifiée de la version liée pour produire un travail combiné modifié, de la manière spécifiée dans la section 6 de la licence GNU GPL pour transmettre la source correspondante.
    • 1) Utilisez un approprié mécanisme de bibliothèque partagée pour la liaison avec la bibliothèque. Un mécanisme approprié est celui qui (a) utilise au moment de l'exécution une copie de la bibliothèque déjà présente sur le système informatique de l'utilisateur, et (b) fonctionnera correctement avec une version modifiée de la bibliothèque compatible avec la version liée.

(Soulignez le mien.)

La section 4d.0 n'est pas possible par la nature des APK Android: l'APK est compilé en Dex et signé dans son ensemble, contenant des bibliothèques référencées. Il est donc impossible de permuter les bibliothèques sans le code source d'origine, le fichier de clés et le mot de passe.

Section 4d.1 mai être possible en déployant deux APK:

  • Un APK contenant la bibliothèque LGPL et à son tour open source et sous licence LGPL
  • Un autre APK propriétaire faisant référence à l'application LGPL.

Le déploiement d’une telle application n’est toutefois pas possible directement via Google Play sans ajouter expressément la nécessité pour l’utilisateur de télécharger la dépendance LGPL, qui devrait être déployée en tant qu’application distincte sur Google Play. Cela serait très fastidieux pour l'utilisateur final, et ce n'est pas une option réaliste pour une application grand public typique.

Selon la discussion avec le professeur Falken dans la réponse de William Tate, les termes de la LGPL peuvent être plus applicables aux bibliothèques C incluses via le code natif, puisqu'elles résident dans l'APK en tant que bibliothèque distincte. Bien que l'APK ne puisse pas être signé, il est possible de remballer l'APK avec le fichier objet remplacé. De mon point de vue, cela correspond techniquement aux exigences de la licence.


9
2017-11-24 16:30



La bibliothèque droidText (utilisée pour exporter au format PDF sur Android et publiée sous LGPL) contient une explication détaillée de la manière d'utiliser leur bibliothèque et de respecter la LGPL:

http://code.google.com/p/droidtext/wiki/LGPLCompliance

Je l'ai trouvé très utile. Fondamentalement, vous utilisez un utililty (dex2jar) pour prendre le jar de la bibliothèque OUT du fichier dex, ce qui permet à l'utilisateur final de mettre à jour avec une version ultérieure de la bibliothèque droidText s'il le souhaite.


6
2018-04-10 16:30



J'ai toujours pensé que la LGPL était une «zone grise». Bien qu'il existe des spécificités sur l'utilisation du code / des bibliothèques LGPL, il ne reflète pas nécessairement les exigences exactes des auteurs.

Personnellement, je recommanderais de contacter l'auteur (s), en expliquant vos préoccupations et en demandant s'ils sont heureux de vous permettre de l'utiliser.


3
2018-02-07 00:03



Cela devrait décrire vos principales préoccupations: http://answers.google.com/answers/threadview/id/439136.html

La plupart semblent révéler votre utilisation de la bibliothèque et vous assurer que vous respectez les règles de distribution conformément à la licence.


3
2018-02-06 22:12