From 855292ac55130a6e707863b1c5566126b8eefc0911423ddd112726c756827cd7 Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Sat, 8 Aug 2020 01:07:30 +0000 Subject: [PATCH 1/4] Accepting request 824915 from home:lwfinger:branches:Virtualization - Apply Oracle changes for kernel 5.8. OBS-URL: https://build.opensuse.org/request/show/824915 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=565 --- debug_USB_passthru.patch | 73 ++++++ fixes_for_5.8.patch | 496 ++++++++++++++++++++++++++++----------- virtualbox.changes | 5 + 3 files changed, 438 insertions(+), 136 deletions(-) create mode 100644 debug_USB_passthru.patch diff --git a/debug_USB_passthru.patch b/debug_USB_passthru.patch new file mode 100644 index 0000000..8446707 --- /dev/null +++ b/debug_USB_passthru.patch @@ -0,0 +1,73 @@ +Index: VirtualBox-6.1.12/src/VBox/Main/src-server/HostImpl.cpp +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Main/src-server/HostImpl.cpp ++++ VirtualBox-6.1.12/src/VBox/Main/src-server/HostImpl.cpp +@@ -3189,13 +3189,14 @@ HRESULT Host::i_checkUSBProxyService() + { + /* disable the USB controller completely to avoid assertions if the + * USB proxy service could not start. */ +- ++ LogRel(("USB proxy could not start\n")); + switch (m->pUSBProxyService->getLastError()) + { + case VERR_FILE_NOT_FOUND: /** @todo what does this mean? */ + return setWarning(E_FAIL, + tr("Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might not be installed on the host computer")); + case VERR_VUSB_USB_DEVICE_PERMISSION: ++ LogRel(("m->pUSBProxyService->getLastError() is VERR_VUSB_USB_DEVICE_PERMISSION\n")); + return setWarning(E_FAIL, + tr("VirtualBox is not currently allowed to access USB devices. You can change this by adding your user to the 'vboxusers' group. Please see the user manual for a more detailed explanation")); + case VERR_VUSB_USBFS_PERMISSION: +Index: VirtualBox-6.1.12/src/VBox/Main/src-server/USBProxyBackend.cpp +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Main/src-server/USBProxyBackend.cpp ++++ VirtualBox-6.1.12/src/VBox/Main/src-server/USBProxyBackend.cpp +@@ -282,8 +282,10 @@ int USBProxyBackend::start(void) + AssertRC(rc); + if (RT_SUCCESS(rc)) + LogFlowThisFunc(("started mThread=%RTthrd\n", mThread)); +- else ++ else { ++ LogRel(("USB proxy failed to start\n")); + mThread = NIL_RTTHREAD; ++ } + } + } + else +Index: VirtualBox-6.1.12/src/VBox/Runtime/common/misc/thread.cpp +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Runtime/common/misc/thread.cpp ++++ VirtualBox-6.1.12/src/VBox/Runtime/common/misc/thread.cpp +@@ -772,20 +772,24 @@ RTDECL(int) RTThreadCreate(PRTTHREAD pTh + if (!VALID_PTR(pThread) && pThread) + { + Assert(VALID_PTR(pThread)); ++ LogRel(("pThread is invalid\n")); + return VERR_INVALID_PARAMETER; + } + if (!VALID_PTR(pfnThread)) + { + Assert(VALID_PTR(pfnThread)); ++ LogRel(("pfnThread is invalid\n")); + return VERR_INVALID_PARAMETER; + } + if (!pszName || !*pszName || strlen(pszName) >= RTTHREAD_NAME_LEN) + { ++ LogRel(("pszName=%s (max len is %d because of logging)\n", pszName, RTTHREAD_NAME_LEN - 1)); + AssertMsgFailed(("pszName=%s (max len is %d because of logging)\n", pszName, RTTHREAD_NAME_LEN - 1)); + return VERR_INVALID_PARAMETER; + } + if (fFlags & ~RTTHREADFLAGS_MASK) + { ++ LogRel(("fFlags=%#x\n", fFlags)); + AssertMsgFailed(("fFlags=%#x\n", fFlags)); + return VERR_INVALID_PARAMETER; + } +@@ -819,6 +823,7 @@ RTDECL(int) RTThreadCreate(PRTTHREAD pTh + else + rc = VERR_NO_TMP_MEMORY; + LogFlow(("RTThreadCreate: Failed to create thread, rc=%Rrc\n", rc)); ++ LogRel(("RTThreadCreate: Failed to create thread, rc=%Rrc\n", rc)); + AssertReleaseRC(rc); + return rc; + } diff --git a/fixes_for_5.8.patch b/fixes_for_5.8.patch index b08ce77..84bad13 100644 --- a/fixes_for_5.8.patch +++ b/fixes_for_5.8.patch @@ -11,172 +11,336 @@ Fixes needed to build vboxdrv with kernel 5.8. The changes handle the following code builds but gets missing globals on loading. For testing, the kernel is modified. This change cannot be permanent, but it can be temporary. -Index: VirtualBox-6.1.10/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c +Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c =================================================================== ---- VirtualBox-6.1.10.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -+++ VirtualBox-6.1.10/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -@@ -222,9 +222,17 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P +--- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c ++++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c +@@ -1,4 +1,4 @@ +-/* $Id: memobj-r0drv-linux.c $ */ ++/* $Id: memobj-r0drv-linux.c 85516 2020-07-29 10:47:38Z vboxsync $ */ + /** @file + * IPRT - Ring-0 Memory Objects, Linux. + */ +@@ -52,6 +52,14 @@ + # define PAGE_READONLY_EXEC PAGE_READONLY + #endif + ++/** @def IPRT_USE_ALLOC_VM_AREA_FOR_EXEC ++ * Whether we use alloc_vm_area (3.2+) for executable memory. ++ * This is a must for 5.8+, but we enable it all the way back to 3.2.x for ++ * better W^R compliance (fExecutable flag). */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) || defined(DOXYGEN_RUNNING) ++# define IPRT_USE_ALLOC_VM_AREA_FOR_EXEC ++#endif ++ + /* + * 2.6.29+ kernels don't work with remap_pfn_range() anymore because + * track_pfn_vma_new() is apparently not defined for non-RAM pages. +@@ -72,12 +80,27 @@ + # define gfp_t unsigned + #endif + ++/* ++ * Wrappers around mmap_lock/mmap_sem difference. ++ */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0) ++# define LNX_MM_DOWN_READ(a_pMm) down_read(&(a_pMm)->mmap_lock) ++# define LNX_MM_UP_READ(a_pMm) up_read(&(a_pMm)->mmap_lock) ++# define LNX_MM_DOWN_WRITE(a_pMm) down_write(&(a_pMm)->mmap_lock) ++# define LNX_MM_UP_WRITE(a_pMm) up_write(&(a_pMm)->mmap_lock) ++#else ++# define LNX_MM_DOWN_READ(a_pMm) down_read(&(a_pMm)->mmap_sem) ++# define LNX_MM_UP_READ(a_pMm) up_read(&(a_pMm)->mmap_sem) ++# define LNX_MM_DOWN_WRITE(a_pMm) down_write(&(a_pMm)->mmap_sem) ++# define LNX_MM_UP_WRITE(a_pMm) up_write(&(a_pMm)->mmap_sem) ++#endif ++ + + /********************************************************************************************************************************* + * Structures and Typedefs * + *********************************************************************************************************************************/ + /** +- * The Darwin version of the memory object structure. ++ * The Linux version of the memory object structure. + */ + typedef struct RTR0MEMOBJLNX + { +@@ -90,11 +113,20 @@ typedef struct RTR0MEMOBJLNX + bool fExecutable; + /** Set if we've vmap'ed the memory into ring-0. */ + bool fMappedToRing0; ++#ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC ++ /** Return from alloc_vm_area() that we now need to use for executable ++ * memory. */ ++ struct vm_struct *pArea; ++ /** PTE array that goes along with pArea (must be freed). */ ++ pte_t **papPtesForArea; ++#endif + /** The pages in the apPages array. */ + size_t cPages; + /** Array of struct page pointers. (variable size) */ + struct page *apPages[1]; +-} RTR0MEMOBJLNX, *PRTR0MEMOBJLNX; ++} RTR0MEMOBJLNX; ++/** Pointer to the linux memory object. */ ++typedef RTR0MEMOBJLNX *PRTR0MEMOBJLNX; + + + static void rtR0MemObjLinuxFreePages(PRTR0MEMOBJLNX pMemLnx); +@@ -182,7 +214,7 @@ static pgprot_t rtR0MemObjLinuxConvertPr + * Worker for rtR0MemObjNativeReserveUser and rtR0MemObjNativerMapUser that creates + * an empty user space mapping. + * +- * We acquire the mmap_sem of the task! ++ * We acquire the mmap_sem/mmap_lock of the task! + * + * @returns Pointer to the mapping. + * (void *)-1 on failure. +@@ -222,9 +254,9 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) ulAddr = vm_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); #else -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - down_write(&pTask->mm->mmap_sem); -+#else -+ down_write(&pTask->mm->mmap_lock); -+#endif +- down_write(&pTask->mm->mmap_sem); ++ LNX_MM_DOWN_WRITE(pTask->mm); ulAddr = do_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - up_write(&pTask->mm->mmap_sem); -+#else -+ up_write(&pTask->mm->mmap_lock); -+#endif +- up_write(&pTask->mm->mmap_sem); ++ LNX_MM_UP_WRITE(pTask->mm); #endif } else -@@ -232,9 +240,17 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P +@@ -232,9 +264,9 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) ulAddr = vm_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); #else -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - down_write(&pTask->mm->mmap_sem); -+#else -+ down_write(&pTask->mm->mmap_lock); -+#endif +- down_write(&pTask->mm->mmap_sem); ++ LNX_MM_DOWN_WRITE(pTask->mm); ulAddr = do_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - up_write(&pTask->mm->mmap_sem); -+#else -+ up_write(&pTask->mm->mmap_lock); -+#endif +- up_write(&pTask->mm->mmap_sem); ++ LNX_MM_UP_WRITE(pTask->mm); #endif if ( !(ulAddr & ~PAGE_MASK) && (ulAddr & (uAlignment - 1))) -@@ -269,13 +285,29 @@ static void rtR0MemObjLinuxDoMunmap(void +@@ -257,7 +289,7 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P + * Worker that destroys a user space mapping. + * Undoes what rtR0MemObjLinuxDoMmap did. + * +- * We acquire the mmap_sem of the task! ++ * We acquire the mmap_sem/mmap_lock of the task! + * + * @param pv The ring-3 mapping. + * @param cb The size of the mapping. +@@ -269,13 +301,13 @@ static void rtR0MemObjLinuxDoMunmap(void Assert(pTask == current); RT_NOREF_PV(pTask); vm_munmap((unsigned long)pv, cb); #elif defined(USE_RHEL4_MUNMAP) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - down_write(&pTask->mm->mmap_sem); -+#else -+ down_write(&pTask->mm->mmap_lock); -+#endif +- down_write(&pTask->mm->mmap_sem); ++ LNX_MM_DOWN_WRITE(pTask->mm); do_munmap(pTask->mm, (unsigned long)pv, cb, 0); /* should it be 1 or 0? */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - up_write(&pTask->mm->mmap_sem); +- up_write(&pTask->mm->mmap_sem); ++ LNX_MM_UP_WRITE(pTask->mm); #else -+ up_write(&pTask->mm->mmap_lock); -+#endif -+#else -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - down_write(&pTask->mm->mmap_sem); -+#else -+ down_write(&pTask->mm->mmap_lock); -+#endif +- down_write(&pTask->mm->mmap_sem); ++ LNX_MM_DOWN_WRITE(pTask->mm); do_munmap(pTask->mm, (unsigned long)pv, cb); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - up_write(&pTask->mm->mmap_sem); -+#else -+ up_write(&pTask->mm->mmap_lock); -+#endif +- up_write(&pTask->mm->mmap_sem); ++ LNX_MM_UP_WRITE(pTask->mm); #endif } -@@ -593,7 +625,11 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR +@@ -520,15 +552,49 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO + pgprot_val(fPg) |= _PAGE_NX; + # endif + ++# ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC ++ if (fExecutable) ++ { ++ pte_t **papPtes = (pte_t **)kmalloc_array(pMemLnx->cPages, sizeof(papPtes[0]), GFP_KERNEL); ++ if (papPtes) ++ { ++ pMemLnx->pArea = alloc_vm_area(pMemLnx->Core.cb, papPtes); /* Note! pArea->nr_pages is not set. */ ++ if (pMemLnx->pArea) ++ { ++ size_t i; ++ Assert(pMemLnx->pArea->size >= pMemLnx->Core.cb); /* Note! includes guard page. */ ++ Assert(pMemLnx->pArea->addr); ++# ifdef _PAGE_NX ++ pgprot_val(fPg) |= _PAGE_NX; /* Uses RTR0MemObjProtect to clear NX when memory ready, W^X fashion. */ ++# endif ++ pMemLnx->papPtesForArea = papPtes; ++ for (i = 0; i < pMemLnx->cPages; i++) ++ *papPtes[i] = mk_pte(pMemLnx->apPages[i], fPg); ++ pMemLnx->Core.pv = pMemLnx->pArea->addr; ++ pMemLnx->fMappedToRing0 = true; ++ } ++ else ++ { ++ kfree(papPtes); ++ rc = VERR_MAP_FAILED; ++ } ++ } ++ else ++ rc = VERR_MAP_FAILED; ++ } ++ else ++# endif ++ { + # ifdef VM_MAP +- pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg); ++ pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg); + # else +- pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_ALLOC, fPg); ++ pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_ALLOC, fPg); + # endif +- if (pMemLnx->Core.pv) +- pMemLnx->fMappedToRing0 = true; +- else +- rc = VERR_MAP_FAILED; ++ if (pMemLnx->Core.pv) ++ pMemLnx->fMappedToRing0 = true; ++ else ++ rc = VERR_MAP_FAILED; ++ } + #else /* < 2.4.22 */ + rc = VERR_NOT_SUPPORTED; + #endif +@@ -554,6 +620,22 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO + static void rtR0MemObjLinuxVUnmap(PRTR0MEMOBJLNX pMemLnx) + { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 22) ++# ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC ++ if (pMemLnx->pArea) ++ { ++# if 0 ++ pte_t **papPtes = pMemLnx->papPtesForArea; ++ size_t i; ++ for (i = 0; i < pMemLnx->cPages; i++) ++ *papPtes[i] = 0; ++# endif ++ free_vm_area(pMemLnx->pArea); ++ kfree(pMemLnx->papPtesForArea); ++ pMemLnx->pArea = NULL; ++ pMemLnx->papPtesForArea = NULL; ++ } ++ else ++# endif + if (pMemLnx->fMappedToRing0) + { + Assert(pMemLnx->Core.pv); +@@ -593,7 +675,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR size_t iPage; Assert(pTask); if (pTask && pTask->mm) - down_read(&pTask->mm->mmap_sem); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) -+ down_read(&pTask->mm->mmap_sem); -+#else -+ down_read(&pTask->mm->mmap_lock); -+#endif ++ LNX_MM_DOWN_READ(pTask->mm); iPage = pMemLnx->cPages; while (iPage-- > 0) -@@ -608,7 +644,11 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR +@@ -608,7 +690,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR } if (pTask && pTask->mm) - up_read(&pTask->mm->mmap_sem); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) -+ up_read(&pTask->mm->mmap_sem); -+#else -+ up_read(&pTask->mm->mmap_lock); -+#endif ++ LNX_MM_UP_READ(pTask->mm); } /* else: kernel memory - nothing to do here. */ break; -@@ -1076,7 +1116,11 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser +@@ -1076,7 +1158,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser papVMAs = (struct vm_area_struct **)RTMemAlloc(sizeof(*papVMAs) * cPages); if (papVMAs) { - down_read(&pTask->mm->mmap_sem); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) -+ down_read(&pTask->mm->mmap_sem); -+#else -+ down_read(&pTask->mm->mmap_lock); -+#endif ++ LNX_MM_DOWN_READ(pTask->mm); /* * Get user pages. -@@ -1162,7 +1206,11 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser +@@ -1162,7 +1244,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser papVMAs[rc]->vm_flags |= VM_DONTCOPY | VM_LOCKED; } - up_read(&pTask->mm->mmap_sem); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) -+ up_read(&pTask->mm->mmap_sem); -+#else -+ up_read(&pTask->mm->mmap_lock); -+#endif ++ LNX_MM_UP_READ(pTask->mm); RTMemFree(papVMAs); -@@ -1189,7 +1237,11 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser +@@ -1189,7 +1271,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser #endif } - up_read(&pTask->mm->mmap_sem); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) -+ up_read(&pTask->mm->mmap_sem); -+#else -+ up_read(&pTask->mm->mmap_lock); -+#endif ++ LNX_MM_UP_READ(pTask->mm); RTMemFree(papVMAs); rc = VERR_LOCK_FAILED; -@@ -1604,7 +1656,11 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser( +@@ -1422,6 +1504,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKerne + * Use vmap - 2.4.22 and later. + */ + pgprot_t fPg = rtR0MemObjLinuxConvertProt(fProt, true /* kernel */); ++ /** @todo We don't really care too much for EXEC here... 5.8 always adds NX. */ + Assert(((offSub + cbSub) >> PAGE_SHIFT) <= pMemLnxToMap->cPages); + # ifdef VM_MAP + pMemLnx->Core.pv = vmap(&pMemLnxToMap->apPages[offSub >> PAGE_SHIFT], cbSub >> PAGE_SHIFT, VM_MAP, fPg); +@@ -1469,7 +1552,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKerne + pMemLnx->Core.pv = pMemLnxToMap->Core.u.Phys.uCachePolicy == RTMEM_CACHE_POLICY_MMIO + ? ioremap(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub) + : ioremap_cache(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub); +-#else ++#else /* KERNEL_VERSION < 2.6.25 */ + pMemLnx->Core.pv = pMemLnxToMap->Core.u.Phys.uCachePolicy == RTMEM_CACHE_POLICY_MMIO + ? ioremap_nocache(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub) + : ioremap(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub); +@@ -1604,7 +1687,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser( const size_t cPages = (offSub + cbSub) >> PAGE_SHIFT; size_t iPage; - down_write(&pTask->mm->mmap_sem); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) -+ down_write(&pTask->mm->mmap_sem); -+#else -+ down_write(&pTask->mm->mmap_lock); -+#endif ++ LNX_MM_DOWN_WRITE(pTask->mm); rc = VINF_SUCCESS; if (pMemLnxToMap->cPages) -@@ -1721,7 +1777,11 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser( +@@ -1721,7 +1804,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser( } #endif /* CONFIG_NUMA_BALANCING */ - up_write(&pTask->mm->mmap_sem); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) -+ up_write(&pTask->mm->mmap_sem); -+#else -+ up_write(&pTask->mm->mmap_lock); -+#endif ++ LNX_MM_UP_WRITE(pTask->mm); if (RT_SUCCESS(rc)) { -Index: VirtualBox-6.1.10/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +@@ -1753,6 +1836,29 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser( + + DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub, size_t cbSub, uint32_t fProt) + { ++# ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC ++ /* ++ * Currently only supported when we've got addresses PTEs from the kernel. ++ */ ++ PRTR0MEMOBJLNX pMemLnx = (PRTR0MEMOBJLNX)pMem; ++ if (pMemLnx->pArea && pMemLnx->papPtesForArea) ++ { ++ pgprot_t const fPg = rtR0MemObjLinuxConvertProt(fProt, true /*fKernel*/); ++ size_t const cPages = (offSub + cbSub) >> PAGE_SHIFT; ++ pte_t **papPtes = pMemLnx->papPtesForArea; ++ size_t i; ++ ++ for (i = offSub >> PAGE_SHIFT; i < cPages; i++) ++ { ++ set_pte(papPtes[i], mk_pte(pMemLnx->apPages[i], fPg)); ++ } ++ preempt_disable(); ++ __flush_tlb_all(); ++ preempt_enable(); ++ return VINF_SUCCESS; ++ } ++# endif ++ + NOREF(pMem); + NOREF(offSub); + NOREF(cbSub); +Index: VirtualBox-6.1.12/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c =================================================================== ---- VirtualBox-6.1.10.orig/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c -+++ VirtualBox-6.1.10/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c -@@ -757,12 +757,19 @@ EXPORT_SYMBOL(SUPDrvLinuxIDC); +--- VirtualBox-6.1.12.orig/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c ++++ VirtualBox-6.1.12/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +@@ -763,12 +763,19 @@ EXPORT_SYMBOL(SUPDrvLinuxIDC); RTCCUINTREG VBOXCALL supdrvOSChangeCR4(RTCCUINTREG fOrMask, RTCCUINTREG fAndMask) { #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 20, 0) @@ -196,54 +360,114 @@ Index: VirtualBox-6.1.10/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c } #else RTCCUINTREG uOld = ASMGetCR4(); -Index: VirtualBox-6.1.10/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c +Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c =================================================================== ---- VirtualBox-6.1.10.orig/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c -+++ VirtualBox-6.1.10/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c -@@ -168,7 +168,12 @@ static PRTMEMHDR rtR0MemAllocExecVmArea( - struct vm_struct *pVmArea; - size_t iPage; +--- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c ++++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c +@@ -38,7 +38,7 @@ + #include -+# 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)); -+#else - pVmArea = __get_vm_area(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END); -+#endif - if (!pVmArea) - return NULL; - pVmArea->nr_pages = 0; /* paranoia? */ -@@ -201,6 +206,12 @@ static PRTMEMHDR rtR0MemAllocExecVmArea( - # endif - pVmArea->nr_pages = cPages; - 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); -+ -+// 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) - &papPagesIterator -@@ -208,6 +219,7 @@ static PRTMEMHDR rtR0MemAllocExecVmArea( - papPages - # endif - )) -+#endif - { - PRTMEMLNXHDREX pHdrEx = (PRTMEMLNXHDREX)pVmArea->addr; - pHdrEx->pVmArea = pVmArea; -Index: VirtualBox-6.1.10/src/VBox/Additions/linux/sharedfolders/vfsmod.c + #if (defined(RT_ARCH_AMD64) || defined(DOXYGEN_RUNNING)) && !defined(RTMEMALLOC_EXEC_HEAP) +-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) ++# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) + /** + * Starting with 2.6.23 we can use __get_vm_area and map_vm_area to allocate + * memory in the moduel range. This is preferrable to the exec heap below. +Index: VirtualBox-6.1.12/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 @@ +--- VirtualBox-6.1.12.orig/src/VBox/Additions/linux/sharedfolders/vfsmod.c ++++ VirtualBox-6.1.12/src/VBox/Additions/linux/sharedfolders/vfsmod.c +@@ -52,7 +52,7 @@ + #endif #include #include - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 62) --# include -+//# include +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 62) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 62) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) + # include #endif #include - #include +Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h ++++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +@@ -1,4 +1,4 @@ +-/* $Id: the-linux-kernel.h $ */ ++/* $Id: the-linux-kernel.h 85518 2020-07-29 11:01:45Z vboxsync $ */ + /** @file + * IPRT - Include all necessary headers for the Linux kernel. + */ +@@ -176,6 +176,11 @@ + # include + #endif + ++/* for __flush_tlb_all() */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)) ++# include ++#endif ++ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0) + # include + #else +Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c ++++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c +@@ -1,4 +1,4 @@ +-/* $Id: time-r0drv-linux.c $ */ ++/* $Id: time-r0drv-linux.c 85208 2020-07-10 23:58:39Z vboxsync $ */ + /** @file + * IPRT - Time, Ring-0 Driver, Linux. + */ +@@ -31,6 +31,12 @@ + #define LOG_GROUP RTLOGGROUP_TIME + #include "the-linux-kernel.h" + #include "internal/iprt.h" ++/* Make sure we have the setting functions we need for RTTimeNow: */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16) ++# define RTTIME_INCL_TIMEVAL ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0) ++# define RTTIME_INCL_TIMESPEC ++#endif + #include + #include + +@@ -45,6 +51,7 @@ DECLINLINE(uint64_t) rtTimeGetSystemNano + */ + uint64_t u64; + struct timespec64 Ts = { 0, 0 }; ++ + ktime_get_ts64(&Ts); + u64 = Ts.tv_sec * RT_NS_1SEC_64 + Ts.tv_nsec; + return u64; +@@ -181,22 +188,19 @@ RT_EXPORT_SYMBOL(RTTimeSystemMilliTS); + RTDECL(PRTTIMESPEC) RTTimeNow(PRTTIMESPEC pTime) + { + IPRT_LINUX_SAVE_EFL_AC(); +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16) +-/* On Linux 4.20, time.h includes time64.h and we have to use 64-bit times. */ +-# ifdef _LINUX_TIME64_H ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0) + struct timespec64 Ts; +- ktime_get_real_ts64(&Ts); +-# else +- struct timespec Ts; +- ktime_get_real_ts(&Ts); +-# endif ++ ktime_get_real_ts64(&Ts); /* ktime_get_real_ts64 was added as a macro in 3.17, function since 4.18. */ + IPRT_LINUX_RESTORE_EFL_AC(); +-# ifdef _LINUX_TIME64_H + return RTTimeSpecSetTimespec64(pTime, &Ts); +-# else ++ ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16) ++ struct timespec Ts; ++ ktime_get_real_ts(&Ts); /* ktime_get_real_ts was removed in Linux 4.20. */ ++ IPRT_LINUX_RESTORE_EFL_AC(); + return RTTimeSpecSetTimespec(pTime, &Ts); +-# endif +-#else /* < 2.6.16 */ ++ ++#else /* < 2.6.16 */ + struct timeval Tv; + do_gettimeofday(&Tv); + IPRT_LINUX_RESTORE_EFL_AC(); diff --git a/virtualbox.changes b/virtualbox.changes index e745b65..073cfd0 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Aug 7 22:19:20 UTC 2020 - Larry Finger + +- Apply Oracle changes for kernel 5.8. + ------------------------------------------------------------------- Wed Jul 15 18:52:28 UTC 2020 - Larry Finger From 50cecbee87a5d7745880fa211aa8a377f28f7108771847664175f48d3b7ee58e Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Sat, 8 Aug 2020 01:17:49 +0000 Subject: [PATCH 2/4] Accepting request 824917 from home:lwfinger:branches:Virtualization - Delete temporary USBpassthru test patch. OBS-URL: https://build.opensuse.org/request/show/824917 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=566 --- debug_USB_passthru.patch | 73 ---------------------------------------- virtualbox.changes | 5 +++ 2 files changed, 5 insertions(+), 73 deletions(-) delete mode 100644 debug_USB_passthru.patch diff --git a/debug_USB_passthru.patch b/debug_USB_passthru.patch deleted file mode 100644 index 8446707..0000000 --- a/debug_USB_passthru.patch +++ /dev/null @@ -1,73 +0,0 @@ -Index: VirtualBox-6.1.12/src/VBox/Main/src-server/HostImpl.cpp -=================================================================== ---- VirtualBox-6.1.12.orig/src/VBox/Main/src-server/HostImpl.cpp -+++ VirtualBox-6.1.12/src/VBox/Main/src-server/HostImpl.cpp -@@ -3189,13 +3189,14 @@ HRESULT Host::i_checkUSBProxyService() - { - /* disable the USB controller completely to avoid assertions if the - * USB proxy service could not start. */ -- -+ LogRel(("USB proxy could not start\n")); - switch (m->pUSBProxyService->getLastError()) - { - case VERR_FILE_NOT_FOUND: /** @todo what does this mean? */ - return setWarning(E_FAIL, - tr("Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might not be installed on the host computer")); - case VERR_VUSB_USB_DEVICE_PERMISSION: -+ LogRel(("m->pUSBProxyService->getLastError() is VERR_VUSB_USB_DEVICE_PERMISSION\n")); - return setWarning(E_FAIL, - tr("VirtualBox is not currently allowed to access USB devices. You can change this by adding your user to the 'vboxusers' group. Please see the user manual for a more detailed explanation")); - case VERR_VUSB_USBFS_PERMISSION: -Index: VirtualBox-6.1.12/src/VBox/Main/src-server/USBProxyBackend.cpp -=================================================================== ---- VirtualBox-6.1.12.orig/src/VBox/Main/src-server/USBProxyBackend.cpp -+++ VirtualBox-6.1.12/src/VBox/Main/src-server/USBProxyBackend.cpp -@@ -282,8 +282,10 @@ int USBProxyBackend::start(void) - AssertRC(rc); - if (RT_SUCCESS(rc)) - LogFlowThisFunc(("started mThread=%RTthrd\n", mThread)); -- else -+ else { -+ LogRel(("USB proxy failed to start\n")); - mThread = NIL_RTTHREAD; -+ } - } - } - else -Index: VirtualBox-6.1.12/src/VBox/Runtime/common/misc/thread.cpp -=================================================================== ---- VirtualBox-6.1.12.orig/src/VBox/Runtime/common/misc/thread.cpp -+++ VirtualBox-6.1.12/src/VBox/Runtime/common/misc/thread.cpp -@@ -772,20 +772,24 @@ RTDECL(int) RTThreadCreate(PRTTHREAD pTh - if (!VALID_PTR(pThread) && pThread) - { - Assert(VALID_PTR(pThread)); -+ LogRel(("pThread is invalid\n")); - return VERR_INVALID_PARAMETER; - } - if (!VALID_PTR(pfnThread)) - { - Assert(VALID_PTR(pfnThread)); -+ LogRel(("pfnThread is invalid\n")); - return VERR_INVALID_PARAMETER; - } - if (!pszName || !*pszName || strlen(pszName) >= RTTHREAD_NAME_LEN) - { -+ LogRel(("pszName=%s (max len is %d because of logging)\n", pszName, RTTHREAD_NAME_LEN - 1)); - AssertMsgFailed(("pszName=%s (max len is %d because of logging)\n", pszName, RTTHREAD_NAME_LEN - 1)); - return VERR_INVALID_PARAMETER; - } - if (fFlags & ~RTTHREADFLAGS_MASK) - { -+ LogRel(("fFlags=%#x\n", fFlags)); - AssertMsgFailed(("fFlags=%#x\n", fFlags)); - return VERR_INVALID_PARAMETER; - } -@@ -819,6 +823,7 @@ RTDECL(int) RTThreadCreate(PRTTHREAD pTh - else - rc = VERR_NO_TMP_MEMORY; - LogFlow(("RTThreadCreate: Failed to create thread, rc=%Rrc\n", rc)); -+ LogRel(("RTThreadCreate: Failed to create thread, rc=%Rrc\n", rc)); - AssertReleaseRC(rc); - return rc; - } diff --git a/virtualbox.changes b/virtualbox.changes index 073cfd0..5fd7e93 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sat Aug 8 01:14:12 UTC 2020 - Larry Finger + +- Delete temporary USBpassthru test patch. + ------------------------------------------------------------------- Fri Aug 7 22:19:20 UTC 2020 - Larry Finger From 903ea79527e5160f560132bca3f362748f730edc7090c05454bfe19537dcdf54 Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Thu, 20 Aug 2020 21:50:14 +0000 Subject: [PATCH 3/4] Accepting request 828309 from home:lwfinger:branches:Virtualization - Modify fixes_for_5.9.patch. - Fix build for kernel 5.9. File "fixes_for_5.9.patch" is added. OBS-URL: https://build.opensuse.org/request/show/828309 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=567 --- fixes_for_5.9.patch | 179 ++++++++++++++++++++++++++++++++++++++++++++ virtualbox.changes | 10 +++ virtualbox.spec | 3 + 3 files changed, 192 insertions(+) create mode 100644 fixes_for_5.9.patch diff --git a/fixes_for_5.9.patch b/fixes_for_5.9.patch new file mode 100644 index 0000000..9fbeed4 --- /dev/null +++ b/fixes_for_5.9.patch @@ -0,0 +1,179 @@ +Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h ++++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +@@ -137,7 +137,10 @@ + #include + #include + #include +-#ifndef HAVE_UNLOCKED_IOCTL /* linux/fs.h defines this */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) ++#define HAVE_UNLOCKED_IOCTL 1 /* defined in linux/fs.h for kernels before 5.9 */ ++#endif ++#ifndef HAVE_UNLOCKED_IOCTL + # include + #endif + /* For the shared folders module */ +Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c ++++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c +@@ -1102,8 +1102,10 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser + */ + else + rc = get_user_pages_remote( ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) + pTask, /* Task for fault accounting. */ +- pTask->mm, /* Whose pages. */ ++#endif ++ pTask->mm, /* Whose pages. */ + R3Ptr, /* Where from. */ + cPages, /* How many pages. */ + # if GET_USER_PAGES_API >= KERNEL_VERSION(4, 9, 0) +Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c ++++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c +@@ -92,8 +92,12 @@ DECLHIDDEN(int) rtThreadNativeSetPriorit + return VERR_INVALID_PARAMETER; + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) + sched_setscheduler(current, iSchedClass, &Param); + #else ++ sched_set_fifo_low(current); ++#endif ++#else + RT_NOREF_PV(enmType); + #endif + RT_NOREF_PV(pThread); +Index: VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_drv.c +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Additions/linux/drm/vbox_drv.c ++++ VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_drv.c +@@ -263,8 +263,13 @@ static const struct file_operations vbox + .read = drm_read, + }; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) + static int vbox_master_set(struct drm_device *dev, + struct drm_file *file_priv, bool from_open) ++#else ++static void vbox_master_set(struct drm_device *dev, ++ struct drm_file *file_priv, bool from_open) ++#endif + { + struct vbox_private *vbox = dev->dev_private; + +Index: VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_fb.c +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Additions/linux/drm/vbox_fb.c ++++ VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_fb.c +@@ -405,7 +405,11 @@ void vbox_fbdev_fini(struct drm_device * + vbox_bo_unpin(bo); + vbox_bo_unreserve(bo); + } ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) ++ drm_gem_object_put(afb->obj); ++#else + drm_gem_object_put_unlocked(afb->obj); ++#endif + afb->obj = NULL; + } + drm_fb_helper_fini(&fbdev->helper); +Index: VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_main.c +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Additions/linux/drm/vbox_main.c ++++ VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_main.c +@@ -40,14 +40,19 @@ + #include + + #include "hgsmi_channels.h" ++#include ++ + + static void vbox_user_framebuffer_destroy(struct drm_framebuffer *fb) + { + struct vbox_framebuffer *vbox_fb = to_vbox_framebuffer(fb); + + if (vbox_fb->obj) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) + drm_gem_object_put_unlocked(vbox_fb->obj); +- ++#else ++ drm_gem_object_put(vbox_fb->obj); ++#endif + drm_framebuffer_cleanup(fb); + kfree(fb); + } +@@ -221,7 +226,11 @@ static struct drm_framebuffer *vbox_user + err_free_vbox_fb: + kfree(vbox_fb); + err_unref_obj: ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) + drm_gem_object_put_unlocked(obj); ++#else ++ drm_gem_object_put(obj); ++#endif + return ERR_PTR(ret); + } + +@@ -588,7 +597,11 @@ int vbox_dumb_create(struct drm_file *fi + return ret; + + ret = drm_gem_handle_create(file, gobj, &handle); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) + drm_gem_object_put_unlocked(gobj); ++#else ++ drm_gem_object_put(gobj); ++#endif + if (ret) + return ret; + +Index: VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_drv.h +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Additions/linux/drm/vbox_drv.h ++++ VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_drv.h +@@ -364,6 +364,9 @@ struct vbox_bo { + #else + struct ttm_place placements[3]; + #endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) ++ uint64_t offset; ++#endif + int pin_count; + }; + +Index: VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_mode.c +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Additions/linux/drm/vbox_mode.c ++++ VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_mode.c +@@ -887,8 +887,11 @@ out_unmap_bo: + out_unreserve_bo: + vbox_bo_unreserve(bo); + out_unref_obj: ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) + drm_gem_object_put_unlocked(obj); +- ++#else ++ drm_gem_object_put(obj); ++#endif + return ret; + } + +Index: VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_ttm.c +=================================================================== +--- VirtualBox-6.1.12.orig/src/VBox/Additions/linux/drm/vbox_ttm.c ++++ VirtualBox-6.1.12/src/VBox/Additions/linux/drm/vbox_ttm.c +@@ -453,7 +453,11 @@ err_free_vboxbo: + + static inline u64 vbox_bo_gpu_offset(struct vbox_bo *bo) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) + return bo->bo.offset; ++#else ++ return bo->offset; ++#endif + } + + int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr) diff --git a/virtualbox.changes b/virtualbox.changes index 5fd7e93..2f2a780 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Aug 20 16:40:59 UTC 2020 - Larry Finger + +- Modify fixes_for_5.9.patch. + +------------------------------------------------------------------- +Thu Aug 20 05:09:36 UTC 2020 - Larry Finger + +- Fix build for kernel 5.9. File "fixes_for_5.9.patch" is added. + ------------------------------------------------------------------- Sat Aug 8 01:14:12 UTC 2020 - Larry Finger diff --git a/virtualbox.spec b/virtualbox.spec index ca92610..6a8fcb9 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -181,6 +181,8 @@ Patch136: fixes_for_gcc10.patch Patch137: handle_gsoap_208103.patch # Fixes for kernel 5.8 Patch138: fixes_for_5.8.patch +# Fixes for kernel 5.9 +Patch139: fixes_for_5.9.patch Patch999: virtualbox-fix-ui-background-color.patch # @@ -501,6 +503,7 @@ This package contains the kernel-modules that VirtualBox uses to create or run v %patch136 -p1 %patch137 -p1 %patch138 -p1 +%patch139 -p1 # make VB UI background colors look sane again %patch999 -p1 From 245cab47c08267372da6ffd70081f231039f56c6da5a658cf6b4d620a426d56e Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Sat, 29 Aug 2020 19:52:49 +0000 Subject: [PATCH 4/4] Accepting request 830373 from home:lwfinger:branches:Virtualization - Pseudo version bump to 6.1.13, which is NOT an Oracle release. Update VB sources to run under kernel 5.8.0+ with no modifications to the kernel. These sources are derived from r85883 of the Oracle svn repository. For operations with USB{2,3}, the extension pack for revision 140056 must be installed. Once Oracle releases 6.1.14, then the extension pack and VB itself will have the same revision number. File "fixes_for_5.8.patch" is removed as that part was fixed upstream. Fixes boo#1175201. OBS-URL: https://build.opensuse.org/request/show/830373 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=568 --- VirtualBox-6.1.12-patched.tar.bz2 | 3 - VirtualBox-6.1.13-patched.tar.bz2 | 3 + fixes_for_5.8.patch | 473 ----------------------- fixes_for_Leap42.3.patch | 14 +- fixes_for_Qt5.11.patch | 22 +- fixes_for_gcc10.patch | 23 +- fixes_for_leap15.2.patch | 84 ++-- fixes_for_makefile.patch | 178 +++------ fixes_for_python.patch | 9 +- fixes_for_sle12.patch | 169 ++++---- modify_for_4_8_bo_move.patch | 10 +- switch_to_python3.4+.patch | 70 ++-- virtualbox-fix-ui-background-color.patch | 154 ++++---- virtualbox.changes | 14 + virtualbox.spec | 29 +- 15 files changed, 343 insertions(+), 912 deletions(-) delete mode 100644 VirtualBox-6.1.12-patched.tar.bz2 create mode 100644 VirtualBox-6.1.13-patched.tar.bz2 delete mode 100644 fixes_for_5.8.patch diff --git a/VirtualBox-6.1.12-patched.tar.bz2 b/VirtualBox-6.1.12-patched.tar.bz2 deleted file mode 100644 index e4ce116..0000000 --- a/VirtualBox-6.1.12-patched.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6b6c6e262dbc3be6614f5b041587b4d4dd9d2b52c72639dde8781dbdc21dfe83 -size 119430832 diff --git a/VirtualBox-6.1.13-patched.tar.bz2 b/VirtualBox-6.1.13-patched.tar.bz2 new file mode 100644 index 0000000..2cca38c --- /dev/null +++ b/VirtualBox-6.1.13-patched.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0257cc263029a8979a5e03d786bf52ebcec545c2a2c7586d0428bee69cdfdd7 +size 121288285 diff --git a/fixes_for_5.8.patch b/fixes_for_5.8.patch deleted file mode 100644 index 84bad13..0000000 --- a/fixes_for_5.8.patch +++ /dev/null @@ -1,473 +0,0 @@ -Fixes needed to build vboxdrv with kernel 5.8. The changes handle the following kernel API changes: - -1. In struct mm_struct, member mmap_sem was renamed to mmap_lock. -2. The information in cpu_tlbstate is no longer exported. -3. The routines __get_vm_area() and map_vm_area() no longer exist and their - replacements are not exported. Two fixes have been attempted: - a. The missing routines were not available until kernel 2.6.23, thus the code was - changed to revert back to the "old" method. Unfortunately, this did not work, and - likely it will require Oracle to make the changes. - b. The replacements for __get_vm_area() and map_vm_area() are implemented. The resulting - code builds but gets missing globals on loading. For testing, the kernel is modified. - This change cannot be permanent, but it can be temporary. - -Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -=================================================================== ---- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -+++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -@@ -1,4 +1,4 @@ --/* $Id: memobj-r0drv-linux.c $ */ -+/* $Id: memobj-r0drv-linux.c 85516 2020-07-29 10:47:38Z vboxsync $ */ - /** @file - * IPRT - Ring-0 Memory Objects, Linux. - */ -@@ -52,6 +52,14 @@ - # define PAGE_READONLY_EXEC PAGE_READONLY - #endif - -+/** @def IPRT_USE_ALLOC_VM_AREA_FOR_EXEC -+ * Whether we use alloc_vm_area (3.2+) for executable memory. -+ * This is a must for 5.8+, but we enable it all the way back to 3.2.x for -+ * better W^R compliance (fExecutable flag). */ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) || defined(DOXYGEN_RUNNING) -+# define IPRT_USE_ALLOC_VM_AREA_FOR_EXEC -+#endif -+ - /* - * 2.6.29+ kernels don't work with remap_pfn_range() anymore because - * track_pfn_vma_new() is apparently not defined for non-RAM pages. -@@ -72,12 +80,27 @@ - # define gfp_t unsigned - #endif - -+/* -+ * Wrappers around mmap_lock/mmap_sem difference. -+ */ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0) -+# define LNX_MM_DOWN_READ(a_pMm) down_read(&(a_pMm)->mmap_lock) -+# define LNX_MM_UP_READ(a_pMm) up_read(&(a_pMm)->mmap_lock) -+# define LNX_MM_DOWN_WRITE(a_pMm) down_write(&(a_pMm)->mmap_lock) -+# define LNX_MM_UP_WRITE(a_pMm) up_write(&(a_pMm)->mmap_lock) -+#else -+# define LNX_MM_DOWN_READ(a_pMm) down_read(&(a_pMm)->mmap_sem) -+# define LNX_MM_UP_READ(a_pMm) up_read(&(a_pMm)->mmap_sem) -+# define LNX_MM_DOWN_WRITE(a_pMm) down_write(&(a_pMm)->mmap_sem) -+# define LNX_MM_UP_WRITE(a_pMm) up_write(&(a_pMm)->mmap_sem) -+#endif -+ - - /********************************************************************************************************************************* - * Structures and Typedefs * - *********************************************************************************************************************************/ - /** -- * The Darwin version of the memory object structure. -+ * The Linux version of the memory object structure. - */ - typedef struct RTR0MEMOBJLNX - { -@@ -90,11 +113,20 @@ typedef struct RTR0MEMOBJLNX - bool fExecutable; - /** Set if we've vmap'ed the memory into ring-0. */ - bool fMappedToRing0; -+#ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC -+ /** Return from alloc_vm_area() that we now need to use for executable -+ * memory. */ -+ struct vm_struct *pArea; -+ /** PTE array that goes along with pArea (must be freed). */ -+ pte_t **papPtesForArea; -+#endif - /** The pages in the apPages array. */ - size_t cPages; - /** Array of struct page pointers. (variable size) */ - struct page *apPages[1]; --} RTR0MEMOBJLNX, *PRTR0MEMOBJLNX; -+} RTR0MEMOBJLNX; -+/** Pointer to the linux memory object. */ -+typedef RTR0MEMOBJLNX *PRTR0MEMOBJLNX; - - - static void rtR0MemObjLinuxFreePages(PRTR0MEMOBJLNX pMemLnx); -@@ -182,7 +214,7 @@ static pgprot_t rtR0MemObjLinuxConvertPr - * Worker for rtR0MemObjNativeReserveUser and rtR0MemObjNativerMapUser that creates - * an empty user space mapping. - * -- * We acquire the mmap_sem of the task! -+ * We acquire the mmap_sem/mmap_lock of the task! - * - * @returns Pointer to the mapping. - * (void *)-1 on failure. -@@ -222,9 +254,9 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) - ulAddr = vm_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); - #else -- down_write(&pTask->mm->mmap_sem); -+ LNX_MM_DOWN_WRITE(pTask->mm); - ulAddr = do_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0); -- up_write(&pTask->mm->mmap_sem); -+ LNX_MM_UP_WRITE(pTask->mm); - #endif - } - else -@@ -232,9 +264,9 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) - ulAddr = vm_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); - #else -- down_write(&pTask->mm->mmap_sem); -+ LNX_MM_DOWN_WRITE(pTask->mm); - ulAddr = do_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0); -- up_write(&pTask->mm->mmap_sem); -+ LNX_MM_UP_WRITE(pTask->mm); - #endif - if ( !(ulAddr & ~PAGE_MASK) - && (ulAddr & (uAlignment - 1))) -@@ -257,7 +289,7 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P - * Worker that destroys a user space mapping. - * Undoes what rtR0MemObjLinuxDoMmap did. - * -- * We acquire the mmap_sem of the task! -+ * We acquire the mmap_sem/mmap_lock of the task! - * - * @param pv The ring-3 mapping. - * @param cb The size of the mapping. -@@ -269,13 +301,13 @@ static void rtR0MemObjLinuxDoMunmap(void - Assert(pTask == current); RT_NOREF_PV(pTask); - vm_munmap((unsigned long)pv, cb); - #elif defined(USE_RHEL4_MUNMAP) -- down_write(&pTask->mm->mmap_sem); -+ LNX_MM_DOWN_WRITE(pTask->mm); - do_munmap(pTask->mm, (unsigned long)pv, cb, 0); /* should it be 1 or 0? */ -- up_write(&pTask->mm->mmap_sem); -+ LNX_MM_UP_WRITE(pTask->mm); - #else -- down_write(&pTask->mm->mmap_sem); -+ LNX_MM_DOWN_WRITE(pTask->mm); - do_munmap(pTask->mm, (unsigned long)pv, cb); -- up_write(&pTask->mm->mmap_sem); -+ LNX_MM_UP_WRITE(pTask->mm); - #endif - } - -@@ -520,15 +552,49 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO - pgprot_val(fPg) |= _PAGE_NX; - # endif - -+# ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC -+ if (fExecutable) -+ { -+ pte_t **papPtes = (pte_t **)kmalloc_array(pMemLnx->cPages, sizeof(papPtes[0]), GFP_KERNEL); -+ if (papPtes) -+ { -+ pMemLnx->pArea = alloc_vm_area(pMemLnx->Core.cb, papPtes); /* Note! pArea->nr_pages is not set. */ -+ if (pMemLnx->pArea) -+ { -+ size_t i; -+ Assert(pMemLnx->pArea->size >= pMemLnx->Core.cb); /* Note! includes guard page. */ -+ Assert(pMemLnx->pArea->addr); -+# ifdef _PAGE_NX -+ pgprot_val(fPg) |= _PAGE_NX; /* Uses RTR0MemObjProtect to clear NX when memory ready, W^X fashion. */ -+# endif -+ pMemLnx->papPtesForArea = papPtes; -+ for (i = 0; i < pMemLnx->cPages; i++) -+ *papPtes[i] = mk_pte(pMemLnx->apPages[i], fPg); -+ pMemLnx->Core.pv = pMemLnx->pArea->addr; -+ pMemLnx->fMappedToRing0 = true; -+ } -+ else -+ { -+ kfree(papPtes); -+ rc = VERR_MAP_FAILED; -+ } -+ } -+ else -+ rc = VERR_MAP_FAILED; -+ } -+ else -+# endif -+ { - # ifdef VM_MAP -- pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg); -+ pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg); - # else -- pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_ALLOC, fPg); -+ pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_ALLOC, fPg); - # endif -- if (pMemLnx->Core.pv) -- pMemLnx->fMappedToRing0 = true; -- else -- rc = VERR_MAP_FAILED; -+ if (pMemLnx->Core.pv) -+ pMemLnx->fMappedToRing0 = true; -+ else -+ rc = VERR_MAP_FAILED; -+ } - #else /* < 2.4.22 */ - rc = VERR_NOT_SUPPORTED; - #endif -@@ -554,6 +620,22 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO - static void rtR0MemObjLinuxVUnmap(PRTR0MEMOBJLNX pMemLnx) - { - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 22) -+# ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC -+ if (pMemLnx->pArea) -+ { -+# if 0 -+ pte_t **papPtes = pMemLnx->papPtesForArea; -+ size_t i; -+ for (i = 0; i < pMemLnx->cPages; i++) -+ *papPtes[i] = 0; -+# endif -+ free_vm_area(pMemLnx->pArea); -+ kfree(pMemLnx->papPtesForArea); -+ pMemLnx->pArea = NULL; -+ pMemLnx->papPtesForArea = NULL; -+ } -+ else -+# endif - if (pMemLnx->fMappedToRing0) - { - Assert(pMemLnx->Core.pv); -@@ -593,7 +675,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR - size_t iPage; - Assert(pTask); - if (pTask && pTask->mm) -- down_read(&pTask->mm->mmap_sem); -+ LNX_MM_DOWN_READ(pTask->mm); - - iPage = pMemLnx->cPages; - while (iPage-- > 0) -@@ -608,7 +690,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR - } - - if (pTask && pTask->mm) -- up_read(&pTask->mm->mmap_sem); -+ LNX_MM_UP_READ(pTask->mm); - } - /* else: kernel memory - nothing to do here. */ - break; -@@ -1076,7 +1158,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser - papVMAs = (struct vm_area_struct **)RTMemAlloc(sizeof(*papVMAs) * cPages); - if (papVMAs) - { -- down_read(&pTask->mm->mmap_sem); -+ LNX_MM_DOWN_READ(pTask->mm); - - /* - * Get user pages. -@@ -1162,7 +1244,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser - papVMAs[rc]->vm_flags |= VM_DONTCOPY | VM_LOCKED; - } - -- up_read(&pTask->mm->mmap_sem); -+ LNX_MM_UP_READ(pTask->mm); - - RTMemFree(papVMAs); - -@@ -1189,7 +1271,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser - #endif - } - -- up_read(&pTask->mm->mmap_sem); -+ LNX_MM_UP_READ(pTask->mm); - - RTMemFree(papVMAs); - rc = VERR_LOCK_FAILED; -@@ -1422,6 +1504,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKerne - * Use vmap - 2.4.22 and later. - */ - pgprot_t fPg = rtR0MemObjLinuxConvertProt(fProt, true /* kernel */); -+ /** @todo We don't really care too much for EXEC here... 5.8 always adds NX. */ - Assert(((offSub + cbSub) >> PAGE_SHIFT) <= pMemLnxToMap->cPages); - # ifdef VM_MAP - pMemLnx->Core.pv = vmap(&pMemLnxToMap->apPages[offSub >> PAGE_SHIFT], cbSub >> PAGE_SHIFT, VM_MAP, fPg); -@@ -1469,7 +1552,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKerne - pMemLnx->Core.pv = pMemLnxToMap->Core.u.Phys.uCachePolicy == RTMEM_CACHE_POLICY_MMIO - ? ioremap(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub) - : ioremap_cache(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub); --#else -+#else /* KERNEL_VERSION < 2.6.25 */ - pMemLnx->Core.pv = pMemLnxToMap->Core.u.Phys.uCachePolicy == RTMEM_CACHE_POLICY_MMIO - ? ioremap_nocache(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub) - : ioremap(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub); -@@ -1604,7 +1687,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser( - const size_t cPages = (offSub + cbSub) >> PAGE_SHIFT; - size_t iPage; - -- down_write(&pTask->mm->mmap_sem); -+ LNX_MM_DOWN_WRITE(pTask->mm); - - rc = VINF_SUCCESS; - if (pMemLnxToMap->cPages) -@@ -1721,7 +1804,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser( - } - #endif /* CONFIG_NUMA_BALANCING */ - -- up_write(&pTask->mm->mmap_sem); -+ LNX_MM_UP_WRITE(pTask->mm); - - if (RT_SUCCESS(rc)) - { -@@ -1753,6 +1836,29 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser( - - DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub, size_t cbSub, uint32_t fProt) - { -+# ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC -+ /* -+ * Currently only supported when we've got addresses PTEs from the kernel. -+ */ -+ PRTR0MEMOBJLNX pMemLnx = (PRTR0MEMOBJLNX)pMem; -+ if (pMemLnx->pArea && pMemLnx->papPtesForArea) -+ { -+ pgprot_t const fPg = rtR0MemObjLinuxConvertProt(fProt, true /*fKernel*/); -+ size_t const cPages = (offSub + cbSub) >> PAGE_SHIFT; -+ pte_t **papPtes = pMemLnx->papPtesForArea; -+ size_t i; -+ -+ for (i = offSub >> PAGE_SHIFT; i < cPages; i++) -+ { -+ set_pte(papPtes[i], mk_pte(pMemLnx->apPages[i], fPg)); -+ } -+ preempt_disable(); -+ __flush_tlb_all(); -+ preempt_enable(); -+ return VINF_SUCCESS; -+ } -+# endif -+ - NOREF(pMem); - NOREF(offSub); - NOREF(cbSub); -Index: VirtualBox-6.1.12/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c -=================================================================== ---- VirtualBox-6.1.12.orig/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c -+++ VirtualBox-6.1.12/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c -@@ -763,12 +763,19 @@ EXPORT_SYMBOL(SUPDrvLinuxIDC); - RTCCUINTREG VBOXCALL supdrvOSChangeCR4(RTCCUINTREG fOrMask, RTCCUINTREG fAndMask) - { - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 20, 0) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - RTCCUINTREG uOld = this_cpu_read(cpu_tlbstate.cr4); -+#else -+ RTCCUINTREG uOld = __read_cr4(); -+#endif - RTCCUINTREG uNew = (uOld & fAndMask) | fOrMask; - if (uNew != uOld) - { -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - this_cpu_write(cpu_tlbstate.cr4, uNew); - __write_cr4(uNew); -+#endif -+ ASMSetCR4(uNew); - } - #else - RTCCUINTREG uOld = ASMGetCR4(); -Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c -=================================================================== ---- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c -+++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c -@@ -38,7 +38,7 @@ - #include - - #if (defined(RT_ARCH_AMD64) || defined(DOXYGEN_RUNNING)) && !defined(RTMEMALLOC_EXEC_HEAP) --# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - /** - * Starting with 2.6.23 we can use __get_vm_area and map_vm_area to allocate - * memory in the moduel range. This is preferrable to the exec heap below. -Index: VirtualBox-6.1.12/src/VBox/Additions/linux/sharedfolders/vfsmod.c -=================================================================== ---- VirtualBox-6.1.12.orig/src/VBox/Additions/linux/sharedfolders/vfsmod.c -+++ VirtualBox-6.1.12/src/VBox/Additions/linux/sharedfolders/vfsmod.c -@@ -52,7 +52,7 @@ - #endif - #include - #include --#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 62) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 62) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) - # include - #endif - #include -Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h -=================================================================== ---- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h -+++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h -@@ -1,4 +1,4 @@ --/* $Id: the-linux-kernel.h $ */ -+/* $Id: the-linux-kernel.h 85518 2020-07-29 11:01:45Z vboxsync $ */ - /** @file - * IPRT - Include all necessary headers for the Linux kernel. - */ -@@ -176,6 +176,11 @@ - # include - #endif - -+/* for __flush_tlb_all() */ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)) -+# include -+#endif -+ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0) - # include - #else -Index: VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c -=================================================================== ---- VirtualBox-6.1.12.orig/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c -+++ VirtualBox-6.1.12/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c -@@ -1,4 +1,4 @@ --/* $Id: time-r0drv-linux.c $ */ -+/* $Id: time-r0drv-linux.c 85208 2020-07-10 23:58:39Z vboxsync $ */ - /** @file - * IPRT - Time, Ring-0 Driver, Linux. - */ -@@ -31,6 +31,12 @@ - #define LOG_GROUP RTLOGGROUP_TIME - #include "the-linux-kernel.h" - #include "internal/iprt.h" -+/* Make sure we have the setting functions we need for RTTimeNow: */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16) -+# define RTTIME_INCL_TIMEVAL -+#elif LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0) -+# define RTTIME_INCL_TIMESPEC -+#endif - #include - #include - -@@ -45,6 +51,7 @@ DECLINLINE(uint64_t) rtTimeGetSystemNano - */ - uint64_t u64; - struct timespec64 Ts = { 0, 0 }; -+ - ktime_get_ts64(&Ts); - u64 = Ts.tv_sec * RT_NS_1SEC_64 + Ts.tv_nsec; - return u64; -@@ -181,22 +188,19 @@ RT_EXPORT_SYMBOL(RTTimeSystemMilliTS); - RTDECL(PRTTIMESPEC) RTTimeNow(PRTTIMESPEC pTime) - { - IPRT_LINUX_SAVE_EFL_AC(); --#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16) --/* On Linux 4.20, time.h includes time64.h and we have to use 64-bit times. */ --# ifdef _LINUX_TIME64_H -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0) - struct timespec64 Ts; -- ktime_get_real_ts64(&Ts); --# else -- struct timespec Ts; -- ktime_get_real_ts(&Ts); --# endif -+ ktime_get_real_ts64(&Ts); /* ktime_get_real_ts64 was added as a macro in 3.17, function since 4.18. */ - IPRT_LINUX_RESTORE_EFL_AC(); --# ifdef _LINUX_TIME64_H - return RTTimeSpecSetTimespec64(pTime, &Ts); --# else -+ -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16) -+ struct timespec Ts; -+ ktime_get_real_ts(&Ts); /* ktime_get_real_ts was removed in Linux 4.20. */ -+ IPRT_LINUX_RESTORE_EFL_AC(); - return RTTimeSpecSetTimespec(pTime, &Ts); --# endif --#else /* < 2.6.16 */ -+ -+#else /* < 2.6.16 */ - struct timeval Tv; - do_gettimeofday(&Tv); - IPRT_LINUX_RESTORE_EFL_AC(); diff --git a/fixes_for_Leap42.3.patch b/fixes_for_Leap42.3.patch index 6297619..9bbf335 100644 --- a/fixes_for_Leap42.3.patch +++ b/fixes_for_Leap42.3.patch @@ -1,13 +1,13 @@ -Index: b/src/VBox/Additions/linux/sharedfolders/regops.c +Index: VirtualBox-6.1.13/src/VBox/Additions/linux/sharedfolders/regops.c =================================================================== ---- a/src/VBox/Additions/linux/sharedfolders/regops.c -+++ b/src/VBox/Additions/linux/sharedfolders/regops.c -@@ -1436,7 +1436,7 @@ DECLINLINE(int) vbsf_lock_user_pages(uin - # elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/sharedfolders/regops.c ++++ VirtualBox-6.1.13/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -1432,7 +1432,7 @@ DECLINLINE(int) vbsf_lock_user_pages(uin + # elif RTLNX_VER_MIN(4,6,0) ssize_t cPagesLocked = get_user_pages_unlocked(uPtrFrom, cPages, fWrite, 1 /*force*/, papPages); - # elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 168) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0) + # elif RTLNX_VER_RANGE(4,4,168, 4,5,0) - ssize_t cPagesLocked = get_user_pages_unlocked(current, current->mm, uPtrFrom, cPages, papPages, + ssize_t cPagesLocked = get_user_pages_unlocked(uPtrFrom, cPages, papPages, fWrite ? FOLL_WRITE | FOLL_FORCE : FOLL_FORCE); - # elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0) + # elif RTLNX_VER_MIN(4,0,0) ssize_t cPagesLocked = get_user_pages_unlocked(current, current->mm, uPtrFrom, cPages, fWrite, 1 /*force*/, papPages); diff --git a/fixes_for_Qt5.11.patch b/fixes_for_Qt5.11.patch index 1f75bfe..f279689 100644 --- a/fixes_for_Qt5.11.patch +++ b/fixes_for_Qt5.11.patch @@ -1,8 +1,8 @@ -Index: VirtualBox-6.0.2/src/VBox/Frontends/VirtualBox/src/precomp_vcc.h +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/precomp_vcc.h =================================================================== ---- VirtualBox-6.0.2.orig/src/VBox/Frontends/VirtualBox/src/precomp_vcc.h -+++ VirtualBox-6.0.2/src/VBox/Frontends/VirtualBox/src/precomp_vcc.h -@@ -83,6 +83,7 @@ +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/precomp_vcc.h ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/precomp_vcc.h +@@ -85,6 +85,7 @@ #include #include #include @@ -10,15 +10,15 @@ Index: VirtualBox-6.0.2/src/VBox/Frontends/VirtualBox/src/precomp_vcc.h #include #include #include -Index: VirtualBox-6.0.2/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp =================================================================== ---- VirtualBox-6.0.2.orig/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp -+++ VirtualBox-6.0.2/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp -@@ -18,6 +18,7 @@ - /* Qt includes: */ - #include +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp +@@ -21,6 +21,7 @@ + #include + #include #include +#include /* GUI includes: */ - #include "QIWidgetValidator.h" + #include "QILineEdit.h" diff --git a/fixes_for_gcc10.patch b/fixes_for_gcc10.patch index 867165a..81aa37d 100644 --- a/fixes_for_gcc10.patch +++ b/fixes_for_gcc10.patch @@ -1,13 +1,12 @@ -Index: VirtualBox-6.1.10/Config.kmk +Index: VirtualBox-6.1.13/Config.kmk =================================================================== ---- VirtualBox-6.1.10.orig/Config.kmk -+++ VirtualBox-6.1.10/Config.kmk -@@ -2684,8 +2684,16 @@ else +--- VirtualBox-6.1.13.orig/Config.kmk ++++ VirtualBox-6.1.13/Config.kmk +@@ -2721,8 +2721,16 @@ else # The reason for this hack is that the windows kmk_ash cannot deal with $((1+1)). # Some versions of gcc (e.g. openSUSE11) return only major.minor on `gcc -dumpversion`. # gcc-5 of openSUSE42.1 only returns the major version on `gcc -dumpversion`! - VBOX_GCC_VERSION = $(shell ($(1) -dumpfullversion 2>/dev/null || $(1) -dumpversion) | \ -- $(SED_EXT) 's|\([0-9][0-9]*\)\.\{0,1\}\([0-9]\{0,\}\)\.\{0,1\}\([0-9]\{0,\}\).*|$$(int-add $$(int-mul 10000, \1), $$(int-mul 100, $$(firstword \2 0)), $$(firstword \3 0))|' ) + # + # Check to make sure that the compiler has either -dumpfullversion or -dumpversion. gcc-10 has neither + RC = $(shell ($(1) -dumpfullversion 2>/dev/null || $(1) -dumpversion 2>/dev/null) ; echo $$?) @@ -16,15 +15,15 @@ Index: VirtualBox-6.1.10/Config.kmk + VBOX_GCC_VERSION = 100001 + else + VBOX_GCC_VERSION = $(shell ($(1) -dumpfullversion 2>/dev/null || $(1) -dumpversion 2>/dev/null) | \ -+ $(SED_EXT) 's|\([0-9][0-9]*\)\.\{0,1\}\([0-9]\{0,\}\)\.\{0,1\}\([0-9]\{0,\}\).*|$$(int-add $$(int-mul 10000, \1), $$(int-mul 100, $$(firstword \2 0)), $$(firstword \3 0))|' ) + $(SED_EXT) 's|\([0-9][0-9]*\)\.\{0,1\}\([0-9]\{0,\}\)\.\{0,1\}\([0-9]\{0,\}\).*|$$(expr 10000 * \1 + 100 * $$(firstword \2 0) + $$(firstword \3 0))|' ) + endif - endif - - # YASM macros -Index: VirtualBox-6.1.10/src/VBox/Debugger/DBGCDumpImage.cpp + ifeq ($(KBUILD_TARGET), darwin) + VBOX_CLANG_VERSION = $(shell $(1) --version | \ + $(SED_EXT) -n 's|.*version \([0-9][0-9]*\)\.\{0,1\}\([0-9]\{0,\}\)\.\{0,1\}\([0-9]\{0,\}\).*|$$(expr 10000 * \1 + 100 * $$(firstword \2 0) + $$(firstword \3 0))|p' ) +Index: VirtualBox-6.1.13/src/VBox/Debugger/DBGCDumpImage.cpp =================================================================== ---- VirtualBox-6.1.10.orig/src/VBox/Debugger/DBGCDumpImage.cpp -+++ VirtualBox-6.1.10/src/VBox/Debugger/DBGCDumpImage.cpp +--- VirtualBox-6.1.13.orig/src/VBox/Debugger/DBGCDumpImage.cpp ++++ VirtualBox-6.1.13/src/VBox/Debugger/DBGCDumpImage.cpp @@ -468,7 +468,7 @@ static const char *dbgcMachoCpuType(int3 { switch (iType) diff --git a/fixes_for_leap15.2.patch b/fixes_for_leap15.2.patch index 98620c5..90f668d 100644 --- a/fixes_for_leap15.2.patch +++ b/fixes_for_leap15.2.patch @@ -1,7 +1,7 @@ -Index: VirtualBox-6.1.0_RC1/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c +Index: VirtualBox-6.1.13/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c =================================================================== ---- VirtualBox-6.1.0_RC1.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c -+++ VirtualBox-6.1.0_RC1/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c +--- VirtualBox-6.1.13.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c ++++ VirtualBox-6.1.13/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c @@ -73,6 +73,10 @@ #define VBOXNETFLT_OS_SPECFIC 1 #include "../VBoxNetFltInternal.h" @@ -13,85 +13,51 @@ Index: VirtualBox-6.1.0_RC1/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-lin typedef struct VBOXNETFLTNOTIFIER { struct notifier_block Notifier; PVBOXNETFLTINS pThis; -@@ -924,13 +928,13 @@ static void vboxNetFltLinuxSkBufToSG(PVB - for (i = 0; i < skb_shinfo(pBuf)->nr_frags; i++) - { - skb_frag_t *pFrag = &skb_shinfo(pBuf)->frags[i]; --# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0) -+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) || defined(OPENSUSE_152) - pSG->aSegs[iSeg].cb = pFrag->bv_len; - pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->bv_offset; --# else /* < KERNEL_VERSION(5, 4, 0) */ -+# else /* < KERNEL_VERSION(5, 4, 0) */ - pSG->aSegs[iSeg].cb = pFrag->size; - pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->page_offset; --# endif /* >= KERNEL_VERSION(5, 4, 0) */ -+# endif /* >= KERNEL_VERSION(5, 4, 0) */ - Log6((" %p", pSG->aSegs[iSeg].pv)); - pSG->aSegs[iSeg++].Phys = NIL_RTHCPHYS; - Assert(iSeg <= pSG->cSegsAlloc); -@@ -945,13 +949,13 @@ static void vboxNetFltLinuxSkBufToSG(PVB - for (i = 0; i < skb_shinfo(pFragBuf)->nr_frags; i++) - { - skb_frag_t *pFrag = &skb_shinfo(pFragBuf)->frags[i]; --# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0) -+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) || defined(OPENSUSE_152) - pSG->aSegs[iSeg].cb = pFrag->bv_len; - pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->bv_offset; --# else /* < KERNEL_VERSION(5, 4, 0) */ -+# else /* < KERNEL_VERSION(5, 4, 0) */ - pSG->aSegs[iSeg].cb = pFrag->size; - pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->page_offset; --# endif /* >= KERNEL_VERSION(5, 4, 0) */ -+# endif /* >= KERNEL_VERSION(5, 4, 0) */ - Log6((" %p", pSG->aSegs[iSeg].pv)); - pSG->aSegs[iSeg++].Phys = NIL_RTHCPHYS; - Assert(iSeg <= pSG->cSegsAlloc); -Index: VirtualBox-6.1.0_RC1/src/VBox/Additions/linux/drm/vbox_drv.c +Index: VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_drv.c =================================================================== ---- VirtualBox-6.1.0_RC1.orig/src/VBox/Additions/linux/drm/vbox_drv.c -+++ VirtualBox-6.1.0_RC1/src/VBox/Additions/linux/drm/vbox_drv.c -@@ -307,11 +307,13 @@ static void vbox_master_drop(struct drm_ +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/drm/vbox_drv.c ++++ VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_drv.c +@@ -305,11 +305,13 @@ static void vbox_master_drop(struct drm_ static struct drm_driver driver = { - #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0) + #if RTLNX_VER_MAX(5,4,0) .driver_features = - DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ | +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0) + DRIVER_PRIME | +#endif - # if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) && !defined(RHEL_81) + # if RTLNX_VER_MAX(5,1,0) && !RTLNX_RHEL_MAJ_PREREQ(8,1) DRIVER_IRQ_SHARED | - # endif /* < KERNEL_VERSION(5, 1, 0) && !defined(RHEL_81) */ + # endif - DRIVER_PRIME, + DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ, - #else /* >= KERNEL_VERSION(5, 4, 0) */ + #else /* >= 5.4.0 */ .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ, - #endif /* < KERNEL_VERSION(5, 4, 0) */ -Index: VirtualBox-6.1.0_RC1/src/VBox/Additions/linux/drm/vbox_main.c + #endif /* < 5.4.0 */ +Index: VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_main.c =================================================================== ---- VirtualBox-6.1.0_RC1.orig/src/VBox/Additions/linux/drm/vbox_main.c -+++ VirtualBox-6.1.0_RC1/src/VBox/Additions/linux/drm/vbox_main.c -@@ -626,8 +626,12 @@ static inline u64 vbox_bo_mmap_offset(st - #elif LINUX_VERSION_CODE < KERNEL_VERSION(3, 12, 0) && !defined(RHEL_70) +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/drm/vbox_main.c ++++ VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_main.c +@@ -628,8 +628,12 @@ static inline u64 vbox_bo_mmap_offset(st + #elif RTLNX_VER_MAX(3,12,0) && !RTLNX_RHEL_MAJ_PREREQ(7,0) return bo->bo.addr_space_offset; #else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0) + return drm_vma_node_offset_addr(&bo->bo.base.vma_node); +#else return drm_vma_node_offset_addr(&bo->bo.vma_node); - #endif /* >= KERNEL_VERSION(5, 4, 0) */ + #endif /* >= 5.4.0 */ +#endif } int -Index: VirtualBox-6.1.0_RC1/include/iprt/cdefs.h +Index: VirtualBox-6.1.13/include/iprt/cdefs.h =================================================================== ---- VirtualBox-6.1.0_RC1.orig/include/iprt/cdefs.h -+++ VirtualBox-6.1.0_RC1/include/iprt/cdefs.h -@@ -1173,14 +1173,15 @@ - * Tell the compiler that we're falling through to the next case in a switch. - * @sa RT_FALL_THRU */ - #if RT_GNUC_PREREQ(7, 0) +--- VirtualBox-6.1.13.orig/include/iprt/cdefs.h ++++ VirtualBox-6.1.13/include/iprt/cdefs.h +@@ -1240,14 +1240,15 @@ + #if RT_CLANG_PREREQ(4, 0) && RT_CPLUSPLUS_PREREQ(201100) + # define RT_FALL_THROUGH() [[clang::fallthrough]] + #elif RT_GNUC_PREREQ(7, 0) -# define RT_FALL_THROUGH() __attribute__((__fallthrough__)) +# define FALL_THROUGH __attribute__((__fallthrough__)) #else diff --git a/fixes_for_makefile.patch b/fixes_for_makefile.patch index 34427c3..17f7f84 100644 --- a/fixes_for_makefile.patch +++ b/fixes_for_makefile.patch @@ -1,18 +1,8 @@ -Index: VirtualBox-6.1.10/src/VBox/HostDrivers/linux/Makefile +Index: VirtualBox-6.1.13/src/VBox/HostDrivers/linux/Makefile =================================================================== ---- VirtualBox-6.1.10.orig/src/VBox/HostDrivers/linux/Makefile -+++ VirtualBox-6.1.10/src/VBox/HostDrivers/linux/Makefile -@@ -35,9 +35,6 @@ endif - ifneq ($(wildcard $(CURDIR)/vboxnetadp/Makefile),) - obj-m += vboxnetadp/ - endif --ifneq ($(wildcard $(CURDIR)/vboxpci/Makefile),) -- obj-m += vboxpci/ --endif - - else # ! KERNELRELEASE - -@@ -45,10 +42,11 @@ else # ! KERNELRELEASE +--- VirtualBox-6.1.13.orig/src/VBox/HostDrivers/linux/Makefile ++++ VirtualBox-6.1.13/src/VBox/HostDrivers/linux/Makefile +@@ -42,8 +41,9 @@ else # ! KERNELRELEASE KBUILD_VERBOSE ?= KERN_VER ?= $(shell uname -r) @@ -22,15 +12,12 @@ Index: VirtualBox-6.1.10/src/VBox/HostDrivers/linux/Makefile + +.PHONY: all install clean check unload load vboxdrv vboxnetflt vboxnetadp --all: vboxdrv vboxnetflt vboxnetadp vboxpci -+all: vboxdrv vboxnetflt vboxnetadp + all: vboxdrv vboxnetflt vboxnetadp - # We want to build on Linux 2.6.18 and later kernels. - ifneq ($(filter-out 1.% 2.0.% 2.1.% 2.2.% 2.3.% 2.4.% 2.5.%,$(KERN_VER)),) -@@ -61,55 +59,38 @@ vboxdrv: +@@ -58,22 +58,18 @@ vboxdrv: vboxnetflt: vboxdrv - @if [ -d vboxnetflt ]; then \ + +@if [ -d vboxnetflt ]; then \ - if [ -f vboxdrv/Module.symvers ]; then \ - cp vboxdrv/Module.symvers vboxnetflt; \ - fi; \ @@ -43,7 +30,7 @@ Index: VirtualBox-6.1.10/src/VBox/HostDrivers/linux/Makefile fi vboxnetadp: vboxdrv - @if [ -d vboxnetadp ]; then \ + +@if [ -d vboxnetadp ]; then \ - if [ -f vboxdrv/Module.symvers ]; then \ - cp vboxdrv/Module.symvers vboxnetadp; \ - fi; \ @@ -54,73 +41,22 @@ Index: VirtualBox-6.1.10/src/VBox/HostDrivers/linux/Makefile cp vboxnetadp/vboxnetadp.ko .; \ echo; \ fi - --vboxpci: vboxdrv -- @if [ -d vboxpci ]; then \ -- if [ -f vboxdrv/Module.symvers ]; then \ -- cp vboxdrv/Module.symvers vboxpci; \ -- fi; \ -- echo "=== Building 'vboxpci' module ==="; \ -- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxpci/Module.symvers) -C vboxpci || exit 1; \ -- cp vboxpci/vboxpci.ko .; \ -- echo; \ -- fi -- +@@ -81,9 +77,11 @@ vboxnetadp: vboxdrv install: - @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv install - @if [ -d vboxnetflt ]; then \ + +@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv install + +@if [ -d vboxnetflt ]; then \ + export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxdrv/Module.symvers; \ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetflt install; \ fi - @if [ -d vboxnetadp ]; then \ + +@if [ -d vboxnetadp ]; then \ + export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxdrv/Module.symvers; \ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp install; \ fi -- @if [ -d vboxpci ]; then \ -- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxpci install; \ -- fi - else - - vboxdrv: - vboxnetflt: - vboxnetadp: --vboxpci: - install: - - endif -@@ -122,16 +103,13 @@ clean: - @if [ -d vboxnetadp ]; then \ - $(MAKE) -C vboxnetadp clean; \ - fi -- @if [ -d vboxpci ]; then \ -- $(MAKE) -C vboxpci clean; \ -- fi -- rm -f vboxdrv.ko vboxnetflt.ko vboxnetadp.ko vboxpci.ko -+ rm -f vboxdrv.ko vboxnetflt.ko vboxnetadp.ko - - check: - @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv check - - unload: -- @for module in vboxpci vboxnetadp vboxnetflt vboxdrv; do \ -+ @for module in vboxnetadp vboxnetflt vboxdrv; do \ - if grep "^$$module " /proc/modules >/dev/null; then \ - echo "Removing previously installed $$module module"; \ - /sbin/rmmod $$module; \ -@@ -139,7 +117,7 @@ unload: - done - - load: unload -- @for module in vboxdrv vboxnetflt vboxnetadp vboxpci; do \ -+ @for module in vboxdrv vboxnetflt vboxnetadp; do \ - if test -f $$module.ko; then \ - echo "Installing $$module module"; \ - /sbin/insmod $$module.ko; \ -Index: VirtualBox-6.1.10/src/VBox/Additions/linux/Makefile +Index: VirtualBox-6.1.13/src/VBox/Additions/linux/Makefile =================================================================== ---- VirtualBox-6.1.10.orig/src/VBox/Additions/linux/Makefile -+++ VirtualBox-6.1.10/src/VBox/Additions/linux/Makefile +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/Makefile ++++ VirtualBox-6.1.13/src/VBox/Additions/linux/Makefile @@ -24,6 +24,7 @@ obj-m = vboxguest/ vboxsf/ vboxvideo/ else # ! KERNELRELEASE @@ -147,21 +83,21 @@ Index: VirtualBox-6.1.10/src/VBox/Additions/linux/Makefile if [ -f vboxvideo/vboxvideo.ko ]; then \ @@ -77,9 +80,11 @@ vboxvideo: install: - $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install - $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \ + + $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install + + $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \ + export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxsf/Module.symvers; \ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf install; \ fi - $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \ + + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \ + export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxvideo/Module.symvers; \ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo install; \ fi -Index: VirtualBox-6.1.10/include/iprt/x86.h +Index: VirtualBox-6.1.13/include/iprt/x86.h =================================================================== ---- VirtualBox-6.1.10.orig/include/iprt/x86.h -+++ VirtualBox-6.1.10/include/iprt/x86.h -@@ -840,37 +840,59 @@ typedef const X86CPUIDFEATEDX *PCX86CPUI +--- VirtualBox-6.1.13.orig/include/iprt/x86.h ++++ VirtualBox-6.1.13/include/iprt/x86.h +@@ -858,37 +858,59 @@ typedef const X86CPUIDFEATEDX *PCX86CPUI * reserved flags. * @{ */ /** Bit 0 - PE - Protection Enabled */ @@ -221,7 +157,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h #define X86_CR0_PAGING RT_BIT_32(31) #define X86_CR0_BIT_PG 31 /**< Bit number of X86_CR0_PG */ /** @} */ -@@ -879,9 +901,13 @@ typedef const X86CPUIDFEATEDX *PCX86CPUI +@@ -897,9 +919,13 @@ typedef const X86CPUIDFEATEDX *PCX86CPUI /** @name CR3 * @{ */ /** Bit 3 - PWT - Page-level Writes Transparent. */ @@ -235,7 +171,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** Bits 12-31 - - Page directory page number. */ #define X86_CR3_PAGE_MASK (0xfffff000) /** Bits 5-31 - - PAE Page directory page number. */ -@@ -894,46 +920,84 @@ typedef const X86CPUIDFEATEDX *PCX86CPUI +@@ -912,46 +938,84 @@ typedef const X86CPUIDFEATEDX *PCX86CPUI /** @name CR4 * @{ */ /** Bit 0 - VME - Virtual-8086 Mode Extensions. */ @@ -320,7 +256,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** Bit 23 - CET - Control-flow Enhancement Technology enabled. */ #define X86_CR4_CET RT_BIT_32(23) /** @} */ -@@ -1147,12 +1211,16 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1165,12 +1229,16 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C /** Machine check type register (P5). */ #define MSR_P5_MC_TYPE UINT32_C(0x00000001) /** Time Stamp Counter. */ @@ -337,7 +273,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h #ifndef MSR_IA32_APICBASE /* qemu cpu.h kludge */ # define MSR_IA32_APICBASE 0x1b -@@ -1178,7 +1246,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1196,7 +1264,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #define MSR_CORE_THREAD_COUNT 0x35 /** CPU Feature control. */ @@ -347,7 +283,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** Feature control - Lock MSR from writes (R/W0). */ #define MSR_IA32_FEATURE_CONTROL_LOCK RT_BIT_64(0) /** Feature control - Enable VMX inside SMX operation (R/WL). */ -@@ -1203,11 +1273,15 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1221,11 +1291,15 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #define MSR_IA32_FEATURE_CONTROL_LMCE RT_BIT_64(20) /** Per-processor TSC adjust MSR. */ @@ -363,7 +299,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** IBRS - Indirect branch restricted speculation. */ #define MSR_IA32_SPEC_CTRL_F_IBRS RT_BIT_32(0) /** STIBP - Single thread indirect branch predictors. */ -@@ -1215,7 +1289,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1235,7 +1309,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C /** Prediction command register. * Write only, logical processor scope, no state since write only. */ @@ -373,7 +309,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** IBPB - Indirect branch prediction barrie when written as 1. */ #define MSR_IA32_PRED_CMD_F_IBPB RT_BIT_32(0) -@@ -1226,7 +1302,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1246,7 +1322,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #define MSR_IA32_BIOS_SIGN_ID 0x8B /** SMM monitor control. */ @@ -383,7 +319,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** SMM control - Valid. */ #define MSR_IA32_SMM_MONITOR_VALID RT_BIT_64(0) /** SMM control - VMXOFF unblocks SMI. */ -@@ -1235,10 +1313,14 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1255,10 +1333,14 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #define MSR_IA32_SMM_MONITOR_MSGEG_PHYSADDR(a) (((a) >> 12) & UINT64_C(0xfffff)) /** SMBASE - Base address of SMRANGE image (Read-only, SMM only). */ @@ -398,7 +334,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** General performance counter no. 1. */ #define MSR_IA32_PMC1 0xC2 /** General performance counter no. 2. */ -@@ -1261,18 +1343,26 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1281,18 +1363,26 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #define MSR_IA32_FSB_CLOCK_STS 0xCD /** C-State configuration control. Intel specific: Nehalem, Sandy Bridge. */ @@ -425,7 +361,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** CPU is no subject to meltdown problems. */ #define MSR_IA32_ARCH_CAP_F_RDCL_NO RT_BIT_32(0) /** CPU has better IBRS and you can leave it on all the time. */ -@@ -1286,7 +1376,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1306,7 +1396,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #define MSR_IA32_ARCH_CAP_F_MDS_NO RT_BIT_32(4) /** Flush command register. */ @@ -435,7 +371,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** Flush the level 1 data cache when this bit is written. */ #define MSR_IA32_FLUSH_CMD_F_L1D RT_BIT_32(0) -@@ -1307,14 +1399,20 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1327,14 +1419,20 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #endif /** Machine Check Global Capabilities Register. */ @@ -456,7 +392,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** Default PAT MSR value on processor powerup / reset (see Intel spec. 11.12.4 * "Programming the PAT", AMD spec. 7.8.2 "PAT Indexing") */ #define MSR_IA32_CR_PAT_INIT_VAL UINT64_C(0x0007040600070406) -@@ -1333,36 +1431,58 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1353,36 +1451,58 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #define MSR_FLEX_RATIO 0x194 /** Performance state value and starting with Intel core more. * Apple uses the >=core features to determine TSC granularity on older CPUs. */ @@ -515,7 +451,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** Trace/Profile Resource Control (R/W) */ #define MSR_IA32_DEBUGCTL UINT32_C(0x000001d9) -@@ -1500,7 +1620,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1520,7 +1640,9 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C /** @} */ /** Intel TSX (Transactional Synchronization Extensions) control MSR. */ @@ -525,7 +461,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** Variable range MTRRs. * @{ */ -@@ -1550,89 +1672,167 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1570,89 +1692,167 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #define MSR_IA32_PERF_GLOBAL_OVF_CTRL 0x390 /** Precise Event Based sampling (Intel only). */ @@ -693,7 +629,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** X2APIC MSR range start. */ #define MSR_IA32_X2APIC_START 0x800 -@@ -1767,23 +1967,47 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1787,23 +1987,47 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C /** The mask which give the SYSCALL EIP. */ #define MSR_K6_STAR_SYSCALL_EIP_MASK UINT32_C(0xffffffff) /** K6 WHCR - Write Handling Control Register. */ @@ -741,7 +677,7 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h /** K8 LSTAR - Long mode SYSCALL target (RIP). */ #define MSR_K8_LSTAR UINT32_C(0xc0000082) -@@ -1799,14 +2023,20 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C +@@ -1819,14 +2043,20 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C #define MSR_K8_KERNEL_GS_BASE UINT32_C(0xc0000102) /** K8 TSC_AUX - Used with RDTSCP. */ #define MSR_K8_TSC_AUX UINT32_C(0xc0000103) @@ -759,13 +695,13 @@ Index: VirtualBox-6.1.10/include/iprt/x86.h +#ifndef MSR_K8_TOP_MEM2 #define MSR_K8_TOP_MEM2 UINT32_C(0xc001001d) +#endif - /** North bridge config? See BIOS & Kernel dev guides for - * details. */ - #define MSR_K8_NB_CFG UINT32_C(0xc001001f) -Index: VirtualBox-6.1.10/include/VBox/vmm/hm_vmx.h + + /** SMM MSRs. */ + #define MSR_K7_SMBASE UINT32_C(0xc0010111) +Index: VirtualBox-6.1.13/include/VBox/vmm/hm_vmx.h =================================================================== ---- VirtualBox-6.1.10.orig/include/VBox/vmm/hm_vmx.h -+++ VirtualBox-6.1.10/include/VBox/vmm/hm_vmx.h +--- VirtualBox-6.1.13.orig/include/VBox/vmm/hm_vmx.h ++++ VirtualBox-6.1.13/include/VBox/vmm/hm_vmx.h @@ -1473,7 +1473,9 @@ AssertCompileSize(VMXABORT, 4); /** VMCS (and related regions) memory type - Uncacheable. */ #define VMX_BASIC_MEM_TYPE_UC 0 @@ -776,20 +712,20 @@ Index: VirtualBox-6.1.10/include/VBox/vmm/hm_vmx.h /** Width of physical addresses used for VMCS and associated memory regions * (1=32-bit, 0=processor's physical address width). */ #define VMX_BASIC_PHYSADDR_WIDTH_32BIT RT_BIT_64(48) -Index: VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_drv.h +Index: VirtualBox-6.1.13/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 -@@ -86,10 +86,8 @@ - # endif - #endif - --#if defined(CONFIG_SUSE_VERSION) --# if CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 1 --# define OPENSUSE_151 --# endif -+#if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 1 -+# define OPENSUSE_151 +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/drm/vbox_drv.h ++++ VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_drv.h +@@ -87,6 +87,12 @@ + #else + # define RTLNX_RHEL_MAX(a_iMajor, a_iMinor) (0) #endif ++ ++#if defined(CONFIG_SUSE_VERSION) ++# if CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 1 ++# define OPENSUSE_151 ++# endif ++#endif #if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4 # define SUSE_SLE12 + #endif diff --git a/fixes_for_python.patch b/fixes_for_python.patch index 4a86ae7..6e01911 100644 --- a/fixes_for_python.patch +++ b/fixes_for_python.patch @@ -6,14 +6,13 @@ to "#!/usr/bin/python3". Larry Finger -Index: VirtualBox-5.1.30/src/VBox/Frontends/VBoxShell/vboxshell.py +Index: VirtualBox-6.1.13/src/VBox/Frontends/VBoxShell/vboxshell.py =================================================================== ---- VirtualBox-5.1.30.orig/src/VBox/Frontends/VBoxShell/vboxshell.py -+++ VirtualBox-5.1.30/src/VBox/Frontends/VBoxShell/vboxshell.py +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VBoxShell/vboxshell.py ++++ VirtualBox-6.1.13/src/VBox/Frontends/VBoxShell/vboxshell.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- - # $Id: vboxshell.py $ + # $Id: vboxshell.py 82968 2020-02-04 10:35:17Z vboxsync $ - diff --git a/fixes_for_sle12.patch b/fixes_for_sle12.patch index cfdc71d..9001870 100644 --- a/fixes_for_sle12.patch +++ b/fixes_for_sle12.patch @@ -1,38 +1,25 @@ -Index: VirtualBox-6.1.10/src/VBox/Runtime/r0drv/linux/waitqueue-r0drv-linux.h +Index: VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_drv.c =================================================================== ---- 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) +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/drm/vbox_drv.c ++++ VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_drv.c +@@ -325,7 +325,9 @@ static struct drm_driver driver = { + .master_drop = vbox_master_drop, + #if RTLNX_VER_MIN(3,18,0) || RTLNX_RHEL_MAJ_PREREQ(7,2) + # if RTLNX_VER_MAX(4,14,0) && !RTLNX_RHEL_MAJ_PREREQ(7,5) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) +#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 +Index: VirtualBox-6.1.13/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 +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/drm/vbox_main.c ++++ VirtualBox-6.1.13/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 RTLNX_VER_MAX(4,19,0) && !RTLNX_RHEL_MAJ_PREREQ(7,7) && !RTLNX_RHEL_MAJ_PREREQ(8,1) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) +#if !(defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4) static void ttm_bo_put(struct ttm_buffer_object *bo) { @@ -43,143 +30,143 @@ Index: VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_main.c void vbox_gem_free_object(struct drm_gem_object *obj) { -Index: VirtualBox-6.1.10/src/VBox/Additions/linux/drm/vbox_ttm.c +Index: VirtualBox-6.1.13/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 +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/drm/vbox_ttm.c ++++ VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_ttm.c +@@ -210,7 +210,7 @@ static struct ttm_backend_func vbox_tt_b + .destroy = &vbox_ttm_backend_destroy, }; - #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)) && !defined(RHEL_76) \ -- && !defined(OPENSUSE_151) -+ && !defined(OPENSUSE_151) && !defined(SUSE_SLE12) +-#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !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 +@@ -227,7 +227,7 @@ static struct ttm_tt *vbox_ttm_tt_create + return NULL; 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 RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !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 +@@ -240,7 +240,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) + #if RTLNX_VER_MAX(4,17,0) +-# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) ++# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !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 +@@ -274,7 +274,7 @@ static struct ttm_bo_driver vbox_bo_driv + .io_mem_reserve = &vbox_ttm_io_mem_reserve, .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) + #if RTLNX_VER_MIN(4,12,0) || RTLNX_RHEL_MAJ_PREREQ(7,5) +-# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) ++# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !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 +@@ -421,7 +421,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) +-#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !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 +@@ -450,7 +450,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) +-#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) || 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 +@@ -468,7 +468,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 + for (i = 0; i < bo->placement.num_placement; i++) 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) +-#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !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 +@@ -486,7 +486,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) +-#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) || 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) +@@ -502,7 +502,7 @@ int vbox_bo_unpin(struct vbox_bo *bo) + for (i = 0; i < bo->placement.num_placement; i++) 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) +-#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !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) +@@ -520,7 +520,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) +-#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) || 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 * +@@ -541,7 +541,7 @@ int vbox_bo_push_sysram(struct vbox_bo * + for (i = 0; i < bo->placement.num_placement; i++) 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) +-#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !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 +Index: VirtualBox-6.1.13/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 +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/drm/vbox_drv.h ++++ VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_drv.h +@@ -87,6 +87,9 @@ + #else + # define RTLNX_RHEL_MAX(a_iMajor, a_iMinor) (0) #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 + /** @def RTLNX_RHEL_RANGE + * Check that it's a RedHat kernel in the given version range. +Index: VirtualBox-6.1.13/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 +--- VirtualBox-6.1.13.orig/src/VBox/Additions/linux/drm/vbox_mode.c ++++ VirtualBox-6.1.13/src/VBox/Additions/linux/drm/vbox_mode.c +@@ -544,7 +544,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) +-#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MAJ_PREREQ(7,7) || RTLNX_RHEL_MAJ_PREREQ(8,1) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MAJ_PREREQ(7,7) || \ ++ defined(SUSE_SLE12) || RTLNX_RHEL_MAJ_PREREQ(8,1) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) 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 +@@ -719,7 +720,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) +-#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MAJ_PREREQ(7,7) || RTLNX_RHEL_MAJ_PREREQ(8,1) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) ++#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MAJ_PREREQ(7,7) || defined(SUSE_SLE12) || RTLNX_RHEL_MAJ_PREREQ(8,1) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) drm_connector_attach_encoder(connector, encoder); #else drm_mode_connector_attach_encoder(connector, encoder); diff --git a/modify_for_4_8_bo_move.patch b/modify_for_4_8_bo_move.patch index 8302cc8..ec34f63 100644 --- a/modify_for_4_8_bo_move.patch +++ b/modify_for_4_8_bo_move.patch @@ -1,7 +1,7 @@ -Index: VirtualBox-6.0.2/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c +Index: VirtualBox-6.1.13/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c =================================================================== ---- VirtualBox-6.0.2.orig/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c -+++ VirtualBox-6.0.2/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c +--- VirtualBox-6.1.13.orig/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c ++++ VirtualBox-6.1.13/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c @@ -35,7 +35,7 @@ #include #include @@ -10,8 +10,8 @@ Index: VirtualBox-6.0.2/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c +#include #if (defined(RT_ARCH_AMD64) || defined(DOXYGEN_RUNNING)) && !defined(RTMEMALLOC_EXEC_HEAP) - # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) -@@ -294,6 +294,7 @@ DECLHIDDEN(int) rtR0MemAllocEx(size_t cb + # if RTLNX_VER_MIN(2,6,23) && RTLNX_VER_MAX(5,8,0) +@@ -296,6 +296,7 @@ DECLHIDDEN(int) rtR0MemAllocEx(size_t cb fFlags &= ~RTMEMHDR_FLAG_KMALLOC; pHdr = vmalloc(cb + sizeof(*pHdr)); } diff --git a/switch_to_python3.4+.patch b/switch_to_python3.4+.patch index 5aab215..b48764d 100644 --- a/switch_to_python3.4+.patch +++ b/switch_to_python3.4+.patch @@ -1,7 +1,7 @@ -Index: VirtualBox-6.1.0/src/bldprogs/scm.cpp +Index: VirtualBox-6.1.13/src/bldprogs/scm.cpp =================================================================== ---- VirtualBox-6.1.0.orig/src/bldprogs/scm.cpp -+++ VirtualBox-6.1.0/src/bldprogs/scm.cpp +--- VirtualBox-6.1.13.orig/src/bldprogs/scm.cpp ++++ VirtualBox-6.1.13/src/bldprogs/scm.cpp @@ -2206,7 +2206,7 @@ static int scmProcessFileInner(PSCMRWSTA pszTreatAs = "shell"; else if ( (cchFirst >= 15 && strncmp(pchFirst, "/usr/bin/python", 15) == 0) @@ -11,10 +11,10 @@ Index: VirtualBox-6.1.0/src/bldprogs/scm.cpp else if ( (cchFirst >= 13 && strncmp(pchFirst, "/usr/bin/perl", 13) == 0) || (cchFirst >= 17 && strncmp(pchFirst, "/usr/bin/env perl", 17) == 0) ) pszTreatAs = "perl"; -Index: VirtualBox-6.1.0/src/libs/libxml2-2.9.4/configure +Index: VirtualBox-6.1.13/src/libs/libxml2-2.9.4/configure =================================================================== ---- VirtualBox-6.1.0.orig/src/libs/libxml2-2.9.4/configure -+++ VirtualBox-6.1.0/src/libs/libxml2-2.9.4/configure +--- VirtualBox-6.1.13.orig/src/libs/libxml2-2.9.4/configure ++++ VirtualBox-6.1.13/src/libs/libxml2-2.9.4/configure @@ -15153,10 +15153,10 @@ PYTHON_SITE_PACKAGES= PYTHON_TESTS= pythondir= @@ -39,11 +39,11 @@ Index: VirtualBox-6.1.0/src/libs/libxml2-2.9.4/configure { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON+:} false; then : -Index: VirtualBox-6.1.0/src/VBox/ValidationKit/testboxscript/setup.sh +Index: VirtualBox-6.1.13/src/VBox/ValidationKit/testboxscript/setup.sh =================================================================== ---- VirtualBox-6.1.0.orig/src/VBox/ValidationKit/testboxscript/setup.sh -+++ VirtualBox-6.1.0/src/VBox/ValidationKit/testboxscript/setup.sh -@@ -652,7 +652,7 @@ import sys;\ +--- VirtualBox-6.1.13.orig/src/VBox/ValidationKit/testboxscript/setup.sh ++++ VirtualBox-6.1.13/src/VBox/ValidationKit/testboxscript/setup.sh +@@ -659,7 +659,7 @@ import sys;\ x = sys.version_info[0] == 2 and (sys.version_info[1] >= 6 or (sys.version_info[1] == 5 and sys.version_info[2] >= 1));\ sys.exit(not x);\ "; @@ -52,12 +52,12 @@ Index: VirtualBox-6.1.0/src/VBox/ValidationKit/testboxscript/setup.sh do python=`which ${python} 2> /dev/null` if [ -n "${python}" -a -x "${python}" ]; then -Index: VirtualBox-6.1.0/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec +Index: VirtualBox-6.1.13/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec =================================================================== ---- VirtualBox-6.1.0.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec -+++ VirtualBox-6.1.0/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec -@@ -20,7 +20,7 @@ - %define %PYTHON% 1 +--- VirtualBox-6.1.13.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec ++++ VirtualBox-6.1.13/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec +@@ -21,7 +21,7 @@ + %define %CHM% 1 %define VBOXDOCDIR %{_defaultdocdir}/%NAME% %global __requires_exclude_from ^/usr/lib/virtualbox/VBoxPython.*$ -%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} @@ -65,7 +65,7 @@ Index: VirtualBox-6.1.0/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec Summary: Oracle VM VirtualBox Name: %NAME% -@@ -100,7 +100,7 @@ install -m 755 -d $RPM_BUILD_ROOT/usr/sh +@@ -101,7 +101,7 @@ install -m 755 -d $RPM_BUILD_ROOT/usr/sh %if %{?with_python:1}%{!?with_python:0} (export VBOX_INSTALL_PATH=/usr/lib/virtualbox && \ cd ./sdk/installer && \ @@ -74,10 +74,10 @@ Index: VirtualBox-6.1.0/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec %endif rm -rf sdk/installer mv nls $RPM_BUILD_ROOT/usr/share/virtualbox -Index: VirtualBox-6.1.0/src/libs/libxml2-2.9.4/libxml.spec.in +Index: VirtualBox-6.1.13/src/libs/libxml2-2.9.4/libxml.spec.in =================================================================== ---- VirtualBox-6.1.0.orig/src/libs/libxml2-2.9.4/libxml.spec.in -+++ VirtualBox-6.1.0/src/libs/libxml2-2.9.4/libxml.spec.in +--- VirtualBox-6.1.13.orig/src/libs/libxml2-2.9.4/libxml.spec.in ++++ VirtualBox-6.1.13/src/libs/libxml2-2.9.4/libxml.spec.in @@ -101,11 +101,11 @@ rm -fr %{buildroot} make install DESTDIR=%{buildroot} @@ -93,10 +93,10 @@ Index: VirtualBox-6.1.0/src/libs/libxml2-2.9.4/libxml.spec.in rm -f $RPM_BUILD_ROOT%{_libdir}/*.la -Index: VirtualBox-6.1.0/src/libs/libxml2-2.9.4/libxml2.spec +Index: VirtualBox-6.1.13/src/libs/libxml2-2.9.4/libxml2.spec =================================================================== ---- VirtualBox-6.1.0.orig/src/libs/libxml2-2.9.4/libxml2.spec -+++ VirtualBox-6.1.0/src/libs/libxml2-2.9.4/libxml2.spec +--- VirtualBox-6.1.13.orig/src/libs/libxml2-2.9.4/libxml2.spec ++++ VirtualBox-6.1.13/src/libs/libxml2-2.9.4/libxml2.spec @@ -103,7 +103,7 @@ make install DESTDIR=%{buildroot} %if 0%{?with_python3} @@ -106,10 +106,10 @@ Index: VirtualBox-6.1.0/src/libs/libxml2-2.9.4/libxml2.spec make install DESTDIR=%{buildroot} %endif # with_python3 -Index: VirtualBox-6.1.0/src/libs/xpcom18a4/python/src/ErrorUtils.cpp +Index: VirtualBox-6.1.13/src/libs/xpcom18a4/python/src/ErrorUtils.cpp =================================================================== ---- VirtualBox-6.1.0.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp -+++ VirtualBox-6.1.0/src/libs/xpcom18a4/python/src/ErrorUtils.cpp +--- VirtualBox-6.1.13.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp ++++ VirtualBox-6.1.13/src/libs/xpcom18a4/python/src/ErrorUtils.cpp @@ -439,6 +439,8 @@ char *PyTraceback_AsString(PyObject *exc { // a temp scope so I can use temp locals. #if PY_MAJOR_VERSION <= 2 @@ -119,10 +119,10 @@ Index: VirtualBox-6.1.0/src/libs/xpcom18a4/python/src/ErrorUtils.cpp #else /* PyUnicode_AsUTF8() is const char * as of Python 3.7, char * earlier. */ const char *tempResult = (const char *)PyUnicode_AsUTF8(obResult); -Index: VirtualBox-6.1.0/src/libs/xpcom18a4/python/src/PyGBase.cpp +Index: VirtualBox-6.1.13/src/libs/xpcom18a4/python/src/PyGBase.cpp =================================================================== ---- VirtualBox-6.1.0.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp -+++ VirtualBox-6.1.0/src/libs/xpcom18a4/python/src/PyGBase.cpp +--- VirtualBox-6.1.13.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp ++++ VirtualBox-6.1.13/src/libs/xpcom18a4/python/src/PyGBase.cpp @@ -183,7 +183,11 @@ PyG_Base::~PyG_Base() // Get the correct interface pointer for this object given the IID. void *PyG_Base::ThisAsIID( const nsIID &iid ) @@ -136,11 +136,11 @@ Index: VirtualBox-6.1.0/src/libs/xpcom18a4/python/src/PyGBase.cpp if (iid.Equals(NS_GET_IID(nsISupports))) return (nsISupports *)(nsIInternalPython *)this; if (iid.Equals(NS_GET_IID(nsISupportsWeakReference))) -Index: VirtualBox-6.1.0/src/libs/xpcom18a4/python/Makefile.kmk +Index: VirtualBox-6.1.13/src/libs/xpcom18a4/python/Makefile.kmk =================================================================== ---- VirtualBox-6.1.0.orig/src/libs/xpcom18a4/python/Makefile.kmk -+++ VirtualBox-6.1.0/src/libs/xpcom18a4/python/Makefile.kmk -@@ -533,6 +533,52 @@ VBoxPython3_8m_x86_LIBS = $(VBOX_P +--- VirtualBox-6.1.13.orig/src/libs/xpcom18a4/python/Makefile.kmk ++++ VirtualBox-6.1.13/src/libs/xpcom18a4/python/Makefile.kmk +@@ -554,6 +554,52 @@ VBoxPython3_8m_x86_LIBS = $(VBOX_P endif endif @@ -193,10 +193,10 @@ Index: VirtualBox-6.1.0/src/libs/xpcom18a4/python/Makefile.kmk ifdef VBOX_PYTHONDEF_INC # # Python without versioning -Index: VirtualBox-6.1.0/src/libs/xpcom18a4/python/gen_python_deps.py +Index: VirtualBox-6.1.13/src/libs/xpcom18a4/python/gen_python_deps.py =================================================================== ---- VirtualBox-6.1.0.orig/src/libs/xpcom18a4/python/gen_python_deps.py -+++ VirtualBox-6.1.0/src/libs/xpcom18a4/python/gen_python_deps.py +--- VirtualBox-6.1.13.orig/src/libs/xpcom18a4/python/gen_python_deps.py ++++ VirtualBox-6.1.13/src/libs/xpcom18a4/python/gen_python_deps.py @@ -16,7 +16,7 @@ from __future__ import print_function import os,sys from distutils.version import StrictVersion diff --git a/virtualbox-fix-ui-background-color.patch b/virtualbox-fix-ui-background-color.patch index df8d3c2..3c96cd9 100644 --- a/virtualbox-fix-ui-background-color.patch +++ b/virtualbox-fix-ui-background-color.patch @@ -1,8 +1,8 @@ -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp -@@ -114,10 +114,6 @@ void UITools::preparePalette() +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp +@@ -124,10 +124,6 @@ void UITools::preparePalette() { /* Setup palette: */ setAutoFillBackground(true); @@ -13,11 +13,11 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UI } void UITools::prepareLayout() -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp -@@ -1328,7 +1328,7 @@ void UIVirtualBoxManager::prepareMenuBar +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp +@@ -2033,7 +2033,7 @@ void UIVirtualBoxManager::prepareMenuBar /* Make sure menu-bar fills own solid background: */ menuBar()->setAutoFillBackground(true); QPalette pal = menuBar()->palette(); @@ -26,13 +26,13 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/UIVirtua pal.setColor(QPalette::Active, QPalette::Button, color); menuBar()->setPalette(pal); } -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp -@@ -121,10 +121,6 @@ void UIChooser::preparePalette() +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp +@@ -193,10 +193,6 @@ void UIChooser::prepare() + void UIChooser::preparePalette() { - /* Setup palette: */ setAutoFillBackground(true); - QPalette pal = palette(); - QColor bodyColor = pal.color(QPalette::Active, QPalette::Midlight).darker(110); @@ -40,12 +40,12 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/ - setPalette(pal); } - void UIChooser::prepareLayout() -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp + void UIChooser::prepareModel() +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp -@@ -902,7 +902,7 @@ void UIChooserItemMachine::paintBackgrou +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp +@@ -960,7 +960,7 @@ void UIChooserItemMachine::paintBackgrou else { /* Prepare color: */ @@ -54,7 +54,7 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/ /* Draw gradient: */ QLinearGradient bgGrad(rectangle.topLeft(), rectangle.bottomLeft()); bgGrad.setColorAt(0, backgroundColor.lighter(m_iDefaultLightnessMax)); -@@ -931,7 +931,7 @@ void UIChooserItemMachine::paintBackgrou +@@ -989,7 +989,7 @@ void UIChooserItemMachine::paintBackgrou /* Default background: */ else { @@ -63,7 +63,7 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/ color1 = backgroundColor.lighter(m_iDefaultLightnessMax); color2 = backgroundColor.lighter(m_iDefaultLightnessMax - 70); } -@@ -952,7 +952,7 @@ void UIChooserItemMachine::paintBackgrou +@@ -1010,7 +1010,7 @@ void UIChooserItemMachine::paintBackgrou /* Default background: */ else { @@ -72,7 +72,7 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/ color1 = backgroundColor.lighter(m_iDefaultLightnessMin); color2 = backgroundColor.lighter(m_iDefaultLightnessMin - 40); } -@@ -987,7 +987,7 @@ void UIChooserItemMachine::paintFrame(QP +@@ -1045,7 +1045,7 @@ void UIChooserItemMachine::paintFrame(QP strokeColor = pal.color(QPalette::Active, QPalette::Highlight).lighter(m_iHoverLightnessMin - 50); /* Default frame: */ else @@ -81,11 +81,11 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/ /* Create/assign pen: */ QPen pen(strokeColor); -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp -@@ -710,7 +710,7 @@ void UIToolsItem::paintBackground(QPaint +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp +@@ -716,7 +716,7 @@ void UIToolsItem::paintBackground(QPaint /* Prepare color: */ const QColor backgroundColor = isEnabled() ? pal.color(QPalette::Active, QPalette::Highlight) @@ -94,7 +94,7 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UI /* Draw gradient: */ QLinearGradient bgGrad(rectangle.topLeft(), rectangle.bottomLeft()); bgGrad.setColorAt(0, backgroundColor.lighter(m_iHighlightLightnessMax)); -@@ -749,7 +749,7 @@ void UIToolsItem::paintBackground(QPaint +@@ -755,7 +755,7 @@ void UIToolsItem::paintBackground(QPaint /* Prepare color: */ const QColor backgroundColor = isEnabled() ? pal.color(QPalette::Active, QPalette::Highlight) @@ -103,7 +103,7 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UI /* Draw gradient: */ QLinearGradient bgGrad(rectangle.topLeft(), rectangle.bottomLeft()); bgGrad.setColorAt(0, backgroundColor.lighter(m_iHoverLightnessMax)); -@@ -787,8 +787,8 @@ void UIToolsItem::paintBackground(QPaint +@@ -793,8 +793,8 @@ void UIToolsItem::paintBackground(QPaint { /* Prepare color: */ const QColor backgroundColor = isEnabled() @@ -114,7 +114,7 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UI /* Draw gradient: */ QLinearGradient bgGrad(rectangle.topLeft(), rectangle.bottomLeft()); bgGrad.setColorAt(0, backgroundColor.lighter(m_iDefaultLightnessMax)); -@@ -821,7 +821,7 @@ void UIToolsItem::paintFrame(QPainter *p +@@ -827,7 +827,7 @@ void UIToolsItem::paintFrame(QPainter *p strokeColor = pal.color(QPalette::Active, QPalette::Highlight).lighter(m_iHoverLightnessMin - 50); /* Default frame: */ else @@ -123,13 +123,13 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UI /* Create/assign pen: */ QPen pen(strokeColor); -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp -@@ -314,14 +314,6 @@ void UIVirtualBoxManagerWidget::prepare( +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp +@@ -493,14 +493,6 @@ void UIVirtualBoxManagerWidget::prepare( + void UIVirtualBoxManagerWidget::preparePalette() { - /* Configure palette: */ setAutoFillBackground(true); - QPalette pal = palette(); -#ifdef VBOX_WS_MAC @@ -139,10 +139,10 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/UIVirtua -#endif - pal.setColor(QPalette::Window, color); - setPalette(pal); + } - /* Prepare: */ - prepareWidgets(); -@@ -449,7 +441,7 @@ void UIVirtualBoxManagerWidget::prepareW + void UIVirtualBoxManagerWidget::prepareWidgets() +@@ -621,7 +613,7 @@ void UIVirtualBoxManagerWidget::prepareW } /* Adjust splitter colors according to main widgets it splits: */ @@ -151,11 +151,11 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/UIVirtua /* Set the initial distribution. The right site is bigger. */ m_pSplitter->setStretchFactor(0, 2); m_pSplitter->setStretchFactor(1, 3); -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp -@@ -643,7 +643,7 @@ void UIChooserItem::paintFlatButton(QPai +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp +@@ -647,7 +647,7 @@ void UIChooserItem::paintFlatButton(QPai /* Prepare colors: */ const QPalette pal = QApplication::palette(); @@ -164,25 +164,25 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/ /* Prepare pen: */ QPen pen; -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp -@@ -245,10 +245,6 @@ void UIChooserView::prepare() - void UIChooserView::preparePalette() +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserView.cpp +@@ -246,10 +246,6 @@ void UIChooserView::prepare() + void UIChooserView::prepareThis() { - /* Setup palette: */ + /* Prepare palette: */ - QPalette pal = qApp->palette(); - const QColor bodyColor = pal.color(QPalette::Active, QPalette::Midlight).darker(110); - pal.setColor(QPalette::Base, bodyColor); - setPalette(pal); - } - void UIChooserView::resizeEvent(QResizeEvent *pEvent) -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp + /* Prepare frame: */ + setFrameShape(QFrame::NoFrame); +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp @@ -182,10 +182,6 @@ void UIToolsView::prepare() void UIToolsView::preparePalette() { @@ -194,11 +194,11 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/tools/UI } void UIToolsView::resizeEvent(QResizeEvent *pEvent) -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp -@@ -1183,7 +1183,7 @@ void UIDetailsElement::paintBackground(Q +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp +@@ -1302,7 +1302,7 @@ void UIDetailsElement::paintBackground(Q const QPalette pal = palette(); /* Paint default background: */ @@ -207,7 +207,7 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/ const QColor dcTone1 = defaultColor.lighter(m_iDefaultToneFinal); const QColor dcTone2 = defaultColor.lighter(m_iDefaultToneStart); QLinearGradient gradientDefault(fullRect.topLeft(), fullRect.bottomLeft()); -@@ -1224,7 +1224,7 @@ void UIDetailsElement::paintFrame(QPaint +@@ -1343,7 +1343,7 @@ void UIDetailsElement::paintFrame(QPaint : optionRect; /* Paint frame: */ @@ -216,10 +216,10 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/ QPen pen(strokeColor); pen.setWidth(0); pPainter->setPen(pen); -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBar.cpp @@ -110,7 +110,7 @@ void UIToolBar::paintEvent(QPaintEvent * const QRect rectangle = pEvent->rect(); @@ -229,11 +229,11 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBa QLinearGradient gradient(rectangle.topLeft(), rectangle.bottomLeft()); gradient.setColorAt(0, backgroundColor.lighter(130)); gradient.setColorAt(1, backgroundColor.lighter(125)); -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp -@@ -700,7 +700,7 @@ void UIDetailsSet::paintBackground(QPain +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp +@@ -764,7 +764,7 @@ void UIDetailsSet::paintBackground(QPain const QRect optionRect = pOptions->rect; /* Paint default background: */ @@ -242,11 +242,11 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/ pPainter->fillRect(optionRect, defaultColor); /* Restore painter: */ -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp -@@ -639,7 +639,7 @@ void UIChooserItemGlobal::paintBackgroun +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp +@@ -644,7 +644,7 @@ void UIChooserItemGlobal::paintBackgroun pPainter->fillRect(rectangle, bgGrad); #else /* Prepare color: */ @@ -255,7 +255,7 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/ /* Draw gradient: */ pPainter->fillRect(rectangle, backgroundColor); #endif -@@ -670,7 +670,7 @@ void UIChooserItemGlobal::paintFrame(QPa +@@ -675,7 +675,7 @@ void UIChooserItemGlobal::paintFrame(QPa strokeColor = pal.color(QPalette::Active, QPalette::Highlight).lighter(m_iHoverLightnessMin - 50); /* Default frame: */ else @@ -264,11 +264,11 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/ /* Create/assign pen: */ QPen pen(strokeColor); -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp -@@ -277,7 +277,7 @@ void UIDetailsGroup::paintBackground(QPa +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.cpp +@@ -286,7 +286,7 @@ void UIDetailsGroup::paintBackground(QPa #ifdef VBOX_WS_MAC const QColor defaultColor = palette().color(QPalette::Active, QPalette::Mid).lighter(145); #else @@ -277,11 +277,11 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/details/ #endif pPainter->fillRect(optionRect, defaultColor); -Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp +Index: VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp =================================================================== ---- VirtualBox-6.1.0_BETA1.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp -+++ VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp -@@ -1499,7 +1499,7 @@ void UIChooserItemGroup::paintBackground +--- VirtualBox-6.1.13.orig/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp ++++ VirtualBox-6.1.13/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp +@@ -1579,7 +1579,7 @@ void UIChooserItemGroup::paintBackground const QPalette pal = palette(); const QColor headerColor = pal.color(QPalette::Active, model()->selectedItems().contains(this) ? @@ -290,7 +290,7 @@ Index: VirtualBox-6.1.0_BETA1/src/VBox/Frontends/VirtualBox/src/manager/chooser/ /* Root-item: */ if (isRoot()) -@@ -1596,7 +1596,7 @@ void UIChooserItemGroup::paintFrame(QPai +@@ -1676,7 +1676,7 @@ void UIChooserItemGroup::paintFrame(QPai const QPalette pal = palette(); const QColor strokeColor = pal.color(QPalette::Active, model()->selectedItems().contains(this) ? diff --git a/virtualbox.changes b/virtualbox.changes index 2f2a780..caa3030 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Fri Aug 28 20:56:29 UTC 2020 - Larry Finger + +- Pseudo version bump to 6.1.13, which is NOT an Oracle release. + + Update VB sources to run under kernel 5.8.0+ with no modifications to the + kernel. These sources are derived from r85883 of the Oracle svn repository. + For operations with USB{2,3}, the extension pack for revision 140056 must + be installed. Once Oracle releases 6.1.14, then the extension pack and + VB itself will have the same revision number. + + File "fixes_for_5.8.patch" is removed as that part was fixed upstream. + Fixes boo#1175201. + ------------------------------------------------------------------- Thu Aug 20 16:40:59 UTC 2020 - Larry Finger diff --git a/virtualbox.spec b/virtualbox.spec index 6a8fcb9..f70027c 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -66,7 +66,7 @@ python3 -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile # ********* If the VB version exceeds 6.1.x, notify the libvirt maintainer!! Name: virtualbox%{?dash}%{?name_suffix} -Version: 6.1.12 +Version: 6.1.13 Release: 0 Summary: %{package_summary} License: GPL-2.0-or-later @@ -179,10 +179,8 @@ Patch135: fix-missing-includes-with-qt-5.15.patch Patch136: fixes_for_gcc10.patch # Fix for changes in GSOAP 2.8.103 Patch137: handle_gsoap_208103.patch -# Fixes for kernel 5.8 -Patch138: fixes_for_5.8.patch # Fixes for kernel 5.9 -Patch139: fixes_for_5.9.patch +Patch138: fixes_for_5.9.patch Patch999: virtualbox-fix-ui-background-color.patch # @@ -284,7 +282,8 @@ Recommends: %{name}-gui = %{version} #rename from ose version: Provides: %{name}-ose = %{version} Obsoletes: %{name}-ose < %{version} -%endif # main_package +# end of main_package +%endif ### Requirements for virtualbox-kmp ### %if %{kmp_package} @@ -293,7 +292,8 @@ BuildRequires: libxml2-devel %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 +# end of kmp_package +%endif BuildRoot: %{_tmppath}/%{name}-%{version}-build ExclusiveArch: x86_64 @@ -448,13 +448,15 @@ Virtual Network Computing (VNC) is a graphical desktop sharing system that uses 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 +# main_package +%endif ### 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 +# kmp_package +%endif %prep %setup -q -n VirtualBox-%{version} @@ -503,7 +505,6 @@ This package contains the kernel-modules that VirtualBox uses to create or run v %patch136 -p1 %patch137 -p1 %patch138 -p1 -%patch139 -p1 # make VB UI background colors look sane again %patch999 -p1 @@ -517,7 +518,8 @@ cp %{SOURCE97} README.build cp %{SOURCE10} LocalConfig.kmk #copy autostart doc cp %{SOURCE20} README.autostart -%endif # main_package +# main_package +%endif # ########################## @@ -678,7 +680,6 @@ install -m 755 VBoxEFI*.fd %{buildroot}%{_vbox_instdir} install -m 755 VBoxSysInfo.sh %{buildroot}%{_vbox_instdir} install -m 644 *.so %{buildroot}%{_vbox_instdir} install -m 644 *.r0 %{buildroot}%{_vbox_instdir} -rm components/VBoxREM.so install -m 644 components/* %{buildroot}%{_vbox_instdir}/components/ # install languages install -m 644 nls/* %{buildroot}%{_datadir}/virtualbox/nls/ @@ -1087,7 +1088,8 @@ export DISABLE_RESTART_ON_UPDATE=yes %dir %{_datadir}/licenses %{_datadir}/licenses/LICENSE.vnc -%endif # main_package +# main_package +%endif ### %build and %install sections of virtualbox-kmp ### %if %{kmp_package} @@ -1221,6 +1223,7 @@ 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 +# kmp_package +%endif %changelog