Licencias
Casi todo lo que hay en un sistema Ditana proviene de los propios repositorios de Arch, bajo las condiciones de Arch. Esta página trata de los paquetes que Ditana compila por sí misma y sirve desde ditana.org, en particular los de ZFS, porque ZFS en Linux plantea una cuestión de licencias que una distribución tiene que responder de forma explícita y no por casualidad.
Describe lo que hace Ditana y enlaza las fuentes primarias para que pueda leerlas en lugar de fiarse de lo que dice esta página. No es asesoramiento legal.
Los paquetes de ZFS
Sección titulada «Los paquetes de ZFS»Qué distribuye Ditana
Sección titulada «Qué distribuye Ditana»| Paquete | Contenido | Licencia |
|---|---|---|
zfs-utils |
Las herramientas y bibliotecas de espacio de usuario: zfs, zpool, zed, reglas de udev, unidades de systemd. |
CDDL-1.0 |
zfs-dkms |
Solo código fuente. Desempaqueta las fuentes del módulo OpenZFS en /usr/src/zfs-<version>/ junto con un dkms.conf. No contiene ningún módulo del kernel compilado. |
CDDL-1.0 |
zfs.ko, el propio módulo del kernel, lo compila DKMS en su máquina, para el kernel que se ejecuta en su máquina, cuando se instala zfs-dkms y de nuevo después de cada actualización del kernel. Nunca se compila en un servidor de compilación de Ditana, nunca lo firma Ditana y nunca se sube a ningún sitio. Puede comprobarlo en un sistema instalado:
pacman -Ql zfs-dkms | grep -c '\.ko$' # 0La cuestión de la licencia
Sección titulada «La cuestión de la licencia»OpenZFS está bajo la licencia CDDL. El kernel Linux está bajo la GPL versión 2. La Free Software Foundation clasifica la CDDL como una licencia de software libre incompatible con la GPL, y la Software Freedom Conservancy llegó a la misma conclusión en su análisis de 2016. Canonical publicó la postura contraria ese mismo año. El desacuerdo nunca se ha dirimido ante un tribunal y sigue sin resolverse.
El desacuerdo trata sobre algo muy concreto: si se puede distribuir un binario compilado que combina código de OpenZFS cubierto por la CDDL con código del kernel cubierto por la GPL. Ese artefacto es zfs.ko.
El código fuente no es una combinación de ese tipo, y tampoco lo es el espacio de usuario: zfs-utils no contiene código del kernel ni está enlazado con él. Ninguno de los dos paquetes que distribuye Ditana es el artefacto en disputa.
En qué situación deja eso a Ditana
Sección titulada «En qué situación deja eso a Ditana»Ditana distribuye las fuentes y las herramientas de espacio de usuario, y deja que DKMS compile el módulo localmente. Es el mismo esquema que usa Debian: un paquete de fuentes DKMS, sin módulos precompilados en el repositorio.
Deliberadamente, no es el esquema que usan los proyectos que distribuyen un módulo ya compilado: archzfs, por ejemplo, ofrece paquetes zfs-linux precompilados junto a su variante DKMS, y Canonical distribuye el módulo con Ubuntu amparándose en la postura enlazada arriba. Esos proyectos distribuyen el binario combinado. Ditana no, y esa decisión es la razón de ser de esta página.
El costo práctico de esa decisión es real y no se oculta: una actualización del kernel en un sistema Ditana recompila el módulo localmente, lo que lleva minutos y requiere los encabezados del kernel correspondientes. Por eso el instalador ofrece ZFS solo junto con el kernel de soporte a largo plazo: la entrada ZFS aparece en el diálogo File System solo mientras ese kernel está seleccionado, y desaparece si elige otro, ya que un kernel que no es LTS puede adelantarse a lo que admite OpenZFS y dejar a DKMS sin poder compilar. Cómo dependen las opciones unas de otras muestra las dos declaraciones que lo hacen.
El instalador indica la licencia antes de que usted elija: el diálogo File System muestra CDDL en la entrada ZFS, del mismo modo que las selecciones de paquetes muestran su identificador SPDX.
ZFSBootMenu
Sección titulada «ZFSBootMenu»ZFSBootMenu es el cargador de arranque que Ditana instala en los sistemas ZFS. Está bajo la licencia MIT y no contiene código de OpenZFS: es un conjunto de scripts de shell y de Perl que llaman a los comandos zfs y zpool. La cuestión anterior no se plantea en su caso.
La imagen de arranque de su máquina se genera localmente durante la instalación, mediante generate-zbm ejecutado dentro del sistema de destino, con los componentes presentes allí. En una máquina UEFI es un ejecutable EFI unificado ubicado en /boot/efi/EFI/zbm/, copiado también a /boot/efi/EFI/BOOT/BOOTX64.EFI; en una máquina BIOS es /boot/syslinux/zfsbootmenu/initramfs-bootmenu.img.
Código fuente correspondiente
Sección titulada «Código fuente correspondiente»La CDDL es un copyleft a nivel de archivo: quien distribuya binarios compilados a partir de archivos cubiertos por la CDDL tiene que poner a disposición el código fuente correspondiente y mantener intactos los avisos de licencia. Ditana distribuye zfs-utils como paquete binario, así que esto se aplica.
Para cada paquete del repositorio de Ditana, la receta es pública. Los paquetes tomados del AUR sin cambios, y las bifurcaciones de Ditana de esos paquetes, llevan en la receta su dirección de origen; los paquetes propios de Ditana se compilan desde el repositorio del mismo nombre en github.com/acrion; y los pocos tomados del propio empaquetado de Arch llevan la dirección del repositorio correspondiente en gitlab.archlinux.org. La receta nombra el archivo comprimido exacto del proyecto original que descarga y la suma de comprobación con la que se verifica, y eso es el código fuente correspondiente en el sentido de la licencia.
Para los paquetes de esta página:
| Paquete | Receta | Fuente original |
|---|---|---|
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 |
Las recetas de ZFS de Ditana no llevan parches de Ditana: los paquetes se compilan a partir de las recetas originales del AUR tal como están publicadas. pacman -Qi zfs-utils indica la versión exacta instalada en su máquina, y el historial de la receta en el AUR tiene un commit para esa versión. Cada ejecución que produjo estos paquetes queda registrada en Estado de la compilación.
El texto completo de la CDDL-1.0 está en opensource.org/license/cddl-1-0 y en los archivos COPYRIGHT y LICENSE del árbol de fuentes de OpenZFS enlazado arriba.
Si no encuentra el código fuente correspondiente de algún paquete que distribuya Ditana, escriba a [email protected] y se le indicará dónde está o se le enviará.
El código propio de Ditana
Sección titulada «El código propio de Ditana»El motor del instalador, su base de conocimiento y las herramientas que los rodean son obra propia de Ditana:
| Proyecto | Licencia |
|---|---|
| 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, excepto el propio programa BPF (userns_guard.bpf.c) y las declaraciones de tipos del kernel que necesita (kernel_types.h), que son GPL-2.0-or-later porque el kernel niega las funciones auxiliares exclusivas de GPL a un programa que no lo sea |
| zfs-autosnap | AGPL-3.0-or-later |
zfs-autosnap es el hook propio de Ditana que toma instantáneas antes de las actualizaciones, no código de OpenZFS; se instala de forma predeterminada en todo sistema ZFS.
No es asesoramiento legal
Sección titulada «No es asesoramiento legal»Esta página la escribe el mantenedor de Ditana, no un abogado, y es una descripción del empaquetado de Ditana, no una opinión sobre el de nadie más. La cuestión CDDL/GPL está genuinamente en disputa entre partes que se la han tomado en serio, y cada postura mencionada aquí está enlazada para que pueda leer los argumentos por su cuenta. Si redistribuye estos paquetes o crea productos basados en ellos, busque su propio asesoramiento.
Esta traducción la hizo una máquina. Los lectores la mejoran en Weblate.