← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~mzibricky/openlp/packaging into lp:openlp/packaging

 

matysek has proposed merging lp:~mzibricky/openlp/packaging into lp:openlp/packaging.

Requested reviews:
  OpenLP Core (openlp-core)
Related bugs:
  Bug #814838 in OpenLP: "cleanup Mac OS X build script"
  https://bugs.launchpad.net/openlp/+bug/814838

For more details, see:
https://code.launchpad.net/~mzibricky/openlp/packaging/+merge/137382

Some fixes and cleanup for the osx packaging stuff.
-- 
https://code.launchpad.net/~mzibricky/openlp/packaging/+merge/137382
Your team OpenLP Core is requested to review the proposed merge of lp:~mzibricky/openlp/packaging into lp:openlp/packaging.
=== modified file 'osx/applescript-adjust-dmg-view.master'
--- osx/applescript-adjust-dmg-view.master	2012-06-25 20:12:26 +0000
+++ osx/applescript-adjust-dmg-view.master	2012-12-01 14:34:19 +0000
@@ -13,22 +13,13 @@
 			set arrangement of theViewOptions to not arranged
 			set icon size of theViewOptions to 128
 			set background picture of theViewOptions to file ".background:installer-background.png"
-                        if not exists file "Applications" then
-			    make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
-                        end if
-			delay 1
 			set position of item "%s" of container window to {160, 200}
-			set position of item ".Trashes" of container window to {100, 500}
-			set position of item ".background" of container window to {200, 500}
-			set position of item ".DS_Store" of container window to {400, 500}
 			set position of item "Applications" of container window to {550, 200}
-                        if exists file ".VolumeIcon.icns" then
-			    set position of item ".VolumeIcon.icns" of container window to {500, 500}
-                        end if
+			set position of item ".background" of container window to {100, 500}
+			set position of item ".DS_Store" of container window to {200, 500}
 			set position of item ".fseventsd" of container window to {300, 500}
-			if exists POSIX file ".SymAVx86QSFile" then
-				set position of item ".SymAVx86QSFile" of container window to {600, 500}
-			end if
+			set position of item ".Trashes" of container window to {400, 500}
+            set position of item ".VolumeIcon.icns" of container window to {500, 500}
 			open
 			close
 			update without registering applications

=== modified file 'osx/macosx-builder.py'
--- osx/macosx-builder.py	2012-09-13 23:09:42 +0000
+++ osx/macosx-builder.py	2012-12-01 14:34:19 +0000
@@ -113,6 +113,8 @@
 
 import os
 import plistlib
+import signal
+import subprocess
 import sys
 from shutil import copy, rmtree
 from subprocess import Popen, PIPE
@@ -579,6 +581,10 @@
         self._run_command(['SetFile', '-a', 'C', dmg_volume_path],
                 'Could not set dmg icon attributes.')
 
+        # Create symlink in dmg pointing to the /Applications directory on OS X.
+        self._print('... Creating symlink to /Applications.')
+        os.symlink('/Applications', os.path.join(dmg_volume_path, 'Applications'))
+
         # Set dmg background. Requires running Mac OS X gui.
         # TODO: better formatting and code refactoring
         if not self.args.devel:
@@ -593,8 +599,19 @@
 
             self.adjust_dmg_view(os.path.basename(dmg_volume_path))
 
+        ## Unmount dmg file.
+        self._print('... unmounting the dmg.')
+        # Sometimes it could happen that OSX Finder is blocking umount.
+        # We need to find this process and kill it.
+        try:
+            output = subprocess.check_output(['fuser', dmg_volume_path]).strip()
+            if output:
+                blocking_proc_pid = int(output.split()[0])
+                os.kill(int(blocking_proc_pid), signal.SIGKILL)
+        except Exception as e:
+            print str(e)
+            self._print('... failed to kill process using %s' % dmg_volume_path)
         # Unmount dmg file.
-        self._print('... unmounting the dmg.')
         self._run_command([self.hdiutil, 'detach', dmg_volume_path],
             'Could not unmount the dmg file, dmg creation failed.'
         )
@@ -639,11 +656,9 @@
             f.close()
             result = p.returncode
             if (result != 0):
-                self._print('Adjusting dmg view failed.')
-                sys.exit(1)
+                self._print('Adjusting dmg view failed (non-zero exit code).')
         except (IOError, OSError):
             self._print('Adjusting dmg view failed.')
-            sys.exit(1)
 
     def main(self):
         """


Follow ups