Récemment, je suis des recherches en Open Source problèmes de licence. Avant que je commence à la recherche, je ne savais pas vraiment sur la vraie signification de l'Open Source, bien que je l'ai utilisé Linux (un OS open source) pour plus de 4 ans!

Vous devez vous demander pourquoi devriez-vous lire ceci? Basé sur mon expérience, il ya beaucoup de ressources qui sont disponibles sur l'Internet qui va parler de ces questions, mais aucun d'entre eux commencent à partir d'un niveau de base-à-dire à un niveau où même une personne IT novice peut également comprendre ce qui se passe.

Issu d'une formation d'ingénieur, je voudrais commencer par très basique et ensuite construire sur le sujet pour vous assurer que je comprends la plupart des détails - mineur / majeur.

Hypothèses

  1. Je vais utiliser les mots «programme» et «logiciels» de façon interchangeable.
  2. Quand je parle à un système d'exploitation Open Source (OS), je veux dire en général un OS Linux.

Qu'entendez-vous par l'Open Source?
En fait, beaucoup de gens pensent que l'Open Source signifie seulement que le code source doit être ouverte à-dire accessible à tous. Mais devinez quoi? Ils ont tort. Cela ne veut pas la totalité de la définition correcte de l'Open Source. Il ya plusieurs autres critères qui doivent être remplies avant que nous pouvons appeler quelque chose comme un logiciel Open Source.

Open Source ne signifie pas que je dois utiliser la licence GPL?
Noways. Une fois que vous savez que votre programme est un Open Source, vous devez décider d'une licence appropriée pour qu'il repose sur votre stratégie (si vous êtes une entreprise), l'utilisation et les bibliothèques (le cas échéant) que vous avez utilisés pour écrire votre programme. GPL est juste l'un des plusieurs types de licences Open Source, même si elle est l'une des licences les plus populaires dans la communauté Open Source.

Puis-je vendre mon programme open source?
Oui. Il n'y a aucune restriction sur combien vous pouvez facturer pour votre programme Open Source que vous avez développé. Ainsi, par exemple, supposons que vous décidez de choisir une licence GPL pour votre programme Open Source et que vous voulez le vendre; Selon termes de la licence GPL vous pouvez vendre ce bien qu'il y ait une exception près (liés au code source) pour ce qui je pense est assez évident maintenant. La définition du logiciel libre (Open Source Software =) comprend le droit de vendre vos copies du programme.

Dois-je pour libérer le code source lorsque je vends mon programme (Open Source ou fermé / Proprietary)?
En fait, cela peut être un peu déroutant, je vais donc commencer à nouveau à partir d'un niveau très basique.

Typiquement, si vous ne voulez pas de libérer le code source au public alors votre programme ne soit pas techniquement un programme Open Source. Dans ce cas, il est un logiciel de fermeture / propriétaire tant qu'il n'a pas «dérivée» de programme de l'autre. Nous allons entrer dans la question de ce qui est considéré comme "dérivé", plus tard car il n'y a pas de consensus appropriée à ce sujet.

Ainsi, par exemple, si vous utilisez une Debian ou Ubuntu Linux OS et que vous décidez d'écrire un programme simple (test.c) en langage C en utilisant un éditeur comme vi ou emacs et vous compilez le en utilisant le compilateur GCC, alors votre binaire résultant / programme (test) peut être appelé logiciels propriétaires et vous pouvez le vendre à la population sans libérer le code source aussi longtemps que les conditions suivantes sont remplies:

1. Votre programme ne comporte pas directement une partie du logiciel sous licence GPL / bibliothèque.

2. Votre programme est dérivé d'aucun logiciel sous licence GPL / bibliothèque basée.

Toutefois, à ce point de temps, vous pouvez décider de faire votre logiciel Open Source en adoptant une licence Open Source comme par exemple, GPL. Supposons que vous décidez de choisir la licence GPL pour votre programme de test.c. Maintenant, vous pouvez toujours vendre votre binaire pour une taxe / charge, mais en même temps, vous devez libérer le code source soit également avec le fichier binaire. Voilà pourquoi il est appelé Open Source.

En outre, il faut garder à l'esprit que parfois le choix de la licence ne repose pas entièrement sur nous. Par exemple, supposons que vous utilisez beaucoup le code d'une bibliothèque sous licence GPL dans votre programme de test.c. Puis par défaut de ce programme (test.c) sera considéré comme logiciel dérivé et vous aurez à utiliser la licence GPL pour votre programme et de reconnaître que vous avez utilisé le code de a.ka. tel et si la bibliothèque «l'effet viral» de la GPL. Vous pouvez toujours vendre ce logiciel (test.c) mais maintenant vous êtes obligé de libérer le code source avec le binaire si vous décidez de le distribuer au public en vertu de la licence GPL .

