Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
5 changes: 5 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Frequent committers who contribute to Incus on their own time can add
# themselves to the list here so users who feel like sponsoring can find
# them.
github:
- stgraber
34 changes: 0 additions & 34 deletions .github/codeql/custom-queries/cpp/dslDatasetHoldReleMismatch.ql

This file was deleted.

102 changes: 102 additions & 0 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Builds
on:
- push

permissions:
contents: read

concurrency:
group: ${{ github.ref }}
cancel-in-progress: true

jobs:
build-zfs:
name: Build ZFS
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-24.04
- debian-11
- debian-12
- debian-13
arch:
- amd64
- arm64
exclude:
- os: debian-11
arch: arm64
runs-on:
- self-hosted
- cpu-4
- mem-4G
- arch-${{ matrix.arch }}
- image-${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install dependencies
run: |
sudo apt-get install --yes \
debhelper \
devscripts \
dh-autoreconf \
dh-python \
dkms \
dpkg-dev \
libaio-dev \
libblkid-dev \
libcurl4-openssl-dev \
libelf-dev \
libpam0g-dev \
libssl-dev \
libtirpc-dev \
libtool \
libudev-dev \
lsb-release \
po-debconf \
python3-all-dev \
python3-cffi \
python3-setuptools \
python3-sphinx \
uuid-dev \
zlib1g-dev

sudo apt-get install dh-dkms --yes || true
sudo apt-get install linux-headers-$(uname -r) --yes || true

- name: Build ZFS
env:
PKGOS: ${{ matrix.os }}
PKGARCH: ${{ matrix.arch }}
run: |
[ "${PKGOS}" = "debian-11" ] && CODENAME=bullseye
[ "${PKGOS}" = "debian-12" ] && CODENAME=bookworm
[ "${PKGOS}" = "debian-13" ] && CODENAME=trixie
[ "${PKGOS}" = "ubuntu-22.04" ] && CODENAME=jammy
[ "${PKGOS}" = "ubuntu-24.04" ] && CODENAME=noble

./autogen.sh
./configure

ZFSVERSION=$(cat META | grep ^Version: | awk '{print $2}')

cd contrib
dch -D ${CODENAME} -M -b -m "Automated ZFS build" -v ${ZFSVERSION}-${PKGARCH}-$(date -u +%Y%m%d%H%M)-$(echo ${PKGOS} | sed "s/-//g")
cd ..

make native-deb-utils

- name: Prepare the artifacts
run: |
mkdir out/
mv ../openzfs-* out/

- name: Upload resulting build
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os }}-${{ matrix.arch }}
path: out/*
40 changes: 40 additions & 0 deletions .github/workflows/commits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Commits
on:
- pull_request

permissions:
contents: read

jobs:
dco-check:
permissions:
pull-requests: read # for tim-actions/get-pr-commits to get list of commits from the PR
name: Signed-off-by (DCO)
runs-on: ubuntu-22.04
steps:
- name: Get PR Commits
id: 'get-pr-commits'
uses: tim-actions/get-pr-commits@master
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Check that all commits are signed-off
uses: tim-actions/dco@master
with:
commits: ${{ steps.get-pr-commits.outputs.commits }}

target-branch:
permissions:
contents: none
name: Branch target
runs-on: ubuntu-22.04
steps:
- name: Check branch target
env:
TARGET: ${{ github.event.pull_request.base.ref }}
run: |
set -x
[ "${TARGET}" = "main" ] && exit 0

echo "Invalid branch target: ${TARGET}"
exit 1
89 changes: 66 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,78 @@
![img](https://openzfs.github.io/openzfs-docs/_static/img/logo/480px-Open-ZFS-Secondary-Logo-Colour-halfsize.png)
# ZFS builds
Those are ZFS tools and dkms builds made and supported by Zabbly.

OpenZFS is an advanced file system and volume manager which was originally
developed for Solaris and is now maintained by the OpenZFS community.
This repository contains the code for running OpenZFS on Linux and FreeBSD.
They are designed to work reliably with the matching [kernel build](https://github.com/zabbly/linux).

[![codecov](https://codecov.io/gh/openzfs/zfs/branch/master/graph/badge.svg)](https://codecov.io/gh/openzfs/zfs)
[![coverity](https://scan.coverity.com/projects/1973/badge.svg)](https://scan.coverity.com/projects/openzfs-zfs)
## Availability
Those ZFS packages are built for:

# Official Resources
* Ubuntu 22.04 LTS (`jammy`)
* Ubuntu 24.04 LTS (`noble`)
* Debian 11 (`bullseye`) (`x86_64` only)
* Debian 12 (`bookworm`)
* Debian 13 (`trixie`)

* [Documentation](https://openzfs.github.io/openzfs-docs/) - for using and developing this repo
* [ZoL Site](https://zfsonlinux.org) - Linux release info & links
* [Mailing lists](https://openzfs.github.io/openzfs-docs/Project%20and%20Community/Mailing%20Lists.html)
* [OpenZFS site](https://openzfs.org/) - for conference videos and info on other platforms (illumos, OSX, Windows, etc)
## Installation

# Installation
### Add the stable repository
On any of those, you can add the package repository at `/etc/apt/sources.list.d/zabbly-kernel-stable.sources`:

Full documentation for installing OpenZFS on your favorite operating system can
be found at the [Getting Started Page](https://openzfs.github.io/openzfs-docs/Getting%20Started/index.html).
```
Enabled: yes
Types: deb deb-src
URIs: https://pkgs.zabbly.com/kernel/stable
Suites: DISTRO
Components: zfs
Architectures: ARCH
Signed-By: /etc/apt/keyrings/zabbly.asc
```

# Contribute & Develop
Make sure to replace `DISTRO` with one of `jammy`, `noble`, `bullseye`, `bookworm` or `trixie`
and then replace `ARCH` with one of `amd64` or `arm64`.

We have a separate document with [contribution guidelines](./.github/CONTRIBUTING.md).
If you're already using the kernel builds from the same repository, change the `Components` line to read:
```
Components: main zfs
```

We have a [Code of Conduct](./CODE_OF_CONDUCT.md).
### Add the repository key
After that, add the [GPG keyring](https://pkgs.zabbly.com/key.asc) to `/etc/apt/keyrings/zabbly.asc`.
Packages provided by the repository are signed. In order to verify the integrity of the packages, you need to import the public key.
First, verify that the fingerprint your observe on the package repository matches the one listed below:

# Release
```sh
curl -fsSL https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint
```

OpenZFS is released under a CDDL license.
For more details see the NOTICE, LICENSE and COPYRIGHT files; `UCRL-CODE-235197`
Alternatively using wget (curl is not installed by default on Debian):

# Supported Kernels
* The `META` file contains the officially recognized supported Linux kernel versions.
* Supported FreeBSD versions are any supported branches and releases starting from 13.0-RELEASE.
```sh
wget -qO- https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint
```

Compare that using your eyes with this authoritative fingerprint:
```sh
pub rsa3072 2023-08-23 [SC] [expires: 2030-08-17]
4EFC 5906 96CB 15B8 7C73 A3AD 82CC 8797 C838 DCFD
uid Zabbly Kernel Builds <info@zabbly.com>
sub rsa3072 2023-08-23 [E] [expires: 2030-08-17]
```

If they match, save the key locally:

```sh
mkdir -p /etc/apt/keyrings/
curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc
```
Alternatively using wget:

```sh
mkdir -p /etc/apt/keyrings/
wget -q https://pkgs.zabbly.com/key.asc -O /etc/apt/keyrings/zabbly.asc
```

### Finally install ZFS
To install ZFS, run: `apt-get install openzfs-zfsutils openzfs-zfs-dkms openzfs-zfs-initramfs`

## Repository
This repository gets actively rebased as new releases come out, DO NOT expect a linear git history.
35 changes: 35 additions & 0 deletions README.md.orig
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
![img](https://openzfs.github.io/openzfs-docs/_static/img/logo/480px-Open-ZFS-Secondary-Logo-Colour-halfsize.png)

OpenZFS is an advanced file system and volume manager which was originally
developed for Solaris and is now maintained by the OpenZFS community.
This repository contains the code for running OpenZFS on Linux and FreeBSD.

[![codecov](https://codecov.io/gh/openzfs/zfs/branch/master/graph/badge.svg)](https://codecov.io/gh/openzfs/zfs)
[![coverity](https://scan.coverity.com/projects/1973/badge.svg)](https://scan.coverity.com/projects/openzfs-zfs)

# Official Resources

* [Documentation](https://openzfs.github.io/openzfs-docs/) - for using and developing this repo
* [ZoL Site](https://zfsonlinux.org) - Linux release info & links
* [Mailing lists](https://openzfs.github.io/openzfs-docs/Project%20and%20Community/Mailing%20Lists.html)
* [OpenZFS site](https://openzfs.org/) - for conference videos and info on other platforms (illumos, OSX, Windows, etc)

# Installation

Full documentation for installing OpenZFS on your favorite operating system can
be found at the [Getting Started Page](https://openzfs.github.io/openzfs-docs/Getting%20Started/index.html).

# Contribute & Develop

We have a separate document with [contribution guidelines](./.github/CONTRIBUTING.md).

We have a [Code of Conduct](./CODE_OF_CONDUCT.md).

# Release

OpenZFS is released under a CDDL license.
For more details see the NOTICE, LICENSE and COPYRIGHT files; `UCRL-CODE-235197`

# Supported Kernels
* The `META` file contains the officially recognized supported Linux kernel versions.
* Supported FreeBSD versions are any supported branches and releases starting from 13.0-RELEASE.