Hello community, here is the log from the commit of package virtualbox for openSUSE:Factory checked in at 2020-07-14 07:44:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/virtualbox (Old) and /work/SRC/openSUSE:Factory/.virtualbox.new.3060 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virtualbox" Tue Jul 14 07:44:10 2020 rev:201 rq:820056 version:6.1.10 Changes: -------- --- /work/SRC/openSUSE:Factory/virtualbox/virtualbox.changes 2020-06-22 17:41:14.744948121 +0200 +++ /work/SRC/openSUSE:Factory/.virtualbox.new.3060/virtualbox.changes 2020-07-14 07:45:04.831032359 +0200 @@ -1,0 +2,18 @@ +Fri Jul 10 01:38:55 UTC 2020 - Gary Ching-Pang Lin <[email protected]> + +- Switch to multibuild to so that we can maintain one spec file + for both virtualbox and virtualbox-kmp and build them separately. + (bsc#1114605) + + Add file "_multibuild" to specify the additional "kmp" build + flavor. + + Merge "virtualbox-kmp.spec" into "virtualbox.spec" + + Drop file "virtualbox-kmp.changes". + + Add file "fixes_for_sle12.patch" + +------------------------------------------------------------------- +Tue Jun 23 06:10:10 UTC 2020 - Gary Ching-Pang Lin <[email protected]> + +- Split virtualbox-kmp from virtualbox.spec (bsc#1114605) + Adds files "virtualbox-kmp.spec" and "virtualbox-kmp.changes". + +------------------------------------------------------------------- New: ---- _multibuild fixes_for_sle12.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virtualbox.spec ++++++ --- /var/tmp/diff_new_pack.8tdeeG/_old 2020-07-14 07:45:07.371040560 +0200 +++ /var/tmp/diff_new_pack.8tdeeG/_new 2020-07-14 07:45:07.375040573 +0200 @@ -16,6 +16,23 @@ # +%if "@BUILD_FLAVOR@" == "kmp" +### macros for virtualbox-kmp ### +%define main_package 0 +%define kmp_package 1 + +%define name_suffix kmp +%define dash - +%define package_summary Kernel modules for VirtualBox +%define package_group System/Kernel +%else +### macros for virtualbox main package ### +%define main_package 1 +%define kmp_package 0 + +%define package_summary VirtualBox is an Emulator +%define package_group System/Emulators/PC + %define qt5ver %(rpm -q --queryformat %%{version} libQt5Core5|perl -ne '/(\\d+)\\.(\\d+)\\.(\\d+)?/&&printf "%%d%%02d%%02d\\n",$1,$2,$3') #Compat macro for new _fillupdir macro introduced in Nov 2017 @@ -43,15 +60,17 @@ # For the above reasons, limit the number of jobs to 2. %define _smp_mflags -j2 -%define _vbox_instdir %{_libexecdir}/virtualbox +%define _vbox_instdir %{_prefix}/lib/virtualbox %define _udevrulesdir /usr/lib/udev/rules.d -Name: virtualbox +%endif + # ********* If the VB version exceeds 6.1.x, notify the libvirt maintainer!! +Name: virtualbox%{?dash}%{?name_suffix} Version: 6.1.10 Release: 0 -Summary: VirtualBox is an Emulator +Summary: %{package_summary} License: GPL-2.0-or-later -Group: System/Emulators/PC +Group: %{package_group} URL: http://www.virtualbox.org/ # # so you don't need to repack virtualbox by hand, just add new release of VirtualBox-x.x.x.tar.bz2 and line below with @@ -63,14 +82,14 @@ %if 0%{?sle_version} != 120300 Source2: VirtualBox.appdata.xml %endif -Source3: %{name}-60-vboxguest.rules -Source4: %{name}-default.virtualbox -Source5: %{name}-kmp-files -Source7: %{name}-kmp-preamble +Source3: virtualbox-60-vboxguest.rules +Source4: virtualbox-default.virtualbox +Source5: virtualbox-kmp-files +Source7: virtualbox-kmp-preamble Source8: update-extpack.sh -Source9: %{name}-wrapper.sh -Source10: %{name}-LocalConfig.kmk -Source11: %{name}-60-vboxdrv.rules +Source9: virtualbox-wrapper.sh +Source10: virtualbox-LocalConfig.kmk +Source11: virtualbox-60-vboxdrv.rules Source14: vboxdrv.service Source15: vboxadd-service.service Source16: vboxconfig.sh @@ -83,8 +102,8 @@ Source23: vboxautostart.service Source24: vboxautostart.sh Source97: README.build -Source98: %{name}-rpmlintrc -Source99: %{name}-patch-source.sh +Source98: virtualbox-rpmlintrc +Source99: virtualbox-patch-source.sh #rework init scripts to fit suse needs Patch1: vbox-vboxdrv-init-script.diff Patch2: vbox-vboxadd-init-script.diff @@ -144,6 +163,8 @@ Patch128: fix_lib_search.patch # Fixes for modified kernel in Leap 42.3 Patch130: fixes_for_Leap42.3.patch +# Fixes for SLE12 +Patch131: fixes_for_sle12.patch # Fixes for Qt5.13 on 32-bit systems Patch132: fixes_for_qt5.13.patch # Fixes for openSUSE Leap 15.2 @@ -160,6 +181,22 @@ Patch138: fixes_for_5.8.patch Patch999: virtualbox-fix-ui-background-color.patch # + +# Common BuildRequires for both virtualbox and virtualbox-kmp +BuildRequires: %{kernel_module_package_buildreqs} +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: kbuild >= 0.1.9998svn3101 +BuildRequires: libcap-devel +BuildRequires: libcurl-devel +BuildRequires: libopenssl-devel +BuildRequires: libxslt-devel +BuildRequires: module-init-tools +BuildRequires: pam-devel +BuildRequires: yasm + +### Requirements for virtualbox main package ### +%if %{main_package} BuildRequires: LibVNCServer-devel BuildRequires: SDL-devel BuildRequires: acpica @@ -172,24 +209,16 @@ %else BuildRequires: boost-devel %endif -BuildRequires: %{kernel_module_package_buildreqs} BuildRequires: dev86 BuildRequires: device-mapper-devel BuildRequires: dmidecode BuildRequires: e2fsprogs-devel BuildRequires: fdupes -BuildRequires: gcc -BuildRequires: gcc-c++ BuildRequires: glibc-devel-static BuildRequires: gsoap-devel >= 2.8.50 BuildRequires: java-devel >= 1.6.0 -BuildRequires: kbuild >= 0.1.9998svn3101 -#BuildRequires: kernel-syms -BuildRequires: libcap-devel -BuildRequires: libcurl-devel BuildRequires: libelf-devel BuildRequires: libidl-devel -BuildRequires: libopenssl-devel BuildRequires: libopus-devel BuildRequires: libqt5-linguist BuildRequires: libqt5-qtbase-devel @@ -197,8 +226,6 @@ BuildRequires: libvpx-devel BuildRequires: libxslt-devel BuildRequires: libzio-devel -BuildRequires: module-init-tools -BuildRequires: pam-devel BuildRequires: pulseaudio-devel BuildRequires: python3-devel BuildRequires: sed @@ -207,7 +234,6 @@ BuildRequires: xorg-x11 BuildRequires: xorg-x11-server BuildRequires: xorg-x11-server-sdk -BuildRequires: yasm BuildRequires: zlib-devel-static BuildRequires: pkgconfig(fontsproto) BuildRequires: pkgconfig(libpng) @@ -230,6 +256,18 @@ BuildRequires: pkgconfig(xmu) BuildRequires: pkgconfig(xproto) BuildRequires: pkgconfig(xrandr) +%ifarch amd64 x86_64 ia32e em64t +BuildRequires: gcc-32bit +BuildRequires: gcc-c++-32bit +BuildRequires: xorg-x11-libX11-devel-32bit +BuildRequires: xorg-x11-libXext-devel-32bit +BuildRequires: xorg-x11-libXmu-devel-32bit +BuildRequires: xorg-x11-libXt-devel-32bit +%endif +%{?systemd_requires} +# package i4l-vbox from source package i4l-base shares the directory /etc/vbox +# with us, but with different owner. +Conflicts: i4l-vbox Requires: %{name}-kmp = %{version} Requires(post): sysvinit(syslog) Requires(pre): permissions @@ -242,22 +280,22 @@ #rename from ose version: Provides: %{name}-ose = %{version} Obsoletes: %{name}-ose < %{version} -BuildRoot: %{_tmppath}/%{name}-%{version}-build +%endif # main_package + +### Requirements for virtualbox-kmp ### +%if %{kmp_package} +BuildRequires: libxml2-devel %(sed -e '/^Provides: multiversion(kernel)/d' %{_libexecdir}/rpm/kernel-module-subpackage > %{_builddir}/virtualbox-kmp-template) +%kernel_module_package -t %{_builddir}/virtualbox-kmp-template -p %{SOURCE7} -n virtualbox -f %{SOURCE5} -x kdump um xen pae xenpae pv +Obsoletes: virtualbox-guest-kmp +Obsoletes: virtualbox-host-kmp +%endif # kmp_package + +BuildRoot: %{_tmppath}/%{name}-%{version}-build ExclusiveArch: x86_64 -%ifarch amd64 x86_64 ia32e em64t -BuildRequires: gcc-32bit -BuildRequires: gcc-c++-32bit -BuildRequires: xorg-x11-libX11-devel-32bit -BuildRequires: xorg-x11-libXext-devel-32bit -BuildRequires: xorg-x11-libXmu-devel-32bit -BuildRequires: xorg-x11-libXt-devel-32bit -%endif -%{?systemd_requires} -# package i4l-vbox from source package i4l-base shares the directory /etc/vbox -# with us, but with different owner. -Conflicts: i4l-vbox +### Description and subpackages of virtualbox main package ### +%if %{main_package} %description VirtualBox is a hosted hypervisor for x86 computers. It supports the creation and management of guest virtual machines running versions @@ -275,7 +313,7 @@ Provides: %{name}-gui = %{version} #this is needed during update to trigger installing qt subpackage #http://en.opensuse.org/openSUSE:Upgrade_dependencies_explanation#Splitting_and_Merging -Provides: %{name}-ose:%{_libexecdir}/virtualbox/VirtualBox.so +Provides: %{name}-ose:%{_prefix}/lib/virtualbox/VirtualBox.so #rename from "ose" version: Provides: %{name}-ose-qt = %{version} Obsoletes: %{name}-ose-qt < %{version} @@ -295,18 +333,6 @@ The VirtualBox web server is used to control headless VMs using a browser. ######################################### -%package kmp -Summary: Kernel modules for VirtualBox -Group: System/Emulators/PC -%kernel_module_package -t %{_builddir}/virtualbox-kmp-template -p %{SOURCE7} -n %{name} -f %{SOURCE5} -x kdump um xen pae xenpae pv -Requires: %{kernel_module_package_buildreqs} -Obsoletes: %{name}-guest-kmp -Obsoletes: %{name}-host-kmp - -%description kmp -This package contains the kernel-modules that VirtualBox uses to create or run virtual machines. -########################################## - %package guest-x11 Summary: VirtualBox X11 drivers for mouse and video Group: System/X11/Servers/XF86_4 @@ -418,6 +444,13 @@ protocol (RFB) to remotely control another computer. When this optional feature is desired, it is installed as an "extpack" for VirtualBox. The implementation is licensed under GPL. ########################################### +%endif # main_package + +### Description of virtualbox-kmp ### +%if %{kmp_package} +%description +This package contains the kernel-modules that VirtualBox uses to create or run virtual machines. +%endif # kmp_package %prep %setup -q -n VirtualBox-%{version} @@ -454,6 +487,7 @@ # Patch for Leap 42.3 %patch130 -p1 %endif +%patch131 -p1 # Handle the 32-bit changes needed for Qt 5.13 %ifarch %ix86 && 0%{?qt5ver} >= 51300 %patch132 -p1 @@ -467,6 +501,8 @@ # make VB UI background colors look sane again %patch999 -p1 +### Documents for virtualbox main package ### +%if %{main_package} #copy user manual cp %{SOURCE1} UserManual.pdf #copy README.build @@ -475,6 +511,8 @@ cp %{SOURCE10} LocalConfig.kmk #copy autostart doc cp %{SOURCE20} README.autostart +%endif # main_package + # ########################## ####workaround kmk_sed --v @@ -497,6 +535,8 @@ # fix build of vboxvideo kernel module: replace relative drm include path with absolute include path sed -i 's:include/drm:/usr/src/linux/include/drm:' src/VBox/Additions/linux/drm/Makefile.module.kms +### %build, %install, and %file sections for virtualbox ### +%if %{main_package} %build # Disable LTO - Link Time Optimization %define _lto_cflags %{nil} @@ -543,51 +583,6 @@ popd install -D -m 644 "COPYING" "%{buildroot}%{_datadir}/licenses/LICENSE.vnc" -# -# build kernel modules for guest and host (check novel-kmp package as example) -# host modules : vboxdrv,vboxnetflt,vboxnetadp -# guest modules : vboxguest,vboxsf vboxvideo (for Leap 15.1 and older) -echo "build kernel modules" -for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} \ - out/linux.*/release/bin/additions/src/vbox{guest,sf,video}; do - #get the module name from path - module_name=$(basename "$vbox_module") - - # go through the all flavors (desktop,default ...) - for flavor in %{flavors_to_build}; do - # delete old build dir for sure - rm -rf modules_build_dir/${module_name}_${flavor} - - if [ "$module_name" = "vboxdrv" -o \ - "$module_name" = "vboxguest" ] ; then - SYMBOLS="" - fi - # create build directory for specific flavor - mkdir -p modules_build_dir/$flavor - - # copy sources which will be used to build vbox module in last step - cp -r $vbox_module/ modules_build_dir/$flavor/ - - # copy vboxdrv (for host) module symbols which are used by vboxnetflt and vboxnetadp km's: - if [ "$module_name" = "vboxnetflt" -o \ - "$module_name" = "vboxnetadp" ] ; then - cp $PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers \ - $PWD/modules_build_dir/$flavor/$module_name - SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers" - fi - # copy vboxguest (for guest) module symbols which are used by vboxsf km: - if [ "$module_name" = "vboxsf" -o \ - "$module_name" = "vboxvideo" ] ; then - cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \ - $PWD/modules_build_dir/$flavor/$module_name - SYMBOLS="$PWD/modules_build_dir/$flavor/vboxguest/Module.symvers" - fi - # build the module for the specific flavor - make -j2 -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor %{?linux_make_arch} modules \ - M=$PWD/modules_build_dir/$flavor/$module_name KBUILD_EXTRA_SYMBOLS="$SYMBOLS" V=1 - done -done - %install ################################# echo "create directory structure" @@ -612,23 +607,6 @@ install -d -m 755 %{buildroot}%{_udevrulesdir} install -d -m 755 %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d -#################################################################################### -echo "entering virtualbox-kmp install section" -#################################################################################### -export INSTALL_MOD_PATH=%{buildroot} -export INSTALL_MOD_DIR=extra -#Keep the install process from calling mkinitrd. The VB kernel modules are not in initrd. bsc#1052428 -export INITRD_IN_POSTTRANS=1 -export KMP_NEEDS_MKINITRD=0 -#to install modules we use here similar steps like in build phase, go through all the modules : -for module_name in vbox{drv,netflt,netadp,guest,sf,video} -do - #and through the all flavors - for flavor in %{flavors_to_build}; do - make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD/modules_build_dir/$flavor/$module_name - done -done - ########################################### echo "entering guest-tools install section" ########################################### @@ -1103,4 +1081,140 @@ %dir %{_datadir}/licenses %{_datadir}/licenses/LICENSE.vnc +%endif # main_package + +### %build and %install sections of virtualbox-kmp ### +%if %{kmp_package} +%build +# Disable LTO - Link Time Optimization +%define _lto_cflags %{nil} +#ensure we don't ever use them +rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*} + +# Craft LocalConfig.kmk +echo " +VBOX_GCC_OPT := %{optflags} +VBOX_GCC_WERR := +VBOX_BUILD_PUBLISHER := _SUSE + +VBOX_OSE := 1 +VBOX_WITH_DOCS := +VBOX_WITHOUT_LINUX_TEST_BUILDS := 1 +VBOX_WITH_TESTCASES := +SDK_VBOX_LIBXML2_DEFS := _REENTRANT +SDK_VBOX_LIBXML2_INCS := /usr/include/libxml2 +SDK_VBOX_LIBXML2_LIBS := xml2 +SDK_VBOX_OPENSSL_INCS := +SDK_VBOX_OPENSSL_LIBS := ssl crypto +SDK_VBOX_BLD_OPENSSL_LIBS := ssl crypto +SDK_VBOX_LIBCURL_INCS := +SDK_VBOX_LIBCURL_LIBS := curl +" > LocalConfig.kmk + +COMMON_KMK_FLAGS=" + KBUILD_VERBOSE=2 \ + KBUILD_TARGET=linux \ + BUILD_TARGET=linux \ +" +# Architecture specific flags +%ifarch x86_64 +COMMON_KMK_FLAGS+=" + KBUILD_TARGET_ARCH=amd64 \ + BUILD_TARGET_ARCH=amd64 +" +%endif + +# Build additions to export the source code of vbox{guest,sf,video} to +# out/linux.*/release/bin/additions/src/ +%{_bindir}/kmk %_smp_mflags \ + ${COMMON_KMK_FLAGS} \ + VBOX_WITH_X11_ADDITIONS= \ + VBOX_ONLY_ADDITIONS=1 + +# The following kmk commands are used to extract the source of +# vbox{drv,netflt,netadp} without building the whole virtualbox +# program. + +# 1. build src/bldprogs/ to get bin2c and VBoxTpG +%{_bindir}/kmk %_smp_mflags -C src/bldprogs/ \ + ${COMMON_KMK_FLAGS} \ + VBOX_ONLY_EXTPACKS=1 + +# 2. build src/VBox/HostDrivers/ with VBOX_ONLY_EXTPACKS=1 to +# get SUPR3.a for src/VBox/Runtime/ +%{_bindir}/kmk %_smp_mflags -C src/VBox/HostDrivers/ \ + ${COMMON_KMK_FLAGS} \ + VBOX_ONLY_EXTPACKS=1 + +# 3. build src/VBox/Runtime/ with VBOX_ONLY_BUILD=1 to get +# VBoxRt.so for src/VBox/HostDrivers/Support/ +%{_bindir}/kmk %_smp_mflags -C src/VBox/Runtime/ \ + ${COMMON_KMK_FLAGS} \ + VBOX_ONLY_BUILD=1 + +# 4. build src/VBox/HostDrivers/ to export the source of +# host kernel modules to out/linux.*/release/bin/src/ +%{_bindir}/kmk %_smp_mflags -C src/VBox/HostDrivers/ \ + ${COMMON_KMK_FLAGS} +# +# build kernel modules for guest and host (check novel-kmp package as example) +# host modules : vboxdrv,vboxnetflt,vboxnetadp +# guest modules : vboxguest,vboxsf vboxvideo (for Leap 15.1 and older) +echo "build kernel modules" +for vbox_module in out/linux.*/release/bin/src/vbox{drv,netflt,netadp} \ + out/linux.*/release/bin/additions/src/vbox{guest,sf,video}; do + #get the module name from path + module_name=$(basename "$vbox_module") + + # go through the all flavors (desktop,default ...) + for flavor in %{flavors_to_build}; do + # delete old build dir for sure + rm -rf modules_build_dir/${module_name}_${flavor} + + if [ "$module_name" = "vboxdrv" -o \ + "$module_name" = "vboxguest" ] ; then + SYMBOLS="" + fi + # create build directory for specific flavor + mkdir -p modules_build_dir/$flavor + + # copy sources which will be used to build vbox module in last step + cp -r $vbox_module/ modules_build_dir/$flavor/ + + # copy vboxdrv (for host) module symbols which are used by vboxnetflt and vboxnetadp km's: + if [ "$module_name" = "vboxnetflt" -o \ + "$module_name" = "vboxnetadp" ] ; then + cp $PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers \ + $PWD/modules_build_dir/$flavor/$module_name + SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers" + fi + # copy vboxguest (for guest) module symbols which are used by vboxsf km: + if [ "$module_name" = "vboxsf" -o \ + "$module_name" = "vboxvideo" ] ; then + cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \ + $PWD/modules_build_dir/$flavor/$module_name + SYMBOLS="$PWD/modules_build_dir/$flavor/vboxguest/Module.symvers" + fi + # build the module for the specific flavor + make -j2 -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor %{?linux_make_arch} modules \ + M=$PWD/modules_build_dir/$flavor/$module_name KBUILD_EXTRA_SYMBOLS="$SYMBOLS" V=1 + done +done + +%install +export INSTALL_MOD_PATH=%{buildroot} +export INSTALL_MOD_DIR=extra +#Keep the install process from calling mkinitrd. The VB kernel modules are not in initrd. bsc#1052428 +export INITRD_IN_POSTTRANS=1 +export KMP_NEEDS_MKINITRD=0 +#to install modules we use here similar steps like in build phase, go through all the modules : +for module_name in vbox{drv,netflt,netadp,guest,sf,video} +do + #and through the all flavors + for flavor in %{flavors_to_build}; do + make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD/modules_build_dir/$flavor/$module_name + done +done +%endif # kmp_package + %changelog ++++++ _multibuild ++++++ <multibuild> <flavor>kmp</flavor> </multibuild> ++++++ fixes_for_5.8.patch ++++++ --- /var/tmp/diff_new_pack.8tdeeG/_old 2020-07-14 07:45:07.507040998 +0200 +++ /var/tmp/diff_new_pack.8tdeeG/_new 2020-07-14 07:45:07.507040998 +0200 @@ -205,8 +205,8 @@ size_t iPage; +# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0) -+ pVmArea = __get_vm_area_caller(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END, -+ __builtin_return_address(0)); ++// pVmArea = __get_vm_area_caller(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END, ++// __builtin_return_address(0)); +#else pVmArea = __get_vm_area(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END); +#endif @@ -219,9 +219,9 @@ pVmArea->pages = papPages; +# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0) + unsigned long start = (unsigned long)pVmArea->addr; -+ unsigned long size = get_vm_area_size(pVmArea); ++// unsigned long size = get_vm_area_size(pVmArea); + -+ if (!map_kernel_range(start, size, PAGE_KERNEL_EXEC, papPages)) ++// if (!map_kernel_range(start, size, PAGE_KERNEL_EXEC, papPages)) +#else if (!map_vm_area(pVmArea, PAGE_KERNEL_EXEC, # if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0) @@ -234,3 +234,16 @@ { PRTMEMLNXHDREX pHdrEx = (PRTMEMLNXHDREX)pVmArea->addr; pHdrEx->pVmArea = pVmArea; +Index: VirtualBox-6.1.10/src/VBox/Additions/linux/sharedfolders/vfsmod.c +=================================================================== +--- VirtualBox-6.1.10.orig/src/VBox/Additions/linux/sharedfolders/vfsmod.c ++++ VirtualBox-6.1.10/src/VBox/Additions/linux/sharedfolders/vfsmod.c +@@ -53,7 +53,7 @@ + #include <linux/seq_file.h> + #include <linux/vfs.h> + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 62) +-# include <linux/vermagic.h> ++//# include <linux/vermagic.h> + #endif + #include <VBox/err.h> + #include <iprt/path.h> ++++++ fixes_for_leap15.2.patch ++++++ --- /var/tmp/diff_new_pack.8tdeeG/_old 2020-07-14 07:45:07.527041063 +0200 +++ /var/tmp/diff_new_pack.8tdeeG/_new 2020-07-14 07:45:07.527041063 +0200 @@ -6,7 +6,7 @@ #define VBOXNETFLT_OS_SPECFIC 1 #include "../VBoxNetFltInternal.h" -+# if defined(CONFIG_SUSE_VERSION) & CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 2 ++# if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 2 +# define OPENSUSE_152 +# endif + ++++++ fixes_for_makefile.patch ++++++ --- /var/tmp/diff_new_pack.8tdeeG/_old 2020-07-14 07:45:07.539041102 +0200 +++ /var/tmp/diff_new_pack.8tdeeG/_new 2020-07-14 07:45:07.543041115 +0200 @@ -791,5 +791,5 @@ +#if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 1 +# define OPENSUSE_151 #endif - - #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0) || defined(RHEL_71) + #if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4 + # define SUSE_SLE12 ++++++ fixes_for_sle12.patch ++++++ Index: VirtualBox-6.1.10/src/VBox/Runtime/r0drv/linux/waitqueue-r0drv-linux.h =================================================================== --- VirtualBox-6.1.10.orig/src/VBox/Runtime/r0drv/linux/waitqueue-r0drv-linux.h +++ VirtualBox-6.1.10/src/VBox/Runtime/r0drv/linux/waitqueue-r0drv-linux.h @@ -49,7 +49,7 @@ typedef struct RTR0SEMLNXWAIT { /** The wait queue entry. */ #if LINUX_VERSION_CODE > KERNEL_VERSION(4, 13, 0) \ - || defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL == 4 \ + || defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4 \ || defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 wait_queue_entry_t WaitQE; #else Index: VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_drv.c =================================================================== --- VirtualBox-6.1.10.orig/src/VBox/Additions/linux/drm/vbox_drv.c +++ VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_drv.c @@ -327,7 +327,9 @@ static struct drm_driver driver = { #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) || defined(RHEL_72) # if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) && !defined(RHEL_75) \ && !defined(OPENSUSE_151) +#if !(defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4) .set_busid = drm_pci_set_busid, +#endif # endif #endif Index: VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_main.c =================================================================== --- VirtualBox-6.1.10.orig/src/VBox/Additions/linux/drm/vbox_main.c +++ VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_main.c @@ -606,11 +606,13 @@ int vbox_dumb_destroy(struct drm_file *f #endif #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) && !defined(OPENSUSE_151) && !defined(RHEL_77) && !defined(RHEL_81) +#if !(defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4) static void ttm_bo_put(struct ttm_buffer_object *bo) { ttm_bo_unref(&bo); } #endif +#endif void vbox_gem_free_object(struct drm_gem_object *obj) { Index: VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_ttm.c =================================================================== --- VirtualBox-6.1.10.orig/src/VBox/Additions/linux/drm/vbox_ttm.c +++ VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_ttm.c @@ -211,7 +211,7 @@ static struct ttm_backend_func vbox_tt_b }; #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)) && !defined(RHEL_76) \ - && !defined(OPENSUSE_151) + && !defined(OPENSUSE_151) && !defined(SUSE_SLE12) static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev, unsigned long size, u32 page_flags, @@ -229,7 +229,7 @@ static struct ttm_tt *vbox_ttm_tt_create tt->func = &vbox_tt_backend_func; #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)) && !defined(RHEL_76) \ - && !defined(OPENSUSE_151) + && !defined(OPENSUSE_151) && !defined(SUSE_SLE12) if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { #else if (ttm_tt_init(tt, bo, page_flags)) { @@ -243,7 +243,7 @@ static struct ttm_tt *vbox_ttm_tt_create #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0) # if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) \ - && !defined(OPENSUSE_151) + && !defined(OPENSUSE_151) && !defined(SUSE_SLE12) static int vbox_ttm_tt_populate(struct ttm_tt *ttm) { return ttm_pool_populate(ttm); @@ -278,7 +278,7 @@ static struct ttm_bo_driver vbox_bo_driv .io_mem_free = &vbox_ttm_io_mem_free, #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) || defined(RHEL_75) # if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) \ - && !defined(OPENSUSE_151) + && !defined(OPENSUSE_151) && !defined(SUSE_SLE12) .io_mem_pfn = ttm_bo_default_io_mem_pfn, # endif #endif @@ -429,7 +429,7 @@ int vbox_bo_create(struct drm_device *de ret = ttm_bo_init(&vbox->ttm.bdev, &vboxbo->bo, size, ttm_bo_type_device, &vboxbo->placement, #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0) && !defined(RHEL_76) \ - && !defined(OPENSUSE_151) + && !defined(OPENSUSE_151) && !defined(SUSE_SLE12) align >> PAGE_SHIFT, false, NULL, acc_size, #else align >> PAGE_SHIFT, false, acc_size, @@ -459,7 +459,7 @@ static inline u64 vbox_bo_gpu_offset(str int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) || defined(RHEL_76) \ - || defined(OPENSUSE_151) + || defined(OPENSUSE_151) || defined(SUSE_SLE12) struct ttm_operation_ctx ctx = { false, false }; #endif int i, ret; @@ -478,7 +478,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT; #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) \ - && !defined(OPENSUSE_151) + && !defined(OPENSUSE_151) && !defined(SUSE_SLE12) ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); #else ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx); @@ -497,7 +497,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 int vbox_bo_unpin(struct vbox_bo *bo) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) || defined(RHEL_76) \ - || defined(OPENSUSE_151) + || defined(OPENSUSE_151) || defined(SUSE_SLE12) struct ttm_operation_ctx ctx = { false, false }; #endif int i, ret; @@ -514,7 +514,7 @@ int vbox_bo_unpin(struct vbox_bo *bo) PLACEMENT_FLAGS(bo->placements[i]) &= ~TTM_PL_FLAG_NO_EVICT; #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) \ - && !defined(OPENSUSE_151) + && !defined(OPENSUSE_151) && !defined(SUSE_SLE12) ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); #else ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx); @@ -533,7 +533,7 @@ int vbox_bo_unpin(struct vbox_bo *bo) int vbox_bo_push_sysram(struct vbox_bo *bo) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) || defined(RHEL_76) \ - || defined(OPENSUSE_151) + || defined(OPENSUSE_151) || defined(SUSE_SLE12) struct ttm_operation_ctx ctx = { false, false }; #endif int i, ret; @@ -555,7 +555,7 @@ int vbox_bo_push_sysram(struct vbox_bo * PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT; #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)) && !defined(RHEL_76) \ - && !defined(OPENSUSE_151) + && !defined(OPENSUSE_151) && !defined(SUSE_SLE12) ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); #else ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx); Index: VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_drv.h =================================================================== --- VirtualBox-6.1.10.orig/src/VBox/Additions/linux/drm/vbox_drv.h +++ VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_drv.h @@ -91,6 +91,9 @@ # define OPENSUSE_151 # endif #endif +#if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4 +# define SUSE_SLE12 +#endif #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0) || defined(RHEL_71) #define U8_MAX ((u8)~0U) Index: VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_mode.c =================================================================== --- VirtualBox-6.1.10.orig/src/VBox/Additions/linux/drm/vbox_mode.c +++ VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_mode.c @@ -547,7 +547,8 @@ static void vbox_set_edid(struct drm_con for (i = 0; i < EDID_SIZE - 1; ++i) sum += edid[i]; edid[EDID_SIZE - 1] = (0x100 - (sum & 0xFF)) & 0xFF; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) || defined(OPENSUSE_151) || defined(RHEL_77) || defined(RHEL_81) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) || defined(OPENSUSE_151) || \ + defined(SUSE_SLE12) || defined(RHEL_77) || defined(RHEL_81) drm_connector_update_edid_property(connector, (struct edid *)edid); #else drm_mode_connector_update_edid_property(connector, (struct edid *)edid); @@ -722,7 +723,7 @@ static int vbox_connector_init(struct dr drm_connector_register(connector); #endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) || defined(OPENSUSE_151) || defined(RHEL_77) || defined(RHEL_81) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) || defined(OPENSUSE_151) || defined(SUSE_SLE12) || defined(RHEL_77) || defined(RHEL_81) drm_connector_attach_encoder(connector, encoder); #else drm_mode_connector_attach_encoder(connector, encoder);
