Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37615449
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-4.0.12-alt0.M51.1.patch
Скачать


 Config.kmk                                         |   18 +-
 configure                                          |   27 +-
 include/VBox/ostypes.h                             |    2 +
 .../Additions/common/VBoxGuestLib/Makefile.kmk     |    4 +-
 src/VBox/Additions/common/crOpenGL/Makefile.kmk    |   14 +-
 .../Additions/linux/installer/vboxadd-service.sh   |  261 +---------
 src/VBox/Additions/linux/installer/vboxadd.sh      |  527 +++-----------------
 src/VBox/Additions/x11/Installer/98vboxadd-xclient |    8 +-
 src/VBox/Additions/x11/Makefile.kmk                |    4 +
 src/VBox/Additions/x11/vboxmouse/Makefile.kmk      |   19 +-
 src/VBox/Additions/x11/vboxvideo/Makefile.kmk      |   45 +-
 src/VBox/Devices/Makefile.kmk                      |    6 +-
 src/VBox/Devices/testcase/Makefile.kmk             |    4 +
 src/VBox/Frontends/VBoxBFE/Makefile.kmk            |    1 +
 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 +
 .../VirtualBox/src/globals/VBoxGlobal.cpp          |    2 +
 .../src/widgets/VBoxOSTypeSelectorWidget.cpp       |    7 +-
 .../VirtualBox/src/wizards/newvm/UINewVMWzd.cpp    |    2 +
 src/VBox/Installer/common/virtualbox.desktop.in    |    2 +
 src/VBox/Main/Makefile.kmk                         |    5 +
 src/VBox/Main/src-all/Global.cpp                   |    8 +
 src/VBox/Main/src-server/ApplianceImpl.cpp         |    2 +
 src/VBox/Main/webservice/Makefile.kmk              |    1 +
 src/VBox/Main/xml/Settings.cpp                     |    1 +
 src/VBox/Main/xml/SettingsConverter.xsl            |    1 +
 src/VBox/Main/xml/VirtualBox-settings-common.xsd   |    2 +
 src/VBox/Runtime/Makefile.kmk                      |   14 +-
 src/VBox/Runtime/common/misc/thread.cpp            |   26 -
 src/VBox/Runtime/common/misc/threadbasic.cpp       |   63 +++
 src/VBox/Runtime/r0drv/linux/the-linux-kernel.h    |   16 +-
 src/VBox/Runtime/r3/linux/semevent-linux.cpp       |    2 +-
 src/VBox/VMM/Makefile.kmk                          |    2 +-
 src/VBox/VMM/testcase/Makefile.kmk                 |   10 +-
 src/libs/xpcom18a4/Makefile.kmk                    |   12 +-
 src/libs/xpcom18a4/python/__init__.py              |    2 +-
 src/libs/xpcom18a4/python/components.py            |    2 +-
 40 files changed, 334 insertions(+), 794 deletions(-)
diff --git a/Config.kmk b/Config.kmk
index 54b4fd5..1c996c4 100644
--- a/Config.kmk
+++ b/Config.kmk
@@ -62,6 +62,9 @@ PROPS_DLLS_ACCUMULATE_L      += INTERMEDIATES
 PROPS_SYSMODS_ACCUMULATE_L   += INTERMEDIATES
 PROPS_MISCBINS_ACCUMULATE_L  += INTERMEDIATES
 
+# path to the units
+KBUILD_UNIT_PATHS = $(PWD)/kBuild/units
+
 # Misc names used bye the install paths below.
 VBOX_PUEL_MANGLED_NAME := Oracle_VM_VirtualBox_Extension_Pack
 
@@ -1629,7 +1632,7 @@ VBOX_PATH_MAKECAB   ?= $(VBOX_PATH_CABSDK)/BIN/MAKECAB.EXE
 
 # We need to export YASM for OSE, but since it was converted to .zip we need to
 # allow for the location used by the zip to be properly cleaned up first.
-if1of ($(KBUILD_HOST).$(KBUILD_HOST_ARCH), linux.x86 solaris.x86 win.x86)
+if1of ($(KBUILD_HOST).$(KBUILD_HOST_ARCH), linux.x86 linux.amd64 solaris.x86 win.x86)
  PATH_TOOL_YASM ?= $(PATH_DEVTOOLS_BLD)/bin
 endif
 
@@ -2392,7 +2395,14 @@ if1of ($(KBUILD_TARGET), linux)
    ifneq ($(kernelpath),)
     VBOX_LINUX_INCS += $(VBOX_LINUX_SRC)/include2 $(kernelpath)/include
    else
-    kernelpath := $(VBOX_LINUX_SRC)
+    # 2.6.25 format for splitted sources
+    kernelsrc := $(shell $(SED_EXT) -ne 's+^MAKEARGS := -C++p' $(VBOX_LINUX_SRC)/Makefile)
+    ifneq ($(kernelsrc),)
+     kernelpath := $(realpath $(VBOX_LINUX_SRC)/$(kernelsrc))
+     VBOX_LINUX_INCS                 += $(VBOX_LINUX_SRC)/include2 $(kernelpath)/include
+    else
+     kernelpath := $(VBOX_LINUX_SRC)
+    endif
    endif
    VBOX_LINUX_INCS  += $(kernelpath)/include/asm-i386/mach-default \
                        $(kernelpath)/include/asm-x86/mach-default \
@@ -4089,7 +4099,7 @@ TEMPLATE_VBOXBLDPROG_LDFLAGS.sparc32     = -m32
 TEMPLATE_VBOXBLDPROG_LDFLAGS.amd64       = -m64
 TEMPLATE_VBOXBLDPROG_LDFLAGS.sparc64     = -m64
  ifeq ($(KBUILD_HOST),linux)
-TEMPLATE_VBOXBLDPROG_LIBS                = pthread m rt dl
+TEMPLATE_VBOXBLDPROG_LIBS                = pthread m rt dl crypt
  else ifeq ($(KBUILD_HOST),os2)
 TEMPLATE_VBOXBLDPROG_TOOL                = GXX3OMF
 TEMPLATE_VBOXBLDPROG_LIBS                = socket iconv
@@ -4742,7 +4752,7 @@ else
 	/usr/lib/jvm/java-6-openjdk \
 	\
 	/usr/lib/jvm/sun-jdk-1.6 \
-	) /usr/lib/jvm/java-6-sun)
+	) /usr/lib/jvm/java-1.6.0-sun)
   endif
  endif
 
diff --git a/configure b/configure
index 02ce9fa..a692467 100755
--- a/configure
+++ b/configure
@@ -90,6 +90,8 @@ WITH_HARDENING=1
 WITH_VDE=0
 WITH_VNC=0
 WITH_DOCS=1
+WITH_ISO=0
+WITH_RUNINST=0
 BUILD_LIBXML2=
 BUILD_LIBXSLT=
 BUILD_LIBCURL=
@@ -120,7 +122,7 @@ LIBXCURSOR="-lXcursor"
 LIBXMU="-lXmu"
 LIBXINERAMA="-lXinerama"
 LIBXRANDR="-lXrandr"
-MAKESELF="makeself"
+MAKESELF="makeself.sh"
 MESA="-lGL"
 INCZ=""
 LIBZ="-lz"
@@ -1852,10 +1854,8 @@ EOF
   echo "$CC -m32 -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c" >> $LOG
   $CC -m32 -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c >> $LOG 2>&1
   if [ $? -ne 0 ]; then
-    echo
-    echo "  Cannot compile 32-bit applications (missing headers and/or libraries)!"
-    echo "  Check the file $LOG for detailed error information."
-    fail
+    cnf_append "VBOX_WITHOUT_BIARCH" "1"
+    log_success "no"
   else
     echo "executing the binary" >> $LOG
     $ODIR.tmp_out 2> $ODIR.test_execute.log
@@ -1869,7 +1869,6 @@ EOF
       return 1
     fi
   fi
-  log_success ""
 }
 
 
@@ -2161,6 +2160,8 @@ EOF
 [ $WITH_GSOAP   -eq 0 ] && echo "  --enable-webservice      enable the webservice stuff"
 [ $OSE          -eq 1 ] && echo "  --enable-vnc             enable the VNC server"
 [ $WITH_DOCS    -eq 1 ] && echo "  --disable-docs           don't build the documentation"
+[ $WITH_ISO     -eq 0 ] && echo "  --enable-addtitions-iso  generate guest additions iso image"
+[ $WITH_RUNINST -eq 0 ] && echo "  --enable-run-installer   generate guest additions run installer"
 [ "$OS" = "linux" -o "$OS" = "freebsd" ] && echo "  --enable-vde             enable VDE networking"
 cat << EOF
   --disable-hardening      don't be strict about /dev/vboxdrv access
@@ -2334,6 +2335,12 @@ for option in $*; do
     --disable-docs)
       WITH_DOCS=0
       ;;
+    --enable-addtitions-iso)
+      WITH_ISO=1
+      ;;
+    --enable-run-installer)
+      WITH_RUNINST=1
+      ;;
     --enable-hardening)
       WITH_HARDENING=2
       ;;
@@ -2504,6 +2511,10 @@ fi
 [ $WITH_HARDENING -eq 0 ] && cnf_append "VBOX_WITHOUT_HARDENING" "1"
 [ $WITH_HARDENING -eq 2 ] && cnf_append "VBOX_WITH_HARDENING" "2"
 [ $WITH_VMMRAW    -eq 0 ] && cnf_append "VBOX_WITH_RAW_MODE" ""
+[ $WITH_ISO       -eq 0 ] && cnf_append "VBOX_WITHOUT_ADDITIONS_ISO" "1"
+[ $WITH_ISO       -eq 1 ] && cnf_append "VBOX_WITHOUT_ADDITIONS_ISO" ""
+[ $WITH_RUNINST   -eq 0 ] && cnf_append "VBOX_NO_LINUX_RUN_INSTALLER" "1"
+[ $WITH_RUNINST   -eq 1 ] && cnf_append "VBOX_NO_LINUX_RUN_INSTALLER" ""
 
 # Darwin-specific
 if [ "$OS" = "darwin" ]; then
@@ -2517,7 +2528,7 @@ check_gcc
 # don't check for yasm for the time beeing as 0.40 and 0.50 both have known bugs
 # [ "$OS" != "darwin" ] && check_yasm
 [ "$OS" != "darwin"  ] && check_xsltproc
