Zum Inhalt springen

Lizenzen

Fast alles auf einem Ditana-System stammt aus den Paketquellen von Arch selbst, zu den Bedingungen von Arch. Diese Seite behandelt die Pakete, die Ditana selbst baut und von ditana.org bereitstellt – insbesondere die ZFS-Pakete, denn ZFS unter Linux wirft eine Lizenzfrage auf, die eine Distribution ausdrücklich beantworten muss und nicht zufällig.

Sie beschreibt, was Ditana tut, und verlinkt die Primärquellen, damit Sie diese lesen können, statt dieser Seite irgendetwas einfach zu glauben. Sie ist keine Rechtsberatung.

Paket Inhalt Lizenz
zfs-utils Die Werkzeuge und Bibliotheken für den Userspace – zfs, zpool, zed, udev-Regeln, systemd-Units. CDDL-1.0
zfs-dkms Nur Quellcode. Es entpackt die Quellen des OpenZFS-Moduls zusammen mit einer dkms.conf nach /usr/src/zfs-<version>/. Es enthält kein kompiliertes Kernelmodul. CDDL-1.0

zfs.ko, das Kernelmodul selbst, wird von DKMS auf Ihrem Rechner kompiliert, gegen den Kernel, der auf Ihrem Rechner läuft, wenn zfs-dkms installiert wird, und erneut nach jeder Kernel-Aktualisierung. Es wird nie auf einem Build-Host von Ditana gebaut, nie von Ditana signiert und nie irgendwohin hochgeladen. Auf einem installierten System können Sie das prüfen:

Terminalfenster
pacman -Ql zfs-dkms | grep -c '\.ko$' # 0

OpenZFS steht unter der CDDL. Der Linux-Kernel steht unter der GPL in Version 2. Die Free Software Foundation führt die CDDL als Lizenz für freie Software, die mit der GPL nicht vereinbar ist, und die Software Freedom Conservancy kam in ihrer Analyse von 2016 zum selben Schluss. Canonical veröffentlichte im selben Jahr die gegenteilige Position. Der Streit wurde nie vor Gericht ausgetragen und ist weiterhin ungeklärt.

Worum es bei dem Streit geht, ist eng umrissen: ob eine kompilierte Binärdatei als Kombination aus CDDL-lizenziertem OpenZFS-Code und GPL-lizenziertem Kernel-Code verteilt werden darf. Dieses Artefakt ist zfs.ko.

Quellcode ist keine solche Kombination, und Userspace ebenso wenig: zfs-utils enthält keinen Kernel-Code und ist gegen keinen gelinkt. Keines der beiden Pakete, die Ditana ausliefert, ist das umstrittene Artefakt.

Was das für Ditana bedeutet

Abschnitt «Was das für Ditana bedeutet»

Ditana verteilt die Quellen und die Userspace-Werkzeuge und lässt DKMS das Modul lokal bauen. Das ist dieselbe Lösung, die Debian verwendet: ein DKMS-Quellpaket, keine fertig gebauten Module in der Paketquelle.

Es ist bewusst nicht die Lösung von Projekten, die ein fertig gebautes Modul ausliefern – archzfs zum Beispiel bietet neben seiner DKMS-Variante bereits kompilierte Pakete zfs-linux an, und Canonical liefert das Modul mit Ubuntu aus und stützt sich dabei auf die oben verlinkte Position. Diese Projekte verteilen die kombinierte Binärdatei. Ditana tut das nicht, und diese Entscheidung ist der Grund, warum es diese Seite gibt.

Der praktische Preis dieser Entscheidung ist real und wird nicht verschwiegen: Eine Kernel-Aktualisierung auf einem Ditana-System kompiliert das Modul lokal neu, was Minuten dauert und die passenden Kernel-Header braucht. Deshalb bietet das Installationsprogramm ZFS nur zusammen mit dem Kernel mit Langzeitunterstützung an: Der Eintrag ZFS erscheint im Dialog File System nur, solange dieser Kernel ausgewählt ist, und verschwindet, wenn Sie einen anderen wählen – ein Kernel ohne LTS kann dem vorauseilen, was OpenZFS unterstützt, sodass DKMS nicht mehr bauen kann. Wie Einstellungen voneinander abhängen zeigt die beiden Deklarationen, die das bewirken.

Das Installationsprogramm nennt die Lizenz, bevor Sie auswählen: Der Dialog File System zeigt beim Eintrag ZFS CDDL an, so wie die Einträge der Paketauswahl ihren SPDX-Bezeichner tragen.

