Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37486627
en ru br
Репозитории ALT
S:7.0.10-alt2
5.1: 4.0.12-alt0.M51.1
4.1: 2.1.4-alt0.M41.5
4.0:
+backports:1.6.6-alt0.M40.2
www.altlinux.org/Changes

Группа :: Эмуляторы
Пакет: virtualbox

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: virtualbox-7.0.10-alt.patch
Скачать


 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 @@
           <xref linkend="specialcharacters"/>.
         </para>
       </listitem>
-
+<!--
       <listitem>
         <para>
           <emphasis role="bold">Update.</emphasis> Enables you to
           specify various settings for Automatic Updates.
         </para>
       </listitem>
-
+-->
       <listitem>
         <para>
           <emphasis role="bold">Language.</emphasis> 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 @@
         <file alias="nw_warning_16px.png">images/nw_warning_16px.png</file>
         <file alias="nw_write_16px.png">images/nw_write_16px.png</file>
         <file alias="ok_16px.png">images/ok_16px.png</file>
+        <file alias="os_altlinux.png">images/os_altlinux.png</file>
+        <file alias="os_altlinux_64.png">images/os_altlinux_64.png</file>
         <file alias="os_archlinux_64.png">images/os_archlinux_64.png</file>
         <file alias="os_archlinux.png">images/os_archlinux.png</file>
         <file alias="os_cloud.png">images/os_cloud.png</file>
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 <linux/nsproxy.h>
 #endif
-#if RTLNX_VER_MIN(6,5,0)
+#if RTLNX_VER_MIN(6,4,10)
 # include <net/gso.h>
 #endif
 #include <linux/netdevice.h>
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 <cstring>
 #include <iterator>
 #include <type_traits>
+#include <cstdint>
 
 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)
 
 
 #
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin