Licences
Presque tout ce qui se trouve sur un système Ditana provient des propres dépôts d’Arch, aux conditions d’Arch. Cette page concerne les paquets que Ditana compile elle-même et met à disposition depuis ditana.org – en particulier les paquets ZFS, car ZFS sous Linux soulève une question de licence à laquelle une distribution doit répondre explicitement plutôt que par hasard.
Elle décrit ce que fait Ditana et renvoie aux sources primaires, afin que vous puissiez les lire au lieu de croire cette page sur parole. Ceci n’est pas un conseil juridique.
Les paquets ZFS
Section intitulée « Les paquets ZFS »Ce que distribue Ditana
Section intitulée « Ce que distribue Ditana »| Paquet | Contenu | Licence |
|---|---|---|
zfs-utils |
Les outils et les bibliothèques de l’espace utilisateur – zfs, zpool, zed, règles udev, unités systemd. |
CDDL-1.0 |
zfs-dkms |
Uniquement du code source. Il décompresse les sources du module OpenZFS dans /usr/src/zfs-<version>/, accompagnées d’un dkms.conf. Il ne contient aucun module du noyau compilé. |
CDDL-1.0 |
zfs.ko, le module du noyau lui-même, est compilé par DKMS sur votre machine, pour le noyau qui tourne sur votre machine, lorsque zfs-dkms est installé, puis à nouveau après chaque mise à jour du noyau. Il n’est jamais compilé sur une machine de compilation de Ditana, jamais signé par Ditana et jamais téléversé nulle part. Vous pouvez le vérifier sur un système installé :
pacman -Ql zfs-dkms | grep -c '\.ko$' # 0La question de la licence
Section intitulée « La question de la licence »OpenZFS est publié sous la licence CDDL. Le noyau Linux est publié sous la licence GPL version 2. La Free Software Foundation répertorie la CDDL comme une licence de logiciel libre incompatible avec la GPL, et la Software Freedom Conservancy est parvenue à la même conclusion dans son analyse de 2016. Canonical a publié la position opposée la même année. Ce désaccord n’a jamais été porté devant un tribunal et reste non résolu.
Ce sur quoi porte le désaccord est restreint : il s’agit de savoir si un binaire compilé qui combine du code OpenZFS couvert par la CDDL avec du code du noyau couvert par la GPL peut être distribué. Cet artefact, c’est zfs.ko.
Le code source n’est pas une telle combinaison, pas plus que l’espace utilisateur : zfs-utils ne contient aucun code du noyau et n’est lié à aucun code de ce type. Aucun des deux paquets que fournit Ditana n’est l’artefact en litige.
Ce que cela signifie pour Ditana
Section intitulée « Ce que cela signifie pour Ditana »Ditana distribue les sources et les outils de l’espace utilisateur, et laisse DKMS compiler le module localement. C’est le même dispositif que celui qu’utilise Debian : un paquet source DKMS, aucun module déjà compilé dans le dépôt.
Ce n’est délibérément pas le dispositif des projets qui fournissent un module déjà compilé – archzfs, par exemple, propose des paquets zfs-linux déjà compilés à côté de sa variante DKMS, et Canonical livre le module avec Ubuntu en s’appuyant sur la position mentionnée plus haut. Ces projets distribuent le binaire combiné. Ditana ne le fait pas, et ce choix est la raison d’être de cette page.
Le coût pratique de ce choix est réel et n’est pas dissimulé : une mise à jour du noyau sur un système Ditana recompile le module localement, ce qui prend plusieurs minutes et nécessite les en-têtes du noyau correspondants. C’est pourquoi le programme d’installation ne propose ZFS qu’avec le noyau à support à long terme : l’entrée ZFS n’apparaît dans la boîte de dialogue File System que tant que ce noyau est sélectionné, et disparaît lorsque vous en choisissez un autre – un noyau non LTS peut devancer ce que prend en charge OpenZFS et laisser DKMS dans l’impossibilité de compiler. Comment les paramètres dépendent les uns des autres montre les deux déclarations qui produisent ce comportement.
Le programme d’installation indique la licence avant que vous fassiez votre choix : dans la boîte de dialogue File System, l’entrée ZFS porte la mention CDDL, de la même manière que les sélections de paquets portent leur identifiant SPDX.
ZFSBootMenu
Section intitulée « ZFSBootMenu »ZFSBootMenu est le chargeur d’amorçage que Ditana installe sur les systèmes ZFS. Il est publié sous la licence MIT et ne contient aucun code OpenZFS – c’est un ensemble de scripts shell et Perl qui appellent les commandes zfs et zpool. La question évoquée plus haut ne se pose pas pour lui.
L’image de démarrage de votre machine est générée localement pendant l’installation, par generate-zbm exécuté dans le système cible, à partir des composants qui s’y trouvent. Sur une machine UEFI, il s’agit d’un exécutable EFI tout-en-un situé dans /boot/efi/EFI/zbm/, également copié vers /boot/efi/EFI/BOOT/BOOTX64.EFI ; sur une machine BIOS, il s’agit de /boot/syslinux/zfsbootmenu/initramfs-bootmenu.img.
Code source correspondant
Section intitulée « Code source correspondant »La CDDL est un copyleft au niveau des fichiers : quiconque distribue des binaires compilés à partir de fichiers couverts par la CDDL doit mettre à disposition le code source correspondant et conserver intactes les mentions de licence. Ditana distribue zfs-utils sous forme de paquet binaire, cette obligation s’applique donc.
Pour chaque paquet du dépôt Ditana, la recette est publique. Les paquets repris tels quels de l’AUR, ainsi que les forks qu’en a faits Ditana, indiquent leur adresse amont dans la recette ; les paquets propres à Ditana sont compilés à partir du dépôt du même nom sous github.com/acrion ; et les quelques paquets repris de l’empaquetage propre à Arch portent l’adresse du dépôt correspondant sur gitlab.archlinux.org. La recette désigne l’archive amont exacte qu’elle récupère et la somme de contrôle par rapport à laquelle celle-ci est vérifiée, ce qui constitue le code source correspondant au sens où l’entend la licence.
Pour les paquets de cette page :
| Paquet | Recette | Source amont |
|---|---|---|
zfs-utils |
aur.archlinux.org/packages/zfs-utils | github.com/openzfs/zfs/releases |
zfs-dkms |
aur.archlinux.org/packages/zfs-dkms | github.com/openzfs/zfs/releases |
zfsbootmenu |
aur.archlinux.org/packages/zfsbootmenu | github.com/zbm-dev/zfsbootmenu |
Les recettes ZFS de Ditana ne comportent aucun correctif propre à Ditana : les paquets sont compilés à partir des recettes amont de l’AUR, telles qu’elles sont publiées. pacman -Qi zfs-utils indique la version exacte installée sur votre machine, et l’historique de la recette dans l’AUR contient un commit pour cette version. Chaque exécution qui a produit ces paquets est consignée sous État des compilations.
Le texte intégral de la CDDL-1.0 se trouve sur opensource.org/license/cddl-1-0 ainsi que dans les fichiers COPYRIGHT et LICENSE de l’arborescence des sources d’OpenZFS mentionnée plus haut.
Si vous ne trouvez pas le code source correspondant d’un paquet que distribue Ditana, écrivez à [email protected] : vous serez orienté vers celui-ci, ou il vous sera envoyé.
Le code propre à Ditana
Section intitulée « Le code propre à Ditana »Le moteur d’installation, sa base de connaissances et les outils qui les entourent sont l’œuvre de Ditana elle-même :
| Projet | Licence |
|---|---|
| ditana-installer | GPL-3.0-or-later |
| ditana-config | AGPL-3.0-or-later |
| ditana-build | AGPL-3.0-or-later |
| ditana-userns-guard | AGPL-3.0-or-later, à l’exception du programme BPF lui-même (userns_guard.bpf.c) et des déclarations de types du noyau dont il a besoin (kernel_types.h), qui sont sous GPL-2.0-or-later, car le noyau refuse les fonctions auxiliaires réservées à la GPL à un programme qui n’est pas lui-même sous GPL |
| zfs-autosnap | AGPL-3.0-or-later |
zfs-autosnap est le crochet propre à Ditana qui prend un instantané avant la mise à jour, et non du code OpenZFS ; il est installé par défaut sur chaque système ZFS.
Pas un conseil juridique
Section intitulée « Pas un conseil juridique »Cette page est rédigée par le mainteneur de Ditana, et non par un avocat, et elle décrit l’empaquetage de Ditana plutôt qu’elle ne donne un avis sur celui de quiconque d’autre. La question CDDL/GPL est réellement contestée par des parties qui l’ont prise au sérieux, et chaque position citée ici est accompagnée d’un lien, afin que vous puissiez lire l’argumentation vous-même. Si vous redistribuez ces paquets, ou si vous construisez des produits sur leur base, obtenez votre propre avis juridique.
Cette traduction a été réalisée par une machine. Les lecteurs l’améliorent sur Weblate.