summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 736153f323bafbf7b7945ab4e9dd5ba8da776221 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Maintainer: Yurii Kolesnykov <root@yurikoles.com>
# Contributor: Jonathon Fernyhough <jonathon"m2x+dev>
# Contributor: Eli Schwartz <eschwartz@archlinux.org>
# Contributor: Iacopo Isimbaldi <isiachi@rhye.it>
#
# Based on aur/zfs-dkms by Kevin Stolp <kevinstolp@gmail.com>
# Based on archzfs/zfs-dkms-git by Jan Houben <jan@nexttrex.de>
#
# Pull Requests are welcome here: https://github.com/yurikoles-aur/zfs-dkms-git
#

pkgname=zfs-dkms-git
pkgver=2.4.99.r305.gb9b84445ea
pkgrel=1
epoch=2
pkgdesc='Kernel modules for the Zettabyte File System.'
arch=('any')
url='https://zfsonlinux.org/'
license=('CDDL-1.0')
groups=('zfs-git')
makedepends=('git')
provides=(
    "zfs=${pkgver}"
    "zfs-dkms=${pkgver}"
    "ZFS-MODULE=${pkgver}"
    "SPL-MODULE=${pkgver}"
)
conflicts=('zfs-dkms')
source=(
    'git+https://github.com/openzfs/zfs.git'
    '0001-only-build-the-module-in-dkms.conf.patch'
)
sha256sums=('SKIP'
            '3e742db489eec60dbabb52178f590b96e29b166f359fc2167e188eeabceb0921')
b2sums=('SKIP'
        '62ea720676e0cbf096d8c5f3b944d77ce6f3f54f55e221f80afd00061d577b5dea177150cfc785bb91586f93e1b3eb500661b38bb4d2cba26e8929b245957ee3')

pkgver() {
    git -C zfs describe --long | sed 's/^zfs-//;s/-rc/rc/;s/\([^-]*-g\)/r\1/;s/-/./g'
}

prepare() {
    cd zfs

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

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

    autoreconf -fi
}

build() {
    cd zfs

    ./scripts/dkms.mkconf -n zfs -v ${pkgver} -f dkms.conf

    # update metadata
    ./scripts/make_gitrev.sh include/zfs_gitrev.h
    _meta_release=${pkgver#*.r}
    sed -i -e "s/Release:[[:print:]]*/Release:      ${_meta_release/./_}/" META
}

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

    cd zfs

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

    # Install the license
    install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
}