commit 2f0ec089eb5283c57167fab724e11bef5e20b61c Author: Marcel Stangenberger Date: Sat May 17 17:39:28 2025 +0200 First attempt diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..b7038b7 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,39 @@ +pkgbase = zfs-linux-lts + pkgver = 2.3.2_6.12.28.1 + pkgrel = 1 + url = https://openzfs.org/ + arch = x86_64 + license = CDDL-1.0 + makedepends = linux-lts-headers=6.12.28-1 + depends = kmod + depends = zfs-utils=2.3.2 + source = https://github.com/openzfs/zfs/releases/download/zfs-2.3.2/zfs-2.3.2.tar.gz + sha256sums = 80da628a9543ec3355bf410617450e167706948ceb287541455a1b8d87b8758a + +pkgname = zfs-linux-lts + pkgdesc = Kernel modules for the Zettabyte File System. + install = zfs.install + groups = archzfs-linux-lts + provides = zfs + provides = spl + conflicts = zfs-dkms + conflicts = zfs-dkms-git + conflicts = zfs-dkms-rc + conflicts = spl-dkms + conflicts = spl-dkms-git + conflicts = zfs-linux-lts-git + conflicts = zfs-linux-lts-rc + conflicts = spl-linux-lts + replaces = spl-linux-lts + +pkgname = zfs-linux-lts-headers + pkgdesc = Kernel headers for the Zettabyte File System. + provides = zfs-headers + provides = spl-headers + conflicts = zfs-headers + conflicts = zfs-dkms + conflicts = zfs-dkms-git + conflicts = zfs-dkms-rc + conflicts = spl-dkms + conflicts = spl-dkms-git + conflicts = spl-headers diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..33c98cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.tar.xz +*.tar.gz +*.tar.zst +*.sig +*.log diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..69bd77a --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,63 @@ +# Maintainer: Christian Heusel +# Contributor: Jan Houben +# Contributor: Jesus Alvarez +# +# ! WARNING ! +# +# This packages is meant to build a kernel module, so these modules will only +# work with the kernel package they target. In this case, the zfs-linux-lts +# packages will only work with the default linux-lts package! +# + +pkgbase="zfs-linux-lts" +pkgname=("zfs-linux-lts" "zfs-linux-lts-headers") +kernel="$(uname -r)" +_zfsver="2.3.2" +_kernelver="${kernel%-lts}" +_kernelver_full="${kernel%-lts}" +_extramodules="${kernel}" + +pkgver="${_zfsver}_$(echo ${_kernelver} | sed s/-/./g)" +pkgrel=1 +makedepends=("linux-lts-headers=${_kernelver}") +arch=("x86_64") +url="https://openzfs.org/" +source=("https://github.com/openzfs/zfs/releases/download/zfs-${_zfsver}/zfs-${_zfsver}.tar.gz") +sha256sums=('80da628a9543ec3355bf410617450e167706948ceb287541455a1b8d87b8758a') +license=("CDDL-1.0") +depends=("kmod" "zfs-utils=${_zfsver}" "linux-lts=${_kernelver}") + +build() { + cd "${srcdir}/zfs-${_zfsver}" + ./autogen.sh + ./configure --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --libdir=/usr/lib \ + --datadir=/usr/share --includedir=/usr/include --with-udevdir=/usr/lib/udev \ + --libexecdir=/usr/lib --with-config=kernel \ + --with-linux=/usr/lib/modules/${_extramodules}/build \ + --with-linux-obj=/usr/lib/modules/${_extramodules}/build + make +} + +package_zfs-linux-lts() { + pkgdesc="Kernel modules for the Zettabyte File System." + install=zfs.install + provides=("zfs" "spl") + groups=("archzfs-linux-lts") + conflicts=("zfs-dkms" "zfs-dkms-git" "zfs-dkms-rc" "spl-dkms" "spl-dkms-git" 'zfs-linux-lts-git' 'zfs-linux-lts-rc' 'spl-linux-lts') + replaces=("spl-linux-lts") + cd "${srcdir}/zfs-${_zfsver}" + make DESTDIR="${pkgdir}" INSTALL_MOD_PATH=${pkgdir}/usr INSTALL_MOD_STRIP=1 install + # Remove src dir + rm -r "${pkgdir}"/usr/src +} + +package_zfs-linux-lts-headers() { + pkgdesc="Kernel headers for the Zettabyte File System." + provides=("zfs-headers" "spl-headers") + conflicts=("zfs-headers" "zfs-dkms" "zfs-dkms-git" "zfs-dkms-rc" "spl-dkms" "spl-dkms-git" "spl-headers") + cd "${srcdir}/zfs-${_zfsver}" + make DESTDIR="${pkgdir}" install + rm -r "${pkgdir}/lib" + # Remove reference to ${srcdir} + sed -i "s+${srcdir}++" ${pkgdir}/usr/src/zfs-*/${_extramodules}/Module.symvers +} diff --git a/zfs.install b/zfs.install new file mode 100644 index 0000000..c2a2d78 --- /dev/null +++ b/zfs.install @@ -0,0 +1,8 @@ +post_remove() { + MK_CONF=$(grep -v '#' /etc/mkinitcpio.conf | grep zfs >/dev/null; echo $?); + if [[ ${MK_CONF} == '0' && $1 == 'remove' ]]; then + echo '>>> The ZFS packages have been removed, but "zfs" remains in the "hooks"' + echo '>>> list in mkinitcpio.conf! You will need to remove "zfs" from the ' + echo '>>> "hooks" list and then regenerate the initial ramdisk.' + fi +}