-[ "$OS" != "darwin"  ] && check_mkisofs
+[ "$OS" != "darwin" -a "$WITH_ISO" -eq 1 ] && check_mkisofs
 
 # the libraries
 [ "$OS" != "darwin"  ] && check_pthread
@@ -2575,7 +2586,7 @@ if [ "$OS" = "linux" ]; then
   check_compiler_h
   [ "$BUILD_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 1 ] && check_32bit
   # tools/common/makeself*
-  [ $OSE -ge 1 ] && check_makeself
+  [ $OSE -ge 1 -a $WITH_RUNINST -eq 1 ] && check_makeself
 fi
 
 [ -n "$SETUP_WINE" ] && setup_wine
diff --git a/include/VBox/ostypes.h b/include/VBox/ostypes.h
index 658ae8c..5a32327 100644
--- a/include/VBox/ostypes.h
+++ b/include/VBox/ostypes.h
@@ -96,6 +96,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/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk b/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk
index 242aeb5..324636b 100644
--- a/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk
+++ b/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk
@@ -40,8 +40,8 @@ LIBRARIES += \
 	VBoxGuestR3LibShared
 ifndef VBOX_ONLY_TESTSUITE
  if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd)
-  LIBRARIES += \
-  	VBoxGuestR3LibXFree86
+#  LIBRARIES += \
+#  	VBoxGuestR3LibXFree86
  endif
 endif
 LIBRARIES.win.amd64 += VBoxGuestR3Lib-x86 VBoxGuestR3LibShared-x86
diff --git a/src/VBox/Additions/common/crOpenGL/Makefile.kmk b/src/VBox/Additions/common/crOpenGL/Makefile.kmk
index e4f3092..97505de 100644
--- a/src/VBox/Additions/common/crOpenGL/Makefile.kmk
+++ b/src/VBox/Additions/common/crOpenGL/Makefile.kmk
@@ -63,16 +63,12 @@ VBoxOGL_TEMPLATE       = VBOXCROGLR3GUESTDLL
 VBoxOGL_INCS           = .
 if1of ($(KBUILD_TARGET), linux solaris freebsd)
  VBoxOGL_INCS     += \
