summarylogtreecommitdiffstats
path: root/spl.install
blob: 615ec56d9fff63d24bacd87967455bce154a3c6f (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
post_install() {
    dkms add spl/${1%%[_-]*}
    check_hostid
    cat << EOF
==> To build and install your modules run: dkms install spl/${1%%[_-]*} -k [KERNEL]
==> To do this automatically at startup run: systemctl enable dkms.service
EOF
}

pre_upgrade() {
    pre_remove "$2"
}

post_upgrade() {
    post_install "$1"
}

pre_remove() {
    [ -n "${1%%[_-]*}" ] && dkms remove spl/${1%%[_-]*} --all &> /dev/null || true
}

check_hostid() {
    # Check /etc/hostid to see if it set to the sentinel value, see
    # https://wiki.archlinux.org/index.php/ZFS for more information.
    HOSTID=$(hostid)
    if [ "0x$HOSTID" == "0xffffffff" ]; then
        # Generate a new hostid
        : >/etc/hostid
        HOSTID=$(hostid)
        # hostid is 4 byte little endian
        printf $(echo -n $HOSTID | sed 's/\(..\)\(..\)\(..\)\(..\)/\\x\4\\x\3\\x\2\\x\1/') >/etc/hostid
    fi
}