Репозитории 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 |
Группа :: Эмуляторы
Пакет: virtualbox
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: virtualbox-6.1.34-alt.patch
Скачать
Скачать
Config.kmk | 12 ++++--
configure | 3 +-
doc/manual/en_US/user_Introduction.xml | 4 +-
include/VBox/ostypes.h | 2 +
include/VBox/vmm/vmm.h | 2 +-
.../Additions/common/VBoxGuest/lib/Makefile.kmk | 6 ---
src/VBox/Additions/x11/Installer/98vboxadd-xclient | 4 ++
src/VBox/Additions/x11/Makefile.kmk | 4 ++
src/VBox/Devices/Makefile.kmk | 2 +-
src/VBox/Devices/testcase/Makefile.kmk | 4 ++
.../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 | 1 +
src/VBox/Frontends/VirtualBox/Makefile.kmk | 1 +
src/VBox/Frontends/VirtualBox/VirtualBox2.qrc | 2 +
.../src/extradata/UIExtraDataManager.cpp | 4 +-
.../VirtualBox/src/globals/UIActionPool.cpp | 5 +--
.../VirtualBox/src/globals/UIActionPool.h | 1 -
.../VirtualBox/src/globals/UIActionPoolManager.cpp | 6 ---
.../Frontends/VirtualBox/src/globals/UICommon.cpp | 4 +-
.../src/manager/chooser/UIChooserModel.cpp | 2 -
.../VirtualBox/src/medium/UIMediumManager.cpp | 2 +-
.../VirtualBox/src/medium/UIMediumSelector.cpp | 2 +-
.../VirtualBox/src/net/UIUpdateManager.cpp | 2 +
.../src/settings/UISettingsDialogSpecific.cpp | 4 ++
.../settings/global/UIGlobalSettingsExtension.cpp | 3 +-
.../settings/machine/UIMachineSettingsStorage.cpp | 2 +-
.../src/widgets/UIEmptyFilePathSelector.cpp | 6 +--
.../VirtualBox/src/widgets/UIFilePathSelector.cpp | 6 +--
.../VirtualBox/src/widgets/UILineTextEdit.cpp | 2 +-
src/VBox/Installer/common/virtualbox.desktop.in | 1 +
src/VBox/Installer/linux/VBoxCreateUSBNode.sh | 14 +++++--
src/VBox/Main/Makefile.kmk | 5 +++
src/VBox/Main/src-all/Global.cpp | 11 +++++
src/VBox/Main/src-server/ApplianceImpl.cpp | 2 +
src/VBox/Main/src-server/VirtualBoxImpl.cpp | 4 +-
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/libs/xpcom18a4/Makefile.kmk | 3 ++
src/libs/xpcom18a4/python/Makefile.kmk | 47 ++++++++++++++++++++++
src/libs/xpcom18a4/python/gen_python_deps.py | 2 +-
src/libs/xpcom18a4/python/src/PyXPCOM.h | 3 --
src/libs/xpcom18a4/python/src/module/_xpcom.cpp | 6 ++-
46 files changed, 169 insertions(+), 62 deletions(-)
diff --git a/Config.kmk b/Config.kmk
index 3df197404..644b8a0b1 100644
--- a/Config.kmk
+++ b/Config.kmk
@@ -1911,8 +1911,9 @@ ifndef VBOX_BLD_PYTHON
VBOX_BLD_PYTHON := $(firstword $(rsort $(wildcard $(KBUILD_DEVTOOLS)/win.x86/python/v*/python$(HOSTSUFF_EXE))) \
python-not-found.exe)
else
- VBOX_BLD_PYTHON := $(firstword $(which python2.7$(HOSTSUFF_EXE)) $(which python2.6$(HOSTSUFF_EXE)) \
- $(which python$(HOSTSUFF_EXE)) $(which python3$(HOSTSUFF_EXE)) \
+ VBOX_BLD_PYTHON := $(firstword $(which python3.10$(HOSTSUFF_EXE)) \
+ $(which python3.9$(HOSTSUFF_EXE)) $(which python3.8$(HOSTSUFF_EXE)) \
+ $(which python3.7$(HOSTSUFF_EXE)) $(which python3$(HOSTSUFF_EXE)) \
python-not-found)
endif
endif
@@ -4502,11 +4503,14 @@ ifeq ($(VBOX_LDR_FMT),elf)
TEMPLATE_VBoxR0_TOOL = $(VBOX_GCC_TOOL)
TEMPLATE_VBoxR0_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) \
$(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
- $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
+ $(VBOX_GCC_fno-stack-protector) -fno-common -ffreestanding $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
TEMPLATE_VBoxR0_CXXFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) \
$(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
$(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
- -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
+ -fno-rtti $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK)
+ if $(VBOX_GCC_VERSION_CC) >= 40500 # 4.1.2 complains, 4.5.2 is okay, didn't check which version inbetween made it okay with g++.
+TEMPLATE_VBoxR0_CXXFLAGS += -ffreestanding
+ endif
TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables -ffreestanding
TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables
TEMPLATE_VBoxR0_CXXFLAGS.freebsd = -ffreestanding
diff --git a/configure b/configure
index 8b8830f2a..460f9700e 100755
--- a/configure
+++ b/configure
@@ -1641,6 +1641,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
@@ -2027,7 +2028,7 @@ extern "C" int main(void)
}
EOF
found=
- SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.8m python3.9 python3.9m"
+ SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.8m python3.9 python3.9m python3.10 python3.10m"
for p in $PYTHONDIR; do
for d in $SUPPYTHONLIBS; do
for b in lib/x86_64-linux-gnu lib/i386-linux-gnu lib64 lib/64 lib; do
diff --git a/doc/manual/en_US/user_Introduction.xml b/doc/manual/en_US/user_Introduction.xml
index a75280ebb..a234fe433 100644
--- a/doc/manual/en_US/user_Introduction.xml
+++ b/doc/manual/en_US/user_Introduction.xml
@@ -4405,14 +4405,14 @@
<xref linkend="specialcharacters"/>.
</para>
</listitem>
-
+<!--
<listitem>
<para>
<emphasis role="bold">Update.</emphasis> Enables the user to
specify various settings for Automatic Updates.
</para>
</listitem>
-
+-->
<listitem>
<para>
<emphasis role="bold">Language.</emphasis> Enables the user to
diff --git a/include/VBox/ostypes.h b/include/VBox/ostypes.h
index bb2ed81de..e20af7122 100644
--- a/include/VBox/ostypes.h
+++ b/include/VBox/ostypes.h
@@ -119,6 +119,8 @@ typedef enum VBOXOSTYPE
VBOXOSTYPE_Xandros_x64 = 0x5D100,
VBOXOSTYPE_Oracle = 0x5E000,
VBOXOSTYPE_Oracle_x64 = 0x5E100,
+ 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 7273fe369..25d4f3730 100644
--- a/include/VBox/vmm/vmm.h
+++ b/include/VBox/vmm/vmm.h
@@ -383,7 +383,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 cdfc9b67d..6f5039213 100644
--- a/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk
+++ b/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk
@@ -39,12 +39,6 @@ LIBRARIES += \
VBoxGuestR3Lib \
VBoxGuestR3LibShared
ifndef VBOX_ONLY_VALIDATIONKIT
- if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd)
- ifndef VBOX_USE_SYSTEM_XORG_HEADERS
- LIBRARIES += \
- VBoxGuestR3LibXFree86
- endif
- endif
if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
LIBRARIES += \
VBoxGuestR3LibXOrg
diff --git a/src/VBox/Additions/x11/Installer/98vboxadd-xclient b/src/VBox/Additions/x11/Installer/98vboxadd-xclient
index 1497c9397..34b1a6e3b 100755
--- a/src/VBox/Additions/x11/Installer/98vboxadd-xclient
+++ b/src/VBox/Additions/x11/Installer/98vboxadd-xclient
@@ -15,6 +15,9 @@
# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
#
+# 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
@@ -36,3 +39,4 @@ elif test -z "${SSH_CONNECTION}"; then
/usr/bin/VBoxClient --draganddrop
/usr/bin/VBoxClient --vmsvga # 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 7da71c5a7..d1541967e 100644
--- a/src/VBox/Additions/x11/Makefile.kmk
+++ b/src/VBox/Additions/x11/Makefile.kmk
@@ -18,6 +18,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/Makefile.kmk b/src/VBox/Devices/Makefile.kmk
index bd64e790d..e4f036318 100644
--- a/src/VBox/Devices/Makefile.kmk
+++ b/src/VBox/Devices/Makefile.kmk
@@ -1275,7 +1275,7 @@ endif
$(if $(VBOX_WITH_NAT_SERVICE),VBOX_WITH_NAT_SERVICE,)
ServicesR0_SOURCES = \
Network/SrvIntNetR0.cpp \
-# $(if $(VBOX_WITH_PCI_PASSTHROUGH),Bus/SrvPciRawR0.cpp,)
+ $(if $(VBOX_WITH_PCI_PASSTHROUGH),Bus/SrvPciRawR0.cpp,)
Network/SrvIntNetR0.cpp_CXXFLAGS := $(if-expr $(KBUILD_TARGET) == "win",,$(VBOX_GCC_Wno-array_bounds))
diff --git a/src/VBox/Devices/testcase/Makefile.kmk b/src/VBox/Devices/testcase/Makefile.kmk
index 317a0b39a..a1b116ead 100644
--- a/src/VBox/Devices/testcase/Makefile.kmk
+++ b/src/VBox/Devices/testcase/Makefile.kmk
@@ -69,9 +69,11 @@ ifdef VBOX_WITH_RAW_MODE
#
# The testcase generator.
#
+ifndef VBOX_WITHOUT_BIARCH
PROGRAMS += tstDeviceStructSizeRC
tstDeviceStructSizeRC_TEMPLATE = VBoxRcExe
tstDeviceStructSizeRC_DEFS = $(VBOX_DEVICES_TESTS_FEATURES)
+endif
tstDeviceStructSizeRC_SOURCES = tstDeviceStructSizeRC.cpp
tstDeviceStructSizeRC_INCS = \
$(VBOX_PATH_DEVICES_SRC)/build \
@@ -84,7 +86,9 @@ endif # VBOX_WITH_RAW_MODE
#
# The testcase it self.
#
+ifndef VBOX_WITHOUT_BIARCH
PROGRAMS += tstDeviceStructSize
+endif
tstDeviceStructSize_TEMPLATE = VBOXR3AUTOTST
tstDeviceStructSize_DEFS = $(VBOX_DEVICES_TESTS_FEATURES)
tstDeviceStructSize_INCS = \
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 b616c9266..f8fbdadd5 100644
--- a/src/VBox/ExtPacks/VNC/Makefile.kmk
+++ b/src/VBox/ExtPacks/VNC/Makefile.kmk
@@ -51,13 +51,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 76d80ebab..469cbbe0c 100644
--- a/src/VBox/Frontends/VBoxFB/Makefile.kmk
+++ b/src/VBox/Frontends/VBoxFB/Makefile.kmk
@@ -36,6 +36,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 c1f7c1272..4cdf35ff6 100644
--- a/src/VBox/Frontends/VBoxManage/Makefile.kmk
+++ b/src/VBox/Frontends/VBoxManage/Makefile.kmk
@@ -120,6 +120,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 8987acdfd..146d5321e 100644
--- a/src/VBox/Frontends/VBoxSDL/Makefile.kmk
+++ b/src/VBox/Frontends/VBoxSDL/Makefile.kmk
@@ -96,6 +96,7 @@ endif
VBoxSDL_LDFLAGS.darwin = \
-framework Foundation -framework AppKit
+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 e89e632cd..0b5a08040 100644
--- a/src/VBox/Frontends/VirtualBox/Makefile.kmk
+++ b/src/VBox/Frontends/VirtualBox/Makefile.kmk
@@ -1558,6 +1558,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 ba2d3944c..5135b90f9 100644
--- a/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc
+++ b/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc
@@ -41,6 +41,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.png">images/os_archlinux.png</file>
<file alias="os_archlinux_64.png">images/os_archlinux_64.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 4ad5d865c..a8fb5bb9e 100644
--- a/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
@@ -1176,7 +1176,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())
@@ -1263,7 +1263,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/UIActionPool.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp
index 7cdc07e01..18c502cf3 100644
--- a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp
@@ -2434,7 +2434,6 @@ void UIActionPool::preparePool()
m_pool[UIActionIndex_M_Application_S_Preferences] = new UIActionSimplePreferences(this);
#ifdef VBOX_GUI_WITH_NETWORK_MANAGER
m_pool[UIActionIndex_M_Application_S_NetworkAccessManager] = new UIActionSimpleNetworkAccessManager(this);
- m_pool[UIActionIndex_M_Application_S_CheckForUpdates] = new UIActionSimpleCheckForUpdates(this);
#endif
m_pool[UIActionIndex_M_Application_S_ResetWarnings] = new UIActionSimpleResetWarnings(this);
m_pool[UIActionIndex_M_Application_S_Close] = new UIActionSimplePerformClose(this);
@@ -2532,8 +2531,6 @@ void UIActionPool::prepareConnections()
#ifdef VBOX_GUI_WITH_NETWORK_MANAGER
connect(action(UIActionIndex_M_Application_S_NetworkAccessManager), &UIAction::triggered,
gNetworkManager, &UINetworkManager::show, Qt::UniqueConnection);
- connect(action(UIActionIndex_M_Application_S_CheckForUpdates), &UIAction::triggered,
- gUpdateManager, &UIUpdateManager::sltForceCheck, Qt::UniqueConnection);
#endif
connect(action(UIActionIndex_M_Application_S_ResetWarnings), &UIAction::triggered,
&msgCenter(), &UIMessageCenter::sltResetSuppressedMessages, Qt::UniqueConnection);
@@ -2614,7 +2611,7 @@ void UIActionPool::updateConfiguration()
if (!fUpdateAllowed)
{
m_restrictedActionsMenuApplication[UIActionRestrictionLevel_Base] = (UIExtraDataMetaDefs::MenuApplicationActionType)
- (m_restrictedActionsMenuApplication[UIActionRestrictionLevel_Base] | UIExtraDataMetaDefs::MenuApplicationActionType_CheckForUpdates);
+ (m_restrictedActionsMenuApplication[UIActionRestrictionLevel_Base]);
}
#endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h
index 10987ed00..869442557 100644
--- a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h
+++ b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h
@@ -68,7 +68,6 @@ enum UIActionIndex
UIActionIndex_M_Application_S_Preferences,
#ifdef VBOX_GUI_WITH_NETWORK_MANAGER
UIActionIndex_M_Application_S_NetworkAccessManager,
- UIActionIndex_M_Application_S_CheckForUpdates,
#endif /* VBOX_GUI_WITH_NETWORK_MANAGER */
UIActionIndex_M_Application_S_ResetWarnings,
UIActionIndex_M_Application_S_Close,
diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp
index 0301bbebd..c79e2de18 100644
--- a/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp
@@ -3040,9 +3040,6 @@ void UIActionPoolManager::updateMenuFile()
/* 'About' action goes to Application menu: */
pMenu->addAction(action(UIActionIndex_M_Application_S_About));
# ifdef VBOX_GUI_WITH_NETWORK_MANAGER
- /* 'Check for Updates' action goes to Application menu: */
- if (gEDataManager->applicationUpdateEnabled())
- pMenu->addAction(action(UIActionIndex_M_Application_S_CheckForUpdates));
/* 'Network Access Manager' action goes to Application menu: */
pMenu->addAction(action(UIActionIndex_M_Application_S_NetworkAccessManager));
# endif
@@ -3099,9 +3096,6 @@ void UIActionPoolManager::updateMenuFile()
# ifdef VBOX_GUI_WITH_NETWORK_MANAGER
/* 'Network Access Manager' action goes to 'File' menu: */
pMenu->addAction(action(UIActionIndex_M_Application_S_NetworkAccessManager));
- /* 'Check for Updates' action goes to 'File' menu: */
- if (gEDataManager->applicationUpdateEnabled())
- pMenu->addAction(action(UIActionIndex_M_Application_S_CheckForUpdates));
# endif
/* Separator after tool actions of the 'File' menu: */
pMenu->addSeparator();
diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp
index 8c038f3c2..9e9371939 100644
--- a/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp
@@ -2738,7 +2738,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())
@@ -3197,7 +3197,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/manager/chooser/UIChooserModel.cpp b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
index f2f275ecb..b83495593 100644
--- a/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
@@ -1209,8 +1209,6 @@ void UIChooserModel::prepareContextMenu()
m_pContextMenuGlobal->addAction(actionPool()->action(UIActionIndexST_M_File_S_ShowCloudProfileManager));
# ifdef VBOX_GUI_WITH_NETWORK_MANAGER
m_pContextMenuGlobal->addAction(actionPool()->action(UIActionIndex_M_Application_S_NetworkAccessManager));
- if (gEDataManager->applicationUpdateEnabled())
- m_pContextMenuGlobal->addAction(actionPool()->action(UIActionIndex_M_Application_S_CheckForUpdates));
# endif
#endif /* !VBOX_WS_MAC */
}
diff --git a/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp b/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
index 3f6467d86..51d41530a 100644
--- a/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
@@ -486,7 +486,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/medium/UIMediumSelector.cpp b/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.cpp
index c11574c31..650693a38 100644
--- a/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSelector.cpp
@@ -441,7 +441,7 @@ void UIMediumSelector::sltButtonLeaveEmpty()
void UIMediumSelector::sltAddMedium()
{
- QUuid uMediumID = uiCommon().openMediumWithFileOpenDialog(m_enmMediumType, this, m_strMachineFolder);
+ QUuid uMediumID = uiCommon().openMediumWithFileOpenDialog(m_enmMediumType, QApplication::activeWindow(), m_strMachineFolder);
if (uMediumID.isNull())
return;
repopulateTreeWidget();
diff --git a/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp
index ef0075a4b..4478361fd 100644
--- a/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/net/UIUpdateManager.cpp
@@ -564,6 +564,8 @@ void UIUpdateManager::shutdown()
void UIUpdateManager::sltForceCheck()
{
+ return;
+
/* Force call for new version check: */
sltCheckIfUpdateIsNecessary(true /* force call */);
}
diff --git a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
index 9d5e34d5c..05c5ff5b2 100644
--- a/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
@@ -313,6 +313,10 @@ bool UISettingsDialogGlobal::isPageAvailable(int iPageId) const
#endif
break;
}
+ case GlobalSettingsPageType_Update:
+ {
+ return false;
+ }
default:
break;
}
diff --git a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsExtension.cpp b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsExtension.cpp
index cdcf7bfd0..7dad500e9 100644
--- a/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsExtension.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsExtension.cpp
@@ -16,6 +16,7 @@
*/
/* Qt includes: */
+#include <QApplication>
#include <QHeaderView>
#include <QMenu>
#ifdef VBOX_WS_WIN
@@ -295,7 +296,7 @@ void UIGlobalSettingsExtension::sltAddPackage()
extensions << QString("*.%1").arg(VBoxExtPackFileExts[i]);
const QString strFilter = tr("Extension package files (%1)").arg(extensions.join(" "));
- const QStringList fileNames = QIFileDialog::getOpenFileNames(strBaseFolder, strFilter, this, strTitle, 0, true, true);
+ const QStringList fileNames = QIFileDialog::getOpenFileNames(strBaseFolder, strFilter, QApplication::activeWindow(), strTitle, 0, true, true);
QString strFilePath;
if (!fileNames.isEmpty())
diff --git a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp
index 5d3b06268..1c039d79d 100644
--- a/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp
@@ -3958,7 +3958,7 @@ void UIMachineSettingsStorage::sltChooseDiskFile()
{
const QString strMachineFolder(QFileInfo(m_strMachineSettingsFilePath).absolutePath());
- QUuid uMediumId = uiCommon().openMediumWithFileOpenDialog(m_pMediumIdHolder->type(), this, strMachineFolder);
+ QUuid uMediumId = uiCommon().openMediumWithFileOpenDialog(m_pMediumIdHolder->type(), QApplication::activeWindow(), strMachineFolder);
if (uMediumId.isNull())
return;
m_pMediumIdHolder->setId(uMediumId);
diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIEmptyFilePathSelector.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIEmptyFilePathSelector.cpp
index 97d383b15..cfa76d1a0 100644
--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIEmptyFilePathSelector.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIEmptyFilePathSelector.cpp
@@ -232,16 +232,16 @@ void UIEmptyFilePathSelector::choose()
switch (mMode)
{
case UIEmptyFilePathSelector::Mode_File_Open:
- path = QIFileDialog::getOpenFileName (initDir, mFileFilters, parentWidget(), mFileDialogTitle); break;
+ path = QIFileDialog::getOpenFileName (initDir, mFileFilters, QApplication::activeWindow(), mFileDialogTitle); break;
case UIEmptyFilePathSelector::Mode_File_Save:
{
- path = QIFileDialog::getSaveFileName (initDir, mFileFilters, parentWidget(), mFileDialogTitle);
+ path = QIFileDialog::getSaveFileName (initDir, mFileFilters, QApplication::activeWindow(), mFileDialogTitle);
if (!path.isEmpty() && QFileInfo (path).suffix().isEmpty())
path = QString ("%1.%2").arg (path).arg (mDefaultSaveExt);
break;
}
case UIEmptyFilePathSelector::Mode_Folder:
- path = QIFileDialog::getExistingDirectory (initDir, parentWidget(), mFileDialogTitle); break;
+ path = QIFileDialog::getExistingDirectory (initDir, QApplication::activeWindow(), mFileDialogTitle); break;
}
if (path.isEmpty())
return;
diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIFilePathSelector.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIFilePathSelector.cpp
index fa4ec9c63..3bdf74728 100644
--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIFilePathSelector.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIFilePathSelector.cpp
@@ -397,10 +397,10 @@ void UIFilePathSelector::selectPath()
switch (m_enmMode)
{
case Mode_File_Open:
- strSelPath = QIFileDialog::getOpenFileName(strInitDir, m_strFileDialogFilters, parentWidget(), m_strFileDialogTitle); break;
+ strSelPath = QIFileDialog::getOpenFileName(strInitDir, m_strFileDialogFilters, QApplication::activeWindow(), m_strFileDialogTitle); break;
case Mode_File_Save:
{
- strSelPath = QIFileDialog::getSaveFileName(strInitDir, m_strFileDialogFilters, parentWidget(), m_strFileDialogTitle);
+ strSelPath = QIFileDialog::getSaveFileName(strInitDir, m_strFileDialogFilters, QApplication::activeWindow(), m_strFileDialogTitle);
if (!strSelPath.isEmpty() && QFileInfo(strSelPath).suffix().isEmpty())
{
if (m_strFileDialogDefaultSaveExtension.isEmpty())
@@ -411,7 +411,7 @@ void UIFilePathSelector::selectPath()
break;
}
case Mode_Folder:
- strSelPath = QIFileDialog::getExistingDirectory(strInitDir, parentWidget(), m_strFileDialogTitle); break;
+ strSelPath = QIFileDialog::getExistingDirectory(strInitDir, QApplication::activeWindow(), m_strFileDialogTitle); break;
}
/* Do nothing if nothing chosen: */
diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp
index fad019e6e..9f2ae0202 100644
--- a/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp
@@ -78,7 +78,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/Installer/common/virtualbox.desktop.in b/src/VBox/Installer/common/virtualbox.desktop.in
index 3fca2b616..bb514171f 100644
--- a/src/VBox/Installer/common/virtualbox.desktop.in
+++ b/src/VBox/Installer/common/virtualbox.desktop.in
@@ -2,6 +2,7 @@
Encoding=UTF-8
Version=1.0
Name=@VBOX_PRODUCT@
+Name[ru]=п▓п╦я─я┌я┐п╟п╩п╦п╥п╟я┌п╬я─ VirtualBox
GenericName=Virtual Machine
GenericName[de]=Virtuelle Maschine
GenericName[ru]=п▓п╦я─я┌я┐п╟п╩я▄п╫п╟я▐ п╪п╟я┬п╦п╫п╟
diff --git a/src/VBox/Installer/linux/VBoxCreateUSBNode.sh b/src/VBox/Installer/linux/VBoxCreateUSBNode.sh
index 921a862cc..fee052ea7 100755
--- a/src/VBox/Installer/linux/VBoxCreateUSBNode.sh
+++ b/src/VBox/Installer/linux/VBoxCreateUSBNode.sh
@@ -21,13 +21,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
@@ -39,6 +42,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 cf22f279a..cb915bbbd 100644
--- a/src/VBox/Main/Makefile.kmk
+++ b/src/VBox/Main/Makefile.kmk
@@ -509,6 +509,7 @@ endif
VBoxSVC_LIBS += \
$(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB) \
$(PATH_STAGE_LIB)/SSMStandalone$(VBOX_SUFF_LIB) \
+ $(LIB_RUNTIME) \
$(LIB_DDU)
VBoxSVC_SDKS = VBOX_LIBPNG VBOX_ZLIB
@@ -681,6 +682,7 @@ ifdef VBOX_WITH_NETFLT
$(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_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB)
@@ -834,6 +836,7 @@ VBoxSVCM_SOURCES = \
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
@@ -1061,6 +1064,8 @@ ifdef VBOX_WITH_USB
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 2e189a402..ba058b020 100644
--- a/src/VBox/Main/src-all/Global.cpp
+++ b/src/VBox/Main/src-all/Global.cpp
@@ -213,6 +213,17 @@ const Global::OSType Global::sOSTypes[] =
1, 1024, 16, 8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980 },
+ { "Linux", "Linux", "ALTLinux", "ALT Linux (32 bit)",
+ VBOXOSTYPE_ALTLinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
+ 1, 1024, 16, 8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97,AudioCodecType_AD1980 },
+
+ { "Linux", "Linux", "ALTLinux_64", "ALT Linux (64 bit)",
+ VBOXOSTYPE_ALTLinux_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC
+ | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
+ 1, 1024, 16, 8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+ StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97,AudioCodecType_AD1980 },
+
{ "Linux", "Linux", "ArchLinux", "Arch Linux (32-bit)",
VBOXOSTYPE_ArchLinux, VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
1, 1024, 16, 8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
diff --git a/src/VBox/Main/src-server/ApplianceImpl.cpp b/src/VBox/Main/src-server/ApplianceImpl.cpp
index f2bc64504..e3403db61 100644
--- a/src/VBox/Main/src-server/ApplianceImpl.cpp
+++ b/src/VBox/Main/src-server/ApplianceImpl.cpp
@@ -154,6 +154,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 ddc1c128d..0c3106b83 100644
--- a/src/VBox/Main/src-server/VirtualBoxImpl.cpp
+++ b/src/VBox/Main/src-server/VirtualBoxImpl.cpp
@@ -1985,7 +1985,9 @@ HRESULT VirtualBox::createMachine(const com::Utf8Str &aSettingsFile,
ComObjPtr<GuestOSType> osType;
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 */
rc = machine->init(this,
strSettingsFile,
diff --git a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
index 8db0a170e..8e3abafeb 100644
--- a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
+++ b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
@@ -383,11 +383,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 9ab6ebfdc..40c6ce192 100644
--- a/src/VBox/VMM/VMMR0/VMMR0.cpp
+++ b/src/VBox/VMM/VMMR0/VMMR0.cpp
@@ -2175,7 +2175,7 @@ DECL_NO_INLINE(static, int) vmmR0EntryExWorker(PGVM pGVM, VMCPUID idCpu, VMMR0OP
VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);
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 f0388b0ad..2edd265e2 100644
--- a/src/VBox/VMM/testcase/Makefile.kmk
+++ b/src/VBox/VMM/testcase/Makefile.kmk
@@ -28,9 +28,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) \
@@ -105,9 +107,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/libs/xpcom18a4/Makefile.kmk b/src/libs/xpcom18a4/Makefile.kmk
index f1a2c9bb1..ee7fbea10 100644
--- a/src/libs/xpcom18a4/Makefile.kmk
+++ b/src/libs/xpcom18a4/Makefile.kmk
@@ -1024,6 +1024,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.
@@ -1186,6 +1187,7 @@ VBoxXPCOMIPCC_SOURCES += \
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)
@@ -1211,6 +1213,7 @@ else
VBoxXPCOMIPCD_SOURCES += \
ipc/ipcd/daemon/src/ipcdUnix.cpp
endif
+VBoxXPCOMIPCD_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR)
#
diff --git a/src/libs/xpcom18a4/python/Makefile.kmk b/src/libs/xpcom18a4/python/Makefile.kmk
index afc3d6b33..3852b9d9a 100644
--- a/src/libs/xpcom18a4/python/Makefile.kmk
+++ b/src/libs/xpcom18a4/python/Makefile.kmk
@@ -579,6 +579,53 @@ VBoxPython3_9m_x86_LIBS = $(VBOX_PYTHON39M_LIB_X86)
endif
endif
+
+ifdef VBOX_PYTHON310_INC
+#
+# Python 3.10 version
+#
+DLLS += VBoxPython3_10
+VBoxPython3_10_EXTENDS = VBoxPythonBase
+VBoxPython3_10_EXTENDS_BY = appending
+VBoxPython3_10_TEMPLATE = XPCOM
+VBoxPython3_10_INCS = $(VBOX_PYTHON310_INC)
+VBoxPython3_10_LIBS = $(VBOX_PYTHON310_LIB)
+
+ ifdef VBOX_WITH_32_ON_64_MAIN_API
+ ifdef VBOX_PYTHON310_LIB_X86
+DLLS += VBoxPython3_10_x86
+VBoxPython3_10_x86_EXTENDS = VBoxPythonBase_x86
+VBoxPython3_10_x86_EXTENDS_BY = appending
+VBoxPython3_10_x86_TEMPLATE = XPCOM
+VBoxPython3_10_x86_INCS = $(VBOX_PYTHON310_INC)
+VBoxPython3_10_x86_LIBS = $(VBOX_PYTHON310_LIB_X86)
+ endif
+ endif
+endif
+
+ifdef VBOX_PYTHON310M_INC
+#
+# Python 3.10 version with pymalloc
+#
+DLLS += VBoxPython3_10m
+VBoxPython3_10m_EXTENDS = VBoxPythonBase_m
+VBoxPython3_10m_EXTENDS_BY = appending
+VBoxPython3_10m_TEMPLATE = XPCOM
+VBoxPython3_10m_INCS = $(VBOX_PYTHON310M_INC)
+VBoxPython3_10m_LIBS = $(VBOX_PYTHON310M_LIB)
+
+ ifdef VBOX_WITH_32_ON_64_MAIN_API
+ ifdef VBOX_PYTHON310M_LIB_X86
+DLLS += VBoxPython3_10m_x86
+VBoxPython3_10m_x86_EXTENDS = VBoxPythonBase_x86_m
+VBoxPython3_10m_x86_EXTENDS_BY = appending
+VBoxPython3_10m_x86_TEMPLATE_ = XPCOM
+VBoxPython3_10m_x86_INCS = $(VBOX_PYTHON310M_INC)
+VBoxPython3_10m_x86_LIBS = $(VBOX_PYTHON310M_LIB_X86)
+ endif
+ endif
+endif
+
ifdef VBOX_PYTHONDEF_INC
#
# Python without versioning
diff --git a/src/libs/xpcom18a4/python/gen_python_deps.py b/src/libs/xpcom18a4/python/gen_python_deps.py
index b116313ad..1e161acab 100755
--- a/src/libs/xpcom18a4/python/gen_python_deps.py
+++ b/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
-versions = ["2.6", "2.7", "3.1", "3.2", "3.2m", "3.3", "3.3m", "3.4", "3.4m", "3.5", "3.5m", "3.6", "3.6m", "3.7", "3.7m", "3.8", "3.8m", "3.9", "3.9m" ]
+versions = ["2.6", "2.7", "3.1", "3.2", "3.2m", "3.3", "3.3m", "3.4", "3.4m", "3.5", "3.5m", "3.6", "3.6m", "3.7", "3.7m", "3.8", "3.8m", "3.9", "3.9m", "3.10", "3.10m" ]
prefixes = ["/usr", "/usr/local", "/opt", "/opt/local"]
known = {}
diff --git a/src/libs/xpcom18a4/python/src/PyXPCOM.h b/src/libs/xpcom18a4/python/src/PyXPCOM.h
index 368b00215..00cf0d3c2 100644
--- a/src/libs/xpcom18a4/python/src/PyXPCOM.h
+++ b/src/libs/xpcom18a4/python/src/PyXPCOM.h
@@ -140,9 +140,6 @@ inline PyObject *PyBool_FromLong(long ok)
# ifndef PyUnicode_AsUTF8
# define PyUnicode_AsUTF8(o) _PyUnicode_AsString(o)
# endif
-# ifndef PyUnicode_AsUTF8AndSize
-# define PyUnicode_AsUTF8AndSize(o,s) _PyUnicode_AsStringAndSize(o,s)
-# endif
typedef struct PyMethodChain
{
PyMethodDef *methods;
diff --git a/src/libs/xpcom18a4/python/src/module/_xpcom.cpp b/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
index 6c5bc7d62..fe2097bdf 100644
--- a/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
+++ b/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
@@ -84,7 +84,11 @@ extern PYXPCOM_EXPORT void PyXPCOM_InterpreterState_Ensure();
# define MANGLE_MODULE_INIT(a_Name) RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
# endif
# ifdef VBOX_PYXPCOM_VERSIONED
-# if PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
+# if PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000
+# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_10")
+# define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_10)
+
+# elif PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_9")
# define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_9)