-	$(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \
-	$(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \
-	$(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \
-	$(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \
-	$(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \
-	$(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \
-	$(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \
-	$(VBOX_PATH_X11_ROOT)/1.3/xorg \
+	/usr/include/X11 \
+	/usr/include/xorg \
+	/usr/include/pixman-1 \
 	$(VBOX_MESA_INCS) \
-	$(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13
+	/usr/include/drm \
+	/usr/include/libdrm
  VBoxOGL_DEFS     += VBOX_NO_NATIVEGL
 endif
 
diff --git a/src/VBox/Additions/linux/installer/vboxadd-service.sh b/src/VBox/Additions/linux/installer/vboxadd-service.sh
index 02016ee..cefc029 100755
--- a/src/VBox/Additions/linux/installer/vboxadd-service.sh
+++ b/src/VBox/Additions/linux/installer/vboxadd-service.sh
@@ -25,253 +25,41 @@
 # Description:    VirtualBox Additions Service
 ### END INIT INFO
 
-PATH=$PATH:/bin:/sbin:/usr/sbin
+# Do not load RH compatibility interface.
+WITHOUT_RC_COMPAT=1
 
-system=unknown
-if [ -f /etc/redhat-release ]; then
-    system=redhat
-    PIDFILE="/var/lock/subsys/vboxadd-service"
-elif [ -f /etc/SuSE-release ]; then
-    system=suse
-    PIDFILE="/var/lock/subsys/vboxadd-service"
-elif [ -f /etc/debian_version ]; then
-    system=debian
-    PIDFILE="/var/run/vboxadd-service"
-elif [ -f /etc/gentoo-release ]; then
-    system=gentoo
-    PIDFILE="/var/run/vboxadd-service"
-elif [ -f /etc/arch-release ]; then
-     system=arch
-     PIDFILE="/var/run/vboxadd-service"
-elif [ -f /etc/slackware-version ]; then
-    system=slackware
-    PIDFILE="/var/run/vboxadd-service"
-elif [ -f /etc/lfs-release ]; then
-    system=lfs
-    PIDFILE="/var/run/vboxadd-service.pid"
-else
-    system=other
-    if [ -d /var/run -a -w /var/run ]; then
-        PIDFILE="/var/run/vboxadd-service"
-    fi
-fi
-
-if [ "$system" = "redhat" ]; then
-    . /etc/init.d/functions
-    fail_msg() {
-        echo_failure
-        echo
-    }
-
-    succ_msg() {
-        echo_success
-        echo
-    }
-
-    begin() {
-        echo -n "$1"
-    }
-fi
-
-if [ "$system" = "suse" ]; then
-    . /etc/rc.status
-    daemon() {
-        startproc ${1+"$@"}
-    }
-
-    fail_msg() {
-        rc_failed 1
-        rc_status -v
-    }
-
-    succ_msg() {
-        rc_reset
-        rc_status -v
-    }
-
-    begin() {
-        echo -n "$1"
-    }
-fi
-
-if [ "$system" = "debian" ]; then
-    daemon() {
-        start-stop-daemon --start --exec $1 -- $2
-    }
-
-    killproc() {
-        start-stop-daemon --stop --retry 2 --exec $@
-    }
-
-    fail_msg() {
-        echo " ...fail!"
-    }
-
-    succ_msg() {
-        echo " ...done."
-    }
-
-    begin() {
-        echo -n "$1"
-    }
-fi
-
-if [ "$system" = "gentoo" ]; then
-    . /sbin/functions.sh
-    daemon() {
-        start-stop-daemon --start --exec $1 -- $2
-    }
-
-    killproc() {
-        start-stop-daemon --stop --retry 2 --exec $@
-    }
-
-    fail_msg() {
-        echo " ...fail!"
-    }
-
-    succ_msg() {
-        echo " ...done."
-    }
-
-    begin() {
-        echo -n "$1"
-    }
-
-    if [ "`which $0`" = "/sbin/rc" ]; then
-        shift
-    fi
-fi
-
-if [ "$system" = "arch" ]; then
-    USECOLOR=yes
-    . /etc/rc.d/functions
-    daemon() {
-        $@
-        test $? -eq 0 && add_daemon rc.`basename $1`
-    }
-
-    killproc() {
-        killall $@
-        rm_daemon `basename $@`
-    }
-
-    fail_msg() {
-        stat_fail
-    }
-
-    succ_msg() {
-        stat_done
-    }
+# Source function library.
+. /etc/init.d/functions
 
-    begin() {
-        stat_busy "$1"
-    }
+LOCKFILE="/var/lock/subsys/vboxadd-service"
+PIDFILE="/var/run/vboxadd-service"
+RETVAL=0
 
-fi
+# Source ntpd configuration.
+VBOXADD_SERVICE_ARGS=""
+SourceIfNotEmpty /etc/sysconfig/vboxadd-service
 
-if [ "$system" = "slackware" ]; then
-    daemon() {
-        $1 $2
-    }
-
-    killproc() {
-        killall $1
-        rm -f $PIDFILE
-    }
-
-    fail_msg() {
-        echo " ...fail!"
-    }
-
-    succ_msg() {
-        echo " ...done."
-    }
-
-    begin() {
-        echo -n "$1"
-    }
-
-fi
-
-if [ "$system" = "lfs" ]; then
-    . /etc/rc.d/init.d/functions
-    daemon() {
-        loadproc $1 $2
-    }
-
-    fail_msg() {
-        echo_failure
-    }
-
-    succ_msg() {
-        echo_ok
-    }
-
-    begin() {
-        echo $1
-    }
-
-    status() {
-        statusproc $1
-    }
-fi
-
-if [ "$system" = "other" ]; then
-    fail_msg() {
-        echo " ...fail!"
-    }
-
-    succ_msg() {
-        echo " ...done."
-    }
-
-    begin() {
-        echo -n "$1"
-    }
-fi
-
-binary=/usr/sbin/VBoxService
-
-testbinary() {
-    test -x "$binary" || {
-        echo "Cannot run $binary"
-        exit 1
-    }
-}
+binary=VBoxService
 
 vboxaddrunning() {
     lsmod | grep -q "vboxguest[^_-]"
 }
 
 start() {
-    if ! test -f $PIDFILE; then
-        begin "Starting VirtualBox Guest Addition service ";
-        vboxaddrunning || {
-            echo "VirtualBox Additions module not loaded!"
-            exit 1
-        }
-        testbinary
-        daemon $binary > /dev/null
+    if vboxaddrunning; then
+        start_daemon --displayname "VirtualBox Guest Addition" \
+            --make-pidfile --pidfile "$PIDFILE" --lockfile "$LOCKFILE" -- $binary -f $VBOXADD_SERVICE_ARGS
         RETVAL=$?
-        test $RETVAL -eq 0 && echo `pidof VBoxService` > $PIDFILE
-        succ_msg
+    else
+        echo "VirtualBox Additions module not loaded!"
+        RETVAL=2
     fi
     return $RETVAL
 }
 
 stop() {
-    if test -f $PIDFILE; then
-        begin "Stopping VirtualBox Guest Addition service ";
-        killproc $binary
-        RETVAL=$?
-        if ! pidof VBoxService > /dev/null 2>&1; then
-            rm -f $PIDFILE
-            succ_msg
-        else
-            fail_msg
-        fi
-    fi
+    stop_daemon --displayname "VirtualBox Guest Addition" --pidfile "$PIDFILE" --lockfile "$LOCKFILE" -- $binary
+    RETVAL=$?
     return $RETVAL
 }
 
@@ -279,15 +67,6 @@ restart() {
     stop && start
 }
 
-status() {
-    echo -n "Checking for VBoxService"
-    if [ -f $PIDFILE ]; then
-        echo " ...running"
-    else
-        echo " ...not running"
-    fi
-}
-
 case "$1" in
 start)
     start
@@ -299,7 +78,7 @@ restart)
     restart
     ;;
 status)
-    status
+    status --displayname "VirtualBox Guest Addition service" --pidfile "$PIDFILE" -- $binary
     ;;
 setup)
     ;;
diff --git a/src/VBox/Additions/linux/installer/vboxadd.sh b/src/VBox/Additions/linux/installer/vboxadd.sh
index 4f02c64..1dc31de 100755
--- a/src/VBox/Additions/linux/installer/vboxadd.sh
+++ b/src/VBox/Additions/linux/installer/vboxadd.sh
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
 #
 # Linux Additions kernel module init script ($Revision: 71770 $)
 #
@@ -16,7 +16,7 @@
 #
 
 
-# chkconfig: 357 30 70
+# chkconfig: 35 30 70
 # description: VirtualBox Linux Additions kernel modules
 #
 ### BEGIN INIT INFO
@@ -28,13 +28,12 @@
 # Description:    VirtualBox Linux Additions kernel modules
 ### END INIT INFO
 
-PATH=$PATH:/bin:/sbin:/usr/sbin
-PACKAGE=VBoxGuestAdditions
-BUILDVBOXGUEST=`/bin/ls /usr/src/vboxguest*/vboxguest/build_in_tmp 2>/dev/null|cut -d' ' -f1`
-BUILDVBOXSF=`/bin/ls /usr/src/vboxguest*/vboxsf/build_in_tmp 2>/dev/null|cut -d' ' -f1`
-BUILDVBOXVIDEO=`/bin/ls /usr/src/vboxguest*/vboxvideo/build_in_tmp 2>/dev/null|cut -d' ' -f1`
-DODKMS=`/bin/ls /usr/src/vboxguest*/do_dkms 2>/dev/null|cut -d' ' -f1`
-LOG="/var/log/vboxadd-install.log"
+# Do not load RH compatibility interface.
+WITHOUT_RC_COMPAT=1
+
+# Source function library.
+. /etc/init.d/functions
+
 MODPROBE=/sbin/modprobe
 
 if $MODPROBE -c | grep -q '^allow_unsupported_modules  *0'; then
@@ -58,489 +57,121 @@ case "$cpu" in
     ;;
 esac
 
-if [ -f /etc/arch-release ]; then
-    system=arch
-elif [ -f /etc/redhat-release ]; then
-    system=redhat
-elif [ -f /etc/SuSE-release ]; then
-    system=suse
-elif [ -f /etc/gentoo-release ]; then
-    system=gentoo
-elif [ -f /etc/lfs-release -a -d /etc/rc.d/init.d ]; then
-    system=lfs
-else
-    system=other
-fi
-
-if [ "$system" = "arch" ]; then
-    USECOLOR=yes
-    . /etc/rc.d/functions
-    fail_msg() {
-        stat_fail
-    }
-
-    succ_msg() {
-        stat_done
-    }
-
-    begin() {
-        stat_busy "$1"
-    }
-fi
-
-if [ "$system" = "redhat" ]; then
-    . /etc/init.d/functions
-    fail_msg() {
-        echo_failure
-        echo
-    }
-    succ_msg() {
-        echo_success
-        echo
-    }
-    begin() {
-        echo -n "$1"
-    }
-fi
-
-if [ "$system" = "suse" ]; then
-    . /etc/rc.status
-    fail_msg() {
-        rc_failed 1
-        rc_status -v
-    }
-    succ_msg() {
-        rc_reset
-        rc_status -v
-    }
-    begin() {
-        echo -n "$1"
-    }
-fi
-
-if [ "$system" = "gentoo" ]; then
-    if [ -f /sbin/functions.sh ]; then
-        . /sbin/functions.sh
-    elif [ -f /etc/init.d/functions.sh ]; then
-        . /etc/init.d/functions.sh
-    fi
-    fail_msg() {
-        eend 1
-    }
-    succ_msg() {
-        eend $?
-    }
-    begin() {
-        ebegin $1
-    }
-    if [ "`which $0`" = "/sbin/rc" ]; then
-        shift
-    fi
-fi
-
-if [ "$system" = "lfs" ]; then
-    . /etc/rc.d/init.d/functions
-    fail_msg() {
-        echo_failure
-    }
-    succ_msg() {
-        echo_ok
-    }
-    begin() {
-        echo $1
-    }
-fi
-
-if [ "$system" = "other" ]; then
-    fail_msg() {
-        echo " ...fail!"
-    }
-    succ_msg() {
-        echo " ...done."
-    }
-    begin() {
-        echo -n $1
-    }
-fi
-
-dev=/dev/vboxguest
-userdev=/dev/vboxuser
-owner=vboxadd
-group=1
-
-test_for_gcc_and_make()
-{
-    which make > /dev/null 2>&1 || printf "\nThe make utility was not found. If the following module compilation fails then\nthis could be the reason and you should try installing it.\n"
-    which gcc > /dev/null 2>&1 || printf "\nThe gcc utility was not found. If the following module compilation fails then\nthis could be the reason and you should try installing it.\n"
-}
+# Source function library.
+. /etc/init.d/functions
 
-test_sane_kernel_dir()
-{
-    KERN_VER=`uname -r`
-    KERN_DIR="/lib/modules/$KERN_VER/build"
-    if [ -d "$KERN_DIR" ]; then
-        KERN_REL=`make -sC $KERN_DIR --no-print-directory kernelrelease 2>/dev/null || true`
-        if [ -z "$KERN_REL" -o "x$KERN_REL" = "x$KERN_VER" ]; then
-            return 0
-        fi
-    fi
-    printf "\nThe headers for the current running kernel were not found. If the following\nmodule compilation fails then this could be the reason.\n"
-    if [ "$system" = "redhat" ]; then
-        printf "The missing package can be probably installed with\nyum install kernel-devel-$KERN_VER\n"
-    elif [ "$system" = "suse" ]; then
-        printf "The missing package can be probably installed with\nzypper install kernel-$KERN_VER\n"
-    elif [ "$system" = "debian" ]; then
-        printf "The missing package can be probably installed with\napt-get install linux-headers-$KERN_VER\n"
-    fi
-}
-
-fail()
-{
-    if [ "$system" = "gentoo" ]; then
-        eerror $1
-        exit 1
-    fi
-    fail_msg
-    echo "($1)"
-    exit 1
-}
+LOCKFILE=/var/lock/subsys/virtualbox-addition
+RETVAL=0
 
 running_vboxguest()
 {
     lsmod | grep -q "vboxguest[^_-]"
 }
 
-running_vboxadd()
-{
-    lsmod | grep -q "vboxadd[^_-]"
-}
-
 running_vboxsf()
 {
     lsmod | grep -q "vboxsf[^_-]"
 }
 
-do_vboxguest_non_udev()
+running_vboxvideo()
 {
-    if [ ! -c $dev ]; then
-        maj=`sed -n 's;\([0-9]\+\) vboxguest;\1;p' /proc/devices`
-        if [ ! -z "$maj" ]; then
-            min=0
-        else
-            min=`sed -n 's;\([0-9]\+\) vboxguest;\1;p' /proc/misc`
-            if [ ! -z "$min" ]; then
-                maj=10
-            fi
-        fi
-        test -z "$maj" && {
-            rmmod vboxguest 2>/dev/null
-            fail "Cannot locate the VirtualBox device"
-        }
-
-        mknod -m 0664 $dev c $maj $min || {
-            rmmod vboxguest 2>/dev/null
-            fail "Cannot create device $dev with major $maj and minor $min"
-        }
-    fi
-    chown $owner:$group $dev 2>/dev/null || {
-        rm -f $dev 2>/dev/null
-        rm -f $userdev 2>/dev/null
-        rmmod vboxguest 2>/dev/null
-        fail "Cannot change owner $owner:$group for device $dev"
-    }
-
-    if [ ! -c $userdev ]; then
-        maj=10
-        min=`sed -n 's;\([0-9]\+\) vboxuser;\1;p' /proc/misc`
-        if [ ! -z "$min" ]; then
-            mknod -m 0666 $userdev c $maj $min || {
-                rm -f $dev 2>/dev/null
-                rmmod vboxguest 2>/dev/null
-                fail "Cannot create device $userdev with major $maj and minor $min"
-            }
-            chown $owner:$group $userdev 2>/dev/null || {
-                rm -f $dev 2>/dev/null
-                rm -f $userdev 2>/dev/null
-                rmmod vboxguest 2>/dev/null
-                fail "Cannot change owner $owner:$group for device $userdev"
-            }
-        fi
-    fi
+    lsmod | grep -q "vboxvideo[^_-]"
 }
 
 start()
 {
-    begin "Starting the VirtualBox Guest Additions ";
-    which udevd >/dev/null 2>&1 || no_udev=1
-    running_vboxguest || {
-        rm -f $dev || {
-            fail "Cannot remove $dev"
-        }
-
-        rm -f $userdev || {
-            fail "Cannot remove $userdev"
-        }
-
-        $MODPROBE vboxguest >/dev/null 2>&1 || {
-            fail "modprobe vboxguest failed"
-        }
-        case "$no_udev" in 1)
-            sleep .5;;
-        esac
-    }
-    case "$no_udev" in 1)
-        do_vboxguest_non_udev;;
-    esac
-
-    if [ -n "$BUILDVBOXSF" ]; then
-        running_vboxsf || {
-            $MODPROBE vboxsf > /dev/null 2>&1 || {
-                if dmesg | grep "vboxConnect failed" > /dev/null 2>&1; then
-                    fail_msg
-                    echo "Unable to start shared folders support.  Make sure that your VirtualBox build"
-                    echo "supports this feature."
-                    exit 1
-                fi
-                fail "modprobe vboxsf failed"
-            }
-        }
+    action "Loading VirtualBox module (vboxguest):" modprobe vboxguest
+    RETVAL=$?
+    if [ $RETVAL = 0 ]; then
+        action "Loading VirtualBox module (vboxsf):" modprobe vboxsf
+        RETVAL=$?
+        if [ $RETVAL = 0 ]; then
+            action "Mount VirtualBox Share Folders:" mount -a -t vboxsf
+            action "Loading VirtualBox module (vboxvideo):" modprobe vboxvideo
+            RETVAL=$?
+        fi
     fi
-
-    # Mount all shared folders from /etc/fstab. Normally this is done by some
-    # other startup script but this requires the vboxdrv kernel module loaded.
+    [ $RETVAL = 0 ] && touch "$LOCKFILE" ||:
+    return $RETVAL
     # This isn't necessary anymore as the vboxsf module is autoloaded.
     # mount -a -t vboxsf
-
-    succ_msg
-    return 0
 }
 
 stop()
 {
-    begin "Stopping VirtualBox Additions ";
-    if ! umount -a -t vboxsf 2>/dev/null; then
-        fail "Cannot unmount vboxsf folders"
-    fi
-    if [ -n "$BUILDVBOXSF" ]; then
-        if running_vboxsf; then
-            rmmod vboxsf 2>/dev/null || fail "Cannot unload module vboxsf"
-        fi
-    fi
-    if running_vboxguest; then
-        rmmod vboxguest 2>/dev/null || fail "Cannot unload module vboxguest"
-        rm -f $userdev || fail "Cannot unlink $userdev"
-        rm -f $dev || fail "Cannot unlink $dev"
-    fi
-    succ_msg
-    return 0
+    local RETVAL1=0 RETVAL2=0 RETVAL3=0
+    action "Unmount VirtualBox Share Folders:" umount -a -t vboxsf
+    action "Unloading VirtualBox module (vboxvideo):" modprobe -r vboxvideo || RETVAL3=$?
+    action "Unloading VirtualBox module (vboxsf):" modprobe -r vboxsf || RETVAL2=$?
+    action "Unloading VirtualBox module (vboxguest):" modprobe -r vboxguest || RETVAL1=$?
+    [ $RETVAL3 = 0 ] || RETVAL=$RETVAL3
+    [ $RETVAL2 = 0 ] || RETVAL=$RETVAL2
+    [ $RETVAL1 = 0 ] || RETVAL=$RETVAL1
+    [ $RETVAL = 0 ] && rm -f "$LOCKFILE" ||:
+    return $RETVAL
 }
 
 restart()
 {
     stop && start
-    return 0
-}
-
-# Remove any existing VirtualBox guest kernel modules from the disk, but not
-# from the kernel as they may still be in use
-cleanup_modules()
-{
-    begin "Removing existing VirtualBox DKMS kernel modules"
-    $DODKMS uninstall > $LOG
-    succ_msg
-    begin "Removing existing VirtualBox non-DKMS kernel modules"
-    find /lib/modules -name vboxadd\* | xargs rm 2>/dev/null
-    find /lib/modules -name vboxguest\* | xargs rm 2>/dev/null
-    find /lib/modules -name vboxvfs\* | xargs rm 2>/dev/null
-    find /lib/modules -name vboxsf\* | xargs rm 2>/dev/null
-    find /lib/modules -name vboxvideo\* | xargs rm 2>/dev/null
-    succ_msg
-}
-
-# Build and install the VirtualBox guest kernel modules
-setup_modules()
-{
-    # don't stop the old modules here -- they might be in use
-    cleanup_modules
-    begin "Building the VirtualBox Guest Additions kernel modules"
-
-    # Short cut out if a dkms build succeeds
-    if $DODKMS install >> $LOG 2>&1; then
-        succ_msg
-        return 0
-    fi
-
-    test_for_gcc_and_make
-    test_sane_kernel_dir
-
-    if ! sh /usr/share/$PACKAGE/test/build_in_tmp \
-        --no-print-directory >> $LOG 2>&1; then
-        fail_msg
-        printf "Your system does not seem to be set up to build kernel modules.\nLook at $LOG to find out what went wrong.\nOnce you have corrected it, you can run\n\n  /etc/init.d/vboxadd setup\n\nto build them.\n\n"
-        return 1
-    else
-        if ! sh /usr/share/$PACKAGE/test_drm/build_in_tmp \
-            --no-print-directory >> $LOG 2>&1; then
-            printf "\nYour guest system does not seem to have sufficient OpenGL support to enable\naccelerated 3D effects (this requires Linux 2.6.27 or later in the guest\nsystem).  This Guest Additions feature will be disabled.\n\n"
-            BUILDVBOXVIDEO=""
-        fi
-    fi
-    echo
-    if [ -n "$BUILDVBOXGUEST" ]; then
-        begin "Building the main Guest Additions module"
-        if ! $BUILDVBOXGUEST \
-            --save-module-symvers /tmp/vboxguest-Module.symvers \
-            --no-print-directory install >> $LOG 2>&1; then
-            fail "Look at $LOG to find out what went wrong"
-        fi
-        succ_msg
-    fi
-    if [ -n "$BUILDVBOXSF" ]; then
-        begin "Building the shared folder support module"
-        if ! $BUILDVBOXSF \
-            --use-module-symvers /tmp/vboxguest-Module.symvers \
-            --no-print-directory install >> $LOG 2>&1; then
-            fail "Look at $LOG to find out what went wrong"
-        fi
-        succ_msg
-    fi
-    if [ -n "$BUILDVBOXVIDEO" ]; then
-        begin "Building the OpenGL support module"
-        if ! $BUILDVBOXVIDEO \
-            --use-module-symvers /tmp/vboxguest-Module.symvers \
-            --no-print-directory install >> $LOG 2>&1; then
-            fail "Look at $LOG to find out what went wrong"
-        fi
-        succ_msg
-    fi
-    depmod
-    return 0
-}
-
-# Do non-kernel bits needed for the kernel modules to work properly (user
-# creation, udev, mount helper...)
-extra_setup()
-{
-    begin "Doing non-kernel setup of the Guest Additions"
-    echo "Creating user for the Guest Additions." >> $LOG
-    # This is the LSB version of useradd and should work on recent
-    # distributions
-    useradd -d /var/run/vboxadd -g 1 -r -s /bin/false vboxadd >/dev/null 2>&1
-    # And for the others, we choose a UID ourselves
-    useradd -d /var/run/vboxadd -g 1 -u 501 -o -s /bin/false vboxadd >/dev/null 2>&1
-
-    # Add a group "vboxsf" for Shared Folders access
-    # All users which want to access the auto-mounted Shared Folders have to
-    # be added to this group.
-    groupadd -f vboxsf >/dev/null 2>&1
-
-    # Create udev description file
-    if [ -d /etc/udev/rules.d ]; then
-        echo "Creating udev rule for the Guest Additions kernel module." >> $LOG
-        udev_call=""
-        udev_app=`which udevadm 2> /dev/null`
-        if [ $? -eq 0 ]; then
-            udev_call="${udev_app} version 2> /dev/null"
-        else
-            udev_app=`which udevinfo 2> /dev/null`
-            if [ $? -eq 0 ]; then
-                udev_call="${udev_app} -V 2> /dev/null"
-            fi
-        fi
-        udev_fix="="
-        if [ "${udev_call}" != "" ]; then
-            udev_out=`${udev_call}`
-            udev_ver=`expr "$udev_out" : '[^0-9]*\([0-9]*\)'`
-            if [ "$udev_ver" = "" -o "$udev_ver" -lt 55 ]; then
-               udev_fix=""
-            fi
-        fi
-        ## @todo 60-vboxadd.rules -> 60-vboxguest.rules ?
-        echo "KERNEL=${udev_fix}\"vboxguest\", NAME=\"vboxguest\", OWNER=\"vboxadd\", MODE=\"0660\"" > /etc/udev/rules.d/60-vboxadd.rules
-        echo "KERNEL=${udev_fix}\"vboxuser\", NAME=\"vboxuser\", OWNER=\"vboxadd\", MODE=\"0666\"" >> /etc/udev/rules.d/60-vboxadd.rules
-    fi
-
-    # Put mount.vboxsf in the right place
-    ln -sf "$lib_path/$PACKAGE/mount.vboxsf" /sbin
     # At least Fedora 11 and Fedora 12 require the correct security context when
     # executing this command from service scripts. Shouldn't hurt for other
     # distributions.
-    chcon -u system_u -t mount_exec_t "$lib_path/$PACKAGE/mount.vboxsf" > /dev/null 2>&1
+    #chcon -u system_u -t mount_exec_t "$lib_path/$PACKAGE/mount.vboxsf" > /dev/null 2>&1
     # And at least Fedora 15 needs this for the acceleration support check to
     # work
-    redhat_release=`cat /etc/redhat-release 2> /dev/null`
-    case "$redhat_release" in Fedora\ release\ 15* )
-        for i in "$lib_path"/*.so
-        do
-            restorecon "$i" >/dev/null
-        done
-        ;;
-    esac
-
-    succ_msg
-}
-
-# setup_script
-setup()
-{
-    setup_modules
-    mod_succ="$?"
-    extra_setup
-    if [ "$mod_succ" -eq "0" ]; then
-        if running_vboxguest || running_vboxadd; then
-            printf "You should restart your guest to make sure the new modules are actually used\n\n"
-        else
-            start
-        fi
-    fi
-}
+    #redhat_release=`cat /etc/redhat-release 2> /dev/null`
+    #case "$redhat_release" in Fedora\ release\ 15* )
+    #    for i in "$lib_path"/*.so
+    #    do
+    #        restorecon "$i" >/dev/null
+    #    done
+    #    ;;
+    #esac
 
-# cleanup_script
-cleanup()
-{
-    # Delete old versions of VBox modules.
-    cleanup_modules
-    depmod
-
-    # Remove old module sources
-    rm -rf /usr/src/vboxadd-* /usr/src/vboxguest-* /usr/src/vboxvfs-* /usr/src/vboxsf-* /usr/src/vboxvideo-*
-
-    # Remove other files
-    rm /sbin/mount.vboxsf 2>/dev/null
-    rm /etc/udev/rules.d/60-vboxadd.rules 2>/dev/null
+    return 0
 }
 
-dmnstatus()
+status()
 {
     if running_vboxguest; then
+        echo "vboxguest module is loaded"
+        running_vboxsf && echo "vboxsf module is loaded"
+        running_vboxvideo && echo "vboxvideo module is loaded"
         echo "The VirtualBox Additions are currently running."
+    elif [ -f "$LOCKFILE" ]; then
+        echo "The VirtualBox Additions module is not loaded, but subsystem is locked"
+        RETVAL=2
     else
-        echo "The VirtualBox Additions are not currently running."
+        echo "The VirtualBox Additions are not currently running"
     fi
 }
 
+# See how we were called.
 case "$1" in
-start)
-    start
-    ;;
-stop)
-    stop
-    ;;
-restart)
-    restart
-    ;;
-setup)
-    setup
-    ;;
-cleanup)
-    cleanup
-    ;;
-status)
-    dmnstatus
-    ;;
-*)
-    echo "Usage: $0 {start|stop|restart|status}"
-    exit 1
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    restart)
+        restart
+        ;;
+    condstop)
+        if [ -e "$LOCKFILE" ]; then
+            stop
+        fi
+        ;;
+    condrestart)
+        # Do nothing on package upgrade
+        ;;
+    status)
+        status
+        ;;
+    *)
+        msg_usage "${0##*/} {start|stop|restart|condstop|condrestart|status}"
+        RETVAL=1
 esac
 
-exit
+exit $RETVAL
diff --git a/src/VBox/Additions/x11/Installer/98vboxadd-xclient b/src/VBox/Additions/x11/Installer/98vboxadd-xclient
index f359422..f22f5d1 100755
--- a/src/VBox/Additions/x11/Installer/98vboxadd-xclient
+++ b/src/VBox/Additions/x11/Installer/98vboxadd-xclient
@@ -40,9 +40,9 @@ then
     no_display=1
 fi
 
-/usr/bin/VBoxClient --clipboard
-/usr/bin/VBoxClient --checkhostversion
+/usr/bin/VBoxClient --clipboard || true
+/usr/bin/VBoxClient --checkhostversion || true
 test -z "$no_display" &&
-    /usr/bin/VBoxClient --display
+    /usr/bin/VBoxClient --display || true
 test -z "$no_display" &&
-    /usr/bin/VBoxClient --seamless
+    /usr/bin/VBoxClient --seamless || true
diff --git a/src/VBox/Additions/x11/Makefile.kmk b/src/VBox/Additions/x11/Makefile.kmk
index c810f32..3cacbad 100644
--- a/src/VBox/Additions/x11/Makefile.kmk
+++ b/src/VBox/Additions/x11/Makefile.kmk
@@ -17,6 +17,10 @@
 SUB_DEPTH = ../../../..
 include $(KBUILD_PATH)/subheader.kmk
 
+ifn1of ($(XSERVER_VERSION), 13 14 15 16 17 18 19 110)
+ XSERVER_VERSION := 110
+endif
+
 # Include sub-makefiles.
 if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
  include $(PATH_SUB_CURRENT)/VBoxClient/Makefile.kmk
diff --git a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk
index 5a3183f..2178ff5 100644
--- a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk
+++ b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk
@@ -23,7 +23,6 @@ include	$(KBUILD_PATH)/subheader.kmk
 # vboxmouse_drv
 #
 if1of ($(KBUILD_TARGET), linux)
- SYSMODS += vboxmouse_drv
  vboxmouse_drv_TEMPLATE = VBOXGUESTR3XF86MOD
  vboxmouse_drv_DEFS.linux = linux
  vboxmouse_drv_DEFS.x86 += __i386__
@@ -59,7 +58,6 @@ endif
 #
 # vboxmouse_drv_70
 #
-DLLS += vboxmouse_drv_70
 vboxmouse_drv_70_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_70_DEFS = \
 	XFree86Server IN_MODULE XFree86Module XFree86LOADER XINPUT XORG_7X IN_XF86_MODULE
@@ -80,7 +78,6 @@ vboxmouse_drv_70_SOURCES = \
 #
 # vboxmouse_drv_71
 #
-DLLS += vboxmouse_drv_71
 vboxmouse_drv_71_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_71_DEFS := $(vboxmouse_drv_70_DEFS)
 vboxmouse_drv_71_INCS := \
@@ -97,7 +94,6 @@ vboxmouse_drv_71_SOURCES = \
 #
 # vboxmouse_drv_13
 #
-DLLS += vboxmouse_drv_13
 vboxmouse_drv_13_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_13_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
 vboxmouse_drv_13_INCS := \
@@ -112,7 +108,6 @@ vboxmouse_drv_13_SOURCES = \
 #
 # vboxmouse_drv_14
 #
-DLLS += vboxmouse_drv_14
 vboxmouse_drv_14_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_14_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
 vboxmouse_drv_14_INCS := \
@@ -126,7 +121,6 @@ vboxmouse_drv_14_SOURCES = \
 #
 # vboxmouse_drv_15
 #
-DLLS += vboxmouse_drv_15
 vboxmouse_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_15_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
 vboxmouse_drv_15_INCS := \
@@ -141,7 +135,6 @@ vboxmouse_drv_15_SOURCES = \
 #
 # vboxmouse_drv_16
 #
-DLLS += vboxmouse_drv_16
 vboxmouse_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_16_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
 vboxmouse_drv_16_INCS := \
@@ -157,7 +150,6 @@ vboxmouse_drv_16_SOURCES = \
 #
 # vboxmouse_drv_17
 #
-DLLS += vboxmouse_drv_17
 vboxmouse_drv_17_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_17_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
 ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
@@ -177,7 +169,6 @@ vboxmouse_drv_17_SOURCES = \
 #
 # vboxmouse_drv_18
 #
-DLLS += vboxmouse_drv_18
 vboxmouse_drv_18_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_18_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
 ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
@@ -197,7 +188,6 @@ vboxmouse_drv_18_SOURCES = \
 #
 # vboxmouse_drv_19
 #
-DLLS += vboxmouse_drv_19
 vboxmouse_drv_19_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_19_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
 ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
@@ -217,7 +207,6 @@ vboxmouse_drv_19_SOURCES = \
 #
 # vboxmouse_drv_110
 #
-DLLS += vboxmouse_drv_110
 vboxmouse_drv_110_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxmouse_drv_110_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
 ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
@@ -234,6 +223,14 @@ vboxmouse_drv_110_SOURCES = \
 	vboxmouse_15.c
 
 
+vboxmouse_drv_$(XSERVER_VERSION)_NAME := vboxmouse_drv
+vboxmouse_drv_$(XSERVER_VERSION)_INCS := \
+	/usr/include/X11 \
+	/usr/include/xorg \
+	/usr/include/pixman-1
+DLLS += vboxmouse_drv_$(XSERVER_VERSION)
+
+
 # Check the undefined symbols in the X.Org modules against lists of allowed
 # symbols.  Not very elegant, but it will catch problems early.
 ifdef VBOX_WITH_TESTCASES
diff --git a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
index 7d77346..a446716 100644
--- a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
+++ b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
@@ -22,7 +22,6 @@ include	$(KBUILD_PATH)/subheader.kmk
 # vboxvideo_drv
 #
 if1of ($(KBUILD_TARGET), linux)
- SYSMODS += vboxvideo_drv
 endif   # target linux
 vboxvideo_drv_TEMPLATE = VBOXGUESTR3XF86MOD
 vboxvideo_drv_DEFS.linux = linux
@@ -89,7 +88,6 @@ vboxvideo_drv_SOURCES = \
 #         base keywords instead of using .solaris or .linux.
 #         Also it is *important* to use := and not = when deriving a property.
 #
-DLLS += vboxvideo_drv_70
 vboxvideo_drv_70_TEMPLATE = VBOXGUESTR3XORGMOD
 if1of ($(KBUILD_TARGET), linux)
  vboxvideo_drv_70_CFLAGS += \
@@ -112,7 +110,6 @@ vboxvideo_drv_70_SOURCES  = $(vboxvideo_drv_SOURCES)
 #
 # vboxvideo_drv_71
 #
-DLLS += vboxvideo_drv_71
 vboxvideo_drv_71_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxvideo_drv_71_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
 vboxvideo_drv_71_DEFS := $(vboxvideo_drv_70_DEFS)
@@ -127,7 +124,6 @@ vboxvideo_drv_71_SOURCES  = $(vboxvideo_drv_SOURCES)
 #
 # vboxvideo_drv_13
 #
-DLLS += vboxvideo_drv_13
 vboxvideo_drv_13_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxvideo_drv_13_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
 vboxvideo_drv_13_DEFS := $(vboxvideo_drv_70_DEFS) VBOXVIDEO_13
@@ -146,7 +142,6 @@ vboxvideo_drv_13_SOURCES = $(vboxvideo_drv_SOURCES) edid.c
 #
 # vboxvideo_drv_14
 #
-DLLS += vboxvideo_drv_14
 vboxvideo_drv_14_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxvideo_drv_14_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
 vboxvideo_drv_14_DEFS := $(vboxvideo_drv_13_DEFS)
@@ -165,7 +160,6 @@ vboxvideo_drv_14_SOURCES  = $(vboxvideo_drv_13_SOURCES)
 #
 # vboxvideo_drv_15
 #
-DLLS += vboxvideo_drv_15
 vboxvideo_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxvideo_drv_15_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
 vboxvideo_drv_15_DEFS := $(vboxvideo_drv_13_DEFS) NO_ANSIC PCIACCESS \
@@ -192,7 +186,6 @@ endif
 #
 # vboxvideo_drv_16
 #
-DLLS += vboxvideo_drv_16
 vboxvideo_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxvideo_drv_16_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
 vboxvideo_drv_16_DEFS := $(vboxvideo_drv_15_DEFS)
@@ -212,7 +205,6 @@ vboxvideo_drv_16_SOURCES := $(vboxvideo_drv_15_SOURCES)
 #
 # vboxvideo_drv_17
 #
-DLLS += vboxvideo_drv_17
 vboxvideo_drv_17_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxvideo_drv_17_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
 vboxvideo_drv_17_DEFS := $(vboxvideo_drv_15_DEFS)
@@ -239,7 +231,6 @@ vboxvideo_drv_17_SOURCES := $(vboxvideo_drv_15_SOURCES)
 #
 # vboxvideo_drv_18
 #
-DLLS += vboxvideo_drv_18
 vboxvideo_drv_18_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxvideo_drv_18_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
 vboxvideo_drv_18_DEFS := $(vboxvideo_drv_15_DEFS)
@@ -266,7 +257,6 @@ vboxvideo_drv_18_SOURCES := $(vboxvideo_drv_15_SOURCES)
 #
 # vboxvideo_drv_19
 #
-DLLS += vboxvideo_drv_19
 vboxvideo_drv_19_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxvideo_drv_19_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
 vboxvideo_drv_19_DEFS := $(vboxvideo_drv_15_DEFS)
@@ -293,7 +283,6 @@ vboxvideo_drv_19_SOURCES := $(vboxvideo_drv_15_SOURCES)
 #
 # vboxvideo_drv_110
 #
-DLLS += vboxvideo_drv_110
 vboxvideo_drv_110_TEMPLATE = VBOXGUESTR3XORGMOD
 vboxvideo_drv_110_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
 vboxvideo_drv_110_DEFS := $(vboxvideo_drv_15_DEFS)
@@ -317,6 +306,23 @@ vboxvideo_drv_110_INCS += $(PATH_ROOT)/src/VBox/Runtime/include
 vboxvideo_drv_110_SOURCES := $(vboxvideo_drv_15_SOURCES)
 
 
+vboxvideo_drv_$(XSERVER_VERSION)_NAME := vboxvideo_drv
+vboxvideo_drv_$(XSERVER_VERSION)_INCS := \
+	/usr/include/X11 \
+	/usr/include/xorg \
+	/usr/include/pixman-1 \
+	/usr/include/X11/dri \
+	/usr/include/drm \
+	/usr/include/libdrm
+vboxvideo_drv_$(XSERVER_VERSION)_INCS += $(PATH_ROOT)/src/VBox/Runtime/include
+DLLS += vboxvideo_drv_$(XSERVER_VERSION)
+
+# required for lenny backports
+ifeq ($(XSERVER_VERSION),14)
+	vboxvideo_drv_$(XSERVER_VERSION)_INCS += $(VBOX_PATH_X11_XORG_1_4)/xorg
+endif
+
+
 # Check the undefined symbols in the X.Org modules against lists of allowed
 # symbols.  Not very elegant, but it will catch problems early.
 ifdef VBOX_WITH_TESTCASES
@@ -326,15 +332,14 @@ ifdef VBOX_WITH_TESTCASES
     ifndef VBOX_ONLY_SDK
      VBOXVIDEO_SRC_PATH := $(PATH_SUB_CURRENT)
 
-     ifeq ($(KBUILD_TARGET),linux)
-      TESTING += $(vboxvideo_drv_0_OUTDIR)/tstvboxvideo68.run
-      OTHERS += $(vboxvideo_drv_0_OUTDIR)/tstvboxvideo68.run
-$$(vboxvideo_drv_0_OUTDIR)/tstvboxvideo68.run: $$(INSTARGET_vboxvideo_drv)
-	$(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<)
-	$(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET)  \
-	    $(INSTARGET_vboxvideo_drv) $(VBOXVIDEO_SRC_PATH)/undefined_68 --static
-	$(QUIET)$(APPEND) -t "$@" "done"
-     endif
+#     ifeq ($(KBUILD_TARGET),linux)
+#      TESTING += $(vboxvideo_drv_0_OUTDIR)/tstvboxvideo68.run
+#      OTHERS += $(vboxvideo_drv_0_OUTDIR)/tstvboxvideo68.run
+#$$(vboxvideo_drv_0_OUTDIR)/tstvboxvideo68.run: $$(INSTARGET_vboxvideo_drv)
+#	$(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<)
+#	    $(INSTARGET_vboxvideo_drv) $(OUR_PATH_VBOXVIDEO)/undefined_68 --static
+#	$(QUIET)$(APPEND) -t "$@" "done"
+#     endif
 
      TESTING += $(vboxvideo_drv_70_0_OUTDIR)/tstvboxvideo70.run
      OTHERS += $(vboxvideo_drv_70_0_OUTDIR)/tstvboxvideo70.run
diff --git a/src/VBox/Devices/Makefile.kmk b/src/VBox/Devices/Makefile.kmk
index 8246073..8ef14f4 100644
--- a/src/VBox/Devices/Makefile.kmk
+++ b/src/VBox/Devices/Makefile.kmk
@@ -96,7 +96,7 @@ if !defined(VBOX_ONLY_EXTPACKS)         # Goes on almost to the end of the file.
   endif
  endif
 
- VBoxDDU_LDFLAGS.linux    = -Wl,--no-undefined
+ VBoxDDU_LDFLAGS.linux    = -Wl,-rpath,$(VBOXDIR)
  VBoxDDU_LDFLAGS.l4       = -Wl,--no-undefined
 
  #
@@ -215,7 +215,7 @@ if !defined(VBOX_ONLY_EXTPACKS)         # Goes on almost to the end of the file.
  	-framework IOKit \
  	-framework Carbon \
  	-framework DiskArbitration
- VBoxDD_LDFLAGS.linux    = -Wl,--no-undefined
+ VBoxDD_LDFLAGS.linux    = -Wl,-rpath,$(VBOXDIR)
  VBoxDD_LDFLAGS.l4       = -Wl,--no-undefined
 
 
@@ -244,7 +244,7 @@ if !defined(VBOX_ONLY_EXTPACKS)         # Goes on almost to the end of the file.
  endif
  VBoxDD2_LIBS.darwin    += $(LIB_REM)
  VBoxDD2_LDFLAGS.darwin  = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDD2.dylib
- VBoxDD2_LDFLAGS.linux   = -Wl,--no-undefined
+ VBoxDD2_LDFLAGS.linux   = -Wl,-rpath,$(VBOXDIR)
  VBoxDD2_LDFLAGS.l4      = -Wl,--no-undefined
 
  ifdef VBOX_WITH_PXE_ROM
diff --git a/src/VBox/Devices/testcase/Makefile.kmk b/src/VBox/Devices/testcase/Makefile.kmk
index 1e81d40..d950a62 100644
--- a/src/VBox/Devices/testcase/Makefile.kmk
+++ b/src/VBox/Devices/testcase/Makefile.kmk
@@ -60,9 +60,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 \
@@ -73,7 +75,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/Frontends/VBoxBFE/Makefile.kmk b/src/VBox/Frontends/VBoxBFE/Makefile.kmk
index 6e95827..147d80c 100644
--- a/src/VBox/Frontends/VBoxBFE/Makefile.kmk
+++ b/src/VBox/Frontends/VBoxBFE/Makefile.kmk
@@ -148,6 +148,7 @@ VBoxBFE_LIBS.l4 = \
 VBoxBFE_LIBS.darwin = \
 	$(LIB_SDK_LIBSDL_SDLMAIN)
 VBoxBFE_LDFLAGS.darwin = -framework Foundation -framework AppKit
+VBoxBFE_LDFLAGS.linux  = -Wl,-rpath,$(VBOXDIR)
 
 VBoxBFE_CXXFLAGS.l4 += -fno-rtti -nostdinc -Wno-non-virtual-dtor \
 	$(addprefix -I,$(VBOX_L4_GCC3_INCS) $(L4_INCDIR))
diff --git a/src/VBox/Frontends/VBoxFB/Makefile.kmk b/src/VBox/Frontends/VBoxFB/Makefile.kmk
index cc5d5d7..91c5825 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 $(KBUILD_PATH)/subfooter.kmk
diff --git a/src/VBox/Frontends/VBoxManage/Makefile.kmk b/src/VBox/Frontends/VBoxManage/Makefile.kmk
index bcb9a66..ca57ac8 100644
--- a/src/VBox/Frontends/VBoxManage/Makefile.kmk
+++ b/src/VBox/Frontends/VBoxManage/Makefile.kmk
@@ -86,6 +86,7 @@ endif
 ifndef VBOX_ONLY_DOCS
  VBoxManage_LIBS      += $(LIB_DDU)
 endif # !VBOX_ONLY_DOCS
+VBoxManage_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR)
 
 include $(KBUILD_PATH)/subfooter.kmk
 
