configure | 3 ++- doc/manual/en_US/user_Introduction.xml | 4 ++-- include/VBox/ostypes.h | 2 ++ include/VBox/vmm/vmm.h | 2 +- src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk | 3 +-- src/VBox/Additions/x11/Installer/98vboxadd-xclient | 4 ++++ src/VBox/Additions/x11/Makefile.kmk | 4 ++++ src/VBox/Devices/VMMDev/VMMDev.cpp | 1 + .../VBoxDTrace/onnv/lib/libdtrace/common/dt_printf.c | 2 +- src/VBox/ExtPacks/VNC/Makefile.kmk | 3 ++- src/VBox/Frontends/VBoxFB/Makefile.kmk | 1 + src/VBox/Frontends/VBoxManage/Makefile.kmk | 1 + src/VBox/Frontends/VBoxSDL/Makefile.kmk | 2 +- src/VBox/Frontends/VirtualBox/Makefile.kmk | 1 + src/VBox/Frontends/VirtualBox/VirtualBox2.qrc | 2 ++ .../VirtualBox/src/extradata/UIExtraDataManager.cpp | 4 ++-- src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp | 4 ++-- src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp | 2 ++ .../Frontends/VirtualBox/src/medium/UIMediumManager.cpp | 2 +- .../Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp | 2 +- .../src/wizards/newvm/UIWizardNewVMNameOSTypePage.cpp | 2 ++ src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c | 2 +- src/VBox/Installer/common/virtualbox.desktop.in | 2 +- src/VBox/Installer/linux/VBoxCreateUSBNode.sh | 14 ++++++++++---- src/VBox/Main/Makefile.kmk | 5 +++++ src/VBox/Main/src-all/Global.cpp | 3 +++ src/VBox/Main/src-server/ApplianceImpl.cpp | 2 ++ src/VBox/Main/src-server/VirtualBoxImpl.cpp | 2 ++ src/VBox/Main/xml/Settings.cpp | 3 ++- src/VBox/Runtime/r0drv/linux/the-linux-kernel.h | 16 +++++++++++++--- src/VBox/VMM/VMMR0/VMMR0.cpp | 2 +- src/VBox/VMM/testcase/Makefile.kmk | 10 +++++++--- src/VBox/ValidationKit/testdriver/vboxtestvms.py | 2 ++ src/libs/dxvk-native-1.9.2a/src/util/util_bit.h | 1 + src/libs/xpcom18a4/Makefile.kmk | 3 +++ 35 files changed, 89 insertions(+), 29 deletions(-) diff --git a/configure b/configure index 4b69712cd..843cb1948 100755 --- a/configure +++ b/configure @@ -125,7 +125,7 @@ CC64="" CXX="g++" CXX32="" CXX64="" -YASM="yasm" +YASM="/usr/bin/yasm" IASL="iasl" XSLTPROC="xsltproc" INCCRYPTO="" @@ -1682,6 +1682,7 @@ EOF done else # Strip .../QtCore as we add components ourself: + INCQT5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\)/QtGui|\1|g; s| $||g'` INCQT5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\)/QtCore|\1|g; s| $||g'` # store only the first path, remove all other paths # most likely pkg-config gave us -I/usr/include/qt5 -I/usr/include/qt5/QtCore diff --git a/doc/manual/en_US/user_Introduction.xml b/doc/manual/en_US/user_Introduction.xml index f4cae028d..228050074 100644 --- a/doc/manual/en_US/user_Introduction.xml +++ b/doc/manual/en_US/user_Introduction.xml @@ -6090,14 +6090,14 @@ . - + Language. Enables you to diff --git a/include/VBox/ostypes.h b/include/VBox/ostypes.h index 56a2051fd..0dc39d840 100644 --- a/include/VBox/ostypes.h +++ b/include/VBox/ostypes.h @@ -220,6 +220,8 @@ typedef enum VBOXOSTYPE VBOXOSTYPE_Oracle8_x64 = 0x5E105, // 64-bit only VBOXOSTYPE_Oracle9_x64 = 0x5E106, // 64-bit only VBOXOSTYPE_Oracle_latest_x64 = VBOXOSTYPE_Oracle9_x64, + VBOXOSTYPE_ALTLinux = 0x5F000, + VBOXOSTYPE_ALTLinux_x64 = 0x5F100, VBOXOSTYPE_FreeBSD = 0x60000, VBOXOSTYPE_FreeBSD_x64 = 0x60100, VBOXOSTYPE_OpenBSD = 0x61000, diff --git a/include/VBox/vmm/vmm.h b/include/VBox/vmm/vmm.h index 13dac67cf..3018b3462 100644 --- a/include/VBox/vmm/vmm.h +++ b/include/VBox/vmm/vmm.h @@ -361,7 +361,7 @@ typedef enum VMMR0OPERATION /** Call IntNetR0IfAbortWait(). */ VMMR0_DO_INTNET_IF_ABORT_WAIT, -#if 0 +#if VBOX_WITH_PCI_PASSTHROUGH /** Forward call to the PCI driver */ VMMR0_DO_PCIRAW_REQ = 512, #endif diff --git a/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk b/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk index eead95e53..077bc8996 100644 --- a/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk +++ b/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk @@ -51,7 +51,6 @@ LIBRARIES += \ VBoxGuestR3Lib \ VBoxGuestR3LibShared ifndef VBOX_ONLY_VALIDATIONKIT - if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd) ifndef VBOX_USE_SYSTEM_XORG_HEADERS LIBRARIES += \ VBoxGuestR3LibXFree86 @@ -61,7 +60,7 @@ ifndef VBOX_ONLY_VALIDATIONKIT LIBRARIES += \ VBoxGuestR3LibXOrg endif -endif + LIBRARIES.win.amd64 += VBoxGuestR3Lib-x86 VBoxGuestR3LibShared-x86 diff --git a/src/VBox/Additions/x11/Installer/98vboxadd-xclient b/src/VBox/Additions/x11/Installer/98vboxadd-xclient index 718a43bd9..820ea5e1d 100755 --- a/src/VBox/Additions/x11/Installer/98vboxadd-xclient +++ b/src/VBox/Additions/x11/Installer/98vboxadd-xclient @@ -25,6 +25,9 @@ # SPDX-License-Identifier: GPL-3.0-only # +# Do not start if it's not a VirtualBox VM. +if test -f /proc/bus/pci/devices && grep -q -e 80eebeef -e 80eecafe /proc/bus/pci/devices; then + # Sanity check: if non-writeable PID-files are present in the user home # directory VBoxClient will fail to start. for i in $HOME/.vboxclient-*.pid; do @@ -46,3 +49,4 @@ elif test -z "${SSH_CONNECTION}"; then /usr/bin/VBoxClient --draganddrop /usr/bin/VBoxClient --vmsvga-session # In case VMSVGA emulation is enabled fi +fi diff --git a/src/VBox/Additions/x11/Makefile.kmk b/src/VBox/Additions/x11/Makefile.kmk index 2e8619d8c..319b85eb4 100644 --- a/src/VBox/Additions/x11/Makefile.kmk +++ b/src/VBox/Additions/x11/Makefile.kmk @@ -28,6 +28,10 @@ SUB_DEPTH = ../../../.. include $(KBUILD_PATH)/subheader.kmk +ifn1of ($(XSERVER_VERSION), 13 14 15 16 17 18 19 110 111 112) + XSERVER_VERSION := 112 +endif + # Include sub-makefiles. if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) include $(PATH_SUB_CURRENT)/VBoxClient/Makefile.kmk diff --git a/src/VBox/Devices/VMMDev/VMMDev.cpp b/src/VBox/Devices/VMMDev/VMMDev.cpp index 2ecd5b873..5ca626750 100644 --- a/src/VBox/Devices/VMMDev/VMMDev.cpp +++ b/src/VBox/Devices/VMMDev/VMMDev.cpp @@ -221,6 +221,7 @@ static void vmmdevLogGuestOsInfo(VBoxGuestInfo *pGuestInfo) case VBOXOSTYPE_Linux24: pszOs = "Linux 2.4"; break; case VBOXOSTYPE_Linux26: pszOs = "Linux >= 2.6"; break; case VBOXOSTYPE_ArchLinux: pszOs = "ArchLinux"; break; + case VBOXOSTYPE_ALTLinux: pszOs = "ALTLinux"; break; case VBOXOSTYPE_Debian: pszOs = "Debian"; break; case VBOXOSTYPE_Debian31: pszOs = "Debian 3.1"; break; case VBOXOSTYPE_Debian4: pszOs = "Debian 4.0"; break; diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_printf.c b/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_printf.c index 9813291f9..3a4616061 100644 --- a/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_printf.c +++ b/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_printf.c @@ -1605,7 +1605,7 @@ dt_printf_format(dtrace_hdl_t *dtp, FILE *fp, const dt_pfargv_t *pfv, width = 0; if (width != 0) - f += snprintf(f, sizeof (format) - (f - format), "%d", ABS(width)); + f += snprintf(f,(((sizeof (format)-(f-format))>0) ? sizeof(format) - (f-format):0), "%d", ABS(width)); if (prec > 0) f += snprintf(f, sizeof (format) - (f - format), ".%d", prec); diff --git a/src/VBox/ExtPacks/VNC/Makefile.kmk b/src/VBox/ExtPacks/VNC/Makefile.kmk index 5cc208292..7e1d40224 100644 --- a/src/VBox/ExtPacks/VNC/Makefile.kmk +++ b/src/VBox/ExtPacks/VNC/Makefile.kmk @@ -61,13 +61,14 @@ DLLS += VBoxVNCMain VBoxVNCMain_TEMPLATE = VBoxR3ExtPackVNC VBoxVNCMain_SOURCES = VBoxVNCMain.cpp VBoxVNCMain_DEFS = - +VBoxVNCMain_LDFLAGS = -Wl,-rpath,$(VBOXDIR) # # VBoxVNC - The VNC VRDE module. # DLLS += VBoxVNC VBoxVNC_TEMPLATE = VBoxR3ExtPackVNC VBoxVNC_SOURCES = VBoxVNC.cpp +VBoxVNC_LDFLAGS = -Wl,-rpath,$(VBOXDIR) # NOTE: vncserver is covered by GPL, so the extpack must be GPL, too. VBoxVNC_LIBS = vncserver VBoxVNC_DEFS = diff --git a/src/VBox/Frontends/VBoxFB/Makefile.kmk b/src/VBox/Frontends/VBoxFB/Makefile.kmk index 57faf2673..908223a10 100644 --- a/src/VBox/Frontends/VBoxFB/Makefile.kmk +++ b/src/VBox/Frontends/VBoxFB/Makefile.kmk @@ -46,6 +46,7 @@ VBoxFB_INCS = $(VBOX_XPCOM_INCS) /usr/include/directfb VBoxFB_LIBPATH = $(LIBPATH_XPCOM) VBoxFB_LIBS = $(LIB_XPCOM) $(LIB_RUNTIME) directfb VBoxFB_DEPS = $(VBOX_PATH_SDK)/bindings/xpcom/include/VirtualBox_XPCOM.h +VBoxFB_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) # generate rules. include $(FILE_KBUILD_SUB_FOOTER) diff --git a/src/VBox/Frontends/VBoxManage/Makefile.kmk b/src/VBox/Frontends/VBoxManage/Makefile.kmk index 2a63da423..b3cf1a4d4 100644 --- a/src/VBox/Frontends/VBoxManage/Makefile.kmk +++ b/src/VBox/Frontends/VBoxManage/Makefile.kmk @@ -197,6 +197,7 @@ ifneq ($(KBUILD_TARGET),win) $(if $(VBOX_GCC_VERSION_CXX),$(if-expr $(VBOX_GCC_VERSION_CXX) < 40300 || $(VBOX_GCC_VERSION_CXX) > 40301,,--param max-fields-for-field-sensitive=0),) VBoxManageHelp_CXXFLAGS.release = $(VBoxManage_CXXFLAGS.release) endif +VBoxManage_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) # diff --git a/src/VBox/Frontends/VBoxSDL/Makefile.kmk b/src/VBox/Frontends/VBoxSDL/Makefile.kmk index da4315333..601279d7f 100644 --- a/src/VBox/Frontends/VBoxSDL/Makefile.kmk +++ b/src/VBox/Frontends/VBoxSDL/Makefile.kmk @@ -97,7 +97,7 @@ if !defined(VBOX_WITH_HARDENING) || "$(KBUILD_TARGET)" != "darwin" # No hardened VBoxSDL_LDFLAGS.darwin = \ -framework Foundation -framework AppKit - VBoxSDL_LDFLAGS.win = -SubSystem:Windows +VBoxSDL_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) VBoxSDL_CLEAN = $(VBoxSDL_0_OUTDIR)/Ico64x01.h VBoxSDL_INTERMEDIATES = $(VBoxSDL_0_OUTDIR)/Ico64x01.h diff --git a/src/VBox/Frontends/VirtualBox/Makefile.kmk b/src/VBox/Frontends/VirtualBox/Makefile.kmk index bcac2ca17..169c32153 100644 --- a/src/VBox/Frontends/VirtualBox/Makefile.kmk +++ b/src/VBox/Frontends/VirtualBox/Makefile.kmk @@ -1740,6 +1740,7 @@ endif # Pull in the ui files +VirtualBox_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) $(eval VirtualBox_SOURCES += $(FORMS)) $(eval VirtualBoxVM_SOURCES += $(FORMS)) $(eval UICommon_SOURCES += $(FORMS)) diff --git a/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc b/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc index c5b0c9992..9404cdb9d 100644 --- a/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc +++ b/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc @@ -70,6 +70,8 @@ images/nw_warning_16px.png images/nw_write_16px.png images/ok_16px.png + images/os_altlinux.png + images/os_altlinux_64.png images/os_archlinux_64.png images/os_archlinux.png images/os_cloud.png diff --git a/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp b/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp index 886920e63..91ee7df0d 100644 --- a/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp +++ b/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp @@ -1186,7 +1186,7 @@ void UIExtraDataManagerWindow::sltSave() /* Compose initial file-name: */ const QString strInitialFileName = QDir(uiCommon().homeFolder()).absoluteFilePath(QString("%1_ExtraData.xml").arg(currentChooserName())); /* Open file-save dialog to choose file to save extra-data into: */ - const QString strFileName = QIFileDialog::getSaveFileName(strInitialFileName, "XML files (*.xml)", this, + const QString strFileName = QIFileDialog::getSaveFileName(strInitialFileName, "XML files (*.xml)", QApplication::activeWindow(), "Choose file to save extra-data into..", 0, true, true); /* Make sure file-name was chosen: */ if (strFileName.isEmpty()) @@ -1273,7 +1273,7 @@ void UIExtraDataManagerWindow::sltLoad() /* Compose initial file-name: */ const QString strInitialFileName = QDir(uiCommon().homeFolder()).absoluteFilePath(QString("%1_ExtraData.xml").arg(currentChooserName())); /* Open file-open dialog to choose file to open extra-data into: */ - const QString strFileName = QIFileDialog::getOpenFileName(strInitialFileName, "XML files (*.xml)", this, + const QString strFileName = QIFileDialog::getOpenFileName(strInitialFileName, "XML files (*.xml)", QApplication::activeWindow(), "Choose file to load extra-data from.."); /* Make sure file-name was chosen: */ if (strFileName.isEmpty()) diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp index cc1ba02d5..f8caa8de4 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp @@ -1629,7 +1629,7 @@ QUuid UICommon::openMediumWithFileOpenDialog(UIMediumDeviceType enmMediumType, Q strFilter = backends.join(";;").trimmed(); /* Create open file dialog: */ - QStringList files = QIFileDialog::getOpenFileNames(strHomeFolder, strFilter, pParent, strTitle, 0, true, true); + QStringList files = QIFileDialog::getOpenFileNames(strHomeFolder, strFilter, nullptr, strTitle, 0, true, true); /* If dialog has some result: */ if (!files.empty() && !files[0].isEmpty()) @@ -1885,7 +1885,7 @@ void UICommon::updateMachineStorage(const CMachine &comConstMachine, const UIMed } else if (target.type == UIMediumTarget::UIMediumTargetType_WithFileDialog) { - uMediumID = openMediumWithFileOpenDialog(target.mediumType, windowManager().mainWindowShown(), + uMediumID = openMediumWithFileOpenDialog(target.mediumType, QApplication::activeWindow(), strMachineFolder, false /* fUseLastFolder */); } else if(target.type == UIMediumTarget::UIMediumTargetType_CreateAdHocVISO) diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp index f32c87d66..8f231882d 100644 --- a/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp +++ b/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp @@ -378,6 +378,8 @@ UIIconPoolGeneral::UIIconPoolGeneral() m_guestOSTypeIconNames.insert("Linux26_64", ":/os_linux26_64.png"); m_guestOSTypeIconNames.insert("ArchLinux", ":/os_archlinux.png"); m_guestOSTypeIconNames.insert("ArchLinux_64", ":/os_archlinux_64.png"); + m_guestOSTypeIconNames.insert("ALTLinux", ":/os_altlinux.png"); + m_guestOSTypeIconNames.insert("ALTLinux_64", ":/os_altlinux_64.png"); m_guestOSTypeIconNames.insert("Debian", ":/os_debian.png"); m_guestOSTypeIconNames.insert("Debian_64", ":/os_debian_64.png"); m_guestOSTypeIconNames.insert("Debian31", ":/os_debian.png"); diff --git a/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp b/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp index 953ebb13f..ce40c3739 100644 --- a/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp +++ b/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp @@ -465,7 +465,7 @@ void UIMediumManagerWidget::sltHandleMachineStateChange(const QUuid &uId, const void UIMediumManagerWidget::sltAddMedium() { QString strDefaultMachineFolder = uiCommon().virtualBox().GetSystemProperties().GetDefaultMachineFolder(); - uiCommon().openMediumWithFileOpenDialog(currentMediumType(), this, + uiCommon().openMediumWithFileOpenDialog(currentMediumType(), QApplication::activeWindow(), strDefaultMachineFolder, true /* use most recent medium folder */); } diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp index 051eee5da..d815c823e 100644 --- a/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp @@ -88,7 +88,7 @@ void UITextEditor::retranslateUi() void UITextEditor::open() { - QString fileName = QIFileDialog::getOpenFileName(uiCommon().documentsPath(), tr("Text (*.txt);;All (*.*)"), this, tr("Select a file to open...")); + QString fileName = QIFileDialog::getOpenFileName(uiCommon().documentsPath(), tr("Text (*.txt);;All (*.*)"), QApplication::activeWindow(), tr("Select a file to open...")); if (!fileName.isEmpty()) { QFile file(fileName); diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePage.cpp b/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePage.cpp index d48fa80af..b34cb075e 100644 --- a/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePage.cpp +++ b/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePage.cpp @@ -201,6 +201,8 @@ static const osTypePattern gs_OSTypePattern[] = /* Regular names of Linux distributions: */ { QRegularExpression("Arc.*64", QRegularExpression::CaseInsensitiveOption), "ArchLinux_64" }, { QRegularExpression("Arc.*32", QRegularExpression::CaseInsensitiveOption), "ArchLinux" }, + { QRegularExpression("^alt-.*64", QRegularExpression::CaseInsensitiveOption), "ALTLinux_64" }, + { QRegularExpression("^alt-.*i586", QRegularExpression::CaseInsensitiveOption), "ALTLinux" }, { QRegularExpression("Deb.*64", QRegularExpression::CaseInsensitiveOption), "Debian_64" }, { QRegularExpression("Deb.*32", QRegularExpression::CaseInsensitiveOption), "Debian" }, { QRegularExpression("SU.*Leap.*64", QRegularExpression::CaseInsensitiveOption), "OpenSUSE_Leap_64" }, diff --git a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c index 127f99591..4aec33f6f 100644 --- a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c +++ b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c @@ -47,7 +47,7 @@ #if RTLNX_VER_MIN(2,6,24) # include #endif -#if RTLNX_VER_MIN(6,5,0) +#if RTLNX_VER_MIN(6,4,10) # include #endif #include diff --git a/src/VBox/Installer/common/virtualbox.desktop.in b/src/VBox/Installer/common/virtualbox.desktop.in index dca93dde3..a796d7894 100644 --- a/src/VBox/Installer/common/virtualbox.desktop.in +++ b/src/VBox/Installer/common/virtualbox.desktop.in @@ -3,7 +3,7 @@ Version=1.0 Name=@VBOX_PRODUCT@ GenericName=Virtualization Software GenericName[de]=Virtualisierung Software -GenericName[ru]= +GenericName[ru]=Виртуальная машина Type=Application Exec=VirtualBox %U TryExec=VirtualBox diff --git a/src/VBox/Installer/linux/VBoxCreateUSBNode.sh b/src/VBox/Installer/linux/VBoxCreateUSBNode.sh index 6893a6c07..06a016e62 100755 --- a/src/VBox/Installer/linux/VBoxCreateUSBNode.sh +++ b/src/VBox/Installer/linux/VBoxCreateUSBNode.sh @@ -31,13 +31,16 @@ usb_class_hub=09 do_remove=0 +do_create=0 case "$1" in "--remove") do_remove=1; shift;; + "--create") + do_create=1; shift;; esac -bus=`expr "$2" '/' 128 + 1` -device=`expr "$2" '%' 128 + 1` -class="$3" -group="$4" +bus=`expr "${2-0}" '/' 128 + 1` +device=`expr "${2-0}" '%' 128 + 1` +class="${3-0}" +group="${4-}" devdir="`printf "/dev/vboxusb/%.3d" $bus`" devpath="`printf "/dev/vboxusb/%.3d/%.3d" $bus $device`" case "$do_remove" in @@ -49,6 +52,9 @@ case "$do_remove" in case "$group" in "") group="vboxusers";; esac mkdir /dev/vboxusb -m 0750 2>/dev/null chown root:$group /dev/vboxusb 2>/dev/null + if test "$do_create" = "1"; then + exit 0 + fi mkdir "$devdir" -m 0750 2>/dev/null chown root:$group "$devdir" 2>/dev/null mknod "$devpath" c $1 $2 -m 0660 2>/dev/null diff --git a/src/VBox/Main/Makefile.kmk b/src/VBox/Main/Makefile.kmk index 5711816d7..77a75e4b3 100644 --- a/src/VBox/Main/Makefile.kmk +++ b/src/VBox/Main/Makefile.kmk @@ -592,6 +592,7 @@ if !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_EXTPACKS) # Note this goes on f VBoxSVC_LIBS += \ $(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB) \ $(PATH_STAGE_LIB)/SSMStandalone$(VBOX_SUFF_LIB) \ + $(LIB_RUNTIME) \ $(LIB_DDU) VBoxSVC_SDKS = VBoxLibPng VBoxZlib @@ -790,6 +791,7 @@ if !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_EXTPACKS) # Note this goes on f $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/WbemUuid.Lib endif VBoxSVC_LDFLAGS.darwin = -framework IOKit -framework SystemConfiguration +VBoxSVC_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) ifdef VBOX_WITH_3D_ACCELERATION VBoxSVC_DEFS += VBOX_WITH_3D_ACCELERATION @@ -965,6 +967,7 @@ if !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_EXTPACKS) # Note this goes on f VBoxSVCM_LDFLAGS.darwin = \ -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxSVCM.dylib \ -exported_symbols_list $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def +VBoxSVCM_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) ifeq ($(KBUILD_TARGET),darwin) VBoxSVCM_ORDERDEPS += $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def VBoxSVCM_CLEAN += $(VBoxSVCM_0_OUTDIR)/VBoxSVCM.def @@ -1230,6 +1233,8 @@ if !defined(VBOX_ONLY_SDK) && !defined(VBOX_ONLY_EXTPACKS) # Note this goes on f VBoxC_SOURCES += \ src-client/RemoteUSBBackend.cpp endif + +VBoxC_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) ifndef VBOX_WITH_VRDEAUTH_IN_VBOXSVC VBoxC_SOURCES += \ src-all/AuthLibrary.cpp diff --git a/src/VBox/Main/src-all/Global.cpp b/src/VBox/Main/src-all/Global.cpp index ea7fd7a5d..d9d72c37f 100644 --- a/src/VBox/Main/src-all/Global.cpp +++ b/src/VBox/Main/src-all/Global.cpp @@ -295,6 +295,9 @@ const Global::OSType Global::sOSTypes[] = VBOX_LINUX_SUBTYPE_A_32(ArchLinux, "Arch Linux (32-bit)", 1024, 16, 8), VBOX_LINUX_SUBTYPE_A_64(ArchLinux, "Arch Linux (64-bit)", 1024, 16, 8), + VBOX_LINUX_SUBTYPE_A_32(ALTLinux, "ALT Linux (32-bit)", 1024, 16, 8), + VBOX_LINUX_SUBTYPE_A_64(ALTLinux, "ALT Linux (64-bit)", 1024, 16, 8), + VBOX_LINUX_SUBTYPE_A_32(Debian, "Debian (32-bit)", 2048, 16, 20), VBOX_LINUX_SUBTYPE_A_64(Debian, "Debian (64-bit)", 2048, 16, 20), VBOX_LINUX_SUBTYPE_A_32(Debian31, "Debian 3.1 Sarge (32-bit)", 1024, 16, 8), // 32-bit only diff --git a/src/VBox/Main/src-server/ApplianceImpl.cpp b/src/VBox/Main/src-server/ApplianceImpl.cpp index b842e5835..320167e65 100644 --- a/src/VBox/Main/src-server/ApplianceImpl.cpp +++ b/src/VBox/Main/src-server/ApplianceImpl.cpp @@ -241,6 +241,8 @@ static struct { ovf::CIMOSType_CIMOS_Linux_64, VBOXOSTYPE_Linux26_x64 }, // types that we have support for but CIM doesn't + { ovf::CIMOSType_CIMOS_Linux_2_6_x, VBOXOSTYPE_ALTLinux }, + { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, VBOXOSTYPE_ALTLinux_x64 }, { ovf::CIMOSType_CIMOS_Linux_2_6_x, VBOXOSTYPE_ArchLinux }, { ovf::CIMOSType_CIMOS_Linux_2_6_x_64, VBOXOSTYPE_ArchLinux_x64 }, { ovf::CIMOSType_CIMOS_Linux_2_6_x, VBOXOSTYPE_FedoraCore }, diff --git a/src/VBox/Main/src-server/VirtualBoxImpl.cpp b/src/VBox/Main/src-server/VirtualBoxImpl.cpp index 73e07dbb6..2d658bb4f 100644 --- a/src/VBox/Main/src-server/VirtualBoxImpl.cpp +++ b/src/VBox/Main/src-server/VirtualBoxImpl.cpp @@ -2180,6 +2180,8 @@ HRESULT VirtualBox::createMachine(const com::Utf8Str &aSettingsFile, if (!aOsTypeId.isEmpty()) i_findGuestOSType(aOsTypeId, osType); + if((strncmp(aOsTypeId.c_str(),"ALTLinux",strlen("ALTLinux"))) == 0) + return setError(E_INVALIDARG, "Please use \"Other Linux\" type for a new ALT Linux virtual machine.\n For details see http://altlinux.org/VirtualBox"); /* initialize the machine object */ hrc = machine->init(this, strSettingsFile, diff --git a/src/VBox/Main/xml/Settings.cpp b/src/VBox/Main/xml/Settings.cpp index fa1c1d82a..d0cfee539 100644 --- a/src/VBox/Main/xml/Settings.cpp +++ b/src/VBox/Main/xml/Settings.cpp @@ -6595,7 +6595,8 @@ const struct { { "netware", "Netware" }, { "solaris", "Solaris" }, { "opensolaris", "OpenSolaris" }, - { "l4", "L4" } + { "l4", "L4" }, + {"altlinux","ALTLinux"} }; void MachineConfigFile::convertOldOSType_pre1_5(Utf8Str &str) diff --git a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h index 8e70f9923..46c034318 100644 --- a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +++ b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h @@ -398,11 +398,21 @@ DECLINLINE(unsigned long) msecs_to_jiffies(unsigned int cMillies) #endif /* - * There are post-2.6.24 kernels (confusingly with unchanged version number) - * which eliminate macros which were marked as deprecated. + * The 2.6.25 kernel eliminates macros that were marked as deprecated and eliminates + * routine change_page_attr() in favor of the set_pages_* API. */ -#ifndef __attribute_used__ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25) #define __attribute_used__ __used + +static inline int my_change_page_attr(struct page *page, int numpages, pgprot_t prot) +{ + /* use the set_pages_* API */ + if (pgprot_val(prot) & _PAGE_NX) + set_pages_nx(page, numpages); + set_pages_uc(page, numpages); + return 0; +} +#define change_page_attr(a,b,c) my_change_page_attr((a), (b), (c)) #endif /** diff --git a/src/VBox/VMM/VMMR0/VMMR0.cpp b/src/VBox/VMM/VMMR0/VMMR0.cpp index fdec5a0f7..a5f54f3fb 100644 --- a/src/VBox/VMM/VMMR0/VMMR0.cpp +++ b/src/VBox/VMM/VMMR0/VMMR0.cpp @@ -2168,7 +2168,7 @@ DECL_NO_INLINE(static, int) vmmR0EntryExWorker(PGVM pGVM, VMCPUID idCpu, VMMR0OP rc = IntNetR0IfAbortWaitReq(pSession, (PINTNETIFABORTWAITREQ)pReqHdr); break; -#if 0 //def VBOX_WITH_PCI_PASSTHROUGH +#ifdef VBOX_WITH_PCI_PASSTHROUGH /* * Requests to host PCI driver service. */ diff --git a/src/VBox/VMM/testcase/Makefile.kmk b/src/VBox/VMM/testcase/Makefile.kmk index 43cb7b400..ce12bd213 100644 --- a/src/VBox/VMM/testcase/Makefile.kmk +++ b/src/VBox/VMM/testcase/Makefile.kmk @@ -38,9 +38,11 @@ endif # # Target lists. # -PROGRAMS += tstVMStructSize tstAsmStructs -ifdef VBOX_WITH_RAW_MODE - PROGRAMS += tstVMStructRC tstAsmStructsRC +ifndef VBOX_WITHOUT_BIARCH + PROGRAMS += tstVMStructSize tstAsmStructs + ifdef VBOX_WITH_RAW_MODE + PROGRAMS += tstVMStructRC tstAsmStructsRC + endif endif if !defined(VBOX_ONLY_EXTPACKS) \ && ( defined(VBOX_WITH_DTRACE_R3) \ @@ -121,9 +123,11 @@ BLDDIRS += $(VBOX_VMM_TESTCASE_OUT_DIR) # ifeq ($(KBUILD_TARGET),$(KBUILD_HOST)) ifeq ($(filter-out x86.x86 amd64.amd64 x86.amd64, $(KBUILD_TARGET_ARCH).$(KBUILD_HOST_ARCH)),) + ifndef VBOX_WITHOUT_BIARCH OTHERS += \ $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run \ $(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run + endif endif endif diff --git a/src/VBox/ValidationKit/testdriver/vboxtestvms.py b/src/VBox/ValidationKit/testdriver/vboxtestvms.py index fbadf7b56..da5602900 100755 --- a/src/VBox/ValidationKit/testdriver/vboxtestvms.py +++ b/src/VBox/ValidationKit/testdriver/vboxtestvms.py @@ -143,6 +143,8 @@ g_aaNameToDetails = \ [ 'Solaris_64', 'Solaris11_64', g_k64, 1, 256, ['sol11u1']], [ 'BSD', 'FreeBSD_64', g_k32_64, 1, 1, ['bs-.*']], # boot sectors, wanted 64-bit type. [ 'DOS', 'DOS', g_k32, 1, 1, ['bs-.*']], + [ 'Linux', 'ALTLinux', g_k32, 1, 256, ['alt*', ]], + [ 'Linux_64', 'ALTLinux_64', g_k64, 1, 256, ['alt*-64', ]], ]; diff --git a/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h b/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h index 3c65c70df..7b0a2fb43 100644 --- a/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h +++ b/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h @@ -19,6 +19,7 @@ #include #include #include +#include namespace dxvk::bit { diff --git a/src/libs/xpcom18a4/Makefile.kmk b/src/libs/xpcom18a4/Makefile.kmk index b12dccfe8..a280940d5 100644 --- a/src/libs/xpcom18a4/Makefile.kmk +++ b/src/libs/xpcom18a4/Makefile.kmk @@ -1042,6 +1042,7 @@ VBoxXPCOM_LDFLAGS.solaris += -Wl,-z,allextract \ #VBoxXPCOM_LIBS += $(LIB_RUNTIME_EF) #VBoxXPCOM_LDFLAGS = -Wl,--whole-archive $(VBoxXPCOM_LIBS) -Wl,--no-whole-archive $(LIB_RUNTIME) VBoxXPCOM_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxXPCOM.dylib +VBoxXPCOM_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) # # The 32-bit VBoxXPCOM Shared Object, assembling all lib files. @@ -1199,6 +1200,7 @@ else ipc/ipcd/client/src/ipcConnectionUnix.cpp endif VBoxXPCOMIPCC_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxXPCOMIPCC.dylib +VBoxXPCOMIPCC_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) VBoxXPCOMIPCC_LIBS = \ $(VBox-xpcom-ipcshared_1_TARGET) @@ -1224,6 +1226,7 @@ else VBoxXPCOMIPCD_SOURCES += \ ipc/ipcd/daemon/src/ipcdUnix.cpp endif +VBoxXPCOMIPCD_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR) #