Récemment, je ai été des recherches en Open Source problèmes de licence. Avant je ai commencé à la recherche, je ai eu très peu d'idée sur la vraie signification de l'Open Source, bien que je 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 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 aime commencer avec très basique et ensuite construire sur le sujet pour se 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 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. Ce ne est 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 elle 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?
Ben Oui. Il ne ya 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 le vendre bien qu'il y ait une exception près (liés au code source) à elle que je pense que ce est assez évident maintenant. La définition du logiciel libre (Open Source Software =) inclut 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, ce 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 est pas techniquement un programme Open Source. Dans ce cas, ce est un logiciel de fermeture / propriétaire tant qu'il ne est pas "dérivé" de programme de l'autre. Nous allons entrer dans la question de ce qui est considéré comme «dérivée», plus tard car il ne existe aucun 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 intègre pas directement ne importe quelle partie du logiciel sous licence GPL / bibliothèque.

2. Votre programme ne est pas dérivé de tout 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. Ce est pourquoi il est appelé Open Source.

En outre, il faut garder à l'esprit que parfois le choix de la licence ne est pas entièrement basée 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 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 donc bibliothèque le «effet viral» de 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 ai pas l'intention de le redistribuer et juste garder pour moi ou pour mon organisation. Dois-je encore pour libérer le code source que je ai utilisé 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 ne est pas d'accord universel sur ce qui peut être appelé comme logiciel dérivé. Mais heureusement, il ya une meilleure solution qui vous tenir à l'écart 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 ce 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 voulez 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 le code source)? Est-ce pas un paradoxe?
Vous savez ce que je utilise aussi exactement à penser la même chose et ce était 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 relâche 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.

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

Merci de rester ce long!

Soyez sociable, Partager!