From 51edce8c174679714cd052514eaaf641533ce424 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sun, 10 Oct 2010 17:40:54 +0200 Subject: [PATCH] Move Windows stuff all into a single "Windows" directory. --- OpenLP.spec | 19 - resources/{innosetup => windows}/LICENSE.txt | 0 .../{innosetup => windows}/OpenLP-2.0.iss | 1 + resources/{innosetup => windows}/OpenLP.ico | Bin resources/{innosetup => windows}/OpenLP.reg | Bin resources/windows/OpenLP.spec | 14 + resources/{innosetup => windows}/openlp.conf | 0 resources/windows/warnOpenLP.txt | 611 ++++++++++++++++++ scripts/translation_utils.py | 64 +- scripts/windows-builder.py | 61 +- 10 files changed, 705 insertions(+), 65 deletions(-) delete mode 100644 OpenLP.spec rename resources/{innosetup => windows}/LICENSE.txt (100%) rename resources/{innosetup => windows}/OpenLP-2.0.iss (97%) rename resources/{innosetup => windows}/OpenLP.ico (100%) rename resources/{innosetup => windows}/OpenLP.reg (100%) create mode 100644 resources/windows/OpenLP.spec rename resources/{innosetup => windows}/openlp.conf (100%) create mode 100644 resources/windows/warnOpenLP.txt diff --git a/OpenLP.spec b/OpenLP.spec deleted file mode 100644 index 9569af6c1..000000000 --- a/OpenLP.spec +++ /dev/null @@ -1,19 +0,0 @@ -# -*- mode: python -*- -a = Analysis([os.path.join(HOMEPATH,'support\\_mountzlib.py'), os.path.join(HOMEPATH,'support\\useUnicode.py'), 'openlp.pyw'], - pathex=[os.path.abspath('.')]) -pyz = PYZ(a.pure) -exe = EXE(pyz, - a.scripts, - exclude_binaries=1, - name=os.path.join('build\\pyi.win32\\OpenLP', 'OpenLP.exe'), - debug=False, - strip=False, - upx=True, - console=False , icon='resources\\images\\OpenLP.ico') -coll = COLLECT( exe, - a.binaries, - a.zipfiles, - a.datas, - strip=False, - upx=True, - name=os.path.join('dist', 'OpenLP')) diff --git a/resources/innosetup/LICENSE.txt b/resources/windows/LICENSE.txt similarity index 100% rename from resources/innosetup/LICENSE.txt rename to resources/windows/LICENSE.txt diff --git a/resources/innosetup/OpenLP-2.0.iss b/resources/windows/OpenLP-2.0.iss similarity index 97% rename from resources/innosetup/OpenLP-2.0.iss rename to resources/windows/OpenLP-2.0.iss index e75f1076f..94ee4fc22 100644 --- a/resources/innosetup/OpenLP-2.0.iss +++ b/resources/windows/OpenLP-2.0.iss @@ -27,6 +27,7 @@ DefaultDirName={pf}\{#AppName} DefaultGroupName={#AppVerName} AllowNoIcons=true LicenseFile=LICENSE.txt +OutputDir=..\..\dist OutputBaseFilename=OpenLP-{#RealVersion}-setup Compression=lzma SolidCompression=true diff --git a/resources/innosetup/OpenLP.ico b/resources/windows/OpenLP.ico similarity index 100% rename from resources/innosetup/OpenLP.ico rename to resources/windows/OpenLP.ico diff --git a/resources/innosetup/OpenLP.reg b/resources/windows/OpenLP.reg similarity index 100% rename from resources/innosetup/OpenLP.reg rename to resources/windows/OpenLP.reg diff --git a/resources/windows/OpenLP.spec b/resources/windows/OpenLP.spec new file mode 100644 index 000000000..47a1952f3 --- /dev/null +++ b/resources/windows/OpenLP.spec @@ -0,0 +1,14 @@ +# -*- mode: python -*- +a = Analysis([ + os.path.join(HOMEPATH, 'support\\_mountzlib.py'), + os.path.join(HOMEPATH, 'support\\useUnicode.py'), + os.path.abspath('openlp.pyw')], + pathex=[os.path.abspath('.')]) +pyz = PYZ(a.pure) +exe = EXE(pyz, a.scripts, exclude_binaries=1, + name=os.path.abspath(os.path.join('build', 'pyi.win32', 'OpenLP', + 'OpenLP.exe')), + debug=False, strip=False, upx=True, console=False, + icon=os.path.abspath(os.path.join('resources', 'images', 'OpenLP.ico'))) +coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, + name=os.path.abspath(os.path.join('dist', 'OpenLP'))) diff --git a/resources/innosetup/openlp.conf b/resources/windows/openlp.conf similarity index 100% rename from resources/innosetup/openlp.conf rename to resources/windows/openlp.conf diff --git a/resources/windows/warnOpenLP.txt b/resources/windows/warnOpenLP.txt new file mode 100644 index 000000000..19c579942 --- /dev/null +++ b/resources/windows/warnOpenLP.txt @@ -0,0 +1,611 @@ +W: no module named openlp.core.lib.build_html (top-level import by openlp.core.ui.maindisplay) +W: no module named mx (top-level import by sqlite.main) +W: no module named ctypes.create_string_buffer (delayed import by urllib) +W: no module named openlp.core.ui.ServiceNoteForm (top-level import by openlp.core.ui.servicemanager) +W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.ui.mainwindow) +W: no module named email.Iterators (delayed import by email.message) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.lib.mediaitem) +W: no module named sqlalchemy.sql.join (top-level import by sqlalchemy) +W: no module named java (conditional import by xml.sax._exceptions) +W: no module named openlp.plugins.images.lib.ImageMediaItem (top-level import by openlp.plugins.images.imageplugin) +W: no module named sqlalchemy.SMALLINT (top-level import by sqlalchemy.databases.sybase) +W: no module named sqlalchemy.engine.create_engine (top-level import by sqlalchemy) +W: no module named sqlalchemy.sql.asc (top-level import by sqlalchemy) +W: no module named openlp.plugins.bibles.lib.BiblesTab (top-level import by openlp.plugins.bibles.bibleplugin) +W: no module named PyQt4._qt (top-level import by PyQt4.QtCore) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.lib.alertstab) +W: no module named sqlalchemy.Column (top-level import by openlp.plugins.custom.lib.db) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songusage.songusageplugin) +W: no module named openlp.plugins.alerts.lib.AlertsManager (top-level import by openlp.plugins.alerts.alertsplugin) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.generaltab) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.forms.alertdialog) +W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.custom.lib.mediaitem) +W: no module named sqlalchemy.orm.MapperExtension (top-level import by sqlalchemy.orm.scoping) +W: no module named pyodbc (delayed import by sqlalchemy.databases.access) +W: no module named openlp.core.lib.expand_tags (top-level import by openlp.core.lib.renderer) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.servicemanager) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.dynamic) +W: no module named ctypes._SimpleCData (top-level import by ctypes.wintypes) +W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.core.ui.generaltab) +W: no module named simplejson (conditional import by openlp.plugins.remotes.lib.httpserver) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.alerts.forms.alertdialog) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.collections) +W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.lib.serviceitem) +W: no module named openlp.plugins.songs.lib.SongXMLParser (top-level import by openlp.plugins.songs.forms.editsongform) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.bibleplugin) +W: no module named xml.dom.XMLNS_NAMESPACE (top-level import by xml.dom.minidom) +W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.lib.songimport) +W: no module named openlp.plugins.songs.lib.SongXMLBuilder (top-level import by openlp.plugins.songs.forms.editsongform) +W: no module named openlp.core.ui.GeneralTab (top-level import by openlp.core.ui.settingsform) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.presentations.lib.mediaitem) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.presentations.presentationplugin) +W: no module named informixdb (delayed import by sqlalchemy.databases.informix) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.custom.customplugin) +W: no module named cjkcodecs (top-level import by BeautifulSoup) +W: no module named readline (delayed, conditional import by cmd) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.lib.songimport) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.media.mediaplugin) +W: no module named openlp.core.lib.ThemeXML (top-level import by openlp.core.ui.amendthemeform) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.manager) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.custom.lib.mediaitem) +W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.ui.maindisplay) +W: no module named openlp.plugins.songs.forms.EditVerseForm (top-level import by openlp.plugins.songs.forms.editsongform) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.ewimport) +W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.songs.lib.songstab) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.ui.HideMode (top-level import by openlp.core.ui.maindisplay) +W: no module named sqlalchemy.Column (top-level import by sqlalchemy.databases.sybase) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.servicemanager) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.slidecontroller) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.forms.songimportform) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.mediaitem) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.aboutdialog) +W: no module named sqlalchemy.sql.insert (top-level import by sqlalchemy) +W: no module named openlp.core.lib.str_to_bool (top-level import by openlp.core.ui.thememanager) +W: no module named sqlalchemy.MetaData (top-level import by sqlalchemy.databases.sybase) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.biblestab) +W: no module named openlp.plugins.bibles.lib.BibleManager (top-level import by openlp.plugins.bibles.bibleplugin) +W: no module named openlp.core.ui.SlideController (top-level import by openlp.core.ui.mainwindow) +W: no module named MacOS (delayed import by platform) +W: no module named openlp.core.lib.ThemeXML (top-level import by openlp.core.ui.thememanager) +W: no module named cx_Oracle (delayed import by sqlalchemy.databases.oracle) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.slidecontroller) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.servicenotedialog) +W: no module named sqlalchemy.sql.except_ (top-level import by sqlalchemy) +W: no module named openlp.core.ui.AboutForm (top-level import by openlp.core.ui.mainwindow) +W: no module named EasyDialogs (conditional import by getpass) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.lib.mediamanageritem) +W: no module named sqlalchemy.orm.SessionExtension (top-level import by sqlalchemy.orm.session) +W: no module named sqlalchemy.orm.relation (top-level import by openlp.plugins.bibles.lib.db) +W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.forms.editsongform) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.lib.http) +W: no module named sqlalchemy.sql.func (top-level import by sqlalchemy) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.utils.languagemanager) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.mainwindow) +W: no module named uno (conditional import by openlp.plugins.songs.lib.oooimport) +W: no module named kinterbasdb (delayed import by sqlalchemy.databases.firebird) +W: no module named multiprocessing.RLock (top-level import by multiprocessing.sharedctypes) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.filerenameform) +W: no module named sqlalchemy.ForeignKey (top-level import by sqlalchemy.databases.mssql) +W: no module named openlp.core.lib.Renderer (top-level import by openlp.core.lib.rendermanager) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songmaintenancedialog) +W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.lib.mediamanageritem) +W: no module named openlp.core.ui.FileRenameForm (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.songsplugin) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.bibles.bibleplugin) +W: no module named vms_lib (delayed, conditional import by platform) +W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.ui.slidecontroller) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.alerts.lib.alertsmanager) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedetaildialog) +W: no module named openlp.plugins.remotes.lib.RemoteTab (top-level import by openlp.plugins.remotes.remoteplugin) +W: no module named openlp.core.ui.ServiceManager (top-level import by openlp.core.ui.mainwindow) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.songusage.forms.songusagedetailform) +W: no module named openlp.core.ui.SettingsForm (top-level import by openlp.core.ui.mainwindow) +W: no module named openlp.plugins.alerts.lib.AlertsTab (top-level import by openlp.plugins.alerts.alertsplugin) +W: no module named xdg (delayed, conditional import by openlp.core.utils) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.custom.customplugin) +W: no module named openlp.core.ui.AmendThemeForm (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.custom.lib.mediaitem) +W: no module named posix (delayed, conditional import by iu) +W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.forms.editversedialog) +W: no module named multiprocessing.dummy.Process (delayed import by __main__) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.presentations.presentationplugin) +W: no module named sqlalchemy.String (top-level import by sqlalchemy.databases.mssql) +W: no module named xml.dom.EMPTY_PREFIX (top-level import by xml.dom.expatbuilder) +W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.custom.lib.mediaitem) +W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.lib.mediamanageritem) +W: no module named openlp.core.lib.PluginManager (top-level import by openlp.core.ui.mainwindow) +W: no module named multiprocessing.current_process (top-level import by multiprocessing.reduction) +W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songbookform) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.presentations.presentationplugin) +W: no module named xmltok (top-level import by pyexpat) +W: no module named openlp.plugins.bibles.lib.SearchResults (top-level import by openlp.plugins.bibles.lib.http) +W: no module named sqlalchemy.sql.delete (top-level import by sqlalchemy) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.lib.oooimport) +W: no module named _emx_link (conditional import by os) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.aboutdialog) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.bibles.forms.bibleimportwizard) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.core.lib.pluginmanager) +W: no module named openlp.plugins.songs.lib.SongsTab (top-level import by openlp.plugins.songs.songsplugin) +W: no module named sqlalchemy.CHAR (top-level import by sqlalchemy.databases.sybase) +W: no module named sqlalchemy.sql.collate (top-level import by sqlalchemy) +W: no module named sqlalchemy.sql.outparam (top-level import by sqlalchemy) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.lib.db) +W: no module named openlp.core.ui.PluginForm (top-level import by openlp.core.ui.mainwindow) +W: no module named gobject (top-level import by enchant.checker.GtkSpellCheckerDialog) +W: no module named openlp.core.utils.VersionThread (top-level import by __main__) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.topicsform) +W: no module named sqlalchemy.Integer (top-level import by sqlalchemy.databases.mssql) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.exceptiondialog) +W: no module named pwd (delayed, conditional import by distutils.util) +W: no module named uno (conditional import by openlp.plugins.presentations.lib.impresscontroller) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.utils) +W: no module named sqlalchemy.orm.class_mapper (top-level import by openlp.plugins.songs.lib.olpimport) +W: no module named sqlalchemy.orm.relation (top-level import by openlp.plugins.songs.lib.olpimport) +W: no module named readline (delayed import by pdb) +W: no module named openlp.core.ui.MainDisplay (top-level import by openlp.core.lib.rendermanager) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.media.lib.mediaitem) +W: no module named sqlalchemy.Table (top-level import by openlp.plugins.songusage.lib.db) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.alertsplugin) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.media.lib.mediaitem) +W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.forms.importwizardform) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.remotes.remoteplugin) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.images.imageplugin) +W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.alerts.lib.alertstab) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.editversedialog) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songusage.songusageplugin) +W: no module named openlp.core.ui.HideMode (top-level import by openlp.core.ui.slidecontroller) +W: no module named sqlalchemy.sql.between (top-level import by sqlalchemy) +W: no module named xml.dom.EMPTY_PREFIX (top-level import by xml.dom.minidom) +W: no module named pysqlite2 (delayed import by sqlalchemy.databases.sqlite) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.lib.customtab) +W: no module named gtk (top-level import by enchant.checker.GtkSpellCheckerDialog) +W: no module named xml.dom.EMPTY_NAMESPACE (top-level import by xml.dom.expatbuilder) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.remotes.lib.httpserver) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedeleteform) +W: no module named sqlalchemy.orm.scoped_session (top-level import by openlp.core.lib.db) +W: no module named openlp.core.lib.clean_tags (top-level import by openlp.core.lib.serviceitem) +W: no module named openlp.core.utils.get_filesystem_encoding (top-level import by openlp.core.ui.thememanager) +W: no module named xml.dom.EMPTY_NAMESPACE (top-level import by xml.dom.minidom) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.lib.toolbar) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.remotes.remoteplugin) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.attributes) +W: no module named sqlalchemy.ForeignKey (top-level import by sqlalchemy.databases.sybase) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.servicemanager) +W: no module named sqlalchemy.Column (top-level import by openlp.plugins.alerts.lib.db) +W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.core.ui.advancedtab) +W: no module named AES (delayed, conditional import by archive) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.forms.songmaintenanceform) +W: no module named openlp.core.lib.context_menu_separator (top-level import by openlp.core.lib.mediamanageritem) +W: no module named fcntl (top-level import by tempfile) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.thememanager) +W: no module named mx (top-level import by sqlalchemy.databases.mxODBC) +W: no module named sqlalchemy.sql.union (top-level import by sqlalchemy) +W: no module named openlp.plugins.songs.forms.TopicsForm (top-level import by openlp.plugins.songs.forms.songmaintenanceform) +W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named MacOS (delayed import by distutils.sysconfig) +W: no module named openlp.core.lib.SpellTextEdit (top-level import by openlp.plugins.custom.forms.editcustomdialog) +W: no module named ic (top-level import by webbrowser) +W: no module named com (conditional import by openlp.plugins.presentations.lib.impresscontroller) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.media.mediaplugin) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.forms.editcustomform) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.lib.spelltextedit) +W: no module named openlp.core.lib.html_expands (top-level import by openlp.core.lib.spelltextedit) +W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named sqlalchemy.Column (top-level import by openlp.plugins.songs.lib.db) +W: no module named py2exe (delayed import by enchant.tests) +W: no module named openlp.plugins.songs.forms.AuthorsForm (top-level import by openlp.plugins.songs.forms.songmaintenanceform) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.authorsform) +W: no module named openlp.plugins.remotes.lib.HttpServer (top-level import by openlp.plugins.remotes.remoteplugin) +W: no module named sqlalchemy.Table (top-level import by openlp.plugins.bibles.lib.db) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.remotes.remoteplugin) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.filerenamedialog) +W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.media.lib.mediaitem) +W: no module named sapdb (delayed import by sqlalchemy.databases.maxdb) +W: no module named ctypes.cdll (delayed import by ctypes.util) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.presentations.lib.presentationtab) +W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.presentations.lib.mediaitem) +W: no module named sqlalchemy.sql.text (top-level import by sqlalchemy) +W: no module named openlp.core.lib.image_to_byte (top-level import by openlp.core.lib.renderer) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.forms.importwizardform) +W: no module named openlp.core.lib.image_to_byte (top-level import by openlp.core.ui.maindisplay) +W: no module named iconv_codec (top-level import by BeautifulSoup) +W: no module named openlp.plugins.songs.forms.SongBookForm (top-level import by openlp.plugins.songs.forms.songmaintenanceform) +W: no module named sqlalchemy.sql.not_ (top-level import by sqlalchemy) +W: no module named multiprocessing.Pipe (top-level import by multiprocessing.queues) +W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedetailform) +W: no module named sqlalchemy.sql.subquery (top-level import by sqlalchemy) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.songsplugin) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.editsongdialog) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.bibles.bibleplugin) +W: no module named openlp.plugins.songs.forms.SongMaintenanceForm (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named xmlparse (top-level import by pyexpat) +W: no module named sqlalchemy.sql.exists (top-level import by sqlalchemy) +W: no module named sqlalchemy.sql.and_ (top-level import by openlp.plugins.songs.forms.songmaintenanceform) +W: no module named multiprocessing.Process (top-level import by multiprocessing.pool) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.settingsdialog) +W: no module named sqlalchemy.exceptions (top-level import by openlp.core.lib.db) +W: no module named sqlalchemy.sql.outerjoin (top-level import by sqlalchemy) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.editsongdialog) +W: no module named openlp.plugins.custom.lib.CustomXMLParser (top-level import by openlp.plugins.custom.lib.mediaitem) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.custom.forms.editcustomdialog) +W: no module named sqlalchemy.Integer (top-level import by sqlalchemy.databases.sybase) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.properties) +W: no module named multiprocessing.current_process (top-level import by multiprocessing.managers) +W: no module named openlp.core.ui.SplashScreen (top-level import by __main__) +W: no module named multiprocessing.TimeoutError (top-level import by multiprocessing.dummy) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.songs.forms.songimportform) +W: no module named xml.dom.XMLNS_NAMESPACE (top-level import by xml.dom.expatbuilder) +W: no module named ctypes.c_int32 (delayed import by urllib) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.amendthemedialog) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.lib.serviceitem) +W: no module named openlp.core.utils.LanguageManager (top-level import by __main__) +W: no module named sqlalchemy.orm.object_mapper (top-level import by sqlalchemy.orm.properties) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.utils.languagemanager) +W: no module named sqlalchemy.sql.literal_column (top-level import by sqlalchemy) +W: no module named openlp.plugins.songs.lib.SongXMLParser (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named ctypes.c_char_p (delayed import by urllib) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.images.imageplugin) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.remotes.lib.remotetab) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.mainwindow) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.opensong) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songimportform) +W: no module named sqlalchemy.sql.select (top-level import by sqlalchemy) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songbookdialog) +W: no module named openlp.plugins.bibles.lib.BibleMediaItem (top-level import by openlp.plugins.bibles.bibleplugin) +W: no module named PyQt4._qt (top-level import by PyQt4.QtNetwork) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.songs.songsplugin) +W: no module named sqlalchemy.sql.case (top-level import by sqlalchemy) +W: no module named wx (top-level import by enchant.checker.wxSpellCheckerDialog) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.alerts.alertsplugin) +W: no module named com (conditional import by openlp.plugins.songs.lib.sofimport) +W: no module named PyQt4._qt (top-level import by PyQt4) +W: no module named SOCKS (top-level import by ftplib) +W: no module named openlp.plugins.songusage.forms.SongUsageDetailForm (top-level import by openlp.plugins.songusage.songusageplugin) +W: no module named sqlalchemy.sql.null (top-level import by sqlalchemy) +W: no module named sqlalchemy.MetaData (top-level import by openlp.core.lib.db) +W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.core.ui.servicemanager) +W: no module named openlp.plugins.custom.forms.EditCustomForm (top-level import by openlp.plugins.custom.customplugin) +W: no module named org (delayed import by xml.sax) +W: no module named openlp.core.lib.SpellTextEdit (top-level import by openlp.plugins.songs.forms.editversedialog) +W: no module named sqlalchemy.orm.EXT_CONTINUE (top-level import by sqlalchemy.orm.scoping) +W: no module named openlp.core.lib.build_lyrics_outline_css (top-level import by openlp.core.lib.renderer) +W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.forms.editverseform) +W: no module named com (conditional import by openlp.plugins.songs.lib.oooimport) +W: no module named openlp.core.lib.str_to_bool (top-level import by openlp.core.lib.theme) +W: no module named sqlalchemy.sql.literal (top-level import by sqlalchemy) +W: no module named termios (top-level import by getpass) +W: no module named openlp.core.lib.build_lyrics_format_css (top-level import by openlp.core.lib.renderer) +W: no module named ctypes.byref (delayed import by urllib) +W: no module named openlp.plugins.custom.lib.CustomTab (top-level import by openlp.plugins.custom.customplugin) +W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named openlp.plugins.bibles.lib.parse_reference (top-level import by openlp.plugins.bibles.lib.manager) +W: no module named java (delayed import by platform) +W: no module named openlp.core.ui.ServiceItemEditForm (top-level import by openlp.core.ui.servicemanager) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.customplugin) +W: no module named openlp.core.lib.ThemeLevel (top-level import by openlp.core.lib.rendermanager) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.db) +W: no module named _xmlrpclib (top-level import by xmlrpclib) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.presentations.lib.mediaitem) +W: no module named openlp.plugins.media.lib.MediaMediaItem (top-level import by openlp.plugins.media.mediaplugin) +W: no module named openlp.plugins.custom.lib.CustomXMLBuilder (top-level import by openlp.plugins.custom.forms.editcustomform) +W: no module named rourl2path (conditional import by urllib) +W: no module named pwd (delayed import by webbrowser) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.themestab) +W: no module named PyQt4._qt (top-level import by PyQt4.QtWebKit) +W: no module named sqlalchemy.orm.class_mapper (delayed, conditional import by sqlalchemy.orm.interfaces) +W: no module named PyQt4._qt (top-level import by PyQt4.phonon) +W: no module named openlp.core.ui.HideMode (top-level import by openlp.plugins.presentations.lib.messagelistener) +W: no module named openlp.plugins.songusage.forms.SongUsageDeleteForm (top-level import by openlp.plugins.songusage.songusageplugin) +W: no module named openlp.core.lib.context_menu_separator (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.media.lib.mediaitem) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.plugindialog) +W: no module named fcntl (conditional import by subprocess) +W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.bibles.lib.mediaitem) +W: no module named openlp.core.lib.PluginStatus (top-level import by openlp.core.lib.pluginmanager) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.forms.editsongform) +W: no module named openlp.core.ui.ScreenList (top-level import by __main__) +W: no module named sqlalchemy.or_ (top-level import by openlp.plugins.bibles.lib.db) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.editsongform) +W: no module named openlp.plugins.songs.forms.ImportWizardForm (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.ui.ThemeManager (top-level import by openlp.core.ui.mainwindow) +W: no module named pyodbc (delayed, conditional import by sqlalchemy.databases.mssql) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.ui.servicemanager) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.lib.mediamanageritem) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.biblestab) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.songusageplugin) +W: no module named multiprocessing.active_children (top-level import by multiprocessing.managers) +W: no module named openlp.plugins.songs.forms.EditSongForm (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named email.Generator (delayed import by email.message) +W: no module named mx (delayed import by sqlalchemy.databases.mxODBC) +W: no module named sqlalchemy.sql.or_ (top-level import by sqlalchemy) +W: no module named sqlalchemy.Table (top-level import by openlp.plugins.custom.lib.db) +W: no module named sqlalchemy.Table (top-level import by sqlalchemy.databases.sybase) +W: no module named openlp.core.lib.get_text_file_string (top-level import by openlp.core.ui.thememanager) +W: no module named sqlalchemy.orm.object_session (top-level import by sqlalchemy.orm.scoping) +W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.bibles.lib.mediaitem) +W: no module named sqlalchemy.Table (top-level import by sqlalchemy.databases.mssql) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.ui.mainwindow) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.forms.bibleimportwizard) +W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.lib.renderer) +W: no module named pymssql (delayed import by sqlalchemy.databases.mssql) +W: no module named sqlalchemy.orm.sessionmaker (top-level import by openlp.plugins.songs.lib.olpimport) +W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.lib.expand_tags (top-level import by openlp.core.lib.serviceitem) +W: no module named gestalt (delayed import by platform) +W: no module named enchant.checker.SpellChecker (top-level import by enchant.checker.CmdLineChecker) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.themestab) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.olp1import) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.messagelistener) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.interfaces) +W: no module named sqlalchemy.orm.object_mapper (top-level import by sqlalchemy.orm.query) +W: no module named sqlalchemy.sql.distinct (top-level import by sqlalchemy) +W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.plugins.media.lib.mediaitem) +W: no module named sqlalchemy.sql.extract (top-level import by sqlalchemy) +W: no module named sqlalchemy.Column (top-level import by openlp.plugins.bibles.lib.db) +W: no module named psycopg2 (delayed import by sqlalchemy.databases.postgres) +W: no module named enchant.checker.SpellChecker (delayed import by enchant.checker.GtkSpellCheckerDialog) +W: no module named clr (conditional import by adodbapi.adodbapi) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named openlp.plugins.custom.lib.CustomXMLParser (top-level import by openlp.plugins.custom.forms.editcustomform) +W: no module named openlp.core.theme.Theme (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.custom.forms.editcustomform) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.lib.settingsmanager) +W: no module named openlp.core.lib.Receiver (top-level import by __main__) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.bibles.lib.manager) +W: no module named org (top-level import by pickle) +W: no module named enchant.DictNotFoundError (top-level import by openlp.core.lib.spelltextedit) +W: no module named sqlalchemy.sql.except_all (top-level import by sqlalchemy) +W: no module named openlp.plugins.presentations.lib.PresentationTab (top-level import by openlp.plugins.presentations.presentationplugin) +W: no module named sqlalchemy.sql.cast (top-level import by sqlalchemy) +W: no module named sqlalchemy.orm.relation (top-level import by openlp.plugins.songs.lib.db) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.settingsdialog) +W: no module named openlp.core.utils.LanguageManager (top-level import by openlp.core.ui.mainwindow) +W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.media.lib.mediaitem) +W: no module named sqlalchemy.sql.intersect (top-level import by sqlalchemy) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.songimport) +W: no module named sqlalchemy.orm.class_mapper (top-level import by sqlalchemy.orm.scoping) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.util) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.opensongimport) +W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.bibles.lib.biblestab) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.aboutform) +W: no module named openlp.plugins.custom.lib.CustomMediaItem (top-level import by openlp.plugins.custom.customplugin) +W: no module named sqlalchemy.orm.scoped_session (top-level import by openlp.plugins.songs.lib.olpimport) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.amendthemeform) +W: no module named sqlalchemy.engine.engine_from_config (top-level import by sqlalchemy) +W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.core.ui.themestab) +W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.ui.servicemanager) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.maindisplay) +W: no module named openlp.core.lib.PluginStatus (top-level import by openlp.core.ui.pluginform) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.http) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.remotes.lib.httpserver) +W: no module named sqlalchemy.Table (top-level import by openlp.plugins.songs.lib.db) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.utils) +W: no module named openlp.core.lib.RenderManager (top-level import by openlp.core.ui.mainwindow) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.alerts.alertsplugin) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.lib.plugin) +W: no module named sqlalchemy.ForeignKey (top-level import by openlp.plugins.bibles.lib.db) +W: no module named openlp.plugins.songs.lib.SongMediaItem (top-level import by openlp.plugins.songs.songsplugin) +W: no module named sqlalchemy.Index (top-level import by openlp.plugins.songs.lib.db) +W: no module named multiprocessing.TimeoutError (top-level import by multiprocessing.pool) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songusage.forms.songusagedetaildialog) +W: no module named enchant.DictWithPWL (delayed import by enchant.checker.tests) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.songstab) +W: no module named openlp.core.ui.AdvancedTab (top-level import by openlp.core.ui.settingsform) +W: no module named MySQLdb (delayed import by sqlalchemy.databases.mysql) +W: no module named openlp.plugins.presentations.lib.PresentationMediaItem (top-level import by openlp.plugins.presentations.presentationplugin) +W: no module named openlp.plugins.alerts.forms.AlertForm (top-level import by openlp.plugins.alerts.alertsplugin) +W: no module named ctypes.c_int (delayed import by urllib) +W: no module named xml.dom.XML_NAMESPACE (delayed import by xml.dom.pulldom) +W: no module named ctypes.c_void_p (delayed import by urllib) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.lib.osis) +W: no module named sqlalchemy.create_engine (top-level import by openlp.core.lib.db) +W: no module named win32com.client._get_good_object_ (top-level import by win32com.client.util) +W: no module named openlp.core.ui.MainDisplay (top-level import by openlp.core.ui.slidecontroller) +W: no module named openlp.core.lib.resize_image (top-level import by openlp.plugins.presentations.lib.presentationcontroller) +W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.remotes.lib.remotetab) +W: no module named openlp.core.ui.MediaDockManager (top-level import by openlp.core.ui.mainwindow) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.session) +W: no module named sqlalchemy.Column (top-level import by sqlalchemy.databases.mssql) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.editversedialog) +W: no module named multiprocessing.Process (top-level import by multiprocessing.managers) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.presentationcontroller) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.mediaitem) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.forms.editcustomdialog) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.lib.alertsmanager) +W: no module named sgmlop (top-level import by xmlrpclib) +W: no module named MacOS (conditional import by py_compile) +W: no module named multiprocessing.cpu_count (top-level import by multiprocessing.dummy) +W: no module named _dummy_threading (top-level import by dummy_threading) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.mainwindow) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songmaintenanceform) +W: no module named openlp.plugins.presentations.lib.PresentationController (top-level import by openlp.plugins.presentations.presentationplugin) +W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.lib.mediamanageritem) +W: no module named sqlalchemy.sql.union_all (top-level import by sqlalchemy) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.opensong) +W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.bibles.lib.mediaitem) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.osis) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.settingsform) +W: no module named enchant.tokenize.get_tokenizer (top-level import by enchant.checker) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.lib.manager) +W: no module named org (top-level import by copy) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.ui.servicemanager) +W: no module named sqlalchemy.MetaData (top-level import by openlp.plugins.songs.lib.olpimport) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.songmaintenancedialog) +W: no module named sqlalchemy.sql.select (top-level import by sqlalchemy.databases.mssql) +W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.bibles.forms.importwizardform) +W: no module named multiprocessing.current_process (top-level import by multiprocessing.connection) +W: no module named sqlalchemy.orm.sessionmaker (top-level import by openlp.core.lib.db) +W: no module named sqlalchemy.sql.desc (top-level import by sqlalchemy) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedeletedialog) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.mediaitem) +W: no module named ctypes.cdll (delayed import by urllib) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.media.mediaplugin) +W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.presentations.lib.presentationtab) +W: no module named MySQLdb (delayed, conditional import by sqlalchemy.databases.mysql) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.presentations.lib.mediaitem) +W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.media.lib.mediaitem) +W: no module named sqlalchemy.orm.object_session (top-level import by sqlalchemy.orm.dynamic) +W: no module named sqlalchemy.sql.modifier (top-level import by sqlalchemy) +W: no module named _xmlplus (top-level import by xml) +W: no module named sqlalchemy.Column (top-level import by openlp.plugins.songusage.lib.db) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.advancedtab) +W: no module named sqlalchemy.sql.and_ (top-level import by sqlalchemy) +W: no module named sqlalchemy.MetaData (top-level import by sqlalchemy.databases.mssql) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.dependency) +W: no module named openlp.core.lib.ThemeLevel (top-level import by openlp.core.ui.themestab) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.presentationtab) +W: no module named openlp.core.utils.get_images_filter (top-level import by openlp.core.ui.amendthemeform) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.presentations.presentationplugin) +W: no module named openlp.plugins.presentations.lib.MessageListener (top-level import by openlp.plugins.presentations.lib.mediaitem) +W: no module named openlp.plugins.bibles.forms.ImportWizardForm (top-level import by openlp.plugins.bibles.lib.mediaitem) +W: no module named openlp.core.utils.AppLocation (top-level import by __main__) +W: no module named sqlalchemy.ForeignKey (top-level import by openlp.plugins.songs.lib.db) +W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.ui.thememanager) +W: no module named ctypes.cdll (conditional import by openlp.plugins.presentations.lib.pptviewcontroller) +W: no module named pwd (delayed import by getpass) +W: no module named sqlalchemy.sql.and_ (top-level import by openlp.plugins.songusage.forms.songusagedetailform) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.amendthemedialog) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.songimportwizard) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.serviceitemeditdialog) +W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.ui.maindisplay) +W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.custom.lib.mediaitem) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.topicsdialog) +W: no module named PyQt4._qt (top-level import by PyQt4.QtGui) +W: no module named sqlalchemy.sql.update (top-level import by sqlalchemy) +W: no module named multiprocessing.current_process (delayed, conditional import by logging) +W: no module named multiprocessing.Pool (top-level import by multiprocessing.managers) +W: no module named sqlalchemy.create_engine (delayed, conditional import by sqlalchemy.schema) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.forms.importwizardform) +W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.lib.mediamanageritem) +W: no module named posix (conditional import by os) +W: no module named sqlalchemy.sql.bindparam (top-level import by sqlalchemy) +W: no module named xml.dom.DOMImplementation (top-level import by xml.dom.domreg) +W: no module named openlp.core.utils.add_actions (top-level import by openlp.core.ui.mainwindow) +W: no module named sqlalchemy.create_engine (top-level import by openlp.plugins.songs.lib.olpimport) +W: no module named multiprocessing.cpu_count (top-level import by multiprocessing.pool) +W: no module named multiprocessing.AuthenticationError (top-level import by multiprocessing.connection) +W: no module named openlp.core.ui.ThemesTab (top-level import by openlp.core.ui.settingsform) +W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.media.lib.mediaitem) +W: no module named sqlalchemy.orm.class_mapper (top-level import by openlp.plugins.bibles.lib.db) +W: no module named sqlalchemy.String (top-level import by sqlalchemy.databases.sybase) +W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.ui.servicemanager) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named pwd (delayed, conditional import by posixpath) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.strategies) +W: no module named mx (top-level import by adodbapi.adodbapi) +W: no module named sqlalchemy.sql.alias (top-level import by sqlalchemy) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.authorsdialog) +W: no module named sqlalchemy.Table (top-level import by openlp.plugins.alerts.lib.db) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.mediaitem) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.images.imageplugin) +W: no module named sqlalchemy.orm.mapperlib (delayed import by sqlalchemy.orm.util) +W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.lib.rendermanager) +W: no module named openlp.core.lib.OpenLPDockWidget (top-level import by openlp.core.ui.mainwindow) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songimportwizard) +W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.songusage.songusageplugin) +W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.presentations.lib.presentationcontroller) +W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.lib.spelltextedit) +W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.thememanager) +W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.presentations.lib.mediaitem) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.pluginform) +W: no module named enchant.checker.SpellChecker (delayed import by enchant.checker.wxSpellCheckerDialog) +W: no module named sqlalchemy.DefaultClause (top-level import by sqlalchemy.databases.sqlite) +W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.ui.servicemanager) +W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.core.ui.slidecontroller) +W: no module named openlp.core.utils.get_images_filter (top-level import by openlp.plugins.images.lib.mediaitem) +W: no module named pyodbc (delayed import by sqlalchemy.databases.mssql) +W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.ui.slidecontroller) +W: no module named System (conditional import by adodbapi.adodbapi) +W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.custom.lib.customtab) +W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.csvbible) +W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.generaltab) +W: no module named openlp.core.lib.ThemeLevel (top-level import by openlp.core.ui.servicemanager) +W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.scoping) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.forms.alertform) +W: no module named mypyodbc (delayed import by sqlalchemy.databases.sybase) +W: no module named sqlalchemy.sql.intersect_all (top-level import by sqlalchemy) +W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.presentations.lib.mediaitem) +W: __all__ is built strangely at line 0 - dummy_threading (C:\Python26\lib\dummy_threading.pyc) +W: delayed exec statement detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) +W: delayed eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) +W: delayed eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) +W: delayed __import__ hack detected at line 0 - optparse (C:\Python26\lib\optparse.pyc) +W: delayed conditional __import__ hack detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc) +W: delayed conditional exec statement detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc) +W: delayed conditional __import__ hack detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc) +W: delayed __import__ hack detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc) +W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) +W: delayed exec statement detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) +W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) +W: __all__ is built strangely at line 0 - sqlalchemy.orm.interfaces (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\interfaces.pyc) +W: __all__ is built strangely at line 0 - tokenize (C:\Python26\lib\tokenize.pyc) +W: __all__ is built strangely at line 0 - sqlalchemy.engine (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\engine\__init__.pyc) +W: delayed __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc) +W: delayed __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc) +W: top-level conditional exec statement detected at line 0 - sqlalchemy.sql.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\sql\util.pyc) +W: top-level conditional exec statement detected at line 0 - sqlalchemy.sql.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\sql\util.pyc) +W: delayed conditional __import__ hack detected at line 0 - openlp.core.lib.pluginmanager (c:\Documents and Settings\raoul\My Documents\My Projects\openlp\movements\openlp\core\lib\pluginmanager.pyc) +W: delayed conditional exec statement detected at line 0 - multiprocessing.sharedctypes (C:\Python26\lib\multiprocessing\sharedctypes.pyc) +W: delayed __import__ hack detected at line 0 - encodings (C:\Python26\lib\encodings\__init__.pyc) +W: __all__ is built strangely at line 0 - sqlalchemy.databases.mysql (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\databases\mysql.pyc) +W: delayed exec statement detected at line 0 - sqlalchemy.orm.attributes (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\attributes.pyc) +W: delayed conditional __import__ hack detected at line 0 - openlp.plugins.presentations.presentationplugin (c:\Documents and Settings\raoul\My Documents\My Projects\openlp\movements\openlp\plugins\presentations\presentationplugin.pyc) +W: delayed __import__ hack detected at line 0 - enchant.tokenize (C:\Python26\lib\site-packages\enchant\tokenize\__init__.pyc) +W: __all__ is built strangely at line 0 - multiprocessing (C:\Python26\lib\multiprocessing\__init__.pyc) +W: __all__ is built strangely at line 0 - dis (C:\Python26\lib\dis.pyc) +W: __all__ is built strangely at line 0 - sqlalchemy.databases (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\databases\__init__.pyc) +W: delayed __import__ hack detected at line 0 - win32com.server.policy (C:\Python26\lib\site-packages\win32com\server\policy.pyc) +W: __all__ is built strangely at line 0 - sqlalchemy.orm.mapper (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\mapper.pyc) +W: top-level exec statement detected at line 0 - hashlib (C:\Python26\lib\hashlib.pyc) +W: top-level conditional exec statement detected at line 0 - hashlib (C:\Python26\lib\hashlib.pyc) +W: delayed conditional eval hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc) +W: delayed conditional __import__ hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc) +W: delayed exec statement detected at line 0 - cgi (C:\Python26\lib\cgi.pyc) +W: delayed __import__ hack detected at line 0 - email (C:\Python26\lib\email\__init__.pyc) +W: __all__ is built strangely at line 0 - sqlalchemy.orm (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\__init__.pyc) +W: delayed __import__ hack detected at line 0 - ctypes (C:\Python26\lib\ctypes\__init__.pyc) +W: delayed __import__ hack detected at line 0 - ctypes (C:\Python26\lib\ctypes\__init__.pyc) +W: delayed conditional __import__ hack detected at line 0 - xml.dom.domreg (C:\Python26\lib\xml\dom\domreg.pyc) +W: delayed exec statement detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) +W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) +W: delayed eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) +W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) +W: delayed eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) +W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc) +W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc) +W: delayed conditional __import__ hack detected at line 0 - pkgutil (C:\Python26\lib\pkgutil.pyc) +W: delayed conditional __import__ hack detected at line 0 - pkgutil (C:\Python26\lib\pkgutil.pyc) +W: __all__ is built strangely at line 0 - sqlalchemy.orm.properties (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\properties.pyc) +W: delayed conditional exec statement detected at line 0 - iu (c:\Documents and Settings\raoul\My Documents\My Projects\pyinstaller\iu.pyc) +W: delayed conditional exec statement detected at line 0 - iu (c:\Documents and Settings\raoul\My Documents\My Projects\pyinstaller\iu.pyc) +W: __all__ is built strangely at line 0 - sqlalchemy.sql (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\sql\__init__.pyc) +W: __all__ is built strangely at line 0 - collections (C:\Python26\lib\collections.pyc) +W: delayed exec statement detected at line 0 - collections (C:\Python26\lib\collections.pyc) +W: delayed __import__ hack detected at line 0 - sqlalchemy.engine.url (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\engine\url.pyc) +W: delayed exec statement detected at line 0 - multiprocessing.managers (C:\Python26\lib\multiprocessing\managers.pyc) +W: delayed exec statement detected at line 0 - socket (C:\Python26\lib\socket.pyc) +W: delayed conditional __import__ hack detected at line 0 - win32com.client.gencache (C:\Python26\lib\site-packages\win32com\client\gencache.pyc) +W: delayed __import__ hack detected at line 0 - win32com.client.gencache (C:\Python26\lib\site-packages\win32com\client\gencache.pyc) +W: delayed eval hack detected at line 0 - os (C:\Python26\lib\os.pyc) +W: __all__ is built strangely at line 0 - __future__ (C:\Python26\lib\__future__.pyc) +W: delayed __import__ hack detected at line 0 - win32com.client.makepy (C:\Python26\lib\site-packages\win32com\client\makepy.pyc) +W: delayed exec statement detected at line 0 - win32com.client.dynamic (C:\Python26\lib\site-packages\win32com\client\dynamic.pyc) +W: __all__ is built strangely at line 0 - sqlalchemy (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\__init__.pyc) +W: delayed __import__ hack detected at line 0 - xml.sax (C:\Python26\lib\xml\sax\__init__.pyc) +W: delayed eval hack detected at line 0 - gettext (C:\Python26\lib\gettext.pyc) +W: delayed eval hack detected at line 0 - sqlalchemy.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\util.pyc) +W: delayed exec statement detected at line 0 - sqlalchemy.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\util.pyc) diff --git a/scripts/translation_utils.py b/scripts/translation_utils.py index 424e977bd..495732085 100755 --- a/scripts/translation_utils.py +++ b/scripts/translation_utils.py @@ -63,6 +63,7 @@ IGNORED_PATHS = [u'scripts'] IGNORED_FILES = [u'setup.py'] verbose_mode = False +quiet_mode = False class Command(object): """ @@ -128,6 +129,20 @@ class CommandStack(object): results.append(str((item[u'command'], ))) return u'[%s]' % u', '.join(results) +def print_quiet(text, linefeed=True): + """ + This method checks to see if we are in quiet mode, and if not prints + ``text`` out. + + ``text`` + The text to print. + """ + global quiet_mode + if not quiet_mode: + if linefeed: + print text + else: + print text, def print_verbose(text): """ @@ -137,8 +152,8 @@ def print_verbose(text): ``text`` The text to print. """ - global verbose_mode - if verbose_mode: + global verbose_mode, quiet_mode + if not quiet_mode and verbose_mode: print u' %s' % text def run(command): @@ -155,7 +170,6 @@ def run(command): print_verbose(u'ReadyRead: %s' % QtCore.QString(process.readAll())) print_verbose(u'Error(s):\n%s' % process.readAllStandardError()) print_verbose(u'Output:\n%s' % process.readAllStandardOutput()) - print u' Done.' def update_export_at_pootle(source_filename): """ @@ -170,7 +184,7 @@ def update_export_at_pootle(source_filename): print_verbose(u'Accessing: %s' % (REVIEW_URL)) page = urllib.urlopen(REVIEW_URL) page.close() - + def download_file(source_filename, dest_filename): """ @@ -194,7 +208,7 @@ def download_translations(): """ This method downloads the translation files from the Pootle server. """ - print 'Download translation files from Pootle' + print_quiet(u'Download translation files from Pootle') page = urllib.urlopen(SERVER_URL) soup = BeautifulSoup(page) languages = soup.findAll(text=re.compile(r'.*\.ts')) @@ -205,14 +219,14 @@ def download_translations(): language_file) print_verbose(u'Get Translation File: %s' % filename) download_file(language_file, filename) - print u' Done.' + print_quiet(u' Done.') def prepare_project(): """ This method creates the project file needed to update the translation files and compile them into .qm files. """ - print u'Generating the openlp.pro file' + print_quiet(u'Generating the openlp.pro file') lines = [] start_dir = os.path.abspath(u'..') start_dir = start_dir + os.sep @@ -251,10 +265,10 @@ def prepare_project(): file = open(os.path.join(start_dir, u'openlp.pro'), u'w') file.write(u'\n'.join(lines).encode('utf8')) file.close() - print u' Done.' + print_quiet(u' Done.') def update_translations(): - print u'Update the translation files' + print_quiet(u'Update the translation files') if not os.path.exists(os.path.join(os.path.abspath(u'..'), u'openlp.pro')): print u'You have no generated a project file yet, please run this ' + \ u'script with the -p option.' @@ -265,7 +279,7 @@ def update_translations(): os.chdir(os.path.abspath(u'scripts')) def generate_binaries(): - print u'Generate the related *.qm files' + print_quiet(u'Generate the related *.qm files') if not os.path.exists(os.path.join(os.path.abspath(u'..'), u'openlp.pro')): print u'You have not generated a project file yet, please run this ' + \ u'script with the -p option. It is also recommended that you ' + \ @@ -283,8 +297,9 @@ def generate_binaries(): src_list = os.listdir(src_path) for file in src_list: if re.search('.qm$', file): - copy(os.path.join(src_path, u'%s' % file), + copy(os.path.join(src_path, u'%s' % file), os.path.join(dest_path, u'%s' % file)) + print_quiet(u' Done.') def create_translation(language): @@ -294,17 +309,17 @@ def create_translation(language): ``language`` The language file to create. """ - print "Create new Translation File" + print_quiet(u'Create new Translation File') if not language.endswith(u'.ts'): language += u'.ts' filename = os.path.join(os.path.abspath(u'..'), u'resources', u'i18n', language) download_file(u'en.ts', filename) - print u' ** Please Note **' - print u' In order to get this file into OpenLP and onto the Pootle ' + \ - u'translation server you will need to subscribe to the OpenLP' + \ - u'Translators mailing list, and request that your language file ' + \ - u'be added to the project.' - print u' Done' + print_quiet(u' ** Please Note **') + print_quiet(u' In order to get this file into OpenLP and onto the ' + u'Pootle translation server you will need to subscribe to the ' + u'OpenLP Translators mailing list, and request that your language ' + u'file be added to the project.') + print_quiet(u' Done.') def process_stack(command_stack): """ @@ -315,9 +330,9 @@ def process_stack(command_stack): The command stack to process. """ if command_stack: - print u'Processing %d commands...' % len(command_stack) + print_quiet(u'Processing %d commands...' % len(command_stack)) for command in command_stack: - print u'%d.' % (command_stack.current_index), + print_quiet(u'%d.' % (command_stack.current_index), False) if command == Command.Download: download_translations() elif command == Command.Prepare: @@ -329,12 +344,12 @@ def process_stack(command_stack): elif command == Command.Create: arguments = command_stack.arguments() create_translation(*arguments) - print u'Finished processing commands.' + print_quiet(u'Finished processing commands.') else: - print u'No commands to process.' + print_quiet(u'No commands to process.') def main(): - global verbose_mode + global verbose_mode, quiet_mode # Set up command line options. usage = u'%prog [options]\nOptions are parsed in the order they are ' + \ u'listed below. If no options are given, "-dpug" will be used.\n\n' + \ @@ -352,6 +367,8 @@ def main(): help='compile .ts files into .qm files') parser.add_option('-v', '--verbose', dest='verbose', action='store_true', help='show extra information while processing translations') + parser.add_option('-q', '--quiet', dest='quiet', action='store_true', + help='suppress all output other than errors') (options, args) = parser.parse_args() # Create and populate the command stack command_stack = CommandStack() @@ -366,6 +383,7 @@ def main(): if options.generate: command_stack.append(Command.Generate) verbose_mode = options.verbose + quiet_mode = options.quiet if not command_stack: command_stack.append(Command.Download) command_stack.append(Command.Prepare) diff --git a/scripts/windows-builder.py b/scripts/windows-builder.py index d34b77249..1900fab99 100644 --- a/scripts/windows-builder.py +++ b/scripts/windows-builder.py @@ -87,20 +87,33 @@ windows-builder.py """ import os +import sys from shutil import copy from subprocess import Popen, PIPE +python_exe = sys.executable +innosetup_exe = os.path.join(os.getenv(u'PROGRAMFILES'), 'Inno Setup 5', + u'ISCC.exe') + +# Base paths script_path = os.path.split(os.path.abspath(__file__))[0] branch_path = os.path.abspath(os.path.join(script_path, u'..')) +site_packages = os.path.join(os.path.split(python_exe)[0], u'Lib', + u'site-packages') + +# Files and executables +pyi_build = os.path.abspath(os.path.join(branch_path, u'..', u'..', + u'pyinstaller', u'Build.py')) +lrelease_exe = os.path.join(site_packages, u'PyQt4', u'bin', u'lrelease.exe') +i18n_utils = os.path.join(script_path, u'translation_utils.py') + +# Paths source_path = os.path.join(branch_path, u'openlp') i18n_path = os.path.join(branch_path, u'resources', u'i18n') +winres_path = os.path.join(branch_path, u'resources', u'windows') build_path = os.path.join(branch_path, u'build', u'pyi.win32', u'OpenLP') dist_path = os.path.join(branch_path, u'dist', u'OpenLP') -pyinstaller_path = os.path.abspath(os.path.join(branch_path, u'..', u'..', u'pyinstaller')) -innosetup_path = os.path.join(os.getenv(u'PROGRAMFILES'), 'Inno Setup 5') -iss_path = os.path.join(branch_path, u'resources', u'innosetup') -lrelease_path = u'C:\\Python26\\Lib\\site-packages\\PyQt4\\bin\\lrelease.exe' -enchant_path = u'C:\\Python26\\Lib\\site-packages\\enchant' +enchant_path = os.path.join(site_packages, u'enchant') def clean_build_directories(): #if not os.path.exists(build_path) @@ -117,11 +130,13 @@ def clean_build_directories(): def run_pyinstaller(): print u'Running PyInstaller...' os.chdir(branch_path) - pyinstaller = Popen((u'python', os.path.join(pyinstaller_path, u'Build.py'), - u'-y', u'OpenLP.spec')) + pyinstaller = Popen((python_exe, pyi_build, u'-y', u'-o', build_path, + os.path.join(winres_path, u'OpenLP.spec')), stdout=PIPE) + output, error = pyinstaller.communicate() code = pyinstaller.wait() if code != 0: - raise Exception(u'Error running PyInstaller Build.py') + print output + raise Exception(u'Error running PyInstaller') def write_version_file(): print u'Writing version file...' @@ -155,7 +170,7 @@ def copy_enchant(): for root, dirs, files in os.walk(source): for filename in files: if not filename.endswith(u'.pyc') and not filename.endswith(u'.pyo'): - dest_path = os.path.join(dest, root[len(source)+1:]) + dest_path = os.path.join(dest, root[len(source) + 1:]) if not os.path.exists(dest_path): os.makedirs(dest_path) copy(os.path.join(root, filename), @@ -176,16 +191,18 @@ def copy_plugins(): def copy_windows_files(): print u'Copying extra files for Windows...' - copy(os.path.join(iss_path, u'OpenLP.ico'), os.path.join(dist_path, u'OpenLP.ico')) - copy(os.path.join(iss_path, u'LICENSE.txt'), os.path.join(dist_path, u'LICENSE.txt')) + copy(os.path.join(winres_path, u'OpenLP.ico'), + os.path.join(dist_path, u'OpenLP.ico')) + copy(os.path.join(winres_path, u'LICENSE.txt'), + os.path.join(dist_path, u'LICENSE.txt')) def update_translations(): print u'Updating translations...' os.chdir(script_path) - translation_utils = Popen(u'python translation_utils.py -dpu') + translation_utils = Popen((python_exe, i18n_utils, u'-qdpu')) code = translation_utils.wait() if code != 0: - print u'Error running translation_utils.py' + raise Exception(u'Error running translation_utils.py') def compile_translations(): print u'Compiling translations...' @@ -197,19 +214,17 @@ def compile_translations(): source_path = os.path.join(i18n_path, file) dest_path = os.path.join(dist_path, u'i18n', file.replace(u'.ts', u'.qm')) - lconvert = Popen(u'"%s" "%s" -qm "%s"' % (lrelease_path, \ - source_path, dest_path)) + lconvert = Popen((lrelease_exe, u'-compress', u'-silent', + source_path, u'-qm', dest_path)) code = lconvert.wait() if code != 0: - print 'Error running lconvert on %s' % source_path + raise Exception('Error running lconvert on %s' % source_path) def run_innosetup(): print u'Running Inno Setup...' - os.chdir(iss_path) - run_command = u'"%s" "%s"' % (os.path.join(innosetup_path, u'ISCC.exe'), - os.path.join(iss_path, u'OpenLP-2.0.iss')) - print run_command - innosetup = Popen(run_command) + os.chdir(winres_path) + innosetup = Popen((innosetup_exe, + os.path.join(winres_path, u'OpenLP-2.0.iss'), u'/q')) code = innosetup.wait() if code != 0: raise Exception(u'Error running Inno Setup') @@ -221,9 +236,9 @@ def main(): print "Branch path:", branch_path print "Source path:", source_path print "\"dist\" path:", dist_path - print "PyInstaller path:", pyinstaller_path + print "PyInstaller:", pyi_build print "Inno Setup path:", innosetup_path - print "ISS file path:", iss_path + print "Windows resources:", winres_path #clean_build_directories() run_pyinstaller() write_version_file()