When I read
this and
this article, I wanted to tell how a person can make a small contribution to the distribution of his favorite program among users of all the favorite operating system. Having looked through Ubuntarium, I saw that there seemed to be no articles on this topic, so I decided to get down to business.
(Parts
2 ,
3 and
4 )
Introduction
Immediately I have to make a reservation: my main and favorite system is first of all Debian, and not Ubuntu, in the package building they have some difference, I will talk about it separately.
And another thing: if you are interested in including the packages you assembled in Debian, it is better to write about it in the comments and join the
corresponding blog . It looks dead, but it would be better to place such a story there, so if you are interested, I will write about it too :)
What software will do?
When you want to build some program, first of all it is worth thinking about, and will they take it into the distribution kit? The fact is that the whole ideology of the Debian distribution is primarily governed by such an interesting document as the
Debian Social Contract (or Social Contract) . Basically this contract states that:
- Debian will remain 100% Free Software
- Our designs will be returned to the Free Software Community.
- We will not hide problems
- The main thing for us is our users and free software.
- Developments that do not meet our Free Software standards may be distributed with Debian, but are not part of it.
In more detail: the entire Debian system was, is and will be a truly free system. It will never be non-free components. All developments made within Debian will be licensed as free software and returned to the community. All fixes and patches to programs made within the framework of Debian will be offered to the authors of the programs (absolutely free :)). All errors and problems in the distribution are also free and open from the moment you report them (more on that later). For non-free software, Debian has a special non-free section. Packages that fit there are not part of Debian, although they are distributed with it.
"And how about us?" - users will ask Ubuntu. Exactly the same. In Ubuntu there is a “Promise to Ubuntu” (lies on the main page of ubuntu.com) and the document
Philosophy of Ubuntu . In general, the limitations are almost the same, in Ubuntu they are a little softer, but I recommend focusing on Debian.
So, if we decided that our ideology coincides with the ideology of Debian / Ubuntu, then we can take the next item.
In which section of the distribution include our future package?
Debian and Ubuntu distributions are divided into several categories, each with its own. By connecting and disconnecting some of these categories in the apt settings, we can both completely shield ourselves from non-free software and also furnish ourselves from all sides. What are the categories where there are?
In Debian there are 3 main ones (the memory tells me that once there was still a non-US section, but now it seems to be gone):
- main - the software in this category is absolutely free or, as the red-eyed fans say, b. To fall into this category, your package must be free, not required to build (in Build-Depends) and not offer to install (in Depends, Recommends and Suggests) no packages from main and not be so buggy that Debian developers refused to support him
- contrib - packages in this category are also required to be completely free and not too buggy, but they have the right to depend in any way on packages in contrib, non-free, and even require those packages that are not available in Debian for building.
- non-free - in this category, oddly enough, there is also a selection. Software claiming to be in non-free should be not too buggy (this is a standard requirement, as you have noticed) and not have licensing restrictions that obviously will not allow to put it even there.
In addition, all packages must comply with the harsh
Debian Policy document, but about it in future releases.
In Ubuntu, the categories are four and the division is slightly different. All software is conventionally divided into two groups: supported and unsupported. The packages from the first group are officially supported by the developers of Ubuntu (or, as they call themselves MOTU - Masters (Maintainers) of the Universe), the second is collected by outsiders. In each group there is a category for free and for non-free software. Thus we get 4 categories:
- main - supported free software
- restricted - supported non-free software (some non-free drivers and similar things that are vital for normal distribution work fall into such an interesting category)
- universe - unsupported free software
- multiverse - unsupported proprietary software
Basically, the distribution criteria are the same as in Debian, with one exception: main prohibits some proprietary fonts and firmware, if they are distributed free of charge and vital for the normal functioning of the system. Also, in Ubuntu there is another secret category of commercial - in which packages are placed that have restrictions on distribution, but for which Canonical has obtained the appropriate permission from the copyright holders. Previously, RealPlayer and Opera were included there, but in the following distributions after Feisty Fawn, they seemed to have refused this category.
')
And what software is considered free?
In this matter, both Debian and Ubuntu are guided by one document (which, by the way, was accepted by the entire free software community as the basis for the definition of OpenSource). These are the so-called “Debian Free Software Definition Criteria” (Debian Free Software Guidelines or DFSG), which are part of the above-mentioned Debian Social Contract. It does not make sense to list and paint them all, since they can be read in Russian by the above link, so I will tell you briefly:
- In order for software to be considered free, it should not limit its distribution or sale and require some deductions and fees.
- Software is obliged to distribute source texts and allow their joint and separate distribution with binary packages.
- The software is required to allow the creation of derivative works and the distribution of them under the same license as it itself. The software can prohibit changes to the source code only if it is allowed to create and share with the software the distribution of patches applied to it when building binary packages.
- Software should not create any discrimination against people, including in the field of activity - everyone has the right to use it wherever he wants.
- The license should not apply only to Debian or Ubuntu, it is the same for everyone.
- The license should not in any way restrict other software.
Thus, in Debian there is a list of basic licenses distributed under which software can be considered free: GPL, LGPL, Modified BSD License, Perl Artistic License, Apache License, CC BY-SA 3.0, and several others. However, for some reason or other, some common licenses are considered incompatible with Debian - these are GNU FDL, almost all Creative Commons licenses (except for the mentioned BY-SA 3.0) and others. A complete list of licenses reviewed by Debian can be found
here . At the same time, it must always be remembered that Debian developers each time decide on a particular program, and not on an abstract license.
Where to look at the available packages and their bugs? Social contract promised that anyone can do it!
Debian is sacred to its contract. Any program, even planned for “packaging,” (about which some meintainer posted a message that he plans to pack it) instantly goes to
the error tracking system . Any user can go there and view information about the package of interest. For packages that are only supposed to be published (and also need to be improved, are looking for a new maineiner, etc.) there is a special
WNPP meta-package . For example, by going
here , we will find information about the qutIM program that is supposed to be packaged and the correspondence of several managers about this.
Ubuntu has a similar system -
Launchpad .
Here , for example, you can see how the qutIM package page looks on Launchpad.
Total
We got an idea of ​​how software is distributed in Debian and Ubuntu, where to look for it, and what licenses are available. Next time, if the article turns out to be interesting to someone, I will tell you who are stricter - Debian or Ubuntu, which programs will be useful to you for creating packages, why
this Ubuntu approach is fundamentally wrong, which is why I mention it so many times qutIM still hasn't gotten to Debian, and what other pitfalls are waiting for someone to build a package for their favorite distribution.