mirror of
https://gitlab.com/openlp/packaging.git
synced 2024-12-22 13:02:50 +00:00
Merge branch 'master' of gitlab.com:openlp/packaging
This commit is contained in:
commit
d419a9f7de
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
__pycache__
|
||||||
|
*.pyc
|
||||||
|
config.ini
|
@ -149,6 +149,8 @@ class Builder(object):
|
|||||||
parser.add_argument('-b', '--branch', metavar='PATH', help='Specify the path to the branch you wish to build')
|
parser.add_argument('-b', '--branch', metavar='PATH', help='Specify the path to the branch you wish to build')
|
||||||
parser.add_argument('-r', '--release', metavar='VERSION', default=None,
|
parser.add_argument('-r', '--release', metavar='VERSION', default=None,
|
||||||
help='Build a release version of OpenLP with the version specified')
|
help='Build a release version of OpenLP with the version specified')
|
||||||
|
parser.add_argument('-x', '--export', dest='can_export', action='store_true', default=False,
|
||||||
|
help='Export when building a release. Defaults to false, ignored for non-release builds')
|
||||||
parser.add_argument('-d', '--documentation', metavar='PATH', default=None,
|
parser.add_argument('-d', '--documentation', metavar='PATH', default=None,
|
||||||
help='Specify the path to the documentation branch')
|
help='Specify the path to the documentation branch')
|
||||||
parser.add_argument('-t', '--update-translations', action='store_true', default=False,
|
parser.add_argument('-t', '--update-translations', action='store_true', default=False,
|
||||||
@ -214,9 +216,11 @@ class Builder(object):
|
|||||||
self.documentation_path = os.path.abspath(self.args.documentation)
|
self.documentation_path = os.path.abspath(self.args.documentation)
|
||||||
if self.args.release:
|
if self.args.release:
|
||||||
self.version = self.args.release
|
self.version = self.args.release
|
||||||
self.work_path = os.path.abspath(os.path.join(self.branch_path, '..', 'OpenLP-' + self.version))
|
|
||||||
else:
|
else:
|
||||||
self.version = None
|
self.version = None
|
||||||
|
if self.args.release and self.args.can_export:
|
||||||
|
self.work_path = os.path.abspath(os.path.join(self.branch_path, '..', 'OpenLP-' + self.version))
|
||||||
|
else:
|
||||||
self.work_path = self.branch_path
|
self.work_path = self.branch_path
|
||||||
self.openlp_script = os.path.abspath(os.path.join(self.work_path, 'openlp', '__main__.py'))
|
self.openlp_script = os.path.abspath(os.path.join(self.work_path, 'openlp', '__main__.py'))
|
||||||
self.source_path = os.path.join(self.work_path, 'openlp')
|
self.source_path = os.path.join(self.work_path, 'openlp')
|
||||||
@ -492,7 +496,7 @@ class Builder(object):
|
|||||||
self._print_verbose('')
|
self._print_verbose('')
|
||||||
if not self.args.skip_update:
|
if not self.args.skip_update:
|
||||||
self.update_code()
|
self.update_code()
|
||||||
if self.args.release:
|
if self.args.release and self.args.can_export:
|
||||||
self.export_release()
|
self.export_release()
|
||||||
self.run_pyinstaller()
|
self.run_pyinstaller()
|
||||||
self.write_version_file()
|
self.write_version_file()
|
||||||
|
@ -135,7 +135,7 @@ class MacOSXBuilder(Builder):
|
|||||||
|
|
||||||
folder.symlink_to(good_path)
|
folder.symlink_to(good_path)
|
||||||
|
|
||||||
def _fix_qt_dll(self, dll):
|
def _fix_qt_dll(self, dll_file):
|
||||||
"""
|
"""
|
||||||
Fix the DLL lookup paths to use relative ones for Qt dependencies.
|
Fix the DLL lookup paths to use relative ones for Qt dependencies.
|
||||||
Inspiration: PyInstaller/depend/dylib.py:mac_set_relative_dylib_deps()
|
Inspiration: PyInstaller/depend/dylib.py:mac_set_relative_dylib_deps()
|
||||||
@ -158,15 +158,19 @@ class MacOSXBuilder(Builder):
|
|||||||
return None
|
return None
|
||||||
return f'@loader_path{good_path}/{basename}'
|
return f'@loader_path{good_path}/{basename}'
|
||||||
|
|
||||||
|
# Skip it if it's not a dylib file
|
||||||
|
if dll_file.suffix != '.dylib':
|
||||||
|
return
|
||||||
|
|
||||||
# Resources/PyQt5/Qt/qml/QtQuick/Controls.2/Fusion
|
# Resources/PyQt5/Qt/qml/QtQuick/Controls.2/Fusion
|
||||||
root = str(dll.parent).partition('Contents')[2][1:]
|
root = str(dll_file.parent).partition('Contents')[2][1:]
|
||||||
# /../../../../../../..
|
# /../../../../../../..
|
||||||
backward = '/..' * len(root.split('/'))
|
backward = '/..' * len(root.split('/'))
|
||||||
# /../../../../../../../MacOS
|
# /../../../../../../../MacOS
|
||||||
good_path = f'{backward}/MacOS'
|
good_path = f'{backward}/MacOS'
|
||||||
|
|
||||||
# Rewrite Mach headers with corrected @loader_path
|
# Rewrite Mach headers with corrected @loader_path
|
||||||
dll = MachO(dll)
|
dll = MachO(dll_file)
|
||||||
dll.rewriteLoadCommands(match_func)
|
dll.rewriteLoadCommands(match_func)
|
||||||
with open(dll.filename, 'rb+') as f:
|
with open(dll.filename, 'rb+') as f:
|
||||||
for header in dll.headers:
|
for header in dll.headers:
|
||||||
@ -183,7 +187,7 @@ class MacOSXBuilder(Builder):
|
|||||||
if not path.is_dir() or path.is_symlink():
|
if not path.is_dir() or path.is_symlink():
|
||||||
# Skip simlinks as they are allowed (even with a dot)
|
# Skip simlinks as they are allowed (even with a dot)
|
||||||
continue
|
continue
|
||||||
if '.' in path.name:
|
if path.name == 'qml':
|
||||||
yield path
|
yield path
|
||||||
else:
|
else:
|
||||||
yield from self._find_problematic_qt_folders(path)
|
yield from self._find_problematic_qt_folders(path)
|
||||||
@ -199,6 +203,7 @@ class MacOSXBuilder(Builder):
|
|||||||
yield from self._move_contents_to_resources(path)
|
yield from self._move_contents_to_resources(path)
|
||||||
else:
|
else:
|
||||||
sibling = Path(str(path).replace('MacOS', 'Resources'))
|
sibling = Path(str(path).replace('MacOS', 'Resources'))
|
||||||
|
sibling.parent.mkdir(parents=True, exist_ok=True)
|
||||||
move(path, sibling)
|
move(path, sibling)
|
||||||
yield sibling
|
yield sibling
|
||||||
|
|
||||||
@ -213,9 +218,9 @@ class MacOSXBuilder(Builder):
|
|||||||
rmtree(folder)
|
rmtree(folder)
|
||||||
self._create_symlink(folder)
|
self._create_symlink(folder)
|
||||||
|
|
||||||
def _relink_mupdf(self, bin_name):
|
def _relink_binary(self, bin_name):
|
||||||
"""
|
"""
|
||||||
Relink mupdf to bundled libraries
|
Relink bundled libraries
|
||||||
"""
|
"""
|
||||||
self._print('Linking {bin_name} with bundled libraries...'.format(bin_name=bin_name))
|
self._print('Linking {bin_name} with bundled libraries...'.format(bin_name=bin_name))
|
||||||
libname = os.path.join(self.dist_path, bin_name)
|
libname = os.path.join(self.dist_path, bin_name)
|
||||||
@ -263,13 +268,13 @@ class MacOSXBuilder(Builder):
|
|||||||
"""
|
"""
|
||||||
Relink mudraw to bundled libraries
|
Relink mudraw to bundled libraries
|
||||||
"""
|
"""
|
||||||
self._relink_mupdf('mudraw')
|
self._relink_binary('mudraw')
|
||||||
|
|
||||||
def _relink_mutool(self):
|
def _relink_mutool(self):
|
||||||
"""
|
"""
|
||||||
Relink mudraw to bundled libraries
|
Relink mudraw to bundled libraries
|
||||||
"""
|
"""
|
||||||
self._relink_mupdf('mutool')
|
self._relink_binary('mutool')
|
||||||
|
|
||||||
def _install_pyro4(self):
|
def _install_pyro4(self):
|
||||||
"""
|
"""
|
||||||
@ -296,6 +301,7 @@ class MacOSXBuilder(Builder):
|
|||||||
for fname in ['libvlc.dylib', 'libvlccore.dylib']:
|
for fname in ['libvlc.dylib', 'libvlccore.dylib']:
|
||||||
self._print_verbose('... {}'.format(fname))
|
self._print_verbose('... {}'.format(fname))
|
||||||
copy(os.path.join(vlc_path, 'lib', fname), os.path.join(vlc_dest, fname))
|
copy(os.path.join(vlc_path, 'lib', fname), os.path.join(vlc_dest, fname))
|
||||||
|
self._relink_binary(os.path.join('vlc', fname))
|
||||||
if os.path.exists(os.path.join(vlc_dest, 'plugins')):
|
if os.path.exists(os.path.join(vlc_dest, 'plugins')):
|
||||||
rmtree(os.path.join(vlc_dest, 'plugins'))
|
rmtree(os.path.join(vlc_dest, 'plugins'))
|
||||||
self._print_verbose('... copying VLC plugins')
|
self._print_verbose('... copying VLC plugins')
|
||||||
@ -404,7 +410,8 @@ class MacOSXBuilder(Builder):
|
|||||||
Copy any extra files which are particular to a platform
|
Copy any extra files which are particular to a platform
|
||||||
"""
|
"""
|
||||||
self._print('Copying extra files for macOS...')
|
self._print('Copying extra files for macOS...')
|
||||||
self._copy_vlc_files()
|
# Exclude VLC for now, at least
|
||||||
|
# self._copy_vlc_files()
|
||||||
self._copy_bundle_files()
|
self._copy_bundle_files()
|
||||||
self._copy_macosx_files()
|
self._copy_macosx_files()
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ import os
|
|||||||
HERE = os.getcwd()
|
HERE = os.getcwd()
|
||||||
|
|
||||||
format = 'UDBZ'
|
format = 'UDBZ'
|
||||||
size = '600M'
|
size = '850M'
|
||||||
files = [defines.get('app', '/Applications/OpenLP.app')]
|
files = [defines.get('app', '/Applications/OpenLP.app')]
|
||||||
symlinks = { 'Applications': '/Applications' }
|
symlinks = { 'Applications': '/Applications' }
|
||||||
badge_icon = os.path.join(HERE, 'OpenLP.icns')
|
badge_icon = os.path.join(HERE, 'OpenLP.icns')
|
||||||
|
@ -29,5 +29,6 @@ hiddenimports = [
|
|||||||
'openlp.plugins.custom.customplugin',
|
'openlp.plugins.custom.customplugin',
|
||||||
'openlp.plugins.songusage.songusageplugin',
|
'openlp.plugins.songusage.songusageplugin',
|
||||||
'openlp.plugins.remotes.remoteplugin',
|
'openlp.plugins.remotes.remoteplugin',
|
||||||
'openlp.plugins.alerts.alertsplugin'
|
'openlp.plugins.alerts.alertsplugin',
|
||||||
|
'openlp.plugins.planningcenter.planningcenterplugin'
|
||||||
]
|
]
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[executables]
|
[executables]
|
||||||
sphinx = %(pyroot)s\Scripts\sphinx-build.exe
|
sphinx = %(pyroot)s\Scripts\sphinx-build.exe
|
||||||
pyinstaller = %(pyroot)s\Scripts\pyinstaller.exe
|
pyinstaller = %(pyroot)s\Scripts\pyinstaller.exe
|
||||||
htmlhelp = %(progfiles)s\HTML Help Workshop\hhc.exe
|
htmlhelp = %(progfilesx86)s\HTML Help Workshop\hhc.exe
|
||||||
lrelease = C:\Qt\5.12\msvc2017\bin\lrelease.exe
|
lrelease = C:\Qt\5.12\msvc2017\bin\lrelease.exe
|
||||||
portablelauncher = %(here)s\..\..\PortableApps.comLauncher\PortableApps.comLauncherGenerator.exe
|
portablelauncher = %(here)s\..\..\PortableApps.comLauncher\PortableApps.comLauncherGenerator.exe
|
||||||
portableinstaller = %(here)s\..\..\PortableApps.comInstaller\PortableApps.comInstaller.exe
|
portableinstaller = %(here)s\..\..\PortableApps.comInstaller\PortableApps.comInstaller.exe
|
||||||
|
Loading…
Reference in New Issue
Block a user