diff --git a/src/VBox/Frontends/VBoxSDL/Makefile.kmk b/src/VBox/Frontends/VBoxSDL/Makefile.kmk
index 4972975..281feb6 100644
--- a/src/VBox/Frontends/VBoxSDL/Makefile.kmk
+++ b/src/VBox/Frontends/VBoxSDL/Makefile.kmk
@@ -93,6 +93,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 a2d0d49..a66974b 100644
--- a/src/VBox/Frontends/VirtualBox/Makefile.kmk
+++ b/src/VBox/Frontends/VirtualBox/Makefile.kmk
@@ -618,6 +618,7 @@ endif
 # Import QDesigner UI sources and translations from VBoxUI.pro.
 ifndef VBOX_WITH_REGISTRATION
  FORMS := $(filter-out src/wizards/registration/UIRegistrationWzdPage1.ui,$(FORMS))
+VirtualBox_LDFLAGS.linux  = -Wl,-rpath,$(VBOXDIR)
 endif
 $(eval VirtualBox_SOURCES += $(FORMS))
 
diff --git a/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc b/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc
index ca9dcc6..f8d9294 100644
--- a/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc
+++ b/src/VBox/Frontends/VirtualBox/VirtualBox2.qrc
@@ -1,5 +1,7 @@
 <!DOCTYPE RCC><RCC version="1.0">
  <qresource prefix="/">
