summaryrefslogtreecommitdiff
path: root/src/VBox/Installer/darwin/VirtualBox_mpkg
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Installer/darwin/VirtualBox_mpkg')
-rw-r--r--src/VBox/Installer/darwin/VirtualBox_mpkg/Localizable.strings9
-rw-r--r--src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist29
2 files changed, 25 insertions, 13 deletions
diff --git a/src/VBox/Installer/darwin/VirtualBox_mpkg/Localizable.strings b/src/VBox/Installer/darwin/VirtualBox_mpkg/Localizable.strings
index f64f4903..0a2e8eee 100644
--- a/src/VBox/Installer/darwin/VirtualBox_mpkg/Localizable.strings
+++ b/src/VBox/Installer/darwin/VirtualBox_mpkg/Localizable.strings
@@ -1,10 +1,7 @@
'VirtualBox_title' = '@VBOX_PRODUCT@';
'choiceVBoxKEXTs_title' = '@VBOX_PRODUCT@ Kernel Extensions';
-'choiceVBoxKEXTs_msg' = 'Installs the @VBOX_PRODUCT@ Kernel Extensions into /Library/Extensions.';
-
-'choiceVBoxStartup_title' = '@VBOX_PRODUCT@ Startup Items';
-'choiceVBoxStartup_msg' = 'Installs the @VBOX_PRODUCT@ Startup Items to /Library/StartupItems/VirtualBox.';
+'choiceVBoxKEXTs_msg' = 'Installs the @VBOX_PRODUCT@ Kernel Extensions into /Library/Application Support/VirtualBox.';
'choiceVBox_title' = '@VBOX_PRODUCT@';
'choiceVBox_msg' = 'Installs the @VBOX_PRODUCT@ application into /Applications.';
@@ -12,8 +9,8 @@
'choiceVBoxCLI_title' = '@VBOX_PRODUCT@ Command Line Utilities';
'choiceVBoxCLI_msg' = 'Installs the @VBOX_PRODUCT@ command line utilities into /usr/bin.';
-'RUNNING_VMS_TLE' = "Running VirtualBox VM's detected!";
-'RUNNING_VMS_MSG' = "The installer has detected running Virtual Machines. Please shutdown all running VirtualBox machines and then restart the installation.";
+'RUNNING_VMS_TLE' = "Running VirtualBox virtual machines detected!";
+'RUNNING_VMS_MSG' = "The installer has detected running virtual machines. Please shut down all running VirtualBox machines and then restart the installation.";
'UNSUPPORTED_HW_MACHINE_TLE' = "Unsupported hardware architecture detected!";
'UNSUPPORTED_HW_MACHINE_MSG' = "The installer has detected an unsupported architecture. VirtualBox only runs on the x86 and amd64 architectures.";
diff --git a/src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist b/src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist
index a2e7d633..3749e358 100644
--- a/src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist
+++ b/src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
#
-# Copyright (C) 2008-2012 Oracle Corporation
+# Copyright (C) 2008-2014 Oracle Corporation
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
@@ -18,6 +18,7 @@
<installation-check script="checkPrerequisite()"></installation-check>
<domains enable_anywhere="false" enable_currentUserHome="false" enable_localSystem="true"/>
<script>
+//<![CDATA[
/* js:pkmk:start */
function checkPrerequisite()
{
@@ -53,9 +54,27 @@
try
{
+ /* The following shell script uses tools which were added in 10.8
+ (Mountain Lion) and later, in particular pgrep and pkill. */
+ if (system.compareVersions(system.version['ProductVersion'], '10.8') >= 0)
+ {
+ /* Embedded scripts are not available here. So, just do a
+ command line checking if any VBoxXPCOMIPCD has more than one
+ client, and if there are none, kill all the usual suspects to
+ get a clean slate. This is done because the VirtualBox event
+ handling had a bug which allowed no longer present passive
+ event listeners to block VBoxSVC processes from exiting until
+ the waiting time was elapsed. In the extreme case this was
+ infinitely long, blocking updates. */
+ system.run('/bin/sh', '-c', 'pids=`/usr/bin/pgrep VBoxXPCOMIPCD` rc=0; [ -z "$pids" ] && rc=1; for i in $pids; do c=`/usr/sbin/lsof -p $i | /usr/bin/grep -E \'^[^ ]+ +[^ ]+ +[^ ]+ +[^ ]+ +unix\' | wc -l`; [ $c -le 2 ] || rc=1; done; if [ $rc -eq 0 ]; then pkill -KILL \'^(VirtualBox)|(VBoxNetDHCP)|(VBoxNetNAT)|(VBoxHeadless)|(VBoxXPCOMIPCD)|(VBoxSVC)$\'; sleep 1; fi');
+ }
+ } catch (e) { system.log(e); }
+
+ try
+ {
/* Embedded scripts are not available here. So, just do a command
line checking for running VMs instead. */
- rcScript = system.run('/bin/sh', '-c', '/bin/ps -e | /usr/bin/grep -E "VirtualBoxVM.*startvm|VBoxNetDHCP" | /usr/bin/grep -qv grep');
+ rcScript = system.run('/bin/sh', '-c', '/bin/ps -e | /usr/bin/grep -E \'[V]irtualBox.*startvm|[V]BoxNetDHCP|[V]BoxNetNAT|[V]BoxHeadless|[V]BoxSVC\'');
result = (rcScript != 0);
system.log("system.run /bin/sh .. returned: " + rcScript + " result=" + result);
} catch (e) { system.log(e); result = false; }
@@ -72,21 +91,18 @@
return result;
}
/* js:pkmk:end */
+//]]>
</script>
<background file="background.tif" alignment="topleft" scaling="none"/>
<welcome file="Welcome.rtf" mime-type="text/rtf" uti="public.rtf"/>
<choices-outline>
<line choice="choiceVBoxKEXTs"></line>
- <line choice="choiceVBoxStartup"></line>
<line choice="choiceVBox"></line>
<line choice="choiceVBoxCLI"></line>
</choices-outline>
<choice id="choiceVBoxKEXTs" title="choiceVBoxKEXTs_title" description="choiceVBoxKEXTs_msg" start_selected="true" start_enabled="false" start_visible="true">
<pkg-ref id="org.virtualbox.pkg.vboxkexts"></pkg-ref>
</choice>
- <choice id="choiceVBoxStartup" title="choiceVBoxStartup_title" description="choiceVBoxStartup_msg" start_selected="true" start_enabled="false" start_visible="true">
- <pkg-ref id="org.virtualbox.pkg.vboxstartupitems"></pkg-ref>
- </choice>
<choice id="choiceVBox" title="choiceVBox_title" description="choiceVBox_msg" start_selected="true" start_enabled="false" start_visible="true">
<pkg-ref id="org.virtualbox.pkg.virtualbox"></pkg-ref>
</choice>
@@ -94,7 +110,6 @@
<pkg-ref id="org.virtualbox.pkg.virtualboxcli"></pkg-ref>
</choice>
<pkg-ref id="org.virtualbox.pkg.vboxkexts" auth="Root">file:./Contents/Packages/VBoxKEXTs.pkg</pkg-ref>
- <pkg-ref id="org.virtualbox.pkg.vboxstartupitems" auth="Root">file:./Contents/Packages/VBoxStartupItems.pkg</pkg-ref>
<pkg-ref id="org.virtualbox.pkg.virtualbox" auth="Root">file:./Contents/Packages/VirtualBox.pkg</pkg-ref>
<pkg-ref id="org.virtualbox.pkg.virtualboxcli" auth="Root">file:./Contents/Packages/VirtualBoxCLI.pkg</pkg-ref>
</installer-gui-script>