Port TrueNAS contrib changes and adjust github workflows

Signed-off-by: Ameer Hamza <ahamza@ixsystems.com>
This commit is contained in:
Ryan Moeller 2020-09-14 16:05:06 -04:00 committed by Ameer Hamza
parent 8f2f6cd2ac
commit fd0406e5b3
8 changed files with 241 additions and 12 deletions

44
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,44 @@
name: CI
on: [push]
jobs:
build-native-deb:
runs-on: ubuntu-22.04
container:
image: debian:testing
steps:
- name: Installing Dependencies
run: |
apt update > /dev/null 2>&1
apt install -y linux-image-amd64 linux-headers-amd64 debhelper-compat devscripts > /dev/null 2>&1
- name: Checkout
uses: actions/checkout@v2
- name: Build deb package
run: |
mk-build-deps --build-dep contrib/debian/control
apt install -y ./*.deb
sh autogen.sh
./configure
cp -a contrib/debian debian
sed 's/@CFGOPTS@/--enable-debuginfo/g' debian/rules.in > debian/rules
chmod +x debian/rules
dch -b -M --force-distribution --distribution bullseye-truenas-unstable 'Tagged from zfs CI'
debuild -us -uc -b
debian/rules override_dh_binary-modules
- name: Create artifacts dir
run: mkdir artifacts
if: success()
- name: Move artifacts
run: mv ../*.deb artifacts
if: success()
- uses: actions/upload-artifact@v1
with:
name: zfs-native
path: artifacts
if: success()

28
.github/workflows/docker_image.yml vendored Normal file
View File

@ -0,0 +1,28 @@
name: build_image
on:
push:
branches:
- 'truenas/zfs-2.1-release'
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: ixsystems/zfs:latest
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

View File

@ -103,9 +103,7 @@ ERRLOGS=0
if [ ! -f Summary/Summary.md ]; then if [ ! -f Summary/Summary.md ]; then
# first call, we do the default summary (~500k) # first call, we do the default summary (~500k)
echo -n > Summary.md echo -n > Summary.md
summarize_s "Sanity Tests Ubuntu 20.04" Logs-20.04-sanity
summarize_s "Sanity Tests Ubuntu 22.04" Logs-22.04-sanity summarize_s "Sanity Tests Ubuntu 22.04" Logs-22.04-sanity
summarize_f "Functional Tests Ubuntu 20.04" Logs-20.04-functional
summarize_f "Functional Tests Ubuntu 22.04" Logs-22.04-functional summarize_f "Functional Tests Ubuntu 22.04" Logs-22.04-functional
cat Summary.md >> $GITHUB_STEP_SUMMARY cat Summary.md >> $GITHUB_STEP_SUMMARY

View File

@ -11,7 +11,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [20.04, 22.04] os: [22.04]
runs-on: ubuntu-${{ matrix.os }} runs-on: ubuntu-${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -32,7 +32,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [20.04, 22.04] os: [22.04]
needs: build needs: build
uses: ./.github/workflows/zfs-linux-tests.yml uses: ./.github/workflows/zfs-linux-tests.yml
with: with:

View File

@ -17,3 +17,152 @@ openzfs-linux (2.1.99-1) unstable; urgency=low
* This packaging is a fork of Debian zfs-linux 2.1.6-2 release. * This packaging is a fork of Debian zfs-linux 2.1.6-2 release.
-- Umer Saleem <usaleem@ixsystems.com> Fri, 11 Oct 2022 15:00:00 -0400 -- Umer Saleem <usaleem@ixsystems.com> Fri, 11 Oct 2022 15:00:00 -0400
openzfs-linux (2.1.12-0) unstable; urgency=medium
* Merge tag zfs-2.1.12
-- Ameer Hamza <ahamza@ixsystems.com> Wed, 14 Jun 2023 09:00:00 -0500
openzfs-linux (2.1.11-0) unstable; urgency=medium
* Merge tag zfs-2.1.11
-- Ameer Hamza <ahamza@ixsystems.com> Thu, 20 Apr 2023 13:00:00 -0500
openzfs-linux (2.1.10-0) unstable; urgency=medium
* Merge tag zfs-2.1.10
-- Ameer Hamza <ahamza@ixsystems.com> Mon, 17 Apr 2023 12:00:00 -0500
openzfs-linux (2.1.9-0) unstable; urgency=medium
* Merge tag zfs-2.1.9
-- Ryan Moeller <ryan@ixsystems.com> Wed, 25 Jan 2023 14:00:00 -0500
openzfs-linux (2.1.8-0) unstable; urgency=medium
* Merge tag zfs-2.1.8
-- Ryan Moeller <ryan@ixsystems.com> Fri, 20 Jan 2023 12:30:00 -0500
openzfs-linux (2.1.7-1) unstable; urgency=medium
* Integrate native Debian packaging with TrueNAS ZFS.
* This packaging is a fork of Debian zfs-linux 2.1.6-2 release.
-- Umer Saleem <usaleem@ixsystems.com> Wed, 14 Dec 2022 15:00:00 -0400
openzfs (2.1.7-0) unstable; urgency=medium
* Merge tag zfs-2.1.7
* Expose libzutil error info in libpc_handle_t
* Build packages with debug symbols
* Add support for overlayfs for docker
* Optimize microzaps
* zed: Avoid core dump if wholedisk property does not exist
* zed: post a udev change event from spa_vdev_attach()
* SCALE: ignore wholedisk
* Skip trivial permission checks on xattrs for POSIX ACL type
-- Ryan Moeller <ryan@ixsystems.com> Wed, 07 Dec 2022 16:00:00 -0500
openzfs (2.1.6-0) unstable; urgency=medium
* Merge tag zfs-2.1.6
* zed: mark disks as REMOVED when they are removed
* Provide kfpu_begin/end from spl
* Add snapshots_changed as property
* Add createtxg sort support for simple snapshot iterator
* Expose ZFS dataset case sensitivity setting via sb_opts
-- Ryan Moeller <ryan@ixsystems.com> Wed, 22 Jun 2022 16:00:00 -0500
openzfs (2.1.5-0) unstable; urgency=medium
* Merged tag zfs-2.1.5
-- Ryan Moeller <ryan@ixsystems.com> Wed, 22 Jun 2022 16:00:00 -0500
openzfs (2.1.4-1) unstable; urgency=medium
* Merged from zfs-2.1.5-staging
* Remove wrong assertion in log spacemap
* Add debug symbols to the truenas package
-- Ryan Moeller <ryan@ixsystems.com> Thu, 02 Jun 2022 08:00:00 -0500
openzfs (2.1.4-0) unstable; urgency=medium
* Merged OpenZFS zfs-2.1.4
* Also merged from zfs-2.1.5-staging
* Fix zfs send -V
* Expose zpool guids through kstats
-- Ryan Moeller <ryan@ixsystems.com> Wed, 18 May 2022 14:00:00 -0500
openzfs (2.1.3-0) unstable; urgency=medium
* Merged OpenZFS zfs-2.1.3
-- Ryan Moeller <ryan@ixsystems.com> Thu, 10 Mar 2021 16:00:00 -0400
openzfs (2.1.2-1) unstable; urgency=medium
* Merged OpenZFS zfs-2.1.2-release
* Implement FS_IOC_GETVERSION
* Improve log spacemap load time after unclean export
-- Ryan Moeller <ryan@ixsystems.com> Mon, 20 Dec 2021 10:00:00 -0400
openzfs (2.1.2-0) unstable; urgency=medium
* Merged OpenZFS zfs-2.1.2-staging
* Updated Python build dependencies
* Linux 5.14 build fixes
-- Ryan Moeller <ryan@ixsystems.com> Wed, 03 Nov 2021 10:00:00 -0400
openzfs (2.1.1-0) unstable; urgency=medium
* Merged OpenZFS 2.1.1
* Removed feature@xattr_compat and xattr_fallback property
-- Ryan Moeller <ryan@ixsystems.com> Thu, 07 Oct 2021 14:09:30 -0400
openzfs (2.1.0-0) unstable; urgency=medium
* Rebased to OpenZFS 2.1.0
-- Ryan Moeller <ryan@ixsystems.com> Thu, 01 Apr 2021 13:00:00 -0500
openzfs (2.0.4-0) unstable; urgency=medium
* Rebased to OpenZFS 2.0.4
-- Ryan Moeller <ryan@ixsystems.com> Tue, 09 Mar 2021 14:00:00 -0500
openzfs (2.0.3-0) unstable; urgency=medium
* Rebased to OpenZFS 2.0.3
-- Ryan Moeller <ryan@ixsystems.com> Wed, 24 Feb 2021 15:00:00 -0500
openzfs (2.0.2-0) unstable; urgency=medium
* Rebased to OpenZFS 2.0.2
-- Ryan Moeller <ryan@ixsystems.com> Mon, 01 Feb 2021 15:00:00 -0500
openzfs (2.0.1-0) unstable; urgency=medium
* Rebased to OpenZFS 2.0.1
-- Ryan Moeller <ryan@ixsystems.com> Thu, 07 Jan 2021 17:34:28 -0500
openzfs (2.0.0-0) unstable; urgency=medium
* Initial package for TrueNAS SCALE based on OpenZFS 2.0.0
-- Ryan Moeller <ryan@ixsystems.com> Mon, 14 Sep 2020 22:01:55 -0400

View File

@ -4,10 +4,9 @@ Priority: optional
Maintainer: ZFS on Linux specific mailing list <zfs-discuss@list.zfsonlinux.org> Maintainer: ZFS on Linux specific mailing list <zfs-discuss@list.zfsonlinux.org>
Build-Depends: debhelper-compat (= 12), Build-Depends: debhelper-compat (= 12),
dh-python, dh-python,
dh-sequence-dkms | dkms (>> 2.1.1.2-5), dh-sequence-dkms,
libaio-dev, libaio-dev,
libblkid-dev, libblkid-dev,
libcurl4-openssl-dev,
libelf-dev, libelf-dev,
libpam0g-dev, libpam0g-dev,
libssl-dev | libssl1.0-dev, libssl-dev | libssl1.0-dev,
@ -35,6 +34,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libnvpair1, libnvpair3 Breaks: libnvpair1, libnvpair3
Replaces: libnvpair1, libnvpair3, libnvpair3linux Replaces: libnvpair1, libnvpair3, libnvpair3linux
Conflicts: libnvpair3linux Conflicts: libnvpair3linux
Provides: libnvpair3
Description: Solaris name-value library for Linux Description: Solaris name-value library for Linux
This library provides routines for packing and unpacking nv pairs for This library provides routines for packing and unpacking nv pairs for
transporting data across process boundaries, transporting between transporting data across process boundaries, transporting between
@ -46,6 +46,7 @@ Architecture: linux-any
Depends: libpam-runtime, ${misc:Depends}, ${shlibs:Depends} Depends: libpam-runtime, ${misc:Depends}, ${shlibs:Depends}
Replaces: libpam-zfs Replaces: libpam-zfs
Conflicts: libpam-zfs Conflicts: libpam-zfs
Provides: pam-zfs-key
Description: PAM module for managing encryption keys for ZFS Description: PAM module for managing encryption keys for ZFS
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums, traditional filesystems and volume managers. It supports data checksums,
@ -61,6 +62,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libuutil1, libuutil3 Breaks: libuutil1, libuutil3
Replaces: libuutil1, libuutil3, libuutil3linux Replaces: libuutil1, libuutil3, libuutil3linux
Conflicts: libuutil3linux Conflicts: libuutil3linux
Provides: libuutil3
Description: Solaris userland utility library for Linux Description: Solaris userland utility library for Linux
This library provides a variety of glue functions for ZFS on Linux: This library provides a variety of glue functions for ZFS on Linux:
* libspl: The Solaris Porting Layer userland library, which provides APIs * libspl: The Solaris Porting Layer userland library, which provides APIs
@ -84,7 +86,7 @@ Depends: libssl-dev | libssl1.0-dev,
${misc:Depends} ${misc:Depends}
Replaces: libzfslinux-dev Replaces: libzfslinux-dev
Conflicts: libzfslinux-dev Conflicts: libzfslinux-dev
Provides: libnvpair-dev, libuutil-dev Provides: libnvpair-dev, libuutil-dev, libzfs5-devel
Description: OpenZFS filesystem development files for Linux Description: OpenZFS filesystem development files for Linux
Header files and static libraries for compiling software against Header files and static libraries for compiling software against
libraries of OpenZFS filesystem. libraries of OpenZFS filesystem.
@ -102,6 +104,7 @@ Recommends: libcurl4
Breaks: libzfs2, libzfs4 Breaks: libzfs2, libzfs4
Replaces: libzfs2, libzfs4, libzfs4linux Replaces: libzfs2, libzfs4, libzfs4linux
Conflicts: libzfs4linux Conflicts: libzfs4linux
Provides: libzfs5
Description: OpenZFS filesystem library for Linux - general support Description: OpenZFS filesystem library for Linux - general support
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums, traditional filesystems and volume managers. It supports data checksums,
@ -130,6 +133,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libzpool2, libzpool5 Breaks: libzpool2, libzpool5
Replaces: libzpool2, libzpool5, libzpool5linux Replaces: libzpool2, libzpool5, libzpool5linux
Conflicts: libzpool5linux Conflicts: libzpool5linux
Provides: libzpool5
Description: OpenZFS pool library for Linux Description: OpenZFS pool library for Linux
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums, traditional filesystems and volume managers. It supports data checksums,
@ -146,6 +150,7 @@ Depends: python3-cffi,
${python3:Depends} ${python3:Depends}
Replaces: python3-pyzfs Replaces: python3-pyzfs
Conflicts: python3-pyzfs Conflicts: python3-pyzfs
Provides: python3-pyzfs
Description: wrapper for libzfs_core C library Description: wrapper for libzfs_core C library
libzfs_core is intended to be a stable interface for programmatic libzfs_core is intended to be a stable interface for programmatic
administration of ZFS. This wrapper provides one-to-one wrappers for administration of ZFS. This wrapper provides one-to-one wrappers for
@ -197,6 +202,7 @@ Recommends: openzfs-zfs-zed, openzfs-zfsutils (>= ${source:Version}), ${linux:Re
Suggests: debhelper Suggests: debhelper
Breaks: spl-dkms (<< 0.8.0~rc1) Breaks: spl-dkms (<< 0.8.0~rc1)
Replaces: spl-dkms, zfs-dkms Replaces: spl-dkms, zfs-dkms
Conflicts: zfs-dkms
Provides: openzfs-zfs-modules Provides: openzfs-zfs-modules
Description: OpenZFS filesystem kernel modules for Linux Description: OpenZFS filesystem kernel modules for Linux
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
@ -216,6 +222,7 @@ Depends: busybox-initramfs | busybox-static | busybox,
Breaks: zfsutils-linux (<= 0.7.11-2) Breaks: zfsutils-linux (<= 0.7.11-2)
Replaces: zfsutils-linux (<= 0.7.11-2), zfs-initramfs Replaces: zfsutils-linux (<= 0.7.11-2), zfs-initramfs
Conflicts: zfs-initramfs Conflicts: zfs-initramfs
Provides: zfs-initramfs
Description: OpenZFS root filesystem capabilities for Linux - initramfs Description: OpenZFS root filesystem capabilities for Linux - initramfs
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums, traditional filesystems and volume managers. It supports data checksums,
@ -232,6 +239,7 @@ Depends: dracut,
${misc:Depends} ${misc:Depends}
Conflicts: zfs-dracut Conflicts: zfs-dracut
Replaces: zfs-dracut Replaces: zfs-dracut
Provides: zfs-dracut
Description: OpenZFS root filesystem capabilities for Linux - dracut Description: OpenZFS root filesystem capabilities for Linux - dracut
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums, traditional filesystems and volume managers. It supports data checksums,
@ -248,10 +256,11 @@ Depends: openzfs-libnvpair3 (= ${binary:Version}),
openzfs-libuutil3 (= ${binary:Version}), openzfs-libuutil3 (= ${binary:Version}),
openzfs-libzfs4 (= ${binary:Version}), openzfs-libzfs4 (= ${binary:Version}),
openzfs-libzpool5 (= ${binary:Version}), openzfs-libzpool5 (= ${binary:Version}),
openzfs-zfs-modules | openzfs-zfs-dkms,
python3, python3,
${misc:Depends}, ${misc:Depends},
${shlibs:Depends} ${shlibs:Depends}
Recommends: lsb-base, openzfs-zfs-modules | openzfs-zfs-dkms, openzfs-zfs-zed Recommends: lsb-base, openzfs-zfs-zed
Breaks: openrc, Breaks: openrc,
spl (<< 0.7.9-2), spl (<< 0.7.9-2),
spl-dkms (<< 0.8.0~rc1), spl-dkms (<< 0.8.0~rc1),
@ -262,7 +271,7 @@ Conflicts: zfs, zfs-fuse, zfsutils-linux
Suggests: nfs-kernel-server, Suggests: nfs-kernel-server,
samba-common-bin (>= 3.0.23), samba-common-bin (>= 3.0.23),
openzfs-zfs-initramfs | openzfs-zfs-dracut openzfs-zfs-initramfs | openzfs-zfs-dracut
Provides: openzfsutils Provides: openzfs
Description: command-line tools to manage OpenZFS filesystems Description: command-line tools to manage OpenZFS filesystems
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums, traditional filesystems and volume managers. It supports data checksums,
@ -316,6 +325,7 @@ Recommends: nfs-kernel-server
Breaks: zfsutils-linux (<= 0.7.9-2) Breaks: zfsutils-linux (<= 0.7.9-2)
Replaces: zfsutils-linux (<= 0.7.9-2), zfs-test Replaces: zfsutils-linux (<= 0.7.9-2), zfs-test
Conflicts: zutils, zfs-test Conflicts: zutils, zfs-test
Provides: zfs-test
Description: OpenZFS test infrastructure and support scripts Description: OpenZFS test infrastructure and support scripts
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums, traditional filesystems and volume managers. It supports data checksums,

View File

@ -5,7 +5,7 @@ Maintainer: ZFS on Linux specific mailing list <zfs-discuss@list.zfsonlinux.org>
Build-Depends: debhelper-compat (= 10), Build-Depends: debhelper-compat (= 10),
dkms (>> 2.1.1.2-5), dkms (>> 2.1.1.2-5),
libtool, libtool,
linux-headers-_KVERS_ | raspberrypi-kernel-headers linux-headers-_KVERS_
Standards-Version: 4.3.0 Standards-Version: 4.3.0
Homepage: http://www.openzfs.org/ Homepage: http://www.openzfs.org/
Vcs-Git: https://github.com/openzfs/zfs.git Vcs-Git: https://github.com/openzfs/zfs.git
@ -14,7 +14,7 @@ Vcs-Browser: https://github.com/openzfs/zfs
Package: openzfs-zfs-modules-_KVERS_ Package: openzfs-zfs-modules-_KVERS_
Architecture: _ARCH_ Architecture: _ARCH_
Provides: openzfs-zfs-modules Provides: openzfs-zfs-modules
Depends: linux-image-_KVERS_ | raspberrypi-kernel Depends: linux-image-_KVERS_ | linux-image-amd64
Recommends: openzfsutils Recommends: openzfsutils
Replaces: zfs-modules-_KVERS_ Replaces: zfs-modules-_KVERS_
Conflicts: zfs-modules-_KVERS_ Conflicts: zfs-modules-_KVERS_

View File

@ -25,7 +25,7 @@ PARALLEL = $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NJOBS = -j$(or $(PARALLEL),$(NUM_CPUS),1) NJOBS = -j$(or $(PARALLEL),$(NUM_CPUS),1)
%: %:
dh $@ --with autoreconf,dkms,python3,sphinxdoc dh $@ --with autoreconf,python3,sphinxdoc
override_dh_autoreconf: override_dh_autoreconf:
@# Embed the downstream version in the module. @# Embed the downstream version in the module.