+    <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_debian.png">images/os_debian.png</file>
diff --git a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
index 201139f..91eaf91 100644
--- a/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
@@ -4904,6 +4904,8 @@ void VBoxGlobal::init()
         {"Linux24_64",      ":/os_linux24_64.png"},
         {"Linux26",         ":/os_linux26.png"},
         {"Linux26_64",      ":/os_linux26_64.png"},
+        {"ALTLinux",        ":/os_altlinux.png"},
+        {"ALTLinux_64",     ":/os_altlinux_64.png"},
         {"ArchLinux",       ":/os_archlinux.png"},
         {"ArchLinux_64",    ":/os_archlinux_64.png"},
         {"Debian",          ":/os_debian.png"},
diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp
index 7d453c8..3bcb77b 100644
--- a/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp
@@ -79,6 +79,9 @@ VBoxOSTypeSelectorWidget::VBoxOSTypeSelectorWidget (QWidget *aParent)
         }
     }
     mCbFamily->setCurrentIndex (0);
+    int liIndex = mCbFamily->findData ("Linux", RoleTypeID);
+    if (liIndex != -1)
+        mCbFamily->setCurrentIndex (liIndex);
     onFamilyChanged (mCbFamily->currentIndex());
 
     /* Set the minimum size for OS Type & Family selectors. */
@@ -199,10 +202,10 @@ void VBoxOSTypeSelectorWidget::onFamilyChanged (int aIndex)
         if (xpIndex != -1)
             mCbType->setCurrentIndex (xpIndex);
     }
-    /* Or select Ubuntu item for Linux family as default */
+    /* Or select ALTLinux item for Linux family as default */
     else if (familyId == "Linux")
     {
-        int ubIndex = mCbType->findData ("Ubuntu", RoleTypeID);
+        int ubIndex = mCbType->findData ("ALTLinux", RoleTypeID);
         if (ubIndex != -1)
             mCbType->setCurrentIndex (ubIndex);
     }
diff --git a/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp b/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp
index 0cf29f7..74e82c2 100644
--- a/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp
+++ b/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp
@@ -83,6 +83,8 @@ static const osTypePattern gs_OSTypePattern[] =
     { QRegExp("(moonshine)|(werewolf)|(sulphur)|(cambridge)|(leonidas)|(constantine)|(goddard)|(laughlin)", Qt::CaseInsensitive), "Fedora" },
 
     /* Regular names of Linux distributions */
+    { QRegExp("ALT.*64", Qt::CaseInsensitive), "ALTLinux_64" },
+    { QRegExp("ALT", Qt::CaseInsensitive), "ALTLinux" },
     { QRegExp("Arc.*64", Qt::CaseInsensitive), "ArchLinux_64" },
     { QRegExp("Arc", Qt::CaseInsensitive), "ArchLinux" },
     { QRegExp("De.*64", Qt::CaseInsensitive), "Debian_64" },
