What does "open-source" mean ?
Open-source software is software for which the source code is provided openly. Source code is the materiel required to build and modify software. You can think of it as recipes to build programs.
While a lot of programmers and companies keep the source code to themselves (proprietary or closed-source software), others choose to give it with their software (open-source software, sometimes even free software).
Hence the word 'open-source'.
Why is Paperwork open-source ?
With closed-source software, it's hard to know what the program is actually doing. It's far too easy for companies to hide spyware or adware (or even worse) in their programs.
Paperwork has to handle strictly personal, confidential and very sensitive data. You have to be able to trust it.
Paperwork is distributed under the licence GPLv3. This licence gives you the right to obtain the source code of Paperwork, and all the pieces of software it is linked with. Any Python programmers can freely and easily have a look at what Paperwork does and how it does it.
Learning and teaching
While developing Paperwork, we often looked at other open-source programs to understand how they did things or just to inspire ourselves. Now it's our turn to share.
Paperwork uses a lot of existing opensource programs and librairies (Python, Gtk, python-simplebayes, ...). So many that it's impossible to make a comprehensive list of all of them.
While it uses a lot of existing programs and libraries, we had to create others from scratchs. We gladly distribute these components back as opensource. For instance, while the library PyOCR has been created especially for Paperwork, there are other projects, like Paperless, who use it too.
When you buy a book, what's written in it belongs to its author, not to you. When you buy proprietary software, it still belongs to their author(s), not to you. That's the way intellectual property is supposed to work.
However, in some way, distributing Paperwork as GPLv3 makes it yours. If someday you decide to learn how to program in Python, you will be free to learn from it or even modify it.
Collaborate and improve
Paperwork being opensource, everybody is free to contribute. Many people already have, and we are very thankful. Many other people have also contributed to various components used by Paperwork (unfortunately, it's almost impossible to list all the components).
If you modify and redistribute your own version of Paperwork, the GPLv3 only asks a few things of you. The main one is that you too must redistribute your version of the source code. Also, you must redistribute it under the same licence, the GPLv3. This mechanism ensures that Paperwork will always remain open-source.
If you do modify it, you are invited (but not obligated) to send us your modifications on Gitlab.
Open-source is also about being proud of what you do. When you're proud of your work, you don't keep it shamefully hidden under a blanket. You show it to the world.
Where is Paperwork source code ?
Paperwork source code is hosted on Gnome's Gitlab. It is actually made of many components that anybody is free to reuse (there are various licences and rules for each component however). It's impossible to list them all, but here is a list of the components developed mostly by us:
- PyOCR : A Python library to make things easier for Python's programmers who want to use OCR tools (Optical Character Recognition)
- Libinsane : A C library to make it easier to use scanner devices. Provided with bindings for many languages (Python, JS, etc) thanks to GObject Introspection.
- Libpillowfight : A bunch of image processing algorithms