diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000..8dd405bb11 --- /dev/null +++ b/.github/workflows/ci.yml @@ -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() diff --git a/.github/workflows/docker_image.yml b/.github/workflows/docker_image.yml new file mode 100644 index 0000000000..7f5e0c2d23 --- /dev/null +++ b/.github/workflows/docker_image.yml @@ -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 }} diff --git a/.github/workflows/scripts/generate-summary.sh b/.github/workflows/scripts/generate-summary.sh index b5d89208a5..5f19aa4081 100755 --- a/.github/workflows/scripts/generate-summary.sh +++ b/.github/workflows/scripts/generate-summary.sh @@ -103,9 +103,7 @@ ERRLOGS=0 if [ ! -f Summary/Summary.md ]; then # first call, we do the default summary (~500k) 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_f "Functional Tests Ubuntu 20.04" Logs-20.04-functional summarize_f "Functional Tests Ubuntu 22.04" Logs-22.04-functional cat Summary.md >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/zfs-linux.yml b/.github/workflows/zfs-linux.yml index e6b705c860..13111f6d98 100644 --- a/.github/workflows/zfs-linux.yml +++ b/.github/workflows/zfs-linux.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - os: [20.04, 22.04] + os: [22.04] runs-on: ubuntu-${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -32,7 +32,7 @@ jobs: strategy: fail-fast: false matrix: - os: [20.04, 22.04] + os: [22.04] needs: build uses: ./.github/workflows/zfs-linux-tests.yml with: diff --git a/contrib/debian/changelog.in b/contrib/debian/changelog.in index 9ced39b1f7..a36bfb1aab 100644 --- a/contrib/debian/changelog.in +++ b/contrib/debian/changelog.in @@ -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. -- Umer Saleem 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 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 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 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 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 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 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 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 Wed, 22 Jun 2022 16:00:00 -0500 + +openzfs (2.1.5-0) unstable; urgency=medium + + * Merged tag zfs-2.1.5 + + -- Ryan Moeller 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 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 Wed, 18 May 2022 14:00:00 -0500 + +openzfs (2.1.3-0) unstable; urgency=medium + + * Merged OpenZFS zfs-2.1.3 + + -- Ryan Moeller 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 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 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 Thu, 07 Oct 2021 14:09:30 -0400 + +openzfs (2.1.0-0) unstable; urgency=medium + + * Rebased to OpenZFS 2.1.0 + + -- Ryan Moeller Thu, 01 Apr 2021 13:00:00 -0500 + +openzfs (2.0.4-0) unstable; urgency=medium + + * Rebased to OpenZFS 2.0.4 + + -- Ryan Moeller Tue, 09 Mar 2021 14:00:00 -0500 + +openzfs (2.0.3-0) unstable; urgency=medium + + * Rebased to OpenZFS 2.0.3 + + -- Ryan Moeller Wed, 24 Feb 2021 15:00:00 -0500 + +openzfs (2.0.2-0) unstable; urgency=medium + + * Rebased to OpenZFS 2.0.2 + + -- Ryan Moeller Mon, 01 Feb 2021 15:00:00 -0500 + +openzfs (2.0.1-0) unstable; urgency=medium + + * Rebased to OpenZFS 2.0.1 + + -- Ryan Moeller 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 Mon, 14 Sep 2020 22:01:55 -0400 diff --git a/contrib/debian/control b/contrib/debian/control index 98beb900d0..5b7874d114 100644 --- a/contrib/debian/control +++ b/contrib/debian/control @@ -4,10 +4,9 @@ Priority: optional Maintainer: ZFS on Linux specific mailing list Build-Depends: debhelper-compat (= 12), dh-python, - dh-sequence-dkms | dkms (>> 2.1.1.2-5), + dh-sequence-dkms, libaio-dev, libblkid-dev, - libcurl4-openssl-dev, libelf-dev, libpam0g-dev, libssl-dev | libssl1.0-dev, @@ -35,6 +34,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends} Breaks: libnvpair1, libnvpair3 Replaces: libnvpair1, libnvpair3, libnvpair3linux Conflicts: libnvpair3linux +Provides: libnvpair3 Description: Solaris name-value library for Linux This library provides routines for packing and unpacking nv pairs for transporting data across process boundaries, transporting between @@ -46,6 +46,7 @@ Architecture: linux-any Depends: libpam-runtime, ${misc:Depends}, ${shlibs:Depends} Replaces: libpam-zfs Conflicts: libpam-zfs +Provides: pam-zfs-key Description: PAM module for managing encryption keys for ZFS OpenZFS is a storage platform that encompasses the functionality of traditional filesystems and volume managers. It supports data checksums, @@ -61,6 +62,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends} Breaks: libuutil1, libuutil3 Replaces: libuutil1, libuutil3, libuutil3linux Conflicts: libuutil3linux +Provides: libuutil3 Description: Solaris userland utility library for Linux This library provides a variety of glue functions for ZFS on Linux: * libspl: The Solaris Porting Layer userland library, which provides APIs @@ -84,7 +86,7 @@ Depends: libssl-dev | libssl1.0-dev, ${misc:Depends} Replaces: libzfslinux-dev Conflicts: libzfslinux-dev -Provides: libnvpair-dev, libuutil-dev +Provides: libnvpair-dev, libuutil-dev, libzfs5-devel Description: OpenZFS filesystem development files for Linux Header files and static libraries for compiling software against libraries of OpenZFS filesystem. @@ -102,6 +104,7 @@ Recommends: libcurl4 Breaks: libzfs2, libzfs4 Replaces: libzfs2, libzfs4, libzfs4linux Conflicts: libzfs4linux +Provides: libzfs5 Description: OpenZFS filesystem library for Linux - general support OpenZFS is a storage platform that encompasses the functionality of traditional filesystems and volume managers. It supports data checksums, @@ -130,6 +133,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends} Breaks: libzpool2, libzpool5 Replaces: libzpool2, libzpool5, libzpool5linux Conflicts: libzpool5linux +Provides: libzpool5 Description: OpenZFS pool library for Linux OpenZFS is a storage platform that encompasses the functionality of traditional filesystems and volume managers. It supports data checksums, @@ -146,6 +150,7 @@ Depends: python3-cffi, ${python3:Depends} Replaces: python3-pyzfs Conflicts: python3-pyzfs +Provides: python3-pyzfs Description: wrapper for libzfs_core C library libzfs_core is intended to be a stable interface for programmatic 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 Breaks: spl-dkms (<< 0.8.0~rc1) Replaces: spl-dkms, zfs-dkms +Conflicts: zfs-dkms Provides: openzfs-zfs-modules Description: OpenZFS filesystem kernel modules for Linux 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) Replaces: zfsutils-linux (<= 0.7.11-2), zfs-initramfs Conflicts: zfs-initramfs +Provides: zfs-initramfs Description: OpenZFS root filesystem capabilities for Linux - initramfs OpenZFS is a storage platform that encompasses the functionality of traditional filesystems and volume managers. It supports data checksums, @@ -232,6 +239,7 @@ Depends: dracut, ${misc:Depends} Conflicts: zfs-dracut Replaces: zfs-dracut +Provides: zfs-dracut Description: OpenZFS root filesystem capabilities for Linux - dracut OpenZFS is a storage platform that encompasses the functionality of traditional filesystems and volume managers. It supports data checksums, @@ -248,10 +256,11 @@ Depends: openzfs-libnvpair3 (= ${binary:Version}), openzfs-libuutil3 (= ${binary:Version}), openzfs-libzfs4 (= ${binary:Version}), openzfs-libzpool5 (= ${binary:Version}), + openzfs-zfs-modules | openzfs-zfs-dkms, python3, ${misc:Depends}, ${shlibs:Depends} -Recommends: lsb-base, openzfs-zfs-modules | openzfs-zfs-dkms, openzfs-zfs-zed +Recommends: lsb-base, openzfs-zfs-zed Breaks: openrc, spl (<< 0.7.9-2), spl-dkms (<< 0.8.0~rc1), @@ -262,7 +271,7 @@ Conflicts: zfs, zfs-fuse, zfsutils-linux Suggests: nfs-kernel-server, samba-common-bin (>= 3.0.23), openzfs-zfs-initramfs | openzfs-zfs-dracut -Provides: openzfsutils +Provides: openzfs Description: command-line tools to manage OpenZFS filesystems OpenZFS is a storage platform that encompasses the functionality of traditional filesystems and volume managers. It supports data checksums, @@ -316,6 +325,7 @@ Recommends: nfs-kernel-server Breaks: zfsutils-linux (<= 0.7.9-2) Replaces: zfsutils-linux (<= 0.7.9-2), zfs-test Conflicts: zutils, zfs-test +Provides: zfs-test Description: OpenZFS test infrastructure and support scripts OpenZFS is a storage platform that encompasses the functionality of traditional filesystems and volume managers. It supports data checksums, diff --git a/contrib/debian/control.modules.in b/contrib/debian/control.modules.in index 34eb7fafba..e6e2b9b5be 100644 --- a/contrib/debian/control.modules.in +++ b/contrib/debian/control.modules.in @@ -5,7 +5,7 @@ Maintainer: ZFS on Linux specific mailing list Build-Depends: debhelper-compat (= 10), dkms (>> 2.1.1.2-5), libtool, - linux-headers-_KVERS_ | raspberrypi-kernel-headers + linux-headers-_KVERS_ Standards-Version: 4.3.0 Homepage: http://www.openzfs.org/ Vcs-Git: https://github.com/openzfs/zfs.git @@ -14,7 +14,7 @@ Vcs-Browser: https://github.com/openzfs/zfs Package: openzfs-zfs-modules-_KVERS_ Architecture: _ARCH_ Provides: openzfs-zfs-modules -Depends: linux-image-_KVERS_ | raspberrypi-kernel +Depends: linux-image-_KVERS_ | linux-image-amd64 Recommends: openzfsutils Replaces: zfs-modules-_KVERS_ Conflicts: zfs-modules-_KVERS_ diff --git a/contrib/debian/rules.in b/contrib/debian/rules.in index a3a05efacb..260f927915 100755 --- a/contrib/debian/rules.in +++ b/contrib/debian/rules.in @@ -25,7 +25,7 @@ PARALLEL = $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NJOBS = -j$(or $(PARALLEL),$(NUM_CPUS),1) %: - dh $@ --with autoreconf,dkms,python3,sphinxdoc + dh $@ --with autoreconf,python3,sphinxdoc override_dh_autoreconf: @# Embed the downstream version in the module.