mirror of
https://gitlab.com/openlp/packaging.git
synced 2024-12-22 13:02:50 +00:00
Link mudraw binary to bundled libraries on Mac OS X
Add Retina support for Mac Add bzrignore bzr-revno: 12
This commit is contained in:
commit
d4844ce03b
36
.bzrignore
Normal file
36
.bzrignore
Normal file
@ -0,0 +1,36 @@
|
||||
*.pyc
|
||||
*.*~
|
||||
\#*\#
|
||||
*.eric4project
|
||||
*.eric5project
|
||||
*.ropeproject
|
||||
*.e4*
|
||||
.eric4project
|
||||
.komodotools
|
||||
*.komodoproject
|
||||
list
|
||||
openlp.org 2.0.e4*
|
||||
documentation/build/html
|
||||
documentation/build/doctrees
|
||||
*.log*
|
||||
dist
|
||||
OpenLP.egg-info
|
||||
build
|
||||
resources/innosetup/Output
|
||||
_eric4project
|
||||
.pylint.d
|
||||
*.qm
|
||||
openlp/core/resources.py.old
|
||||
*.qm
|
||||
resources/windows/warnOpenLP.txt
|
||||
openlp.cfg
|
||||
.idea
|
||||
openlp.pro
|
||||
.kdev4
|
||||
tests.kdev4
|
||||
*.nja
|
||||
*.orig
|
||||
__pycache__
|
||||
*.dll
|
||||
*.DS_Store
|
||||
config.ini
|
239
osx/Info.plist
239
osx/Info.plist
@ -1,125 +1,124 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtension</key>
|
||||
<array>
|
||||
<string>osz</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFiles</key>
|
||||
<array>
|
||||
<string>OpenLP.icns</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>OpenLP Service</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Owner</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>org.openlp.osz</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtension</key>
|
||||
<array>
|
||||
<string>otz</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFiles</key>
|
||||
<array>
|
||||
<string>OpenLP.icns</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>OpenLP Theme</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Owner</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>org.openlp.otz</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>org.openlp.osz</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>OpenLP Service</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
<string>public.content</string>
|
||||
</array>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>osz</string>
|
||||
</array>
|
||||
<key>public.mime-type</key>
|
||||
<array>
|
||||
<string>application/x-openlp-service</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>org.openlp.otz</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>OpenLP Theme</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
<string>public.content</string>
|
||||
</array>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>otz</string>
|
||||
</array>
|
||||
<key>public.mime-type</key>
|
||||
<array>
|
||||
<string>application/x-openlp-theme</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.openlp</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>%(openlp_version)s</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>%(openlp_version)s</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>OpenLP</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>OpenLP.icns</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>MacOS/OpenLP</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>OpenLP</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>OpenLP %(openlp_version)s</string>
|
||||
<key>LSHasLocalizedDisplayName</key>
|
||||
<false/>
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<false/>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>LSBackgroundOnly</key>
|
||||
<false/>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtension</key>
|
||||
<array>
|
||||
<string>osz</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFiles</key>
|
||||
<array>
|
||||
<string>OpenLP.icns</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>OpenLP Service</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Owner</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>org.openlp.osz</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtension</key>
|
||||
<array>
|
||||
<string>otz</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFiles</key>
|
||||
<array>
|
||||
<string>OpenLP.icns</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>OpenLP Theme</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Owner</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>org.openlp.otz</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>org.openlp.osz</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>OpenLP Service</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
<string>public.content</string>
|
||||
</array>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>osz</string>
|
||||
</array>
|
||||
<key>public.mime-type</key>
|
||||
<array>
|
||||
<string>application/x-openlp-service</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>org.openlp.otz</string>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>OpenLP Theme</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
<string>public.content</string>
|
||||
</array>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>otz</string>
|
||||
</array>
|
||||
<key>public.mime-type</key>
|
||||
<array>
|
||||
<string>application/x-openlp-theme</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.openlp</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>%(openlp_version)s</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>%(openlp_version)s</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>OpenLP</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>OpenLP.icns</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>MacOS/OpenLP</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>OpenLP</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>OpenLP %(openlp_version)s</string>
|
||||
<key>LSHasLocalizedDisplayName</key>
|
||||
<false/>
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<false/>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>LSBackgroundOnly</key>
|
||||
<true/>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
@ -93,6 +93,11 @@ MuPDF
|
||||
Required for PDF support in OpenLP. Install using macports, or use the
|
||||
'--mudraw-bin' option of this script to point to the mudraw binary.
|
||||
|
||||
MachOLib
|
||||
Python library to analyze and edit Mach-O headers, the executable format
|
||||
used by Mac OS X. Used to relink the mudraw binary from MuPDF to the bundled
|
||||
libraries. Install using macports or pip.
|
||||
|
||||
config.ini.default
|
||||
The configuration file contains settings of the version string to include
|
||||
in the bundle as well as directory and file settings for different
|
||||
@ -126,6 +131,9 @@ from subprocess import Popen, PIPE
|
||||
from configparser import ConfigParser
|
||||
from argparse import ArgumentParser
|
||||
|
||||
from macholib.MachO import MachO
|
||||
from macholib.util import flipwritable, in_system_path
|
||||
|
||||
|
||||
def _which(command):
|
||||
"""
|
||||
@ -451,9 +459,58 @@ class MacosxBuilder(object):
|
||||
self._print_verbose('... mudraw')
|
||||
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()
|
||||
else:
|
||||
self._print('... WARNING: mudraw 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')
|
||||
distname = os.path.relpath(self.dist_path, libname)
|
||||
self._print_verbose('... mudraw path %s', libname)
|
||||
|
||||
# Determine how many directories up is the directory with shared
|
||||
# dynamic libraries. '../'
|
||||
# E.g. ./qt4_plugins/images/ -> ./../../
|
||||
parent_dir = ''
|
||||
# Check if distname is not only base filename.
|
||||
if os.path.dirname(distname):
|
||||
parent_level = len(os.path.dirname(distname).split(os.sep))
|
||||
parent_dir = parent_level * (os.pardir + os.sep)
|
||||
|
||||
def match_func(pth):
|
||||
"""
|
||||
For system libraries leave path unchanged.
|
||||
"""
|
||||
# Match non system dynamic libraries.
|
||||
if not in_system_path(pth):
|
||||
# Use relative path to dependend dynamic libraries bases on
|
||||
# location of the executable.
|
||||
pth = os.path.join('@loader_path', parent_dir, os.path.basename(pth))
|
||||
self._print_verbose('... %s', pth)
|
||||
return pth
|
||||
|
||||
# Rewrite mach headers with @loader_path.
|
||||
dll = MachO(libname)
|
||||
dll.rewriteLoadCommands(match_func)
|
||||
|
||||
# Write changes into file.
|
||||
# Write code is based on macholib example.
|
||||
try:
|
||||
self._print_verbose('... writing new library paths')
|
||||
f = open(dll.filename, 'rb+')
|
||||
for header in dll.headers:
|
||||
f.seek(0)
|
||||
dll.write(f)
|
||||
f.seek(0, 2)
|
||||
f.flush()
|
||||
f.close()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def update_translations(self):
|
||||
"""
|
||||
Update the translations.
|
||||
|
Loading…
Reference in New Issue
Block a user