Licensing
Almost everything on a Ditana system comes from Arch’s own repositories under
Arch’s terms. This page is about the packages Ditana builds itself and serves
from ditana.org — in particular the ZFS ones, because ZFS on Linux carries a
licence question that a distribution has to answer explicitly rather than by
accident.
It describes what Ditana does and links the primary sources so you can read them instead of taking this page’s word for anything. It is not legal advice.
The ZFS packages
Section titled “The ZFS packages”What Ditana distributes
Section titled “What Ditana distributes”| Package | Contents | Licence |
|---|---|---|
zfs-utils |
The userspace tools and libraries — zfs, zpool, zed, udev rules, systemd units. |
CDDL-1.0 |
zfs-dkms |
Source code only. It unpacks the OpenZFS module sources into /usr/src/zfs-<version>/ together with a dkms.conf. It contains no compiled kernel module. |
CDDL-1.0 |
zfs.ko, the kernel module itself, is compiled by DKMS on your machine,
against the kernel running on your machine, when zfs-dkms is installed and
again after every kernel update. It is never built on a Ditana build host, never
signed by Ditana, and never uploaded anywhere. You can check this on an
installed system:
pacman -Ql zfs-dkms | grep -c '\.ko$' # 0The licence question
Section titled “The licence question”OpenZFS is licensed under the CDDL. The Linux kernel is licensed under the GPL version 2. The Free Software Foundation lists the CDDL as a free software licence that is incompatible with the GPL, and the Software Freedom Conservancy reached the same conclusion in its 2016 analysis. Canonical published the opposing position that same year. The disagreement has never been tested in court and remains unresolved.
What the disagreement is about is narrow: whether a compiled binary that
combines CDDL-covered OpenZFS code with GPL-covered kernel code may be
distributed. That artefact is zfs.ko.
Source code is not such a combination, and neither is userspace: zfs-utils
contains no kernel code and is not linked against any. Neither package Ditana
ships is the artefact under dispute.
Where that leaves Ditana
Section titled “Where that leaves Ditana”Ditana distributes the sources and the userspace tools, and lets DKMS build the module locally. That is the same arrangement Debian uses: a DKMS source package, no prebuilt modules in the repository.
It is deliberately not the arrangement used by projects that ship a
ready-built module — archzfs, for example,
offers precompiled zfs-linux packages alongside its DKMS variant, and Canonical
ships the module with Ubuntu on the strength of the position linked above. Those
projects distribute the combined binary. Ditana does not, and the choice is the
reason this page exists.
The practical cost of that choice is real and is not hidden: a kernel update on a Ditana system recompiles the module locally, which takes minutes and needs the matching kernel headers. This is why the installer offers ZFS only together with the long-term support kernel, and switches the kernel selection to it automatically when you choose ZFS — a non-LTS kernel can move ahead of what OpenZFS supports and leave DKMS unable to build.
The installer states the licence before you choose: the File System dialog
carries CDDL on the ZFS entry, the same way every other package selection
carries its SPDX identifier.
ZFSBootMenu
Section titled “ZFSBootMenu”ZFSBootMenu is the bootloader Ditana
installs on ZFS systems. It is licensed under the MIT licence and contains no
OpenZFS code — it is a set of shell and Perl scripts that call the zfs and
zpool commands. The question above does not arise for it.
The boot image on your machine (initramfs-bootmenu.img) is generated locally by
generate-zbm after installation, from the components present on that system.
Corresponding source code
Section titled “Corresponding source code”The CDDL is a file-level copyleft: whoever distributes binaries built from
CDDL-covered files has to make the corresponding source available and keep the
licence notices intact. Ditana distributes zfs-utils as a binary package, so
this applies.
Every package in the Ditana repository is built from a publicly available recipe. For a package that also exists in the AUR, that is the AUR recipe of the same name — used unmodified in most cases, and otherwise as a fork published under github.com/acrion. The recipe names the exact upstream archive it fetches and the checksum it is verified against, which is the corresponding source in the sense the licence means.
For the packages on this page:
| Package | Recipe | Upstream source |
|---|---|---|
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 |
Ditana’s ZFS recipes carry no Ditana patches: the packages are built from the
upstream AUR recipes as published. pacman -Qi zfs-utils names the exact
version installed on your machine, and the recipe’s AUR history has a commit for
that version. Every run that produced these packages is recorded under
Build status.
The full text of the CDDL-1.0 is at
opensource.org/license/cddl-1-0 and in
the COPYRIGHT and LICENSE files of the OpenZFS source tree linked above.
If you cannot locate the corresponding source for any package Ditana distributes, write to [email protected] and you will be pointed at it or sent it.
Ditana’s own code
Section titled “Ditana’s own code”The installer engine and its knowledge base are Ditana’s own work:
| Project | Licence |
|---|---|
| ditana-installer | GPL-3.0-or-later |
| ditana-config | AGPL-3.0-or-later |
Not legal advice
Section titled “Not legal advice”This page is written by Ditana’s maintainer, not by a lawyer, and it is a description of Ditana’s packaging rather than an opinion on anyone else’s. The CDDL/GPL question is genuinely contested by parties who have taken it seriously, and every position referenced here is linked so you can read the argument yourself. If you are redistributing these packages, or building products on top of them, get your own advice.