VirtualBox

source: vbox/trunk/src/VBox/Installer/darwin/VirtualBox_mpkg/distribution.dist@ 50574

Last change on this file since 50574 was 50574, checked in by vboxsync, 11 years ago

Installer/darwin: sending the default TERM signal isn't good enough to terminate VBoxSVC on OSX, it needs more force

File size: 5.5 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3#
4# Copyright (C) 2008-2014 Oracle Corporation
5#
6# This file is part of VirtualBox Open Source Edition (OSE), as
7# available from http://www.virtualbox.org. This file is free software;
8# you can redistribute it and/or modify it under the terms of the GNU
9# General Public License (GPL) as published by the Free Software
10# Foundation, in version 2 as it comes in the "COPYING" file of the
11# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
12# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
13#
14-->
15<installer-gui-script minSpecVersion="1.0">
16 <title>VirtualBox_title</title>
17 <options customize="allow" allow-external-scripts="yes" rootVolumeOnly="true" hostArchitectures="i386"/>
18 <installation-check script="checkPrerequisite()"></installation-check>
19 <domains enable_anywhere="false" enable_currentUserHome="false" enable_localSystem="true"/>
20 <script>
21 /* js:pkmk:start */
22 function checkPrerequisite()
23 {
24 try
25 {
26 test = system.sysctl('hw.machine');
27 system.log("Hardware architecture detected: " + test);
28 result = (test == 'i386' || test == 'x86_64');
29 } catch (e) { system.log(e); result = false; }
30
31 if (!result)
32 {
33 my.result.type = 'Fatal';
34 my.result.title = system.localizedString('UNSUPPORTED_HW_MACHINE_TLE');
35 my.result.message = system.localizedString('UNSUPPORTED_HW_MACHINE_MSG');
36 return result;
37 }
38
39 try
40 {
41 test = system.version['ProductVersion'];
42 system.log("OS version detected: " + test);
43 result = (system.compareVersions(test, '10.6') >= 0);
44 } catch (e) { system.log(e); result = false; }
45
46 if (!result)
47 {
48 my.result.type = 'Fatal';
49 my.result.title = system.localizedString('UNSUPPORTED_OS_TLE');
50 my.result.message = system.localizedString('UNSUPPORTED_OS_MSG');
51 return result;
52 }
53
54 try
55 {
56 /* The following shell script uses tools which were added in 10.8
57 (Mountain Lion) and later, in particular pgrep and pkill. */
58 if (system.compareVersions(system.version['ProductVersion'], '10.8') >= 0)
59 {
60 /* Embedded scripts are not available here. So, just do a
61 command line checking if any VBoxXPCOMIPCD has more than one
62 client, and if there are none, kill all the usual suspects to
63 get a clean slate. This is done because the VirtualBox event
64 handling had a bug which allowed no longer present passive
65 event listeners to block VBoxSVC processes from exiting until
66 the waiting time was elapsed. In the extreme case this was
67 infinitely long, blocking updates. */
68 system.run('/bin/sh', '-c', 'pids=`/usr/bin/pgrep VBoxXPCOMIPCD` rc=0; [ -n "$pid" ] || 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');
69 }
70 } catch (e) { system.log(e); }
71
72 try
73 {
74 /* Embedded scripts are not available here. So, just do a command
75 line checking for running VMs instead. */
76 rcScript = system.run('/bin/sh', '-c', '/bin/ps -e | /usr/bin/grep -E \'V[i]rtualBox.*startvm|VBoxNetDHCP|VBoxNetNAT|VBoxHeadless|VBoxSVC\'');
77 result = (rcScript != 0);
78 system.log("system.run /bin/sh .. returned: " + rcScript + " result=" + result);
79 } catch (e) { system.log(e); result = false; }
80
81 if (!result)
82 {
83 my.result.type = 'Fatal';
84 my.result.title = system.localizedString('RUNNING_VMS_TLE');
85 my.result.message = system.localizedString('RUNNING_VMS_MSG');
86 return result;
87 }
88
89 system.log("result:" + result);
90 return result;
91 }
92 /* js:pkmk:end */
93 </script>
94 <background file="background.tif" alignment="topleft" scaling="none"/>
95 <welcome file="Welcome.rtf" mime-type="text/rtf" uti="public.rtf"/>
96 <choices-outline>
97 <line choice="choiceVBoxKEXTs"></line>
98 <line choice="choiceVBox"></line>
99 <line choice="choiceVBoxCLI"></line>
100 </choices-outline>
101 <choice id="choiceVBoxKEXTs" title="choiceVBoxKEXTs_title" description="choiceVBoxKEXTs_msg" start_selected="true" start_enabled="false" start_visible="true">
102 <pkg-ref id="org.virtualbox.pkg.vboxkexts"></pkg-ref>
103 </choice>
104 <choice id="choiceVBox" title="choiceVBox_title" description="choiceVBox_msg" start_selected="true" start_enabled="false" start_visible="true">
105 <pkg-ref id="org.virtualbox.pkg.virtualbox"></pkg-ref>
106 </choice>
107 <choice id="choiceVBoxCLI" title="choiceVBoxCLI_title" description="choiceVBoxCLI_msg" start_selected="true" start_enabled="true" start_visible="true">
108 <pkg-ref id="org.virtualbox.pkg.virtualboxcli"></pkg-ref>
109 </choice>
110 <pkg-ref id="org.virtualbox.pkg.vboxkexts" auth="Root">file:./Contents/Packages/VBoxKEXTs.pkg</pkg-ref>
111 <pkg-ref id="org.virtualbox.pkg.virtualbox" auth="Root">file:./Contents/Packages/VirtualBox.pkg</pkg-ref>
112 <pkg-ref id="org.virtualbox.pkg.virtualboxcli" auth="Root">file:./Contents/Packages/VirtualBoxCLI.pkg</pkg-ref>
113</installer-gui-script>
114
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette