diff --git a/osx/DmgImageInstallBackground.png b/osx/DmgImageInstallBackground.png old mode 100755 new mode 100644 diff --git a/osx/macosx-builder.py b/osx/macosx-builder.py index baab08b..27b8912 100644 --- a/osx/macosx-builder.py +++ b/osx/macosx-builder.py @@ -555,23 +555,38 @@ class MacosxBuilder(object): u'Could not copy app bundle, dmg creation failed.' ) - self._print('... Copying the background image.') - os.mkdir(os.path.join(dmg_volume_path, '.background')) - self._run_command(['cp', self.dmg_background_img, - os.path.join(dmg_volume_path, - '.background/installer-background.png')], - u'Could not copy the background image, dmg creation failed.' - ) - # Set dmg background. Requires running Mac OS X gui. # TODO: better formatting and code refactoring if not self.args.devel: + self._print('... Setting the background image.') + + os.mkdir(os.path.join(dmg_volume_path, '.background')) + self._run_command(['cp', self.dmg_background_img, + os.path.join(dmg_volume_path, + '.background/installer-background.png')], + u'Could not copy the background image, dmg creation failed.' + ) + self.adjust_package_view({'openlp_dmg_icon_file': self.dmg_background_img,'openlp_appname': 'OpenLP' }, os.path.join(self.script_path, 'applescript-adjustview-10-6.master')) + # Set icon for dmg file. + # http://endrift.com/blog/2010/06/14/dmg-files-volume-icons-cli/ + self._print('... Setting the dmg icon.') + dmg_icon = os.path.join(dmg_volume_path, '.VolumeIcon.icns') + self._run_command(['cp', self.mac_icon, dmg_icon], + u'Could not copy the dmg icon file, dmg creation failed.' + ) + # Set proper dmg icon attributes. + self._run_command(['SetFile', '-c', 'icnC', dmg_icon], + 'Could not set dmg icon attributes.') + # Ensures dmg icon will be used while mounted. + self._run_command(['SetFile', '-a', 'C', dmg_volume_path], + 'Could not set dmg icon attributes.') + # Unmount dmg file. self._print('... unmounting the dmg.') self._run_command([self.hdiutil, 'detach', dmg_volume_path], @@ -606,9 +621,7 @@ class MacosxBuilder(object): self._print('Finished creating dmg file, resulting file: %s' % compressed_dmg) - # TODO Reimplement following actions. - #seticon_scriptname = "applescript-seticon-10-6.master" - #compress_view(settings, seticon_scriptname, dmg_file) + self.dmg_file = compressed_dmg def adjust_package_view(self, settings, adjustview_scriptname): #logging.info('[%s] making adjustments to the view...', script_name) @@ -635,7 +648,6 @@ class MacosxBuilder(object): # failed!', script_name, e) sys.exit(1) - def main(self): """ The main function to run the Mac OS X builder. @@ -648,7 +660,7 @@ class MacosxBuilder(object): self._print_verbose(u'Source path: .............%s', self.source_path) self._print_verbose(u'"dist.app" path: .........%s', self.dist_app_path) self._print_verbose(u'"dist" path: .............%s', self.dist_path) - self._print_verbose(u'"hooks" path: .............%s', self.hooks_path) + self._print_verbose(u'"hooks" path: ............%s', self.hooks_path) self._print_verbose(u'PyInstaller: .............%s', self.pyinstaller) self._print_verbose(u'Documentation branch path:%s', self.docs_path) self._print_verbose(u'') @@ -680,49 +692,3 @@ class MacosxBuilder(object): if __name__ == u'__main__': MacosxBuilder().main() - - - -# TODO reimplement following options. They arenecessary for release builds. -def compress_view(settings, seticon_scriptname, dmg_file): - logging.info('[%s] setting icon of the dmg file...', script_name) - try: - f = open(seticon_scriptname) - p = subp.Popen(["osascript"], stdin=subp.PIPE) - p.communicate(f.read() % ((os.getcwd() + '/' + - settings['openlp_dmg_icon_file']), dmg_file)) - f.close() - result = p.returncode - if (result != 0): - logging.error('[%s] could not set the icon to the dmg file, \ - dmg creation failed!', script_name) - sys.exit(1) - except IOError, e: - logging.error('[%s] could not adjust the view (%s), dmg creation \ - failed!', script_name, e) - sys.exit(1) - except OSError, e: - logging.error('[%s] could not set the icon to the dmg file(%s), \ - dmg creation failed!', script_name, e) - sys.exit(1) - -def old_main(): - - version = platform.mac_ver()[0] - # we only need the differenciation between leopard and snow leopard - if version.startswith("10.6") or version.startswith("10.7"): - SNOWLEOPARD = True - logging.info('[%s] using snow leopard scripts (version = %s)', - script_name, version) - else: - SNOWLEOPARD = False - logging.info('[%s] using leopard scripts (version = %s)', script_name, - version) - adjustview_scriptname = "applescript-adjustview-10-5.master" - seticon_scriptname = "applescript-seticon-10-5.master" - - if not os.path.isfile(adjustview_scriptname) \ - or not os.path.isfile(seticon_scriptname): - logging.error('[%s] could not find apple scripts for given OS X ' - + 'version %s', script_name, version) - sys.exit(1)