First attempt

This commit is contained in:
Marcel Stangenberger 2025-05-17 17:39:28 +02:00
commit 2f0ec089eb
4 changed files with 115 additions and 0 deletions

39
.SRCINFO Normal file
View File

@ -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

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
*.tar.xz
*.tar.gz
*.tar.zst
*.sig
*.log

63
PKGBUILD Normal file
View File

@ -0,0 +1,63 @@
# Maintainer: Christian Heusel <christian@heusel.eu>
# Contributor: Jan Houben <jan@nexttrex.de>
# Contributor: Jesus Alvarez <jeezusjr at gmail dot com>
#
# ! 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
}

8
zfs.install Normal file
View File

@ -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
}