# Maintainer: Kevin Stolp <kevinstolp@gmail.com>
# Contributor: Eli Schwartz <eschwartz@archlinux.org>
# Contributor: Iacopo Isimbaldi <isiachi@rhye.it>

pkgname=zfs-dkms
pkgver=2.4.3
pkgrel=1
pkgdesc="Kernel modules for the Zettabyte File System."
arch=('any')
url="https://zfsonlinux.org/"
license=('CDDL')
provides=("ZFS-MODULE=${pkgver}" "SPL-MODULE=${pkgver}")
# ambiguous, provided for backwards compat, pls don't use
provides+=('zfs')
source=("https://github.com/zfsonlinux/zfs/releases/download/zfs-${pkgver}/zfs-${pkgver}.tar.gz"{,.asc}
  "0001-only-build-the-module-in-dkms.conf.patch")
sha256sums=('1f08f2d154f5189b5f1382848a32667b3d34066145b474c49cd3d41a5fba59a7'
  'SKIP'
  '8d5c31f883a906ab42776dcda79b6c89f904d8f356ade0dab5491578a6af55a5')
b2sums=('9f9c58c31a99bc50cfa93a8a924c09a278e96706986afe09bd1fd02e3ce82fa6bee5d4b27542db76134e014ee09ce7c2c723eda5c98c7c6dab5f63aedb83ed47'
  'SKIP'
  '58dc2494e71b50833d44c126b72acad52e9817626542afbc245b7ba82009e8c8252ebde6023592aac42d9942207e7655c0a421da9067fbdd619746ebc372d791')
validpgpkeys=('4F3BA9AB6D1F8D683DC2DFB56AD860EED4598027' # Tony Hutter (GPG key for signing ZFS releases) <hutter2@llnl.gov>
  'C33DF142657ED1F7C328A2960AB9E991C6AF658B')            # Brian Behlendorf <behlendorf1@llnl.gov>

prepare() {
  cd "${srcdir}"/${pkgname%-dkms}-${pkgver}

  patch -p1 -i ../0001-only-build-the-module-in-dkms.conf.patch

  # remove unneeded sections from module build
  sed -ri "/^AC_CONFIG_FILES\(\[$/,/^\]\)$/{
/^AC_CONFIG_FILES\(\[$/p
/^\]\)$/p
/^\s*(module\/.+|${pkgname%-dkms}.release|Makefile)$/!d
}
/^AC_CONFIG_FILES\(\[.*\]\)$/d
" configure.ac

  autoreconf -fi
}

build() {
  cd "${srcdir}"/${pkgname%-dkms}-${pkgver}

  ./scripts/dkms.mkconf -n ${pkgname%-dkms} -v ${pkgver} -f dkms.conf
  ./scripts/make_gitrev.sh include/zfs_gitrev.h
}

package() {
  depends=("zfs-utils=${pkgver}" 'dkms')

  cd "${srcdir}"/${pkgname%-dkms}-${pkgver}

  dkmsdir="${pkgdir}/usr/src/${pkgname%-dkms}-${pkgver}"
  install -d "${dkmsdir}"/{config,scripts}
  cp -a configure dkms.conf Makefile.in META ${pkgname%-dkms}_config.h.in ${pkgname%-dkms}.release.in include/ module/ "${dkmsdir}"/
  cp config/compile config/config.* config/missing config/*sh "${dkmsdir}"/config/
  cp scripts/dkms.postbuild "${dkmsdir}"/scripts/
}
