diff --git a/setup/installer/__init__.py b/setup/installer/__init__.py index 8374f93e38..e8bdda069f 100644 --- a/setup/installer/__init__.py +++ b/setup/installer/__init__.py @@ -67,6 +67,7 @@ class VMInstaller(Command): INSTALLER_EXT = None VM = None VM_NAME = None + VM_CHECK = None FREEZE_COMMAND = None FREEZE_TEMPLATE = 'python setup.py {freeze_command}' SHUTDOWN_CMD = ['sudo', 'poweroff'] @@ -117,6 +118,13 @@ class VMInstaller(Command): def run_vm(self): + pat = '/%s/'%(self.VM_CHECK or self.VM_NAME) + pids= [pid for pid in os.listdir('/proc') if pid.isdigit()] + for pid in pids: + cmdline = open(os.path.join('/proc', pid, 'cmdline'), 'rb').read() + if 'vmware-vmx' in cmdline and pat in cmdline: + return + self.__p = subprocess.Popen([self.vm]) def start_vm(self, sleep=75): diff --git a/setup/installer/windows/__init__.py b/setup/installer/windows/__init__.py index 324dea6e0f..a7b4a62af4 100644 --- a/setup/installer/windows/__init__.py +++ b/setup/installer/windows/__init__.py @@ -28,6 +28,7 @@ class Win32(VMInstaller): INSTALLER_EXT = 'exe' VM_NAME = 'xp_build' VM = '/vmware/bin/%s'%VM_NAME + VM_CHECK = 'calibre_windows_xp_home' FREEZE_COMMAND = 'win32_freeze' FREEZE_TEMPLATE = 'python -OO setup.py {freeze_command} --no-ice' INSTALLER_EXT = 'msi'