diff --git a/src/VBox/Installer/common/virtualbox.desktop.in b/src/VBox/Installer/common/virtualbox.desktop.in
index e87bb7f..f85f3d2 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
 Type=Application
 Exec=VirtualBox %U
@@ -14,5 +15,6 @@ Comment=Run several virtual systems on a single host computer
 Comment[de]=Mehrere virtuelle Maschinen auf einem einzigen Rechner ausfц╪hren
 Comment[it]=Esegui piц╧ macchine virtuali su un singolo computer
 Comment[pl]=Uruchamianie wielu systemцЁw wirtualnych na jednym komputerze gospodarza
+Comment[ru]=п÷п╬п╥п╡п╬п╩я▐п╣я┌ п╥п╟п©я┐я│п╨п╟я┌я▄ п╫п╣я│п╨п╬п╩я▄п╨п╬ п╡п╦я─я┌я┐п╟п╩я▄п╫я▀я┘ я│п╦я│я┌п╣п╪ п╫п╟ п╬п╢п╫п╬п╪ п╨п╬п╪п©я▄я▌я┌п╣я─п╣
 Comment[sv]=Kц╤r flera virtuella system pц╔ en enda vц╓rddator
 Comment[ko]=Й╟─Л┐│ К╗╦Л▀═
diff --git a/src/VBox/Main/Makefile.kmk b/src/VBox/Main/Makefile.kmk
index 6a21ecc..4de800a 100644
--- a/src/VBox/Main/Makefile.kmk
+++ b/src/VBox/Main/Makefile.kmk
@@ -258,6 +258,7 @@ endif
 
 VBoxSVC_LIBS += \
 	$(PATH_LIB)/SSMStandalone$(VBOX_SUFF_LIB) \
+	$(LIB_RUNTIME) \
 	$(LIB_DDU)
 VBoxSVC_SDKS = VBOX_LIBPNG VBOX_ZLIB
 VBoxSVC_LIBS.solaris = \
@@ -384,6 +385,7 @@ ifdef VBOX_WITH_NETFLT
  endif
 endif
 VBoxSVC_LDFLAGS.darwin    = -framework IOKit -framework SystemConfiguration
+VBoxSVC_LDFLAGS.linux     = -Wl,-rpath,$(VBOXDIR)
 
 ifdef VBOX_WITH_CROGL
  VBoxSVC_LDFLAGS.darwin += -framework OpenGL
@@ -541,6 +543,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
@@ -677,6 +680,8 @@ VBoxC_SOURCES += \
 	src-client/RemoteUSBBackend.cpp
 endif
 
+VBoxC_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR)
+
 ifeq ($(KBUILD_TARGET),darwin)
 VBoxC_ORDERDEPS += $(VBoxC_0_OUTDIR)/VBoxC.def
 VBoxC_CLEAN     += $(VBoxC_0_OUTDIR)/VBoxC.def
diff --git a/src/VBox/Main/src-all/Global.cpp b/src/VBox/Main/src-all/Global.cpp
index 2483d60..644a9d2 100644
--- a/src/VBox/Main/src-all/Global.cpp
+++ b/src/VBox/Main/src-all/Global.cpp
@@ -123,6 +123,14 @@ const Global::OSType Global::sOSTypes[SchemaDefs::OSTypeId_COUNT] =
       VBOXOSTYPE_Linux26_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
        256,   4,  8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97  },
