Que signifie open-source ?

« Open » signifie « ouvert ». Les logiciels open-source sont des logiciels dont le code source est fourni ouvertement. Le code source est le nécessaire pour construire, assembler ou modifier un logiciel. Le code source est au logiciel ce qu'une recette de cuisine est à un plat.

Tandis que beaucoup de programmeurs et d'entreprises gardent le code source pour eux (logiciels dits propriétaires ou « close-source »), d'autres choisissent de le donner avec leurs logiciels (logiciels dits « open-source », parfois même « logiciels libres »).

GPLv3 logo

Pourquoi Paperwork est-il open-source ?

La confiance

Avec les logiciels propriétaires, il est difficile de savoir ce que le programme fait réellement. C'est bien trop facile pour les entreprises d'y cacher des spywares, des adwares, ou pire encore.

Paperwork doit gérer des données strictement personnelles, confidentielles, et très sensibles. Vous devez pouvoir lui faire confiance.

Paperwork est distribué sous la licence GPLv3. Cette licence vous donne le droit d'obtenir le code source de Paperwork et de tout les logiciels et librairies qu'il utilise. N'importe-quel programmeur Python peut, gratuitement et librement, examiner ce qu'il fait et comment il le fait.

Apprendre et enseigner

Pendant le développement de Paperwork, nous avons souvent regardé comment d'autres logiciels open-source sont faits, pour comprendre ou même juste pour nous en inspirer. Maintenant, c'est à notre tour de repartager.

Réutilisation

Paperwork utilise beaucoup de logiciels opensource existants (Python, Gtk, python-simplebayes, ....). Tellement qu'il est impossible d'en faire une liste exhaustive.

Bien que nous utilisions beaucoup de logiciels existants, nous avons dû en créer d'autres. C'est avec plaisir que nous redistribuons ces logiciels sous forme open-source. Par exemple, la librairie PyOCR a été créée spécifiquement pour Paperwork. Mais d'autres projets, comme Paperless, ont choisi de l'utiliser aussi.

Votre propriété

Quand vous achetez un livre, ce qui y est écrit appartient à son auteur, pas à vous. Quand vous achetez un logiciel propriétaire, il appartient toujours à ses auteurs, pas à vous. C'est ainsi que la propriété intellectuelle est sensée fonctionner.

Cependant, d'une certaine manière, distribuer Paperwork sous la licence GPLv3 en fait votre logiciel. Si un jour vous décidez d'apprendre à programmer en Python, vous serez libre d'apprendre du code de Paperwork, et vous serez libre de le modifier à votre guise.

Collaborer et améliorer

Paperwork étant open-source, tout le monde est libre d'y contribuer. Beaucoup de gens l'ont déjà fait, et nous leur sommes très reconnaissant. Beaucoup d'autres gens ont aussi contribué à divers composants utilisés par Paperwork (malheureusement, il est presque impossible de lister tout ces composants).

Si vous modifiez et redistribuez votre propre version de Paperwork, la licence GPLv3 vous impose quelques obligations. La principale est que vous devez redistribuer votre propre version du code source. Aussi, vous devez redistribuer ce code sous la même licence, la GPLv3. Ce mécanisme permet de s'assurer que Paperwork restera toujours open-source.

Si vous le modifiez, vous êtes invité (mais pas obligé) à nous envoyer vos modifications sur Gitlab.

La fierté

Quand on fait un logiciel open-source, il s'agit aussi simplement d'être fier de ce qu'on fait. Quand on est fier de son travail, on ne le cache pas avec honte sous le tapis. On le montre.

Où est le code source de Paperwork ?

Le code source de Paperwork est hébergé sur le Gitlab de Gnome. Il est en fait composé de plusieurs composants que tout le monde est libre de réutiliser (cependant, il y a des licences et des règles spécifiques à chacun). Il est impossible de les lister tous ici, mais voici la liste des composants que nous avons développés nous-même :

  • Paperwork
  • PyOCR  : Une librairie Python pour rendre l'utilisation d'outils de ROC (Reconnaissance Optique de Caractères) plus facile
  • Libinsane  : Une librairie C pour rendre l’utilisation de scanners plus facile. Elle est fournie avec des bindings pour beaucoup d'autres langages de programmation (Python, Javascript, etc) grâce à GObject Introspection.
  • Libpillowfight  : Un paquet d'algorithmes de traitement d'images.