Group: Software/research/ExternalRepositories

From LibrePlanet
Jump to: navigation, search
(Programs: Add apps.nextcloud.com. Only Parabola seems to have nextcloud though.)
(Docker registries: move to separate page because it's becoming too big and now we need to add a howto on how to run your own registry...)
Line 170: Line 170:
  
 
=== Docker registries ===
 
=== Docker registries ===
Docker registries contain distributions or operating system images.
 
  
These repositories are usually referenced in Dockerfiles. So users need to be careful if they want to use Dockerfile files.
+
See [[Group:Software/research/ExternalRepositories/DockerRegistries]] for more details about Docker registries, how to run your own registry easily, etc.
 
 
Additionally docker itself might need to be patched not to refer to repositories that contain nonfree software. For instance Parabola and probably other FSDG distributions as well have an issue that needs to be reported and fixed:
 
# docker run -it --rm archlinux bash -c "echo hello world"
 
Unable to find image 'archlinux:latest' locally
 
latest: Pulling from library/archlinux
 
b72d4d4e6198: Pulling fs layer
 
3b001a57ac96: Download complete
 
 
 
Since Guix is FSDG compliant, that it runs on most GNU/Linux distributions and that it can create docker images and that it can also run software very easily in containers, it might be easier to use Guix directly than to have to rely on docker repositories/registries. For instance to run 'ls' in a container, one can just run 'guix shell --container --network --emulate-fhs bash coreutils -- ls'. Containers environments can easily be defined with manifest files.
 
 
 
And finally Guix can generate docker images with 'guix --image-type=docker system.scm' where system.scm contains an operating system definition, so docker itself (patched to remove the reference to nonfree repositories) can also be used in an FSDG compliant way.
 
 
 
The Guix manual has all the details on how to use all that.
 
 
 
For the status of docker image of FSDG compliant distributions, see the [[Group:Software/research/DistroExecutionEnvironments|DistroExecutionEnvironments]] wiki page.
 
 
 
{| class="wikitable"  border="1"
 
! Repository website
 
! Licenses requirements
 
! Reliability of license fields
 
|-
 
| [https://hub.docker.com docker hub]
 
| Not FSDG compliant.<ref>The repository images with nonfree software like the [https://hub.docker.com/_/microsoft-windows-base-os-images Windows base OS images]. So if there is a license policy it probably allows that.</ref>
 
| ?
 
|-
 
| [https://index.docker.io/ docker.io]
 
| Not FSDG compliant.<ref>The repository images with nonfree software like the [https://index.docker.io/_/microsoft-windows-base-os-images Windows base OS images]. So if there is a license policy it probably allows that.</ref>
 
| ?
 
|-
 
| [https://registry.fedoraproject.org registry.fedoraproject.org]
 
| Probably not FSDG compliant.<ref>Fedora is not FSDG compliant. Though the question here is if the are nonfree firmwares are in the same repositories than the rest of the software. If not are the repositories with nonfree firmwares enabled in the fedora docker registry?</ref>
 
| Strict policy.<ref>https://www.gnu.org/distros/common-distros.html#Fedora</ref>
 
|-
 
|}
 
 
 
It looks easy enough to run your own repository though, so FSDG distributions or the FSDG community could run one if volunteers wants to do the work of setting that up and maintaining it.
 
 
 
The official documentation describes [https://docs.docker.com/registry/deploying/ how to deploy the registry], however the instruction use an already made docker container. That container contain software under the Apache license<ref>https://hub.docker.com/_/registry</ref> and also bundles in dependencies like software from the Alpine GNU/Linux distribution<ref>https://raw.githubusercontent.com/docker-library/repo-info/master/repos/registry/local/latest.md</ref>. Alpine hasn't even been reviewed by GNU<ref>https://www.gnu.org/distros/common-distros.html</ref>, and if that image is somehow FSDG compliant (nobody looked into it yet so we don't know, and it's better to assume it's not until someone looks), they might not stick to continue being FSDG compliant in the future, so it makes more sense to not use that image.
 
 
 
However we can use the [https://docs.docker.com/registry/recipes/osx-setup-guide/ osx-setup-guide] documentation to build the 'registry' application and the [https://raw.githubusercontent.com/docker-library/repo-info/master/repos/registry/local/latest.md dependencies licensing information] to get a list of dependencies, and this way build our own version. We can then use the [https://docs.docker.com/registry/deploying/ deployment documentation] mentioned previously to understand the configuration file format. It might also be possible to package this application in various FSDG distributions to make deployments easier.
 
 
 
For instance Parabola uses Parabola as a server, Trisquel probably use Trisquel, and so on, so if there are packages that makes deployments by distributions (who already have at least some of the infrastructure in place) easier.
 
 
 
As for having official images, the [[Group:Software/research/DistroExecutionEnvironments#Running_distributions_in_a_virtual_execution_environments|DistroExecutionEnvironments Wiki page]] has information on how to create official docker images for various FSDG compliant distributions (at the time of writing: PureOS, Trisquel, Parabola), and it should be easy to upstream an operating system definition for a minimal docker image in Guix as Guix has already everything in place to create docker images.
 
 
 
With a bit of work in may be possible to just publish images at given URL without the 'registry' application, in ways that are usable in docker files and tools, it might be even easier as distributions could just release docker images like they release installation "iso" images. And some distributions (like Guix) already have everything in place to continuously build updated images.
 
 
 
For that we will at least need to generate registry manifest v2 files, and maybe more (TODO: we need help to look into it). There are some documentation that gives some more details about how registries work under the hood and/or what is needed to implement the registry API:
 
* https://containers.gitbook.io/build-containers-the-hard-way/#registry-format-oci-image-manifest
 
* https://docs.docker.com/registry/spec/manifest-v2-2/
 
* https://docs.docker.com/registry/spec/api/#digest-parameter
 
 
 
I've not read them yet completely, so I don't know if we can just publish some files on a web server (with some small configuration to return json files in folders).
 
  
 
=== Programs ===
 
=== Programs ===

Revision as of 09:56, 13 January 2023

Introduction

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

FSDG compliant repositories

This contains lists of FSDG compliant repositories.

Repository type FSDG compliant implementations
Browser addons See BrowserAddons
General purpose package manager on top of existing distributions

The CrossDistroBootstrap also has some information on how reusable are some FSDG distribution repositories. For instance PureOS is now in upstream debootstrap, but other FSDG compliant distributions need to wait for a new debootstrap release, and they might also need to package the PureOS keyring to enable users to safely use their repositories.

As for using other distribution repositories, the DistroExecutionEnvironments page has more information about which container/virtualization systems work with which distribution.

Research

Programming languages

Repository name Programs / Packages Repository type Licenses requirements Reliability of license fields Status
Cabal Haskell FLOSS license required, points to FSF and OSI for the licenses list ?
CPAN ? Perl Allow any license (including nonfree software) ?
Hackage? Haskell ? ?
PECL ? PHP Allow nonfree software, GPL and LGPLv3 (libraries?) not accepted ?
Python Package Index
  • pip
Python Allow any license (including nonfree software) ?
Distribution Status
Dragora
Dynebolic
Guix
Hyperbola
LibreCMC
Parabola blacklisted
ProteanOS
Replicant
PureOS
Trisquel
Ututo S
? rubygems Ruby Allow any license (including nonfree software) ?
Distribution Status
Dragora
Dynebolic
Guix
Hyperbola
LibreCMC
Parabola blacklisted
ProteanOS
Replicant
PureOS
Trisquel
Ututo S
? ? Rust ? ?

Parabola has a bug report (bug #1035) about programming language package managers, it has more reference and information on the issue.

Docker registries

See Group:Software/research/ExternalRepositories/DockerRegistries for more details about Docker registries, how to run your own registry easily, etc.

Programs

Program name Program type Repository type Repository website Licenses requirements Reliability of license fields Status
Docker Virtualization software Repository of distribution installation images and software images 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.
Distribution Status
Dragora
Dynebolic
Guix
Hyperbola
LibreCMC
Parabola #3421
ProteanOS
Replicant Doesn't ship docker
PureOS
Trisquel
Ututo S
GNOME Boxes (+osinfo-db) Virtualization software Repository of distribution installation images that is constructed with libosinfo and osinfo-db
Distribution Status
Dragora
Dynebolic
Guix Bug #60109
Hyperbola
LibreCMC
Parabola Gnome Boxes and/or libosinfo are patched to only show FSDG compliant distributions.
ProteanOS
Replicant Doesn't ship GNOME Boxes
PureOS
Trisquel
Ututo S
Libreoffice Document editing software Extensions extensions.libreoffice.org ? ?

TODO:

  • Needs confirmation of the bug (Does upstream have licenses requirements or not?).
Distribution Status
Dragora
Dynebolic
Guix
Hyperbola
LibreCMC
Parabola Bug #3412
ProteanOS
Replicant Doesn't ship libreoffice
PureOS
Trisquel
Ututo S
LXC Virtualization software 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.
Distribution Status
Dragora
Dynebolic
Guix '/gnu/store/*-lxc-*/share/lxc/templates/lxc-download --list' lists non-fsdg compliant distributions.
Hyperbola
LibreCMC
Parabola '/usr/share/lxc/templates/lxc-download --list' lists non-fsdg compliant distributions.
ProteanOS
Replicant
PureOS
Trisquel
Ututo S
Nextcloud Collaboration server Addons apps.nextcloud.com ? ? TODO: Check if Nextcloud uses apps.nextcloud.com
Distribution Status
Dragora
Dynebolic
Guix Doesn't have nextcloud
Hyperbola Doesn't have nextcloud
LibreCMC
Parabola Has nextcloud
ProteanOS
Replicant Doesn't have nextcloud
PureOS
Trisquel Doesn't have nextcloud
Ututo S
Wesnoth Game Addons ? ? ?
Xonotic Game Content downloaded during online games:
  • Maps
  • Music
  • Other?
? ? ?

List of pages

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.)


See also

  • DistroUpstreamSupport: This page has a list of which FSDG distributions are supported in some of the external repositories present here.
  • CrossDistroBootstrap: For how to bootstrap an FSDG distribution from another FSDG compliant distribution.

References


"issue" is not in the list (interest, location, project, school) of allowed values for the "Organized around" property.