While distributions typically have high quality packages that work fine, a lot of software is not packaged in distributions.
This often lead users to rely on third party package managers that are often provided by the distribution.
This page tries to summarize the research about such third party package managers, especially to understand which one can be added in or kept in FSDG compliant distributions, and which ones should be removed or replaced.
Read a related article: Keeping track of freedom while managing packages
For some reasons, FSDG compliant distributions have many packages that are configured to use third party repositories that contain nonfree software. This makes it complicated for end users to understand what is provided by the distribution and what is not, especially because the FSDG distributions are supposed to be fully free.
In order to solve this problem, we need to:
Some programs are not package managers but have a similar effect: they download and run code from remote locations.
A well known example of that is web browsers that in many cases automatically run nonfree JavaScript from web pages. And there are several ways to avoid that. Some FSDG distributions even configure some browsers (but usually not all of them) to not run nonfree JavaScript by default. But this typically doesn't cover all browsers, and when a browser is covered, the user is still not in control of the code that is being run (there are legal freedoms as the code is free and that the user can get the source, but it is usually extremely unpractical to run a modified version, even for very technical users).
But there are also less well known programs that run code from remote locations, and this is dangerous because users are not aware of that. For instance yt-dlp in some situation can also run nonfree JavaScript. Knowing in which conditions it does that requires more research. We also need to do more research to understand which programs are affected. For instance does python-woob also run nonfree JavaScript? If so which version do that? In which conditions?
This contains repositories that are either 100% free or FSDG compliant.
| Repository type | FSDG compliant implementations | Policies |
|---|---|---|
| Browser addons | See BrowserAddons | |
| Emacs packages repositories | ||
| GNU Package: | ||
| Source packages manager for GNU packages (and their dependencies) | ||
| Boot software distribution | ||
| Voluntarily follows the FSDG (non official => no process for notifying users if it stops following it)[4] | ||
| General purpose package manager on top of existing distributions |
|
|
| Unmaintained software | Voluntarily follows the FSDG (non official => no process for notifying users if it stops following it)[5] | |
| Kernel packages repositories |
The CrossDistroBootstrap also has some information on how reusable are some FSDG distribution repositories. For instance PureOS and Trisquel are now in upstream debootstrap, but to use that safely and easily distributions also need to package the PureOS/Trisquel keyrings.
As for using other distribution repositories, the DistroExecutionEnvironments page has more information about which container/virtualization systems work with which distribution.
| Repository name | Programs / Packages | Repository type | Licenses requirements | Reliability of license fields | Status | Guix import[6] | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Akku | Akku | R6RS/R7RS scheme | Its its man page has: "Please pay some attention to the license field to make sure that it is accurate. Use the identifiers from the SPDX project, making sure to use an open source license.". This means that it probably allows the artistic license 1.0 which is non-free as it is open-source but not free according to GNU unless someone convince them to change this. | ? |
|
No | ||||||||||||||||||||||||
| Alire | alire (pureOS?) | Ada, SPARK | Not reliable, even allows no license: "The manifest [...] contains [...] information about the crate [...] such as the name and version, others optional like the licenses" | No | ||||||||||||||||||||||||||
| anaconda.com repositories |
|
Python | According to the What’s in a package blog post from guix-hpc.info, we have package like PyTorch that bring in nonfree dependencies like CUDA in conda. Also note that there are terms of services associated with the use of the servers: "Use of Anaconda’s Offerings at an organization of more than 200 employees requires a Business or Enterprise license. For more information, see our full Terms of Service, or read Frequently Asked Questions about our Terms of Service."[7] | ? |
|
No | ||||||||||||||||||||||||
| anaconda.org repositories |
|
Python | Seem to have non-free dependencies. For instance in the recipe of PyTorch) we can see CUDA as dependencies. | ? |
|
No | ||||||||||||||||||||||||
| ConanCenter | Conan | C/C++ Conan and repository | ? | ? | No | |||||||||||||||||||||||||
| Composer | PHP | Yes | ||||||||||||||||||||||||||||
| CPAN | ? | Perl | Allow any license (including nonfree software) | ? | Yes | |||||||||||||||||||||||||
| CRAN | ? | R | The CRAN policy has strict license requirements, but it also allows the following nonfree licenses:
|
Very high. See "Source packages" in the CRAN policy. | Yes | |||||||||||||||||||||||||
|
CRAN (via the Guix CRAN channel)
(unofficial Guix repository) |
N/A | R | Same as CRAN. | Not referenced by FSDG distributions, so nothing to fix.
Since CRAN licensing information is very strict, it might be very easy to make an FSDG compliant repository out of it, by removing packages with licenses considered nonfree by GNU / The FSF. That repository is already fully automated so it might be very easy to fix and maintain. |
Yes[8] | |||||||||||||||||||||||||
| crates.io | Cargo | Rust | ? | ? | lib.rs is a a free frontend to crates so the repository can be viewed without non-free JS. | Yes | ||||||||||||||||||||||||
| Eggs | Scheme | Yes | ||||||||||||||||||||||||||||
| Elm | Elm | Yes | ||||||||||||||||||||||||||||
| Hackage | Cabal | Haskell | FLOSS license required, points to FSF and OSI for the licenses list. | ? | Yes | |||||||||||||||||||||||||
| luarocks | luarocks | Lua | ? | ? |
|
|||||||||||||||||||||||||
| npm Registry | npm | JavaScript | ? | ? | ||||||||||||||||||||||||||
| hex.pm | Erlang | Yes | ||||||||||||||||||||||||||||
| opam | OCaml | Yes | ||||||||||||||||||||||||||||
| PECL | ? | PHP | Allow nonfree software, GPL and LGPLv3 (libraries?) not accepted | ? | ||||||||||||||||||||||||||
| pkg.go.dev | Go | ? | ? | Yes | ||||||||||||||||||||||||||
| Python Package Index |
|
Python | Allow any license (including nonfree software) | ? |
It is also possible to run your own private repository: pypi.org mentions that "PyPI does not support publishing private packages. If you need to publish your private package to a package index, the recommended solution is to run your own deployment of the devpi project."[9] and Guix has the python-devpi-server package. |
Yes | ||||||||||||||||||||||||
| RubyGems | rubygems | Ruby | Allow any license (including nonfree software) | ? |
|
Yes | ||||||||||||||||||||||||
| Stackage | Haskell | Yes | ||||||||||||||||||||||||||||
| Texlive | Tex, LaTeX | Yes | ||||||||||||||||||||||||||||
Parabola has a bug report (bug #1035) about programming language package managers, it has more reference and information on the issue.
| Repository name | Repository type | Enabled by default? | Licenses requirements | Reliability of license fields | Status | Comments |
|---|---|---|---|---|---|---|
| guix-emacs | Guix packages for MELPA | N/A | Same than MELPA? | ? | ? | The packages are generated automatically, so maybe it's possible somehow to filter-out nonfree software if there is some. |
| ELPA GNU | Emacs Lisp Package Archive | Yes, since emacs 24[10] | Free software[11] | Very strict[11] | FSDG compliant[11] | |
| ELPA non-GNU | Emacs Lisp Package Archive | Yes, since emacs 28.1[10] | Free software[11] | Very strict[11] | FSDG compliant[11] | |
| MELPA | ELPA-compatible package repository | No | ? | ? | ? |
For known FSDG compliant repositories that have browser addons, see the BrowserAddons wiki page.
| Repository name / URL | Compatible browsers | Licenses requirements | Reliability of license fields | Status | Comments |
|---|---|---|---|---|---|
| addons.mozilla.org |
|
|
|
See Group:Software/research/ExternalRepositories/DockerRegistries for more details about Docker registries, how to run your own registry easily, etc.
There is also a page about flatpak: Group:Software/research/ExternalRepositories/FlatpakRegistries.
| Program name | Repository type | Repository website | Licenses requirements | Reliability of license fields | Status | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Docker | Repository of distribution installation images and software images | https://hub.docker.com/ | Allows nonfree software | There is no standard way to report the licenses being used. In many cases this makes it extremely complicated to know the license of a container. In other cases, (like a PureOS image) you can use the tools of the distribution to find out (PureOS packages do have licenses). | Docker has a default repository for images according to the docker bug #7203 and to a stackoverflow comment. Since that repository is used in the 'docker' command line tool, it needs to be replaced or removed.
|
||||||||||||||||||||||||
| GNOME Boxes (+osinfo-db) | Repository of distribution installation images that is constructed with libosinfo and osinfo-db |
|
|||||||||||||||||||||||||||
| LXC | Repository of distribution packages / rootfs | images.linuxcontainers.org | ? | ? | LXC provides $prefix/share/lxc/templates/lxc-download which can download various distributions like Debian, Ubuntu, etc.
|
| Program name | Repository type | Repository website | Licenses requirements | Reliability of license fields | Status | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Supertuxkart | Addons | ? | ? | ? | |||||||||||||||||||||||||
| Wesnoth | Addons | ? | |||||||||||||||||||||||||||
| Xonotic | Content downloaded during online games:
|
? | ? | ? |
|
| Program name | Program type | Repository type | Repository website | Licenses requirements | Reliability of license fields | Status | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Arduino | IDE | Repository of software to support microcontroller boards (available in "Boards Manager") | The Arduino IDE has a package manager in "Tools" -> "Board: [...]" -> "Boards Manager".
|
|||||||||||||||||||||||||||
| Gajim | Instant messaging client | Repository of plugins | plugins from ftp.gajim.org | ? | ? |
|
||||||||||||||||||||||||
| Kicad | PCB design software | Repository of Kicad plugins | https://repository.kicad.org/ | In tools->Plugin and content manager, there is a package manager of Kicad addons.
|
||||||||||||||||||||||||||
| Libreoffice | Document editing software | Extensions | extensions.libreoffice.org | ? | ? |
TODO:
|
||||||||||||||||||||||||
| Nextcloud | Collaboration server | Addons | apps.nextcloud.com | ? | ? | TODO: Check if Nextcloud uses apps.nextcloud.com
|
||||||||||||||||||||||||
| phoronix-test-suite | Performance benchmarking tool | tests |
|
| Repository name | Repository type | Licenses requirements | Reliability of license fields | Status |
|---|---|---|---|---|
| GNU PPA |
This set of pages talks about external repositories.
(Note that this page does not automatically update; if you add another page under Hardware/, make sure to refresh/purge this page.)
"issue" is not in the list (interest, location, project, school) of allowed values for the "Organized around" property.
This page was a featured resource in October 2024.