Récemment, j'ai des recherches en Open Source problèmes de licence. Avant de commencer la recherche, j'ai eu très peu d'idée sur la vraie signification de l'Open Source, bien que j'ai utilisé Linux (un système d'exploitation open source) pour plus de 4 ans!

Vous devez vous demander pourquoi devriez-vous lire ceci? Sur la base de mon expérience, il ya beaucoup de ressources qui sont disponibles sur Internet qui parler de ces questions, mais aucun d'entre eux commencent à partir d'un niveau de base c'est à 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 m'assurer que je comprends la plupart des détails - mineur / majeur.

Hypothèses

  1. Je vais utiliser les mots «programme» et «logiciel» de façon interchangeable.
  2. Quand je parle à un système d'exploitation Open Source (OS), je veux dire en général un système d'exploitation 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 ouvert à-dire accessible à tous. Mais devinez quoi? Ils ont tort. Ce n'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 l'on peut appeler quelque chose comme un logiciel Open Source.

Est-ce que l'Open Source signifie 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 en fonction de votre stratégie (si vous êtes une entreprise), l'utilisation et les bibliothèques (le cas échéant) que vous avez utilisé 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'ya aucune restriction sur combien vous pouvez payer 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 les termes de la licence GPL, vous pouvez le vendre bien qu'il y ait une exception près (liés au code source) à ce qui je pense est assez évident maintenant. La définition du logiciel libre (Open Source Software =) comprend le droit de vendre les copies de programme.

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

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

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

Une. Votre programme ne comporte pas directement une partie de la licence GPL du logiciel / bibliothèque.

2. Votre programme ne proviennent pas de n'importe quel logiciel / bibliothèque fondée sous licence GPL.

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 / frais, mais en même temps vous devez libérer le code source soit également avec le fichier binaire. C'est pourquoi il est appelé Open Source.

En outre, il faut garder à l'esprit que parfois le choix de la licence n'est pas entièrement basé sur nous. Par exemple, supposons que vous utilisez beaucoup le code d'une bibliothèque sous licence GPL dans votre programme de test.c. Ensuite, par défaut, ce programme (test.c) sera considéré comme un logiciel dérivé et vous devrez utiliser licence GPL pour votre programme et de reconnaître que vous avez utilisé le code de si-et-si a.ka. 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 n'ai pas l'intention de le redistribuer et juste le garde pour moi ou pour mon organisation. Ai-je encore pour libérer le code source depuis que j'ai utilisé beaucoup de code à partir d'une bibliothèque en 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) en interne.

Il est clair pour moi ce qui constitue aussi un logiciel dérivé? Il est source de confusion. Y at-il une autre meilleure solution?
Malheureusement, il n'existe pas d'accord universel sur ce qui peut être appelé en tant que logiciel dérivé. Mais heureusement, il ya une meilleure solution qui vous éloigner de la violation d'une sorte 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».

Certains membres de la communauté pensent que si votre programme lie dynamiquement à une bibliothèque de logiciel, votre programme ne peut pas être appelé en tant que logiciel "dérivé". 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 tout comme votre propre logiciel. Toutefois, pour les bibliothèques qui sont basés sur la licence GPL certaines personnes considèrent un lien, même dynamique à 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 à celles 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-pour le code de la bibliothèque LGPL dans votre programme de test.c.

Par exemple, la bibliothèque GNU C est distribué sous licence LGPL et c'est pourquoi il est si populaire et répandu. En fait, la plupart des bibliothèques de logiciels open-source sont publié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 GPL (avec code source)? N'est-ce pas un paradoxe?
Vous savez ce que je également utiliser exactement à penser la même chose et que c'était l'une des principale raison pour laquelle 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 économique simple / d'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 modifications / personnalisation de 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 un terrain de plus de coût de la tête associée à le faire comme par exemple, apprendre à connaître le logiciel, se familiariser avec les bibliothèques, etc Quelqu'un doit faire le travail (faire les modifications / personnalisations) alors pourquoi ne pas la personne / société d'origine qui l'a fait.

Je pense que ce blog a déjà été longue, donc je voudrais terminer ici. À l'avenir, si faire quelques recherches à ce sujet ou si je reçois plus d'informations à ce sujet, je vais le mettre dans une nouvelle entrée de blog.

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

Merci pour ce long séjour!

Soyez sociable, Partager!