1
0
mirror of https://gitlab.com/openlp/packaging.git synced 2024-12-22 21:12:50 +00:00

Removed workarounds for fixed PyInstaller issues.

Moved mudrawbin option to config.ini.
Updated documentation in the comments.

bzr-revno: 13
This commit is contained in:
Tomas Groth 2014-09-06 07:46:07 +01:00 committed by Tim Bentley
commit c6a20d66f0
4 changed files with 20 additions and 51 deletions

View File

@ -5,6 +5,7 @@ lrelease = lrelease
diskutil = diskutil diskutil = diskutil
hdiutil = hdiutil hdiutil = hdiutil
osascript = osascript osascript = osascript
mudrawbin = /opt/local/bin/mudraw
[paths] [paths]
branch = %(projects)s/trunk branch = %(projects)s/trunk

View File

@ -34,7 +34,7 @@ Mac OS X Build Script
This script is used to build the Mac OS X app bundle and pack it into dmg file. This script is used to build the Mac OS X app bundle and pack it into dmg file.
For this script to work out of the box, it depends on a number of things: For this script to work out of the box, it depends on a number of things:
Python 2.6/2.7 Python 3.3/3.4
PyQt4 PyQt4
You should already have this installed, OpenLP doesn't work without it. The You should already have this installed, OpenLP doesn't work without it. The
@ -50,18 +50,9 @@ Sphinx
the same directory level as OpenLP trunk and named "documentation". the same directory level as OpenLP trunk and named "documentation".
PyInstaller PyInstaller
PyInstaller should be a checkout of revision 1355 of trunk, and in a PyInstaller should be a git clone of either
directory which is configured in the openlp.cfg. The revision is very https://github.com/matysek/pyinstaller branch python3 or
important as there is just included a fix for builds on OS X. https://github.com/pyinstaller/pyinstaller branch python3
To install PyInstaller, first checkout trunk from Subversion. The
easiest way is to do a
svn co http://svn.pyinstaller.org/trunk
Then you need to copy the two hook-*.py files from the "pyinstaller"
subdirectory in OpenLP's "resources" directory into PyInstaller's
"hooks" directory.
Bazaar Bazaar
You need the command line "bzr" client installed. You need the command line "bzr" client installed.
@ -91,7 +82,12 @@ SQLAlchemy Migrate
MuPDF MuPDF
Required for PDF support in OpenLP. Install using macports, or use the Required for PDF support in OpenLP. Install using macports, or use the
'--mudraw-bin' option of this script to point to the mudraw binary. mudrawbin option in the config file 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.
MachOLib MachOLib
Python library to analyze and edit Mach-O headers, the executable format Python library to analyze and edit Mach-O headers, the executable format
@ -239,8 +235,6 @@ class MacosxBuilder(object):
parser.add_argument('--transifex-pass', dest='transifex_pass', help='Transifex password.') parser.add_argument('--transifex-pass', dest='transifex_pass', help='Transifex password.')
parser.add_argument('-v', '--verbose', dest='verbose', action='store_true', default=False, parser.add_argument('-v', '--verbose', dest='verbose', action='store_true', default=False,
help='Print out additional information.') help='Print out additional information.')
parser.add_argument('--mudraw-bin', dest='mudraw_bin', default='/opt/local/bin/mudraw',
help='Path to the mudraw binary.')
self.args = parser.parse_args() self.args = parser.parse_args()
def read_config(self): def read_config(self):
@ -269,6 +263,7 @@ class MacosxBuilder(object):
self.diskutil = _which(self.config.get('executables', 'diskutil')) self.diskutil = _which(self.config.get('executables', 'diskutil'))
self.hdiutil = _which(self.config.get('executables', 'hdiutil')) self.hdiutil = _which(self.config.get('executables', 'hdiutil'))
self.osascript = _which(self.config.get('executables', 'osascript')) self.osascript = _which(self.config.get('executables', 'osascript'))
self.mudraw_bin = _which(self.config.get('executables', 'mudrawbin'))
def setup_paths(self): def setup_paths(self):
""" """
@ -282,10 +277,6 @@ class MacosxBuilder(object):
self.docs_path = os.path.abspath(self.args.docs) self.docs_path = os.path.abspath(self.args.docs)
else: else:
self.docs_path = self.config.get('paths', 'documentation') self.docs_path = self.config.get('paths', 'documentation')
if self.args.mudraw_bin:
self.mudraw_bin = self.args.mudraw_bin
else:
self.mudraw_bin = ''
self.openlp_script = os.path.abspath(os.path.join(self.branch_path, 'openlp.py')) self.openlp_script = os.path.abspath(os.path.join(self.branch_path, 'openlp.py'))
self.hooks_path = os.path.abspath(os.path.join(self.branch_path, self.config.get('paths', 'hooks'))) self.hooks_path = os.path.abspath(os.path.join(self.branch_path, self.config.get('paths', 'hooks')))
self.mac_icon = os.path.abspath(self.config.get('paths', 'macicon')) self.mac_icon = os.path.abspath(self.config.get('paths', 'macicon'))