ZFSBootMenu ist der Bootloader, den Ditana auf ZFS-Systemen installiert. Er steht unter der MIT-Lizenz und enthält keinen OpenZFS-Code – er ist eine Sammlung von Shell- und Perl-Skripten, die die Befehle zfs und zpool aufrufen. Die obige Frage stellt sich für ihn nicht.

Das Boot-Abbild auf Ihrem Rechner wird während der Installation lokal erzeugt, und zwar von generate-zbm, das im Zielsystem läuft und die dort vorhandenen Komponenten verwendet. Auf einem UEFI-Rechner ist es ein EFI-Bundle unter /boot/efi/EFI/zbm/, das zusätzlich nach /boot/efi/EFI/BOOT/BOOTX64.EFI kopiert wird; auf einem BIOS-Rechner ist es /boot/syslinux/zfsbootmenu/initramfs-bootmenu.img.

Die CDDL ist ein Copyleft auf Dateiebene: Wer Binärdateien verteilt, die aus CDDL-lizenzierten Dateien gebaut wurden, muss den zugehörigen Quellcode verfügbar machen und die Lizenzhinweise unverändert lassen. Ditana verteilt zfs-utils als Binärpaket, daher gilt das.

Für jedes Paket in der Ditana-Paketquelle ist das Rezept öffentlich. Unverändert aus dem AUR übernommene Pakete und Ditanas Forks davon tragen ihre Upstream-Adresse im Rezept; Ditanas eigene Pakete werden aus dem gleichnamigen Repository unter github.com/acrion gebaut; und die wenigen, die aus der Paketierung von Arch selbst übernommen wurden, tragen die Adresse des entsprechenden Repositorys auf gitlab.archlinux.org. Das Rezept nennt das genaue Upstream-Archiv, das es holt, und die Prüfsumme, anhand derer es überprüft wird – das ist der zugehörige Quellcode im Sinne der Lizenz.

Für die Pakete auf dieser Seite:

Paket Rezept Upstream-Quelle
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

Ditanas ZFS-Rezepte enthalten keine Ditana-Patches: Die Pakete werden aus den Upstream-Rezepten im AUR so gebaut, wie sie veröffentlicht sind. pacman -Qi zfs-utils nennt die genaue Version, die auf Ihrem Rechner installiert ist, und die AUR-Historie des Rezepts enthält einen Commit für diese Version. Jeder Durchlauf, der diese Pakete erzeugt hat, ist unter Build-Status aufgezeichnet.

Der vollständige Text der CDDL-1.0 steht unter opensource.org/license/cddl-1-0 und in den Dateien COPYRIGHT und LICENSE des oben verlinkten OpenZFS-Quellbaums.

Wenn Sie den zugehörigen Quellcode für ein Paket, das Ditana verteilt, nicht finden, schreiben Sie an [email protected]; Sie erhalten dann einen Hinweis, wo er liegt, oder den Quellcode selbst.

Die Engine des Installationsprogramms, ihre Wissensbasis und die Werkzeuge darum herum sind Ditanas eigene Arbeit:

Projekt Lizenz
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, ausser dem BPF-Programm selbst (userns_guard.bpf.c) und den Kernel-Typdeklarationen, die es braucht (kernel_types.h); diese stehen unter GPL-2.0-or-later, weil der Kernel Hilfsfunktionen, die nur für GPL-Code freigegeben sind, einem Programm verweigert, das nicht unter der GPL steht
zfs-autosnap AGPL-3.0-or-later

zfs-autosnap ist Ditanas eigener Schnappschuss-Hook vor Systemaktualisierungen, kein OpenZFS-Code; er wird auf jedem ZFS-System standardmässig installiert.

Diese Seite wurde vom Maintainer von Ditana geschrieben, nicht von einer Anwältin oder einem Anwalt, und sie beschreibt Ditanas Paketierung, statt die anderer zu beurteilen. Die Frage CDDL/GPL ist unter Parteien, die sie ernst genommen haben, tatsächlich umstritten, und jede hier erwähnte Position ist verlinkt, damit Sie die Argumentation selbst lesen können. Wenn Sie diese Pakete weiterverteilen oder Produkte darauf aufbauen, lassen Sie sich selbst beraten.

Diese Übersetzung wurde maschinell erstellt. Leserinnen und Leser verbessern sie auf Weblate.