# Maintainer: Laurent Jourden <laurent85@enarel.fr>
# Contributor: Jan Houben <jan@nexttrex.de>
# Contributor: Jesus Alvarez <jeezusjr at gmail dot com>

pkgbase="zfs-linux"
pkgname=("zfs-linux" "zfs-linux-headers")
_zfsver=%ZFSVERSION%
_kernelver=%LINUXVERSION%
_extramodules=%MODULESVERSION%
pkgver="${_zfsver}_$(echo ${_kernelver} | sed s/-/./g)"
pkgrel=1
pkgdesc="Kernel modules and headers for the Zettabyte File System."
arch=("x86_64")
url="https://zfsonlinux.org/"
license=("CDDL")
depends=("kmod" "zfs-utils=${_zfsver}" "linux=${_kernelver}")
makedepends=("linux-headers=${_kernelver}")
source=("https://github.com/zfsonlinux/zfs/releases/download/zfs-${_zfsver}/zfs-${_zfsver}.tar.gz"{,.asc}
        "zfs.install")
sha256sums=('SKIP'
            'SKIP'
            'a08381be21af2910c21e5f24c5799383c7ce58b45c84fc02071a8528088e9bdf')
b2sums=('SKIP'
        'SKIP'
        'e8a4f0e95d7e7d7ad28ca2df0d168da2fddca178712530d1333ed90c429f673711b163b16314280e8b21c0c2eafcaebc2e5c8a603275280925cebdb6c3193067')
validpgpkeys=('4F3BA9AB6D1F8D683DC2DFB56AD860EED4598027'  # Tony Hutter (GPG key for signing ZFS releases) <hutter2@llnl.gov>
              'C33DF142657ED1F7C328A2960AB9E991C6AF658B') # Brian Behlendorf <behlendorf1@llnl.gov>

prepare() {
    local _src

    cd "${srcdir}/zfs-${_zfsver}"

    for _src in "${source[@]}"; do
        _src="${_src%%::*}"
        _src="${_src##*/}"
        [[ "${_src}" = *.patch ]] || continue
        echo "Applying patch ${_src}..."
        patch -Np1 < "../${_src}"
    done
}

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() {
    pkgdesc="Kernel modules for the Zettabyte File System."
    install=zfs.install
    provides=("zfs" "spl")
    conflicts=("zfs-dkms" "zfs-dkms-git" "zfs-dkms-rc" "spl-dkms" "spl-dkms-git" 'zfs-linux-git' 'zfs-linux-rc' 'spl-linux')
    replaces=("spl-linux")
    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-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
}
