%global pkg vbox-guest-additions %global driver_version 5.14.0-1.el9 %global kernel_version 5.14.0-79.el9 %global debug_package %{nil} %global __spec_install_post \ %{?__debug_package:%{__debug_install_post}} \ %{__arch_install_post} \ %{__os_install_post} \ %{__mod_compress_install_post} %global __mod_compress_install_post find %{buildroot}/lib/modules -type f -name \*.ko -exec xz \{\} \\; Name: kmod-%{pkg} Version: 5.14.0.1 Release: 13%{?dist} Summary: Virtual Box Guest Additions License: GPLv2 and (GPLv2 or CDDL-1.0) and MIT URL: https://www.kernel.org/ Source0: %{pkg}-%{driver_version}.tar.xz Patch9997: 9997-enable-vboxguest.patch Patch9998: 9998-enable-vboxsf.patch Patch9999: 9999-enable-vboxvideo.patch ExclusiveArch: x86_64 BuildRequires: elfutils-libelf-devel BuildRequires: gcc BuildRequires: kernel-rpm-macros BuildRequires: kmod BuildRequires: make BuildRequires: redhat-rpm-config BuildRequires: xz BuildRequires: kernel-abi-stablelists = %{kernel_version} BuildRequires: kernel-devel = %{kernel_version} BuildRequires: kernel-devel-uname-r = %{kernel_version}.%{_arch} Requires: kernel >= %{kernel_version} Requires: kernel-uname-r >= %{kernel_version}.%{_arch} Requires: kernel-modules >= %{kernel_version} Requires: kernel-modules-uname-r >= %{kernel_version}.%{_arch} Provides: installonlypkg(kernel-module) Provides: kernel-modules >= %{kernel_version}.%{_arch} Requires(post): %{_sbindir}/depmod Requires(postun): %{_sbindir}/depmod Requires(post): %{_sbindir}/weak-modules Requires(postun): %{_sbindir}/weak-modules Supplements: virtualbox-guest-additions Recommends: virtualbox-guest-additions %description This package provides the following drivers: Driver (vboxguest) for the Virtual Box Guest PCI device used in Virtual Box virtual machines. Enabling this driver will add support for Virtual Box Guest integration features such as copy-and-paste, seamless mode and OpenGL pass-through. Driver (vboxfs) required to mount folders exported by the Virtual Box host to be shared with guests. KMS driver (vboxvideo) for the virtual Graphics Card used in Virtual Box virtual machines. %prep %autosetup -p1 -n %{pkg}-%{driver_version} %build pushd src %{__make} -C /usr/src/kernels/%{kernel_version}.%{_arch} %{?_smp_mflags} M=$PWD modules popd %install %{__install} -D -t %{buildroot}/lib/modules/%{kernel_version}.%{_arch}/extra/drivers/virt/vboxguest src/vboxguest/vboxguest.ko %{__install} -D -t %{buildroot}/lib/modules/%{kernel_version}.%{_arch}/extra/fs src/vboxsf/vboxsf.ko %{__install} -D -t %{buildroot}/lib/modules/%{kernel_version}.%{_arch}/extra/drivers/gpu/drm/vboxvideo src/vboxvideo/vboxvideo.ko # Make .ko objects temporarily executable for automatic stripping find %{buildroot}/lib/modules -type f -name \*.ko -exec chmod u+x \{\} \+ %clean %{__rm} -rf %{buildroot} %post mkdir -p %{_localstatedir}/lib/rpm-state/sig-kmods printf '%s\n' "/lib/modules/%{kernel_version}.%{_arch}/extra/drivers/virt/vboxguest/vboxguest.ko.xz" >> %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add printf '%s\n' "/lib/modules/%{kernel_version}.%{_arch}/extra/fs/vboxsf/vboxsf.ko.xz" >> %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add printf '%s\n' "/lib/modules/%{kernel_version}.%{_arch}/extra/drivers/gpu/drm/vboxvideo/vboxvideo.ko.xz" >> %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add %preun mkdir -p %{_localstatedir}/lib/rpm-state/sig-kmods rpm -ql kmod-%{pkg}-%{?epoch:%{epoch}:}%{version}-%{release}.%{_arch} | grep '/lib/modules/%{kernel_version}.%{_arch}/.*\.ko\.xz$' >> %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove %postun if [ -f %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove ] then modules=( $(cat %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove) ) rm -f %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove rmdir --ignore-fail-on-non-empty %{_localstatedir}/lib/rpm-state/sig-kmods printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --remove-modules fi %pretrans -p posix.unlink("%{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add") posix.unlink("%{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove") %posttrans if [ -f %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add ] then modules=( $(cat %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add) ) rm -f %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add rmdir --ignore-fail-on-non-empty %{_localstatedir}/lib/rpm-state/sig-kmods printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --add-modules fi %files %defattr(644,root,root,755) /lib/modules/%{kernel_version}.%{_arch} %license LICENSES %changelog * Fri Apr 22 2022 Kmods SIG - 5.14.0.1-13 - Rebuild for 5.14.0-79.el9 * Tue Apr 12 2022 Kmods SIG - 5.14.0.1-12 - Rebuild for 5.14.0-77.el9 * Tue Mar 22 2022 Kmods SIG - 5.14.0.1-11 - Rebuild for 5.14.0-73.el9 * Sun Feb 20 2022 Kmods SIG - 5.14.0.1-10 - Rebuild for 5.14.0-62.el9 * Fri Feb 18 2022 Kmods SIG - 5.14.0.1-9 - Rebuild for 5.14.0-60.el9 * Tue Feb 15 2022 Kmods SIG - 5.14.0.1-8 - Rebuild for 5.14.0-58.el9 * Sat Feb 12 2022 Kmods SIG - 5.14.0.1-7 - Rebuild for 5.14.0-57.el9 * Thu Feb 10 2022 Kmods SIG - 5.14.0.1-6 - Rebuild for 5.14.0-56.el9 * Mon Feb 07 2022 Kmods SIG - 5.14.0.1-5 - Rebuild for 5.14.0-55.el9 * Wed Feb 02 2022 Kmods SIG - 5.14.0.1-4 - Rebuild for 5.14.0-51.el9 * Thu Jan 27 2022 Kmods SIG - 5.14.0.1-3 - Rebuild for 5.14.0-48.el9 * Tue Jan 25 2022 Kmods SIG - 5.14.0.1-2 - Rebuild for 5.14.0-47.el9 * Fri Jan 21 2022 Peter Georg - 5.14.0.1-1 - Use EL kernel source and versioning - kABI tracking kmod package (kernel >= 5.14.0-44.el9)