Ir al contenido

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.

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:

Ventana de terminal
pacman -Ql zfs-dkms | grep -c '\.ko$' # 0

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.

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

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

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.