Licenze
Quasi tutto ciò che si trova su un sistema Ditana proviene dai repository di Arch stessa, alle condizioni di Arch. Questa pagina riguarda i pacchetti che Ditana compila da sé e distribuisce da ditana.org – in particolare quelli ZFS, perché ZFS su Linux pone una questione di licenza a cui una distribuzione deve rispondere in modo esplicito anziché per caso.
Descrive ciò che fa Ditana e rimanda alle fonti primarie, in modo che possiate leggerle anziché credere sulla parola a questa pagina. Non costituisce una consulenza legale.
I pacchetti ZFS
Sezione intitolata «I pacchetti ZFS»Che cosa distribuisce Ditana
Sezione intitolata «Che cosa distribuisce Ditana»| Pacchetto | Contenuto | Licenza |
|---|---|---|
zfs-utils |
Gli strumenti e le librerie in spazio utente – zfs, zpool, zed, regole udev, unità systemd. |
CDDL-1.0 |
zfs-dkms |
Solo codice sorgente. Estrae i sorgenti del modulo OpenZFS in /usr/src/zfs-<version>/ insieme a un dkms.conf. Non contiene alcun modulo del kernel compilato. |
CDDL-1.0 |
zfs.ko, il modulo del kernel vero e proprio, viene compilato da DKMS sulla vostra macchina, per il kernel in esecuzione sulla vostra macchina, quando viene installato zfs-dkms e di nuovo dopo ogni aggiornamento del kernel. Non viene mai compilato su un host di build di Ditana, mai firmato da Ditana e mai caricato in rete da nessuna parte. Potete verificarlo su un sistema installato:
pacman -Ql zfs-dkms | grep -c '\.ko$' # 0La questione della licenza
Sezione intitolata «La questione della licenza»OpenZFS è distribuito con licenza CDDL. Il kernel Linux è distribuito con licenza GPL versione 2. La Free Software Foundation classifica la CDDL come licenza di software libero incompatibile con la GPL, e la Software Freedom Conservancy è giunta alla stessa conclusione nella sua analisi del 2016. Canonical ha pubblicato nello stesso anno la posizione opposta. La controversia non è mai stata portata davanti a un tribunale e rimane irrisolta.
L’oggetto della controversia è circoscritto: stabilire se un binario compilato che combina codice OpenZFS coperto dalla CDDL con codice del kernel coperto dalla GPL possa essere distribuito. Quell’artefatto è zfs.ko.
Il codice sorgente non è una combinazione di questo tipo, e nemmeno lo spazio utente: zfs-utils non contiene codice del kernel e non è collegato ad alcun codice del kernel. Nessuno dei due pacchetti distribuiti da Ditana è l’artefatto oggetto della controversia.
Che cosa ne consegue per Ditana
Sezione intitolata «Che cosa ne consegue per Ditana»Ditana distribuisce i sorgenti e gli strumenti in spazio utente, e lascia che DKMS compili il modulo localmente. È la stessa soluzione adottata da Debian: un pacchetto sorgente DKMS, nessun modulo precompilato nel repository.
Deliberatamente, non è la soluzione adottata dai progetti che distribuiscono un modulo già compilato – archzfs, per esempio, offre pacchetti zfs-linux precompilati accanto alla sua variante DKMS, e Canonical distribuisce il modulo con Ubuntu sulla base della posizione citata sopra. Questi progetti distribuiscono il binario combinato. Ditana no, e questa scelta è il motivo per cui esiste questa pagina.
Il costo pratico di questa scelta è reale e non viene nascosto: un aggiornamento del kernel su un sistema Ditana ricompila il modulo localmente, il che richiede alcuni minuti e gli header del kernel corrispondenti. Per questo il programma di installazione offre ZFS solo insieme al kernel con supporto a lungo termine: la voce ZFS compare nella finestra di dialogo File System solo finché è selezionato quel kernel, e scompare quando ne scegliete un altro – un kernel non LTS può andare oltre ciò che OpenZFS supporta e impedire a DKMS di compilare. Come le impostazioni dipendono le une dalle altre mostra le due dichiarazioni che producono questo comportamento.
Il programma di installazione indica la licenza prima che effettuiate la scelta: la finestra di dialogo File System riporta CDDL sulla voce ZFS, così come le selezioni di pacchetti riportano il loro identificativo SPDX.
ZFSBootMenu
Sezione intitolata «ZFSBootMenu»ZFSBootMenu è il bootloader che Ditana installa sui sistemi ZFS. È distribuito con licenza MIT e non contiene codice OpenZFS – è un insieme di script di shell e Perl che richiamano i comandi zfs e zpool. Per esso la questione esposta sopra non si pone.
L’immagine di avvio sulla vostra macchina viene generata localmente durante l’installazione, da generate-zbm in esecuzione all’interno del sistema di destinazione, con i componenti lì presenti. Su una macchina UEFI è un bundle EFI che si trova in /boot/efi/EFI/zbm/, copiato anche in /boot/efi/EFI/BOOT/BOOTX64.EFI; su una macchina BIOS è /boot/syslinux/zfsbootmenu/initramfs-bootmenu.img.
Codice sorgente corrispondente
Sezione intitolata «Codice sorgente corrispondente»La CDDL è un copyleft a livello di file: chi distribuisce binari compilati da file coperti dalla CDDL deve rendere disponibile il sorgente corrispondente e mantenere intatte le note di licenza. Ditana distribuisce zfs-utils come pacchetto binario, per cui questo obbligo si applica.
Per ogni pacchetto del repository di Ditana la ricetta è pubblica. I pacchetti presi dall’AUR senza modifiche, e i fork che Ditana ne ha fatto, riportano nella ricetta il proprio indirizzo upstream; i pacchetti propri di Ditana sono compilati dal repository omonimo sotto github.com/acrion; e i pochi presi dalla pacchettizzazione di Arch stessa riportano l’indirizzo del repository corrispondente su gitlab.archlinux.org. La ricetta indica l’esatto archivio upstream che scarica e la somma di controllo con cui viene verificato, il che costituisce il sorgente corrispondente nel senso inteso dalla licenza.
Per i pacchetti trattati in questa pagina:
| Pacchetto | Ricetta | Sorgente upstream |
|---|---|---|
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 |
Le ricette ZFS di Ditana non contengono patch di Ditana: i pacchetti sono compilati dalle ricette AUR upstream così come sono pubblicate. pacman -Qi zfs-utils indica la versione esatta installata sulla vostra macchina, e la cronologia AUR della ricetta contiene un commit per quella versione. Ogni esecuzione che ha prodotto questi pacchetti è registrata in Stato delle build.
Il testo completo della CDDL-1.0 si trova su opensource.org/license/cddl-1-0 e nei file COPYRIGHT e LICENSE dell’albero dei sorgenti di OpenZFS indicato sopra.
Se non riuscite a trovare il sorgente corrispondente di un qualsiasi pacchetto distribuito da Ditana, scrivete a [email protected]: vi verrà indicato dove trovarlo oppure vi verrà inviato.
Il codice proprio di Ditana
Sezione intitolata «Il codice proprio di Ditana»Il motore del programma di installazione, la sua base di conoscenza e gli strumenti che li circondano sono opera di Ditana stessa:
| Progetto | Licenza |
|---|---|
| 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, tranne il programma BPF vero e proprio (userns_guard.bpf.c) e le dichiarazioni dei tipi del kernel di cui ha bisogno (kernel_types.h), che sono GPL-2.0-or-later perché il kernel nega le funzioni ausiliarie riservate alla GPL a un programma che non è sotto GPL |
| zfs-autosnap | AGPL-3.0-or-later |
zfs-autosnap è l’hook di Ditana stessa che crea uno snapshot prima degli aggiornamenti, non codice OpenZFS; è installato per impostazione predefinita su ogni sistema ZFS.
Nessuna consulenza legale
Sezione intitolata «Nessuna consulenza legale»Questa pagina è scritta dal manutentore di Ditana, non da un avvocato, ed è una descrizione della pacchettizzazione di Ditana, non un parere su quella di chiunque altro. La questione CDDL/GPL è realmente contestata da parti che l’hanno presa sul serio, e ogni posizione citata qui è accompagnata da un link, in modo che possiate leggere voi stessi le argomentazioni. Se ridistribuite questi pacchetti o vi costruite sopra dei prodotti, rivolgetevi a un vostro consulente.
Questa traduzione è stata realizzata automaticamente. I lettori la migliorano su Weblate.