From 21dba7c2030457d0d73e235b184c512edf44ee79 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Fri, 13 Nov 2020 21:53:09 -0500 Subject: [PATCH 1/2] zfs: update to 2.0.0. Thanks to @zdykstra for looking into the built-in PAM module. --- common/shlibs | 11 ++++++----- srcpkgs/zfs-pam | 1 + srcpkgs/zfs/template | 33 +++++++++++++++++++++------------ 3 files changed, 28 insertions(+), 17 deletions(-) create mode 120000 srcpkgs/zfs-pam diff --git a/common/shlibs b/common/shlibs index 186124d6b28..856c133c58b 100644 --- a/common/shlibs +++ b/common/shlibs @@ -3912,11 +3912,12 @@ libtss2-tcti-device.so.0 tpm2-tss-2.3.1_1 libtss2-rc.so.0 tpm2-tss-2.3.1_1 libtss2-tcti-mssim.so.0 tpm2-tss-2.3.1_1 libtss2-tctildr.so.0 tpm2-tss-2.3.1_1 -libzfs.so.2 zfs-0.8.2_1 -libnvpair.so.1 zfs-0.8.2_1 -libzfs_core.so.1 zfs-0.8.3_1 -libzpool.so.2 zfs-0.8.3_1 -libuutil.so.1 zfs-0.8.3_1 +libzfsbootenv.so.1 zfs-2.0.0_1 +libzfs.so.4 zfs-2.0.0_1 +libuutil.so.3 zfs-2.0.0_1 +libzpool.so.4 zfs-2.0.0_1 +libzfs_core.so.3 zfs-2.0.0_1 +libnvpair.so.3 zfs-2.0.0_1 libgmio.so gmio-0.4.1_1 libjsonnet.so.0 jsonnet-0.14.0_2 libjsonnet++.so.0 jsonnet-0.14.0_2 diff --git a/srcpkgs/zfs-pam b/srcpkgs/zfs-pam new file mode 120000 index 00000000000..eb97035e118 --- /dev/null +++ b/srcpkgs/zfs-pam @@ -0,0 +1 @@ +zfs \ No newline at end of file diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template index 0c8a5634e06..1e9de9140a5 100644 --- a/srcpkgs/zfs/template +++ b/srcpkgs/zfs/template @@ -1,27 +1,27 @@ # Template file for 'zfs' pkgname=zfs -version=0.8.5 +version=2.0.0 revision=1 build_style=gnu-configure configure_args="--with-config=user --with-mounthelperdir=/usr/bin --with-udevdir=/usr/lib/udev --with-udevruledir=/usr/lib/udev/rules.d --with-dracutdir=/usr/lib/dracut --with-tirpc" hostmakedepends="dracut libtool pkg-config python3 automake" -makedepends="zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel" +makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel" +depends="dkms>=2.2.0.3_9 perl python3" conf_files="/etc/zfs/zed.d/zed.rc" short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)" maintainer="Toyam Cox " license="CDDL-1.0" -homepage="https://zfsonlinux.org/" -distfiles="https://github.com/zfsonlinux/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz" -checksum=dbb41d6b9c606a34ac93f4c19069fd6806ceeacb558f834f8a70755dadb7cd3d +homepage="https://openzfs.github.io/openzfs-docs/" +distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz" +checksum=3403bf8e993f3c9d772f768142117df47bdbbb8e9bbf85a29c0e166f577f9311 patch_args="-Np1" replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0 dkms_modules="zfs ${version}" -depends="dkms>=2.2.0.3_9 perl python3 bash" post_patch() { # When collecting a "clean" tree for DKMS, don't leave patches in place @@ -35,9 +35,6 @@ pre_configure() { export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/" autoreconf -fi - # configure relies on bashism to redirect stdout/stderr when building tests - vsed -e '1 s@^#!\s*/bin/sh$@#!/bin/bash@' -i configure - tar czf ../clean.tar.gz . } @@ -51,9 +48,6 @@ post_install() { vmkdir usr/src/${pkgname}-${version} tar xf ../clean.tar.gz -C ${DESTDIR}/usr/src/${pkgname}-${version} scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname}-${version}/dkms.conf -n zfs - sed -i -e 's/test "${PYTHON_VERSION:0:2}" = "3."/test "${PYTHON_VERSION##3.*}" = ""/' \ - -e 's/test "${PYTHON_VERSION:0:2}" = "2."/test "${PYTHON_VERSION##2.*}" = ""/' \ - ${DESTDIR}/usr/src/${pkgname}-${version}/configure # This is necessary because of https://github.com/zfsonlinux/zfs/issues/8827 # Remove init and service control pieces not used in Void rm -rf ${DESTDIR}/usr/lib/systemd @@ -62,6 +56,12 @@ post_install() { rm -rf ${DESTDIR}/etc/default rm -f ${DESTDIR}/etc/zfs/zfs-functions + # Remove pam config framework file not used in Void + rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key + + # zfs-mount-generator is a systemd helper, no need for its man page + rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8 + # Contains ELF binaries. Remove it until upstream has a way to move this # into /usr/libexec or similiar. rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests @@ -78,6 +78,15 @@ zfs-devel_package() { } } +zfs-pam_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc="Z File System -- PAM integration" + pkg_install() { + vmove usr/lib/security/pam_zfs_key.so + } +} + + do_clean() { rm -f ../clean.tar.gz } From 11a13f280c4ca43fb5e2f92425a27c9bf24dfd8a Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Fri, 13 Nov 2020 21:53:46 -0500 Subject: [PATCH 2/2] pam_zfscrypt: revbump for zfs, change upstream repo The origninal repo for pam_zfscrypt has disappeared from the Internet, but Project Trident, the Void derivative that uses this module, now maintains a fork. Thanks to @ericonr for cracking the necessary CFLAGS to make this work. --- srcpkgs/pam_zfscrypt/template | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/srcpkgs/pam_zfscrypt/template b/srcpkgs/pam_zfscrypt/template index caf4617a439..ec272c357fe 100644 --- a/srcpkgs/pam_zfscrypt/template +++ b/srcpkgs/pam_zfscrypt/template @@ -1,24 +1,25 @@ # Template file for 'pam_zfscrypt' pkgname=pam_zfscrypt version=0.2.0 -revision=1 +revision=2 wrksrc="zfscrypt-${version}" build_style=gnu-makefile -make_use_env=yes makedepends="pam-devel zfs-devel" depends="pam" short_desc="Automatically decrypt and mount encrypted ZFS home directories" maintainer="Zach Dykstra " license="MIT" -homepage="https://github.com/BenKerry/zfscrypt" -distfiles="https://github.com/BenKerry/zfscrypt/archive/v${version}.tar.gz" +homepage="https://github.com/project-trident/zfscrypt" +distfiles="${homepage}/archive/v${version}.tar.gz" checksum=73244e7e97ab5a47a9ea4a24ac490f07bfe7c1eb0c920e03df202494ea61b650 -CFLAGS="-Iinclude" +CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -Iinclude" -pre_build() { - vsed -e "/ZFSINC :=/s,-isystem/usr/include,-I${XBPS_CROSS_BASE}/usr/include,g" \ - -i Makefile +post_patch() { + if [ "${CROSS_BUILD}" ]; then + vsed -i Makefile \ + -e "/ZFSINC :=/s,-isystem/usr/,-I${XBPS_CROSS_BASE}/usr/,g" + fi } do_install() {