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 je l'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 s'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 existe 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é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 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 GPL termes de la licence, vous pouvez le vendre mais il ya une exception (liées au code source) pour lui je pense que c'est assez évident maintenant. La définition du logiciel libre (Open Source Software =) comprend le droit de vendre vos 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ée», 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 le en utilisant le 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:

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

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

Toutefois, à ce point du 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 il faut 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 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. 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 a.ka. soi-and-so bibliothèque l '«effet viral» de GPL. Vous pouvez toujours vendre ce logiciel (test.c) mais maintenant vous êtes obligé de publier le code source avec le binaire si vous décidez de le distribuer au public sous la licence GPL .

Maintenant, vous pouvez demander, si je n'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 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 publier 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 de consensus quant à ce qui peut être appelé en tant que logiciel dérivé. Mais heureusement, il ya une meilleure solution que vous tenir à l'écart de violer tout type de contrat de licence - utiliser une licence LGPL bibliothèque qui est également connu comme la Petite-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 même liaison 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 à 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-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 licence GPL (avec code source)? N'est-ce pas un paradoxe?
Vous savez ce J'utilise aussi exactement à penser la même chose et qui a été 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 simple économique / entreprise 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 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 tête coût associé au fait que, 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 poster dans une nouvelle entrée de blog.

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

Merci de rester aussi longtemps!

Soyez sociable, Partager!