Maintenant vous pouvez demander, si je ne pas l'intention de le redistribuer et juste garder pour moi ou pour mon organisation. Dois-je encore pour libérer le code source depuis que je l'habitude beaucoup de code à partir d'une bibliothèque basée GPL?
Pas du tout Dans ce cas, vous n'êtes pas obligé de libérer le code source et que vous décidez de faire quelque chose avec votre logiciel (test.c) interne.

Il est clair pour moi ce qui constitue comme un logiciel dérivé? Il est source de confusion. Y at-il autre meilleure solution?
Malheureusement il n'y a pas d'accord universel sur ce qui peut être appelé comme logiciel dérivé. Mais heureusement, il ya une meilleure solution qui va vous tenir loin de violer tout type de contrat de licence - utiliser une licence LGPL bibliothèque qui est également connu comme Lesser GPL-qui ressemble plus à une licence permissive / propriétaire. Avant que nous comprenons la principale différence entre LGPL et GPL, il est nécessaire de comprendre ce qui est considéré comme étant «dérivée».

Certaines personnes dans la communauté croient que si votre programme lie dynamiquement à une bibliothèque de logiciels alors votre programme ne peut pas être appelé en tant que logiciel «dérivée». Mais si vous liez statiquement la bibliothèque de logiciels à votre programme il est alors appelé un logiciel «dérivé» et donc vous ne pouvez pas prétendre que tout à votre propre logiciel. Toutefois, pour les bibliothèques qui sont basés sur la licence GPL certaines personnes considèrent même reliant dynamiquement à votre programme (test.c) comme aussi un logiciel «dérivée».

La solution - LGPL
Donc, pour rester loin de ces ambiguïtés, il existe de nombreuses bibliothèques qui sont maintenant libérés sous Lesser GPL-(LGPL) licence. Ce qui signifie que vous pouvez lier à ceux bibliothèque (statique ou dynamique) pour votre programme (test.c) et vous pouvez toujours choisir de garder votre code propriétaire (programme closed-source). Bien que vous devrez libérer les changements que vous pourriez finir par faire-au code de la bibliothèque LGPL dans votre programme de test.c.

Par exemple, la bibliothèque GNU C est publié sous licence LGPL et qui est pourquoi il est si populaire et répandu. En fait la plupart des bibliothèques de logiciels open-source sont libérés sous licence LGPL. Cependant, il ya des raisons pour lesquelles on voudrait libérer une bibliothèque sous licence GPL plutôt que LGPL

Par conséquent, il est très important que vous décidez du type de licence (disons par exemple GPL ou LGPL) que vous souhaitez utiliser dans votre programme en fonction de votre stratégie.

Comment puis-je faire de l'argent si je libère mon programme sous licence GPL (avec code source)? Est-ce pas un paradoxe?
Vous savez ce que je l'utilise aussi exactement à penser la même chose et qui a été l'une des principales raisons pour lesquelles je voulais faire des recherches sur tout cela. En fait, il ya la vie réelle des exemples où les gens ont été faire de l'argent, même après la sortie de leur logiciel sous licence GPL pour plus de 10 ans.

Je pense que l'une des principale raison derrière cela est le principe simple économique / affaires de coût d'opportunité du temps . Par exemple, même si je libère un logiciel pour mon client sous licence GPL, ils seraient encore venir à moi pour faire quelques changements / personnalisation à ce morceau de logiciel, même si elles ont le code source pour elle. Bien sûr, le client peut faire par lui-même / elle-même ou peut embaucher un programmeur, mais il y aura beaucoup de sur la tête coût associé à le faire, comme par exemple, apprendre à connaître le morceau de logiciel, familiariser avec les bibliothèques, etc. Quelqu'un doit faire le travail (faire des changements / personnalisations) alors pourquoi ne pas la personne / société d'origine qui l'a fait.

Je pense que cette entrée de blog a déjà été longue, donc je voudrais terminer ici. A l'avenir, si faire un peu plus de recherche à ce sujet ou si je reçois plus d'informations à ce sujet, je vais poster dans une nouvelle entrée de blog.

S'il vous plaît laisser un commentaire si vous avez des questions ou suggestions.

Merci de rester cette longue!

Soyez sociable, Partager!