View File

@ -8,6 +8,7 @@ psvince = %(here)s\psvince.dll
lrelease = %(sitepackages)s\PyQt4\bin\lrelease.exe lrelease = %(sitepackages)s\PyQt4\bin\lrelease.exe
portablelauncher = %(progfiles)s\PortableApps.comLauncher\PortableApps.comLauncherGenerator.exe portablelauncher = %(progfiles)s\PortableApps.comLauncher\PortableApps.comLauncherGenerator.exe
portableinstaller = %(progfiles)s\PortableApps.comInstaller\PortableApps.comInstaller.exe portableinstaller = %(progfiles)s\PortableApps.comInstaller\PortableApps.comInstaller.exe
mudrawbin = %(here)s\..\mupdf-1.5-windows\mudraw.exe
[paths] [paths]
branch = %(projects)s\trunk branch = %(projects)s\trunk

View File

@ -34,7 +34,7 @@ Windows Build Script
This script is used to build the Windows binary and the accompanying installer. This script is used to build the Windows binary and the accompanying installer.
For this script to work out of the box, it depends on a number of things: For this script to work out of the box, it depends on a number of things:
Python 2.6/2.7 Python 3.3/3.4
PyQt4 PyQt4
You should already have this installed, OpenLP doesn't work without it. The You should already have this installed, OpenLP doesn't work without it. The
@ -56,16 +56,9 @@ HTML Help Workshop
This is used to create the help file. This is used to create the help file.
PyInstaller PyInstaller
PyInstaller should be a checkout of revision 1470 of trunk, and in a PyInstaller should be a git clone of either
directory called, "pyinstaller" on the same level as OpenLP's Bazaar shared https://github.com/matysek/pyinstaller branch python3 or
repository directory. The revision is very important as there is currently https://github.com/pyinstaller/pyinstaller branch python3
a major regression in HEAD.
To install PyInstaller, first checkout trunk from Subversion. The easiest
way is to install TortoiseSVN and then checkout the following URL to a
directory called "pyinstaller"::
http://svn.pyinstaller.org/trunk
Bazaar Bazaar
You need the command line "bzr" client installed. You need the command line "bzr" client installed.
@ -108,8 +101,8 @@ SQLAlchemy Migrate
MuPDF MuPDF
Required for PDF support in OpenLP. Download the windows build from Required for PDF support in OpenLP. Download the windows build from
mupdf.com, extract it, and use the '--mudraw-bin' option of this script to mupdf.com, extract it, and set the mudrawbin option in the config file to
point to mudraw.exe. point to mudraw.exe
Portable App Builds Portable App Builds
The following are required if you are planning to make a portable build of The following are required if you are planning to make a portable build of
@ -189,7 +182,6 @@ class WindowsBuilder(object):
help='Do NOT update the language translation files.') help='Do NOT update the language translation files.')
parser.add_argument('-v', '--verbose', dest='verbose', action='store_true', default=False, parser.add_argument('-v', '--verbose', dest='verbose', action='store_true', default=False,
help='Print out additional information.') help='Print out additional information.')
parser.add_argument('--mudraw-bin', dest='mudraw_bin', default=None, help='Path to the mudraw binary.')
self.args = parser.parse_args() self.args = parser.parse_args()
def read_config(self): def read_config(self):
@ -227,6 +219,7 @@ class WindowsBuilder(object):
self.psvince = os.path.abspath(self.config.get('executables', 'psvince')) self.psvince = os.path.abspath(self.config.get('executables', 'psvince'))
self.portableinstaller = os.path.abspath(self.config.get('executables', 'portableinstaller')) self.portableinstaller = os.path.abspath(self.config.get('executables', 'portableinstaller'))
self.portablelauncher = os.path.abspath(self.config.get('executables', 'portablelauncher')) self.portablelauncher = os.path.abspath(self.config.get('executables', 'portablelauncher'))
self.mudraw_bin = os.path.abspath(self.config.get('executables', 'mudrawbin'))
if os.path.exists(os.path.join(self.site_packages, 'PyQt4', 'bin')): if os.path.exists(os.path.join(self.site_packages, 'PyQt4', 'bin')):
# Older versions of the PyQt4 Windows installer put their binaries # Older versions of the PyQt4 Windows installer put their binaries
# in the "bin" directory # in the "bin" directory
@ -262,10 +255,6 @@ class WindowsBuilder(object):
self.args.portable = self.portable_path self.args.portable = self.portable_path
else: else:
self.portable_path = '' self.portable_path = ''
if self.args.mudraw_bin:
self.mudraw_bin = self.args.mudraw_bin
else:
self.mudraw_bin = ''
self.openlp_script = os.path.abspath(os.path.join(branch_path, 'openlp.py')) self.openlp_script = os.path.abspath(os.path.join(branch_path, 'openlp.py'))
self.hooks_path = os.path.abspath(self.config.get('paths', 'hooks')) self.hooks_path = os.path.abspath(self.config.get('paths', 'hooks'))
self.win32_icon = os.path.abspath(self.config.get('paths', 'win32icon')) self.win32_icon = os.path.abspath(self.config.get('paths', 'win32icon'))
@ -318,7 +307,6 @@ class WindowsBuilder(object):
'-i', self.win32_icon, '-i', self.win32_icon,
'-p', self.branch_path, '-p', self.branch_path,
'-n', 'OpenLP', '-n', 'OpenLP',
'-d', '-c', # for now this is needed to make OpenLP run under windows
self.openlp_script), self.openlp_script),
stdout=PIPE) stdout=PIPE)
output = pyinstaller.communicate()[0] output = pyinstaller.communicate()[0]
@ -427,18 +415,6 @@ class WindowsBuilder(object):
copy(os.path.join(self.mudraw_bin), os.path.join(self.dist_path, 'mudraw.exe')) copy(os.path.join(self.mudraw_bin), os.path.join(self.dist_path, 'mudraw.exe'))
else: else:
self._print('... WARNING: mudraw.exe not found') self._print('... WARNING: mudraw.exe not found')
self._print_verbose('Tempoary workaround for needed dlls not copied by pyinstaller')
self._print_verbose('... pythoncom33.dll')
if os.path.isfile('C:\\Python33\\Lib\\site-packages\\pywin32_system32\\pythoncom33.dll'):
copy('C:\\Python33\\Lib\\site-packages\\pywin32_system32\\pythoncom33.dll',
os.path.join(self.dist_path, 'pythoncom33.dll'))
else:
self._print('... WARNING: pythoncom33.dll not found')
if os.path.isfile('C:\\windows\\system32\\msvcr100.dll'):
self._print_verbose('... msvcr100.dll')
copy('C:\\windows\\system32\\msvcr100.dll', os.path.join(self.dist_path, 'msvcr100.dll'))
else:
self._print('... WARNING: msvcr100.dll not found')
def update_translations(self): def update_translations(self):
""" """