post_install() { dkms install -m sixfireusb -v ${1%%-*} } pre_upgrade() { local curver=${2%%-*} # $2 is unset due to a bug. See, https://bugs.archlinux.org/task/32278 # Query current version using pacman as fallback [ -n "$curver" ] || curver=$(pacman -Q sixfireusb-dkms | cut -d' ' -f2) pre_remove $curver } post_upgrade() { post_install ${1%%-*} } pre_remove() { dkms remove -m sixfireusb -v ${1%%-*} --all }