mirror of
https://gitlab.com/openlp/packaging.git
synced 2024-12-22 13:02:50 +00:00
Add a proper icon for the DMG image, plus versions of the new OpenLP logo; Also try to fix the background and placing fail
This commit is contained in:
parent
6f227290d5
commit
b5fab5c8f7
@ -1,31 +1,32 @@
|
||||
on run
|
||||
-- wait for virus scanner
|
||||
delay 2
|
||||
-- wait for virus scanner
|
||||
delay 2
|
||||
|
||||
tell application "Finder"
|
||||
tell disk "%s"
|
||||
open
|
||||
set current view of container window to icon view
|
||||
set toolbar visible of container window to false
|
||||
set statusbar visible of container window to false
|
||||
set the bounds of container window to {400, 100, 1100, 500}
|
||||
set theViewOptions to the icon view options of container window
|
||||
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"
|
||||
set position of item "%s" of container window to {160, 200}
|
||||
set position of item "Applications" of container window to {550, 200}
|
||||
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}
|
||||
set position of item ".Trashes" of container window to {400, 500}
|
||||
tell application "Finder"
|
||||
tell disk "%(dmg_name)s"
|
||||
open
|
||||
set current view of container window to icon view
|
||||
set toolbar visible of container window to false
|
||||
set statusbar visible of container window to false
|
||||
set the bounds of container window to {400, 100, 1100, 500}
|
||||
set theViewOptions to the icon view options of container window
|
||||
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"
|
||||
set position of item "%(app_name)s" of container window to {160, 200}
|
||||
set position of item "Applications" of container window to {550, 200}
|
||||
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}
|
||||
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
|
||||
-- wait until the virus scan completes
|
||||
delay 5
|
||||
-- eject
|
||||
end tell
|
||||
end tell
|
||||
delay 5
|
||||
close
|
||||
open
|
||||
update without registering applications
|
||||
-- wait until the virus scan completes
|
||||
delay 2
|
||||
-- eject
|
||||
end tell
|
||||
end tell
|
||||
end run
|
||||
|
@ -1,17 +1,19 @@
|
||||
[executables]
|
||||
sphinx = sphinx-build-3.4
|
||||
pyinstaller = %(projects)s/pyinstaller/pyinstaller.py
|
||||
lrelease = lrelease
|
||||
pyinstaller = %(projects)s/../pyinstaller/pyinstaller.py
|
||||
lrelease = /opt/local/libexec/qt5/bin/lrelease
|
||||
diskutil = diskutil
|
||||
hdiutil = hdiutil
|
||||
osascript = osascript
|
||||
mudrawbin = mudraw
|
||||
mutoolbin = mutool
|
||||
|
||||
[paths]
|
||||
branch = %(projects)s/trunk
|
||||
documentation = %(projects)s/documentation
|
||||
macicon = %(here)s/OpenLP.icns
|
||||
bundleinfo = %(here)s/Info.plist
|
||||
app_icon = %(here)s/OpenLP.icns
|
||||
dmg_icon = %(here)s/openlp-dmg.icns
|
||||
bundle_info = %(here)s/Info.plist
|
||||
hooks = %(here)s/../pyinstaller-hooks
|
||||
dmg_background = %(here)s/DmgImageInstallBackground.png
|
||||
|
||||
@ -20,4 +22,4 @@ username =
|
||||
password =
|
||||
|
||||
[codesigning]
|
||||
certificate = OpenLP
|
||||
certificate = org.openlp.OpenLP
|
||||
|
@ -113,7 +113,6 @@ def _which(command):
|
||||
"""
|
||||
for path in os.environ["PATH"].split(os.pathsep):
|
||||
if os.access(os.path.join(path, command), os.X_OK):
|
||||
print("%s/%s" % (path, command))
|
||||
return "%s/%s" % (path, command)
|
||||
|
||||
|
||||
@ -237,11 +236,12 @@ class MacosxBuilder(object):
|
||||
"""
|
||||
self.sphinx = _which(self.config.get('executables', 'sphinx'))
|
||||
self.pyinstaller = os.path.abspath(self.config.get('executables', 'pyinstaller'))
|
||||
self.lrelease = _which(self.config.get('executables', 'lrelease'))
|
||||
self.lrelease = self.config.get('executables', 'lrelease')
|
||||
self.diskutil = _which(self.config.get('executables', 'diskutil'))
|
||||
self.hdiutil = _which(self.config.get('executables', 'hdiutil'))
|
||||
self.hdiutil = self.config.get('executables', 'hdiutil')
|
||||
self.osascript = _which(self.config.get('executables', 'osascript'))
|
||||
self.mudraw_bin = _which(self.config.get('executables', 'mudrawbin'))
|
||||
self.mutool_bin = _which(self.config.get('executables', 'mutoolbin'))
|
||||
|
||||
def setup_paths(self):
|
||||
"""
|
||||
@ -263,20 +263,21 @@ class MacosxBuilder(object):
|
||||
self.work_path = self.branch_path
|
||||
self.openlp_script = os.path.abspath(os.path.join(self.work_path, 'openlp.py'))
|
||||
self.hooks_path = os.path.abspath(os.path.join(self.work_path, self.config.get('paths', 'hooks')))
|
||||
self.mac_icon = os.path.abspath(self.config.get('paths', 'macicon'))
|
||||
self.bundle_info = os.path.abspath(self.config.get('paths', 'bundleinfo'))
|
||||
self.app_icon = os.path.abspath(self.config.get('paths', 'app_icon'))
|
||||
self.dmg_icon = os.path.abspath(self.config.get('paths', 'dmg_icon'))
|
||||
self.bundle_info = os.path.abspath(self.config.get('paths', 'bundle_info'))
|
||||
self.dmg_background_img = os.path.abspath(self.config.get('paths', 'dmg_background'))
|
||||
self.i18n_utils = os.path.join(self.work_path, 'scripts', 'translation_utils.py')
|
||||
self.source_path = os.path.join(self.work_path, 'openlp')
|
||||
self.manual_path = os.path.join(self.docs_path, 'manual')
|
||||
self.manual_build_path = os.path.join(self.manual_path, 'build')
|
||||
self.i18n_path = os.path.join(self.work_path, 'resources', 'i18n')
|
||||
self.build_path = os.path.join(self.branch_path, 'build')
|
||||
self.dist_app_path = os.path.join(self.branch_path, 'dist', 'OpenLP.app')
|
||||
self.dist_path = os.path.join(self.branch_path, 'dist', 'OpenLP.app', 'Contents', 'MacOS')
|
||||
self.build_path = os.path.join(self.work_path, 'build')
|
||||
self.dist_app_path = os.path.join(self.work_path, 'dist', 'OpenLP.app')
|
||||
self.dist_path = os.path.join(self.work_path, 'dist', 'OpenLP.app', 'Contents', 'MacOS')
|
||||
|
||||
# Path to Qt translation files.
|
||||
from PyQt4.QtCore import QCoreApplication
|
||||
from PyQt5.QtCore import QCoreApplication
|
||||
|
||||
qt_plug_dir = str(list(QCoreApplication.libraryPaths())[0])
|
||||
self.qt_translat_path = os.path.join(os.path.dirname(qt_plug_dir), 'translations')
|
||||
@ -330,8 +331,7 @@ class MacosxBuilder(object):
|
||||
'--noupx',
|
||||
'--additional-hooks-dir', self.hooks_path,
|
||||
'--runtime-hook', os.path.join(self.hooks_path, 'rthook_ssl.py'),
|
||||
'-i', self.mac_icon,
|
||||
'-p', self.work_path,
|
||||
'-i', self.app_icon,
|
||||
'-n', 'OpenLP',
|
||||
self.openlp_script]
|
||||
if not self.args.verbose:
|
||||
@ -431,7 +431,7 @@ class MacosxBuilder(object):
|
||||
"""
|
||||
Copy Info.plist and OpenLP.icns to app bundle.
|
||||
"""
|
||||
copy(self.mac_icon, os.path.join(self.dist_app_path, 'Contents', 'Resources', os.path.basename(self.mac_icon)))
|
||||
copy(self.app_icon, os.path.join(self.dist_app_path, 'Contents', 'Resources', os.path.basename(self.app_icon)))
|
||||
# Add OpenLP version to Info.plist and put it to app bundle.
|
||||
fr = open(self.bundle_info, 'r')
|
||||
fw = open(os.path.join(self.dist_app_path, 'Contents', os.path.basename(self.bundle_info)), 'w')
|
||||
@ -455,17 +455,32 @@ class MacosxBuilder(object):
|
||||
if self.mudraw_bin and os.path.isfile(self.mudraw_bin):
|
||||
copy(os.path.join(self.mudraw_bin), os.path.join(self.dist_path, 'mudraw'))
|
||||
self.relink_mudraw()
|
||||
elif self.mutool_bin and os.path.isfile(self.mutool_bin):
|
||||
copy(os.path.join(self.mutool_bin), os.path.join(self.dist_path, 'mutool'))
|
||||
self.relink_mutool()
|
||||
else:
|
||||
self._print('... WARNING: mudraw not found')
|
||||
self._print('... WARNING: mudraw and mutool not found')
|
||||
|
||||
def relink_mudraw(self):
|
||||
"""
|
||||
Relink mudraw to bundled libraries
|
||||
"""
|
||||
self._print('Linking mudraw with bundled libraries...')
|
||||
libname = os.path.join(self.dist_path, 'mudraw')
|
||||
self.relink_mupdf('mudraw')
|
||||
|
||||
def relink_mutool(self):
|
||||
"""
|
||||
Relink mudraw to bundled libraries
|
||||
"""
|
||||
self.relink_mupdf('mutool')
|
||||
|
||||
def relink_mupdf(self, bin_name):
|
||||
"""
|
||||
Relink mupdf to bundled libraries
|
||||
"""
|
||||
self._print('Linking {bin_name} with bundled libraries...'.format(bin_name=bin_name))
|
||||
libname = os.path.join(self.dist_path, bin_name)
|
||||
distname = os.path.relpath(self.dist_path, libname)
|
||||
self._print_verbose('... mudraw path %s', libname)
|
||||
self._print_verbose('... {bin_name} path {path}'.format(bin_name=bin_name, path=libname))
|
||||
|
||||
# Determine how many directories up is the directory with shared
|
||||
# dynamic libraries. '../'
|
||||
@ -613,7 +628,7 @@ class MacosxBuilder(object):
|
||||
else:
|
||||
dmg_name = 'OpenLP-' + str(self.version_tag) + '.dmg'
|
||||
|
||||
dmg_file = os.path.join(self.branch_path, 'build', dmg_name)
|
||||
dmg_file = os.path.join(self.work_path, 'build', dmg_name)
|
||||
# Remove dmg if it exists.
|
||||
if os.path.exists(dmg_file):
|
||||
os.remove(dmg_file)
|
||||
@ -644,7 +659,7 @@ class MacosxBuilder(object):
|
||||
# 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], 'Could not copy the dmg icon file, dmg creation failed.')
|
||||
self._run_command(['cp', self.dmg_icon, dmg_icon], '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.
|
||||
@ -684,7 +699,7 @@ class MacosxBuilder(object):
|
||||
|
||||
# Compress dmg file.
|
||||
self._print('... compressing the dmg file')
|
||||
compressed_dmg = os.path.join(self.branch_path, 'dist', os.path.basename(dmg_file)) # Put dmg to 'dist' dir.
|
||||
compressed_dmg = os.path.join(self.work_path, 'dist', os.path.basename(dmg_file)) # Put dmg to 'dist' dir.
|
||||
# Remove dmg if it exists.
|
||||
if os.path.exists(compressed_dmg):
|
||||
os.remove(compressed_dmg)
|
||||
@ -708,11 +723,12 @@ class MacosxBuilder(object):
|
||||
|
||||
def adjust_dmg_view(self, dmg_volume_name):
|
||||
try:
|
||||
# TODO: Use only one applescript file. Remove one for osx 10.5.
|
||||
f = open(os.path.join(self.script_path, 'applescript-adjust-dmg-view.master'))
|
||||
p = Popen([self.osascript], stdin=PIPE)
|
||||
p.communicate(bytes(f.read() % (dmg_volume_name, 'OpenLP'), 'utf-8'))
|
||||
f.close()
|
||||
master_script = os.path.join(self.script_path, 'applescript-adjust-dmg-view.master')
|
||||
apple_script = os.path.join(self.script_path, 'adjust-dmg-view.applescript')
|
||||
with open(master_script) as r, open(apple_script, 'w') as w:
|
||||
apple_script = r.read() % {'dmg_name': dmg_volume_name, 'app_name': 'OpenLP.app'}
|
||||
w.write(apple_script)
|
||||
p = Popen([self.osascript, apple_script])
|
||||
result = p.returncode
|
||||
if (result != 0):
|
||||
self._print('Adjusting dmg view failed (non-zero exit code).')
|
||||
@ -732,7 +748,12 @@ class MacosxBuilder(object):
|
||||
self._print_verbose('"hooks" path: ............%s', self.hooks_path)
|
||||
self._print_verbose('PyInstaller: .............%s', self.pyinstaller)
|
||||
self._print_verbose('Documentation branch path:%s', self.docs_path)
|
||||
self._print_verbose('Mudraw binary ............%s', self.mudraw_bin)
|
||||
if self.mudraw_bin:
|
||||
self._print_verbose('mudraw binary ............%s', self.mudraw_bin)
|
||||
elif self.mutool_bin:
|
||||
self._print_verbose('mutool binary ............%s', self.mutool_bin)
|
||||
else:
|
||||
self._print_verbose('mutool/mudraw ............Not found')
|
||||
self._print_verbose('')
|
||||
if not self.args.skip_update:
|
||||
self.update_code()
|
||||
|
BIN
osx/openlp-dmg.icns
Normal file
BIN
osx/openlp-dmg.icns
Normal file
Binary file not shown.
BIN
osx/openlp-dmg.png
Normal file
BIN
osx/openlp-dmg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 101 KiB |
BIN
osx/openlp-logo-new.png
Normal file
BIN
osx/openlp-logo-new.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 67 KiB |
BIN
osx/openlp-logo-new.png.icns
Normal file
BIN
osx/openlp-logo-new.png.icns
Normal file
Binary file not shown.
BIN
osx/openlp-new-dmg.png
Normal file
BIN
osx/openlp-new-dmg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 87 KiB |
BIN
osx/openlp-new-dmg.png.icns
Normal file
BIN
osx/openlp-new-dmg.png.icns
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user