_extramodules=extramodules-6.7 _kernver="$(cat /lib/modules/$_extramodules/version)" pkgname=virtualbox-modules pkgver=7.0.16 _pkgver=7.0.16 pkgrel=1 pkgdesc="Kernel modules for VirtualBox" url="https://www.virtualbox.org" arch=('x86_64') license=('GPL-2') depends=('linux>=6.7.7' 'linux<6.8') makedepends=('linux-headers' 'elfutils') install=${pkgname}.install options=('!strip') source=("https://sourceforge.net/projects/kaosx/files/sources/virtualbox-modules/vbox-kernel-module-src-${_pkgver}.tar.xz" 'virtualbox-modules-depmod.patch' 'vbox-modules.conf' 'linux5.11.patch') md5sums=('094b6ffd2e71b967c77ecab7adce7753' 'c9f84fb084a79275d269c542ff53ba4d' '232f7c1b893245a8e87a38768e9d1c1d' 'c40fe714a703921fcf46336707c5b5ec') prepare() { cd vbox-kernel-module-src-${_pkgver} #patch -p1 -i ${srcdir}/linux5.11.patch #sed -i -e 's|if RTLNX_VER_MIN(6,5,0)|if RTLNX_VER_MIN(6,4,10)|g' vboxnetflt/linux/VBoxNetFlt-linux.c } build() { cd vbox-kernel-module-src-${_pkgver} mkdir -p lib/modules/${_kernver}/misc make KERN_DIR=/lib/modules/${_kernver}/build MODULE_DIR_TST=${pkgdir}/lib/modules/${_kernver} \ MODULE_DIR=${pkgdir}/lib/modules/${_kernver}/misc # sign the modules _file=/usr/src/linux-${_kernver}/scripts/sign-file _pem=/$HOME/signing_key.pem _key=/$HOME/signing_key.x509 ${_file} sha256 ${_pem} ${_key} vboxdrv/vboxdrv.ko ${_file} sha256 ${_pem} ${_key} vboxnetadp/vboxnetadp.ko ${_file} sha256 ${_pem} ${_key} vboxnetflt/vboxnetflt.ko } package() { cd vbox-kernel-module-src-${_pkgver} make KERN_DIR=/lib/modules/${_kernver}/build MODULE_DIR_TST=${pkgdir}/lib/modules/${_kernver} \ MODULE_DIR=${pkgdir}/lib/modules/${_kernver}/misc INSTALL_MOD_PATH=${pkgdir} install sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "${startdir}/virtualbox-modules.install" install -D -m644 ../vbox-modules.conf ${pkgdir}/etc/modules-load.d/vbox-modules.conf }