+    { "Linux",   "Linux",             SchemaDefs_OSTypeId_ALTLinux,       "ALT Linux",
+      VBOXOSTYPE_ALTLinux,       VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
+       512,  12,  8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97  },
+    { "Linux",   "Linux",             SchemaDefs_OSTypeId_ALTLinux_64,    "ALT Linux (64 bit)",
+      VBOXOSTYPE_ALTLinux_x64,   VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
+       512,  12,  8 * _1G64, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
+        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97  },
     { "Linux",   "Linux",             SchemaDefs_OSTypeId_ArchLinux,       "Arch Linux",
       VBOXOSTYPE_ArchLinux,       VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET,
        256,  12,  8 * _1G64, 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 25e4ff3..9ef4860 100644
--- a/src/VBox/Main/src-server/ApplianceImpl.cpp
+++ b/src/VBox/Main/src-server/ApplianceImpl.cpp
@@ -110,6 +110,8 @@ g_osTypes[] =
     { ovf::CIMOSType_CIMOS_Linux_64,                             SchemaDefs_OSTypeId_Linux26_64 },
 
     // types that we have support for but CIM doesn't
+    { ovf::CIMOSType_CIMOS_Linux_2_6_x,                          SchemaDefs_OSTypeId_ALTLinux },
+    { ovf::CIMOSType_CIMOS_Linux_2_6_x_64,                       SchemaDefs_OSTypeId_ALTLinux_64 },
     { ovf::CIMOSType_CIMOS_Linux_2_6_x,                          SchemaDefs_OSTypeId_ArchLinux },
     { ovf::CIMOSType_CIMOS_Linux_2_6_x_64,                       SchemaDefs_OSTypeId_ArchLinux_64 },
     { ovf::CIMOSType_CIMOS_Linux_2_6_x,                          SchemaDefs_OSTypeId_Fedora },
diff --git a/src/VBox/Main/webservice/Makefile.kmk b/src/VBox/Main/webservice/Makefile.kmk
index edebed2..eac02ee 100644
--- a/src/VBox/Main/webservice/Makefile.kmk
+++ b/src/VBox/Main/webservice/Makefile.kmk
@@ -610,6 +610,7 @@ $(VBOXWEB_OUT_DIR)/gsoap_generate_all_ts \
 	$(call MSG_GENERATE,,lots of files,$(GSOAPH_RELEVANT))
 	$(RM) -f $@
 	$(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -L -2 -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT)
+	sed -i.orig "s/cp->ptr = (void\*)new (\(.*\)\[n\])/cp->ptr = (void\*)new \1\[n\]/g" $(VBOXWEB_OUT_DIR)/soapC.cpp
 	$(APPEND) $@ done
 
 # copy the generated headers and stuff. This has to be a separate rule if we
diff --git a/src/VBox/Main/xml/Settings.cpp b/src/VBox/Main/xml/Settings.cpp
index 6056964..a9fb2d3 100644
--- a/src/VBox/Main/xml/Settings.cpp
+++ b/src/VBox/Main/xml/Settings.cpp
@@ -3145,6 +3145,7 @@ const struct {
     { "linux22", "Linux22" },
     { "linux24", "Linux24" },
     { "linux26", "Linux26" },
+    { "altlinux", "ALTLinux" },
     { "archlinux", "ArchLinux" },
     { "debian", "Debian" },
     { "opensuse", "OpenSUSE" },
diff --git a/src/VBox/Main/xml/SettingsConverter.xsl b/src/VBox/Main/xml/SettingsConverter.xsl
index fc56ce3..e9212ed 100644
--- a/src/VBox/Main/xml/SettingsConverter.xsl
+++ b/src/VBox/Main/xml/SettingsConverter.xsl
@@ -747,6 +747,7 @@ Value '<xsl:value-of select="@type"/>' of 'HardDisk::type' attribute is invalid.
         <xsl:when test="@OSType='linux22'">Linux22</xsl:when>
         <xsl:when test="@OSType='linux24'">Linux24</xsl:when>
         <xsl:when test="@OSType='linux26'">Linux26</xsl:when>
+        <xsl:when test="@OSType='altlinux'">ALTLinux</xsl:when>
         <xsl:when test="@OSType='archlinux'">ArchLinux</xsl:when>
         <xsl:when test="@OSType='debian'">Debian</xsl:when>
         <xsl:when test="@OSType='opensuse'">OpenSUSE</xsl:when>
diff --git a/src/VBox/Main/xml/VirtualBox-settings-common.xsd b/src/VBox/Main/xml/VirtualBox-settings-common.xsd
index 1c602d3..ed860fb 100644
--- a/src/VBox/Main/xml/VirtualBox-settings-common.xsd
+++ b/src/VBox/Main/xml/VirtualBox-settings-common.xsd
@@ -167,6 +167,8 @@
     <xsd:enumeration value="Linux24_64"/>
     <xsd:enumeration value="Linux26"/>
     <xsd:enumeration value="Linux26_64"/>
+    <xsd:enumeration value="ALTLinux"/>
+    <xsd:enumeration value="ALTLinux_64"/>
     <xsd:enumeration value="ArchLinux"/>
     <xsd:enumeration value="ArchLinux_64"/>
     <xsd:enumeration value="Debian"/>
diff --git a/src/VBox/Runtime/Makefile.kmk b/src/VBox/Runtime/Makefile.kmk
index 754f5dd..19ef4e6 100644
--- a/src/VBox/Runtime/Makefile.kmk
+++ b/src/VBox/Runtime/Makefile.kmk
@@ -316,6 +316,7 @@ RuntimeR3_SOURCES       = \
 	common/misc/sg.cpp \
 	common/misc/circbuf.cpp \
 	common/misc/thread.cpp \
+	common/misc/threadbasic.cpp \
 	common/misc/term.cpp \
 	common/path/rtPathRootSpecLen.cpp \
 	common/path/rtPathVolumeSpecLen.cpp \
@@ -1126,6 +1127,9 @@ RuntimeGuestR3Mini_SOURCES.linux = \
 	r3/posix/path-posix.cpp \
 	r3/posix/path2-posix.cpp \
 	r3/posix/utf8-posix.cpp
+# due rtStrConvertWrapper() with RT_WITH_ICONV_CACHE
+RuntimeGuestR3Mini_SOURCES.linux += \
+ 	common/misc/threadbasic.cpp
 RuntimeGuestR3Mini_SOURCES.solaris = \
 	r3/posix/RTMemProtect-posix.cpp \
 	r3/posix/rtmempage-exec-mmap-posix.cpp \
@@ -1937,8 +1941,7 @@ ifdef VBOX_WITH_RAW_MODE
   RuntimeRC_SOURCES += os2/sys0.asm
  endif
 
- if1of ($(KBUILD_TARGET), darwin solaris freebsd)
-  RuntimeRC_SOURCES += \
+ LIBGCC_MATH_SOURCES := \
  	common/math/gcc/adddi3.c \
  	common/math/gcc/anddi3.c \
  	common/math/gcc/ashldi3.c \
@@ -1958,6 +1961,13 @@ ifdef VBOX_WITH_RAW_MODE
  	common/math/gcc/udivdi3.c \
  	common/math/gcc/umoddi3.c \
  	common/math/gcc/xordi3.c
+
+ if1of ($(KBUILD_TARGET), darwin solaris freebsd)
+  RuntimeRC_SOURCES += $(LIBGCC_MATH_SOURCES)
+ else
+  ifdef VBOX_WITHOUT_BIARCH
+   RuntimeRC_SOURCES += $(LIBGCC_MATH_SOURCES)
+  endif
  endif
 
 
diff --git a/src/VBox/Runtime/common/misc/thread.cpp b/src/VBox/Runtime/common/misc/thread.cpp
index 5a61bd8..c291d88 100644
--- a/src/VBox/Runtime/common/misc/thread.cpp
+++ b/src/VBox/Runtime/common/misc/thread.cpp
@@ -500,32 +500,6 @@ PRTTHREADINT rtThreadGetByNative(RTNATIVETHREAD NativeThread)
 
 
 /**
- * Gets the per thread data structure for a thread handle.
- *
- * @returns Pointer to the per thread data structure for Thread.
- *          The caller must release the thread using rtThreadRelease().
- * @returns NULL if Thread was not found.
- * @param   Thread      Thread id which structure is to be returned.
- */
-PRTTHREADINT rtThreadGet(RTTHREAD Thread)
-{
-    if (    Thread != NIL_RTTHREAD
-        &&  VALID_PTR(Thread))
-    {
-        PRTTHREADINT pThread = (PRTTHREADINT)Thread;
-        if (    pThread->u32Magic == RTTHREADINT_MAGIC
-            &&  pThread->cRefs > 0)
-        {
-            ASMAtomicIncU32(&pThread->cRefs);
-            return pThread;
-        }
-    }
-
-    AssertMsgFailed(("Thread=%RTthrd\n", Thread));
-    return NULL;
-}
-
-/**
  * Release a per thread data structure.
  *
  * @returns New reference count.
diff --git a/src/VBox/Runtime/common/misc/threadbasic.cpp b/src/VBox/Runtime/common/misc/threadbasic.cpp
new file mode 100644
index 0000000..e8ef8a2
--- /dev/null
+++ b/src/VBox/Runtime/common/misc/threadbasic.cpp
@@ -0,0 +1,63 @@
+/* $Id: thread.cpp $ */
+/** @file
+ * IPRT - Threads, basic routines.
+ */
+
+/*
+ * Copyright (C) 2006-2010 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * The contents of this file may alternatively be used under the terms
+ * of the Common Development and Distribution License Version 1.0
+ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
+ * VirtualBox OSE distribution, in which case the provisions of the
+ * CDDL are applicable instead of those of the GPL.
+ *
+ * You may elect to license modified versions of this file under the
+ * terms and conditions of either the GPL or the CDDL or both.
+ */
+
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
+#define LOG_GROUP RTLOGGROUP_THREAD
+#include <iprt/thread.h>
+#include "internal/iprt.h"
+
+#include <iprt/asm.h>
+#include "internal/thread.h"
+
+
+/**
+ * Gets the per thread data structure for a thread handle.
+ *
+ * @returns Pointer to the per thread data structure for Thread.
+ *          The caller must release the thread using rtThreadRelease().
+ * @returns NULL if Thread was not found.
+ * @param   Thread      Thread id which structure is to be returned.
+ */
+PRTTHREADINT rtThreadGet(RTTHREAD Thread)
+{
+    if (    Thread != NIL_RTTHREAD
+        &&  VALID_PTR(Thread))
+    {
+        PRTTHREADINT pThread = (PRTTHREADINT)Thread;
+        if (    pThread->u32Magic == RTTHREADINT_MAGIC
+            &&  pThread->cRefs > 0)
+        {
+            ASMAtomicIncU32(&pThread->cRefs);
+            return pThread;
+        }
+    }
+
+    AssertMsgFailed(("Thread=%RTthrd\n", Thread));
+    return NULL;
+}
diff --git a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
index 5bd9d01..410ba63 100644
--- a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
+++ b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
@@ -304,11 +304,21 @@ DECLINLINE(unsigned long) msecs_to_jiffies(unsigned int cMillies)
 #undef bool
 
 /*
- * 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/Runtime/r3/linux/semevent-linux.cpp b/src/VBox/Runtime/r3/linux/semevent-linux.cpp
index 9982d3e..4e64bdb 100644
--- a/src/VBox/Runtime/r3/linux/semevent-linux.cpp
+++ b/src/VBox/Runtime/r3/linux/semevent-linux.cpp
@@ -104,7 +104,7 @@ struct RTSEMEVENTINTERNAL
 static long sys_futex(uint32_t volatile *uaddr, int op, int val, struct timespec *utime, int32_t *uaddr2, int val3)
 {
     errno = 0;
-    long rc = syscall(__NR_futex, uaddr, op, val, utime, uaddr2, val3);
+    long rc = syscall(SYS_futex, uaddr, op, val, utime, uaddr2, val3);
     if (rc < 0)
     {
         Assert(rc == -1);
diff --git a/src/VBox/VMM/Makefile.kmk b/src/VBox/VMM/Makefile.kmk
index 700ca39..86e88df 100644
--- a/src/VBox/VMM/Makefile.kmk
+++ b/src/VBox/VMM/Makefile.kmk
@@ -234,7 +234,7 @@ VBoxVMM_LIBS += \
 
 VBoxVMM_LIBS.win = $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
 VBoxVMM_LDFLAGS.win = /DELAYLOAD:dbghelp.dll
-VBoxVMM_LDFLAGS.linux = -Wl,--no-undefined
+VBoxVMM_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR)
 VBoxVMM_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxVMM.dylib
 VBoxVMM_LDFLAGS.solaris = -mimpure-text
 #ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
diff --git a/src/VBox/VMM/testcase/Makefile.kmk b/src/VBox/VMM/testcase/Makefile.kmk
index ed2de9d..ff032ba 100644
--- a/src/VBox/VMM/testcase/Makefile.kmk
+++ b/src/VBox/VMM/testcase/Makefile.kmk
@@ -21,9 +21,11 @@ include	$(KBUILD_PATH)/subheader.kmk
 #
 # 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
 ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
  PROGRAMS  += tstGlobalConfig tstInstrEmul
@@ -67,9 +69,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 1dd0f62..af1bd31 100644
--- a/src/libs/xpcom18a4/Makefile.kmk
+++ b/src/libs/xpcom18a4/Makefile.kmk
@@ -466,12 +466,12 @@ ifeq ($(KBUILD_TARGET),os2)
  xpidl-DLLS_SOURCES += $(wildcard $(VBOX_PATH_LIBIDL)/lib/libIDL.dll)
 else
  # We do these ONCE.
- libIDL_config_cflags := $(shell $(VBOX_LIBIDL_CONFIG) --cflags)
- libIDL_config_libs   := $(shell $(VBOX_LIBIDL_CONFIG) --libs)
  xpidl_CFLAGS = \
-	$(libIDL_config_cflags)
+	$(shell pkg-config --cflags libIDL-2.0)
  xpidl_LDFLAGS = \
-	$(libIDL_config_libs)
+	$(shell pkg-config --libs-only-L libIDL-2.0)
+ xpidl_LIBS.linux = \
+	$(shell pkg-config --libs-only-l libIDL-2.0 | sed -e 's/-l//g')
  xpidl_LDFLAGS.linux = \
 	$(VBOX_LD_as_needed)
 endif
@@ -1025,6 +1025,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)
 
 ifdef VBOX_IPC_RELEASE_LOG
 IPC_LOGGING = 1
@@ -1105,7 +1106,9 @@ 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 = \
+	$(TARGET_VBoxXPCOM) \
 	$(VBox-xpcom-ipcutils_1_TARGET) \
 	$(VBox-xpcom-ipcshared_1_TARGET) \
 	$(VBox-xpcom-ipcdlock_1_TARGET) \
@@ -1131,6 +1134,7 @@ else
  VBoxXPCOMIPCD_SOURCES += \
 	ipc/ipcd/daemon/src/ipcdUnix.cpp
 endif
+VBoxXPCOMIPCD_LDFLAGS.linux = -Wl,-rpath,$(VBOXDIR)
 
 
 #
diff --git a/src/libs/xpcom18a4/python/__init__.py b/src/libs/xpcom18a4/python/__init__.py
index 6d03b9c..f6cf204 100644
--- a/src/libs/xpcom18a4/python/__init__.py
+++ b/src/libs/xpcom18a4/python/__init__.py
@@ -97,7 +97,7 @@ class ConsoleServiceStream:
     def flush(self):
         pass
     def write(self, msg):
-        import _xpcom
+        from xpcom import _xpcom
         _xpcom.LogConsoleMessage(msg)
     def close(self):
         pass
diff --git a/src/libs/xpcom18a4/python/components.py b/src/libs/xpcom18a4/python/components.py
index 9ea64fc..f6ddd87 100644
--- a/src/libs/xpcom18a4/python/components.py
+++ b/src/libs/xpcom18a4/python/components.py
@@ -37,7 +37,7 @@
 
 # This module provides the JavaScript "components" interface
 import xpt
-import xpcom, _xpcom
+import xpcom, xpcom._xpcom as _xpcom
 import xpcom.client
 import xpcom.server
 import types
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin