diff --git a/icons/wix-banner.bmp b/icons/wix-banner.bmp new file mode 100644 index 0000000000..e3c7015ee8 Binary files /dev/null and b/icons/wix-banner.bmp differ diff --git a/icons/wix-dialog.bmp b/icons/wix-dialog.bmp new file mode 100644 index 0000000000..0d98336ace Binary files /dev/null and b/icons/wix-dialog.bmp differ diff --git a/setup/commands.py b/setup/commands.py index 4b6e9dc841..ba870072d6 100644 --- a/setup/commands.py +++ b/setup/commands.py @@ -19,7 +19,7 @@ __all__ = [ 'upload_user_manual', 'upload_installers', 'upload_demo', 'linux32', 'linux64', 'linux', 'linux_freeze', 'osx32_freeze', 'osx32', 'osx', 'rsync', - 'win32_freeze', 'win32', 'win', 'win2', 'win32_freeze2', + 'win32_freeze', 'win32', 'win', 'stage1', 'stage2', 'stage3', 'publish' ] @@ -81,14 +81,11 @@ osx32 = OSX32() from setup.installer.osx.freeze import OSX32_Freeze osx32_freeze = OSX32_Freeze() -from setup.installer.windows import Win, Win32, Win2 +from setup.installer.windows import Win, Win32 win = Win() win32 = Win32() -win2 = Win2() from setup.installer.windows.freeze import Win32Freeze win32_freeze = Win32Freeze() -from setup.installer.windows.freeze2 import Win32Freeze2 -win32_freeze2 = Win32Freeze2() from setup.pypi import PyPIRegister, PyPIUpload pypi_register = PyPIRegister() diff --git a/setup/installer/windows/__init__.py b/setup/installer/windows/__init__.py index ad0d2460c8..7fdc3ff5a8 100644 --- a/setup/installer/windows/__init__.py +++ b/setup/installer/windows/__init__.py @@ -10,7 +10,6 @@ import os, shutil, subprocess from setup import Command, __appname__ from setup.installer import VMInstaller -from setup.installer.windows import build_installer class Win(Command): @@ -30,32 +29,10 @@ class Win32(VMInstaller): VM_NAME = 'xp_build' VM = '/vmware/bin/%s'%VM_NAME FREEZE_COMMAND = 'win32_freeze' - SHUTDOWN_CMD = ['shutdown', '-s', '-t', '0', '-c', - 'Shutdown called by calibre setup'] - - def download_installer(self): - installer = self.installer() - if os.path.exists('build/py2exe'): - shutil.rmtree('build/py2exe') - subprocess.check_call(('scp', '-rp', 'xp_build:build/%s/build/py2exe'%__appname__, - 'build')) - if not os.path.exists('build/py2exe'): - self.warn('Failed to run py2exe') - raise SystemExit(1) - self.run_windows_install_jammer(installer) - - def run_windows_install_jammer(self, installer): - build_installer.run_install_jammer( - installer_name=os.path.basename(installer)) - if not os.path.exists(installer): - self.warn('Failed to run installjammer') - raise SystemExit(1) - -class Win2(Win32): - - FREEZE_COMMAND = 'win32_freeze2' FREEZE_TEMPLATE = 'python -OO setup.py {freeze_command} --no-ice' INSTALLER_EXT = 'msi' + SHUTDOWN_CMD = ['shutdown.exe', '-s', '-c', + 'Shutdown called by calibre setup'] def download_installer(self): installer = self.installer() @@ -67,3 +44,4 @@ class Win2(Win32): self.warn('Failed to freeze') raise SystemExit(1) + diff --git a/setup/installer/windows/build_installer.py b/setup/installer/windows/build_installer.py deleted file mode 100644 index a347be40f7..0000000000 --- a/setup/installer/windows/build_installer.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python -__license__ = 'GPL v3' -__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' -__docformat__ = 'restructuredtext en' - -''' -''' -import sys, time, subprocess, os, re -from setup import SRC, __appname__, __version__ - -INSTALLJAMMER = '/usr/local/installjammer/installjammer' - -sv = re.sub(r'[a-z]\d+', '', __version__) - -cmdline = [ - INSTALLJAMMER, - '--build-dir', '/tmp/calibre-installjammer', - '-DAppName', __appname__, - '-DShortAppName', __appname__, - '-DApplicationURL', 'http://%s.kovidgoyal.net'%__appname__, - '-DCopyright', time.strftime('%Y Kovid Goyal'), - '-DPackageDescription', '%s is an e-book library manager. It can view, convert and catalog e-books in most of the major e-book formats. It can also talk to e-book reader devices. It can go out to the internet and fetch metadata for your books. It can download newspapers and convert them into e-books for convenient reading.'%__appname__, - '-DPackageSummary', '%s: E-book library management'%__appname__, - '-DVersion', __version__, - '-DInstallVersion', sv + '.0', - '-DLicense', open(os.path.join(os.path.dirname(SRC), 'LICENSE'), 'rb').read().replace('\n', '\r\n'), - '--output-dir', os.path.join(os.path.dirname(SRC), 'dist'), - '--platform', 'Windows', - '--verbose' -] - -def run_install_jammer(installer_name='<%AppName%>-<%Version%><%Ext%>', build_for_release=True): - global cmdline - mpi = os.path.abspath(os.path.join(os.path.dirname(__file__), 'calibre', 'calibre.mpi')) - cmdline.extend(['-DWindows,Executable', installer_name]) - compression = 'zlib' - if build_for_release: - cmdline += ['--build-for-release'] - compression = 'lzma (solid)' - cmdline += ['-DCompressionMethod', compression] - cmdline += ['--build', mpi] - #print 'Running installjammer with cmdline:' - #print cmdline - subprocess.check_call(cmdline) - -def main(args=sys.argv): - run_install_jammer(build_for_release=True) - return 0 - -if __name__ == '__main__': - sys.exit(main()) diff --git a/setup/installer/windows/calibre/calibre.mpi b/setup/installer/windows/calibre/calibre.mpi deleted file mode 100644 index a65b22ab6a..0000000000 --- a/setup/installer/windows/calibre/calibre.mpi +++ /dev/null @@ -1,2773 +0,0 @@ -array set info { -AllowLanguageSelection -No - -AppName -calibre - -ApplicationID -EA5B0AA7-D6AE-0996-E42A-F9BBBE08F74F - -ApplicationURL -http://calibre.kovidgoyal.net - -AutoRefreshFiles -Yes - -BuildFailureAction -{Fail (recommended)} - -CancelledInstallAction -{Rollback and Stop} - -CleanupCancelledInstall -Yes - -CommandLineFailureAction -{Fail (recommended)} - -Company -kovidgoyal.net - -CompressionLevel -9 - -CompressionMethod -{lzma (solid)} - -Copyright -{2008 Kovid Goyal} - -CreateDesktopShortcut -Yes - -CreateQuickLaunchShortcut -Yes - -DefaultDirectoryLocation -{} - -DefaultLanguage -English - -DefaultToSystemLanguage -Yes - -EnableResponseFiles -Yes - -Ext -{} - -ExtractSolidArchivesOnStartup -No - -Icon -Modern/Small/SetupModernSmall01.gif - -IgnoreDirectories -{} - -IgnoreFiles -{} - -Image -Modern/SetupModern01.gif - -IncludeDebugging -Yes - -InstallPassword -{} - -InstallVersion -1.0.0.0 - -Language,ca -Yes - -Language,de -No - -Language,en -Yes - -Language,es -No - -Language,fr -No - -Language,hu -No - -Language,it -No - -Language,lt -Yes - -Language,nl -No - -Language,pl -No - -Language,pt_br -No - -Language,ru -No - -LastIgnoreDirectories -{} - -LastIgnoreFiles -{} - -LaunchApplication -Yes - -PackageDescription -{calibre: E-book library management} - -PackageLicense -GPL-3 - -PackageMaintainer -{Kovid Goyal } - -PackageName -<%ShortAppName%> - -PackagePackager -{Kovid Goyal } - -PackageRelease -<%PatchVersion%> - -PackageSummary -{calibre: E-book library management} - -PackageVersion -<%MajorVersion%>.<%MinorVersion%> - -PreserveFileAttributes -Yes - -PreserveFilePermissions -Yes - -ProjectID -DA98A0C6-9102-73EC-2516-B147E972D3F7 - -ProjectVersion -1.2.13.8 - -SaveOnlyToplevelDirs -No - -ScriptExt -.sh - -ShortAppName -calibre - -SkipUnusedFileGroups -Yes - -SystemLanguage -c - -Theme -Modern_Wizard - -ThemeDir -Modern_Wizard - -ThemeVersion -1 - -UpgradeApplicationID -{} - -Version -1.0 - -WizardHeight -365 - -WizardWidth -500 - -} - -array set ::InstallJammer::InstallCommandLineOptions { -debug -{Debugging Switch Yes No {} {run installer in debug mode}} - -debugconsole -{ShowConsole Switch Yes No {} {run installer with a debug console open}} - -mode -{InstallMode Choice No No {Console Default Silent Standard} {set the mode to run the installer in}} - -prefix -{InstallDir String No No {} {set the installation directory}} - -test -{Testing Switch Yes No {} {run installer without installing any files}} - -} -array set ::InstallJammer::UninstallCommandLineOptions { -debugconsole -{ShowConsole Switch Yes No {} {run uninstaller with a debug console open}} - -mode -{UninstallMode Choice No No {Console Silent Standard} {set the mode to run the uninstaller in}} - -test -{Testing Switch Yes No {} {run uninstaller without uninstalling any files}} - -} -FileGroup ::BEF8D398-58BA-1F66-39D6-D4A63D5BEEF9 -setup Install -active Yes -platforms {AIX-ppc FreeBSD-4-x86 FreeBSD-x86 HPUX-hppa Linux-x86 Solaris-sparc Windows TarArchive ZipArchive FreeBSD-5-x86 FreeBSD-6-x86 FreeBSD-7-x86 Linux-x86_64 Solaris-x86} -name {Program Files} -parent FileGroups -File ::8E5D85A4-7608-47A1-CF7C-309060D5FF40 -filemethod {Always overwrite files} -type dir -directory <%InstallDir%> -name /home/kovid/work/calibre/build/py2exe -parent BEF8D398-58BA-1F66-39D6-D4A63D5BEEF9 -File ::B95D03D4-EA59-F00E-59E1-BA05758879DA -type dir -name imageformats -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A624029D-AE0F-49A5-4DAC-7720CDCAB271 -name qmng4.dll -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::C53E8AB9-30FC-730C-3DA3-851C9B4838A1 -name qmng4.exp -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::36ADF34E-46AD-663F-6C3A-D45E971CB722 -name qmng4.lib -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::A1EEB0BC-ADA2-86C8-631B-E88FE03328EA -name qico4.dll -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::516069B4-FC33-F267-8C4B-95475515A853 -name qico4.exp -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::129AE39B-995D-9BE2-3FB4-69F129C4E86E -name qico4.lib -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::113DBCCE-B6CA-2742-35DB-6FB53EE75919 -name qico4.dll.manifest -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::CC7FFFF8-5DA6-3CCB-540C-A24B528B3DD6 -name qjpeg4.dll -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::9C5B362E-D06B-D92F-6B39-F9F2B5BE9E17 -name qjpeg4.exp -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::0FF52CC9-3920-A82E-0657-5B2A31CD1457 -name qjpeg4.lib -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::9DD8CFAE-2E69-CACA-B451-16683C0F168D -name qjpeg4.dll.manifest -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::5E16CADD-7269-4247-B35C-046D5B67E298 -name qtiff4.dll.manifest -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::633981BF-9A0C-589D-25D3-50866757C3B8 -name qmng4.dll.manifest -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::DB93E311-ECDF-21E0-8C5D-0B2EDAE6C424 -name qgif4.dll.manifest -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::48E4C188-4ABF-4CCD-C410-7936B4898DDF -name qsvg4.dll.manifest -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::BFF82F4E-0F3C-8F6E-381C-CCF91E220226 -name qgif4.dll -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::3FAEE4BA-C005-E833-8BE4-EC8EF7BDAF1B -name qgif4.exp -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::4AB682B9-C811-C68A-0100-5B32E0127093 -name qgif4.lib -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::6EBEF5E4-1FA0-B14A-736F-DD1068874D19 -name qtiff4.dll -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::8B2F7092-5B97-9DA8-90CD-46D191B49C28 -name qtiff4.exp -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::9D014D0C-E6F4-A713-7CE9-CD71AFCEBC61 -name qtiff4.lib -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::5EA8BF5D-76A7-023E-CF87-ED92DBCA527D -name qsvg4.dll -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::A5298D0E-A211-EB2E-6892-7045D04B264E -name qsvg4.exp -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::8A138EC0-728A-A421-A723-DE84F8DDE3EA -name qsvg4.lib -parent B95D03D4-EA59-F00E-59E1-BA05758879DA -File ::5EF561A9-E70B-8F01-A852-C36D28D1FA14 -type dir -name codecs -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D60D391E-2AA1-900B-DB5A-348EFC529375 -name qkrcodecs4.dll -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::4B320138-FB4B-DBD2-81BC-9D1413CF7ED6 -name qkrcodecs4.exp -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::38BE74BB-3CFA-7131-0467-BB1C4AE76512 -name qkrcodecs4.lib -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::49F00491-8056-0B75-7FC5-87761A3C6161 -name qcncodecs4.dll -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::CE567CBA-06A4-6D8E-E389-560CAC84E168 -name qcncodecs4.exp -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::2546B812-DBD7-3EDF-5CB2-B5F6B62639AB -name qcncodecs4.lib -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::12148DF6-6953-C6D3-6CDA-0ACED6F7D7FA -name qjpcodecs4.dll.manifest -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::E4C54E9A-D1E4-DCC9-C43E-FC3A5FD7F8C7 -name qcncodecs4.dll.manifest -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::1A86AC76-87FD-5EA9-0F23-2F21CA22F0CE -name qjpcodecs4.dll -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::FEB0CF93-169B-D996-2363-3AE057322EA6 -name qjpcodecs4.exp -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::0C8E6656-F734-B2B5-F0F7-6F5BDB5C6885 -name qjpcodecs4.lib -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::F95B9748-FC4E-4AF3-C037-8493AD7BE0DA -name qtwcodecs4.dll.manifest -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::2C3B2B03-3911-E7A8-035A-33E25A510F27 -name qtwcodecs4.dll -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::BD1A8C7A-D485-9272-4B9A-05EE511A59CF -name qtwcodecs4.exp -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::7EC5EFFB-7AA7-AEB1-46AD-4234DEE6A377 -name qtwcodecs4.lib -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::CEE6F2FE-EEBA-8973-AAA5-DCAAAD279B72 -name qkrcodecs4.dll.manifest -parent 5EF561A9-E70B-8F01-A852-C36D28D1FA14 -File ::48EA1D8C-F4C8-3D34-229D-B501057802F3 -type dir -name driver -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::596DAFDA-23D2-26B3-1535-3D4BF36C9AD9 -name libusb0.dll -parent 48EA1D8C-F4C8-3D34-229D-B501057802F3 -File ::E6B997AB-A35F-1142-14AB-6B9513D98C40 -name libusb0.sys -parent 48EA1D8C-F4C8-3D34-229D-B501057802F3 -File ::20557983-9D6C-4AB5-D2DF-BE418BEE6BA3 -name libusb0_x64.dll -parent 48EA1D8C-F4C8-3D34-229D-B501057802F3 -File ::CFCED8FB-FE60-07EC-690D-4C47C2C786F6 -name libusb0_x64.sys -parent 48EA1D8C-F4C8-3D34-229D-B501057802F3 -File ::6D2B03D1-8449-045C-298A-9E65C168F64A -name prs500_x64.cat -parent 48EA1D8C-F4C8-3D34-229D-B501057802F3 -File ::8147A9D4-D17C-55EB-CAA5-CC0C04EDC0D2 -name prs500.cat -parent 48EA1D8C-F4C8-3D34-229D-B501057802F3 -File ::1085BEED-C76A-5FF4-209A-E03CFB697462 -name prs500.inf -parent 48EA1D8C-F4C8-3D34-229D-B501057802F3 -File ::0AC00D67-8452-CABB-6843-FE6A464E9AE9 -type dir -name plugins -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::540FEFD3-9B1B-00E6-B8A5-EA8EB959428E -name podofo.pyd -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::0C77BC18-CE53-35EF-A667-C25B81C43E64 -name pictureflow.pyd -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::F1D1D581-9194-D12F-6139-F920EEC1B14E -name winutil.pyd -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::A94E4D31-5F8C-A363-AE61-A8F2E3A7B756 -name lzx.pyd -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::2C88788E-B9FB-729D-442B-600ED97096A0 -name cPalmdoc.pyd -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::26503DDE-8C5F-102F-B689-C6A17B2D6C93 -name msdes.pyd -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::FCB0D098-8F90-1C97-9E20-65546F08A203 -name fontconfig.pyd -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::E3BD0592-A0B9-B69D-7FD8-AD828D301351 -name cPalmdoc.pyd.manifest -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::03E9E137-98F0-1B8C-CBE7-6E3A6691D4F1 -name pdfreflow.pyd -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::BF6697B0-1BA5-024A-0566-2F3B22D8449F -name lzx.pyd.manifest -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::520B27CC-2288-A6BA-689B-B7C090B1D27E -name pdfreflow.pyd.manifest -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::F49E4A29-3607-039C-C67C-31E59861037C -name fontconfig.pyd.manifest -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::3F660706-F752-6458-0DF5-CFD1C556DDC1 -name winutil.pyd.manifest -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::4DD0593A-E9D1-2EB4-4CB4-DF75F28C9D0C -name podofo.pyd.manifest -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::F6486848-58DE-9CC7-7F72-A1A3BC936DD3 -name msdes.pyd.manifest -parent 0AC00D67-8452-CABB-6843-FE6A464E9AE9 -File ::01034EB7-C79C-42B9-6FF0-E06C72EF2623 -type dir -name iconengines -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::8ADB07A0-6B9E-8F53-34DF-2035C7C343F1 -name qsvgicon4.dll -parent 01034EB7-C79C-42B9-6FF0-E06C72EF2623 -File ::41F512E3-9F39-68C6-BB7F-58F572755D35 -name qsvgicon4.exp -parent 01034EB7-C79C-42B9-6FF0-E06C72EF2623 -File ::7EE2621C-0EAE-B516-505A-6CE11A8F8951 -name qsvgicon4.lib -parent 01034EB7-C79C-42B9-6FF0-E06C72EF2623 -File ::99A56CA8-60A5-CC90-1F6F-0A393722F9D2 -name qsvgicon4.dll.manifest -parent 01034EB7-C79C-42B9-6FF0-E06C72EF2623 -File ::7FC7557D-E1AF-082B-7286-24939CD5EE76 -name IM_MOD_RL_sfw_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::71A18B69-E38B-AB9F-3B81-BECFD4454D38 -name PyQt4.QtNetwork.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F6C99732-1835-1C2A-02F9-F2BB631BEC81 -name dde.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::20079501-EBD5-FEFD-8E49-2CF6A63E83E0 -name IM_MOD_RL_rle_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::470243F6-C8E4-DB45-678F-6A314747097E -name sqlite3.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::0213D597-D9C7-F155-EE44-1BD9E19520E3 -name IM_MOD_RL_tiff_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F782E3D0-C2CA-481C-70C4-2257FEF52EAF -name CORE_RL_libxml_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9306B7C1-11DE-7B54-1AFB-67AFF82B8013 -name _sqlite3.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4D6B4FC9-F900-E0AD-5258-8918CBFEB9AD -name lrs2lrf.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A2AF7001-960E-F5EA-AA09-025E35FD09BC -name IM_MOD_RL_sun_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C472ABCF-2160-C218-41CA-0DDE625AAEC6 -name IM_MOD_RL_msl_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::DC7D8C3A-81C2-7FC5-4AC0-8CDC4069FC97 -name IM_MOD_RL_jp2_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::555AF3FA-9A08-CCFF-4028-3F8891A6D212 -name CORE_RL_ttf_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::92F06FE6-C2C5-FF23-0A9B-884AB21D8221 -name PIL._imagingft.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::ED8542BE-DDE4-72B2-B05A-A09D00818994 -name web2disk.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A2154B84-F146-FD50-1DA9-1DB374A5439E -name IM_MOD_RL_exr_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A442B5C3-724F-6542-816D-30C3D3EDD1E3 -name CORE_RL_Magick++_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A18318B3-88EF-11EB-4E14-B02CBD4F0E5E -name calibre-parallel.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E26C9A86-F12B-7F1E-F2E8-8A42C0436321 -name IM_MOD_RL_dib_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::2E94EBE2-F588-C484-009C-48C0DA7D1932 -name IM_MOD_RL_preview_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7294280B-8324-B1A0-A054-92F330874F48 -name numpy.fft.fftpack_lite.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::74DC3F8D-5C56-8FB8-F59A-0C4C5ECB70A0 -name CORE_RL_magick_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::1638722F-A861-F762-1514-5649B2AD08FF -name IM_MOD_RL_svg_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D345F98D-EDB4-53D0-95A6-82968E47E080 -name IM_MOD_RL_mpeg_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::91CA5392-5F4E-12F7-C670-939B1500616B -name ebook-viewer.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4706580D-D101-13EA-DED0-2593D7FBADE8 -name LICENSE -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::89CAC9B2-DA65-DBF2-6295-757553882213 -name numpy.core.umath.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::2F90282D-B59F-B6BA-090B-45858AF7F3B2 -name IM_MOD_RL_clipboard_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::B512D139-B295-D7C3-F0B4-43775849CF58 -name numpy.core._sort.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A2C063AC-2F12-9260-501A-0E8BD0B8A932 -name calibre.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::439B6D05-7DE6-061D-4BCC-3F04F4FA2FA2 -name IM_MOD_RL_png_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BA464D11-BBCE-DEDA-C354-0C7BE60FAA05 -name IM_MOD_RL_braille_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::8F9FF823-AF6D-A288-8AE6-7D74F55DCE29 -name CORE_RL_bzlib_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::57A3F5D5-BFC8-CB38-5A57-548EE0DB033B -name QtNetwork4.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4DB7E8DE-905A-822A-AF14-17BD5ACEF915 -name IM_MOD_RL_wmf_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::559057ED-0FEA-62A1-68C2-023116B5636C -name win32ui.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::83F3AC3F-A485-B791-D4F0-6E67135FF19D -name IM_MOD_RL_txt_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::FABA7768-743B-08F7-B871-ED5E9082DF38 -name win32gui.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C49805D2-C0B8-01C4-DF6F-674D9C0BFD15 -name IM_MOD_RL_viff_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::826F1915-9F97-59DD-6637-3EEC0744A79C -name IM_MOD_RL_ps2_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A5F23791-BCDC-A997-4941-5D1F2F227E6D -name type.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::0A1C107A-C0AA-3ED6-4F37-A6894386DCBE -name IM_MOD_RL_ps3_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::2655F4FC-F682-46D8-B75C-6AF322323EF5 -name IM_MOD_RL_dot_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::176456BB-237C-9EBE-60E1-D8F78AAFFEC8 -name IM_MOD_RL_xwd_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9AE8498B-C89C-8B12-B8A1-35E1B6650469 -name lxml.objectify.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::EA37C1C2-57BB-4E7A-C004-0010D79142C2 -name IM_MOD_RL_fits_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::05F5C10D-6988-F1F4-A486-86C96DB20302 -name pywintypes26.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::0137A2B1-EB94-EB26-7295-0C7CD941A1DF -name IM_MOD_RL_histogram_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5BB7579D-9183-412C-81F8-B411B07C57B3 -name IM_MOD_RL_pnm_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::97B8BB83-7772-D87B-C8D1-5215E324AF2C -name library.ico -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::DF1361A2-2580-EFBF-65D2-156AD9919DE1 -name library.zip -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A6419A84-6C22-784E-6D84-D09972770770 -name unicodedata.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E658FBE0-5860-D041-12D3-76ADD18F804B -name servicemanager.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C98A6FC4-E341-7FD4-005C-DA2B384E11D8 -name win32api.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::ADA36EEA-7DE1-447C-B1AB-A4908E65E2CD -name IM_MOD_RL_ipl_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::EDE6F457-C83F-C5FA-9AF4-38FDFF17D929 -name PIL._imagingtk.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::09D0906E-3611-3DB7-32CF-A140585694A7 -name win32pdh.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4C84F0DC-7157-0C90-2062-180139B03E25 -name IM_MOD_RL_rgb_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A732EDE7-4796-241F-BECA-68E59F88F8AF -name lrs2lrf.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::69072379-7D16-B9F7-9F39-3E6403C48267 -name IM_MOD_RL_xbm_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::FBD11D98-D1E7-5DD9-BF02-01CE92518859 -name IM_MOD_RL_otb_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::8D0CFD32-2B7F-2BB3-8FA0-760A8DB24B52 -name win32service.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C7F9AB12-AAF7-2954-3DB6-F2C84F41655B -name win32clipboard.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::62CD997A-A5C7-D71B-A8F7-54567B36A071 -name msvcp90.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7D76BBE6-FD20-1290-4DBA-93D14FC45B81 -name sip.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D4354621-69ED-DFCB-068A-0812DB1C09C3 -name IM_MOD_RL_avi_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::EAFAC6D5-A7E8-1843-6D98-6663D899BB11 -name PyQt4.QtCore.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::155505A4-F0D8-05B2-10AD-149E178976A4 -name calibredb.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::39D5114E-1E70-5402-7E19-D86490678506 -name CORE_RL_lcms_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::388E0308-35A8-69B9-6837-383FD72E99E9 -name IM_MOD_RL_xpm_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::43C0DE14-A935-2139-6690-256C49C461C4 -name IM_MOD_RL_xcf_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E185A35A-93DB-61BB-E7EE-2C2222FD4939 -name win32security.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::498CCC26-383A-87CA-30C0-626D52555B37 -name librarything.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::404A98F1-84FD-B6D0-B130-354EECD9253C -name IM_MOD_RL_emf_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::17034C34-403E-B405-99C1-F80B7F00E27C -name log.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::34E63A2C-65C5-0A84-ACF1-BD6A844D4579 -name pythoncom26.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::2F20484B-53B8-B08E-B691-C5B2D49A9CB4 -name QtWebKit4.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E8A4442D-D0D3-31CD-997A-3CEB641CF5B7 -name IM_MOD_RL_mtv_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::0CA87D0B-5A04-1439-AEE8-C97072D47BA7 -name CORE_RL_tiff_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::AC24F520-88D4-D1CF-5797-27C715CE8ACA -name pyexpat.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::16848F38-71CD-55B8-4D96-1537F6773744 -name IM_MOD_RL_dps_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::81116DD3-1715-AA87-472F-544FC616EDAF -name IM_MOD_RL_dcm_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::335A4CFB-5C2D-44E4-C438-7018E8244C3D -name ebook-viewer.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::62A16C3B-ED9C-5187-2807-58857DF3A990 -name calibre-debug.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::55ECA7B7-279A-F51D-81C2-C8DC44CF0E22 -name select.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A6AF5ECC-A981-4CBD-DBEE-303A9340C603 -name IM_MOD_RL_xps_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5BCBF71F-18E7-5C52-E3F5-7D7F3028AD46 -name locale.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5C9FA94C-B8B0-A94B-548D-1D24FDEA5770 -name CORE_RL_wand_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E39E60BE-DE77-AB8C-42C6-5A7D7DC073E3 -name IM_MOD_RL_ttf_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D8F566FB-93DA-3128-5DBD-DF1068B3E3ED -name IM_MOD_RL_dpx_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::FFE5F178-A1A4-3691-9C88-E5109D144437 -name IM_MOD_RL_jpeg_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::03665A74-B895-EB3D-EBA0-2D2B6D26DDDA -name PIL._imagingmath.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::81AED538-B97F-6272-5C6E-9B27D7285B35 -name IM_MOD_RL_fax_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BDCCAEC0-4847-B8D8-50B1-1B434B73A01F -name IM_MOD_RL_avs_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::727B9BD6-B55E-386E-D3B9-D99D0D9ADBB1 -name QtGui4.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::1C7421A2-1BA7-7807-EB41-67578E0302E8 -name IM_MOD_RL_mvg_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C3466B70-23C3-31C9-3B4F-1B3B56E4D013 -name markdown-calibre.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::6ED1C675-C4D5-6BFF-7C8A-9AB4BF39D00C -name _hashlib.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::21F7F333-3063-71E3-85F5-5C88584B15CC -name IM_MOD_RL_tga_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::26741B21-C241-E100-8BB1-8B679BC3E662 -name configure.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::476CB977-5155-D56F-26CA-EB243AEBBA99 -name unrar.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::2E2A9EDA-5386-444E-8479-557386794552 -name IM_MOD_RL_uil_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D3301E15-1B1A-E2AB-1B04-30A601B3FB44 -name IM_MOD_RL_cut_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::181B28B9-CF13-0C28-8380-B39DF6E7397D -name markdown-calibre.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BC1D2D23-48ED-ECFF-2180-37C83554FDED -name Xext.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::15289622-D0DC-4F61-4990-AF6CA73C3F8C -name IM_MOD_RL_scr_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::76594353-4D68-08A0-B2AD-B3BA58FABB75 -name IM_MOD_RL_map_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E0F9749A-2B00-4A6C-ABB0-9AD1910A81A6 -name lxml.etree.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5BFB62EB-32B6-EA16-752E-2F29CC9B6202 -name numpy.random.mtrand.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::452196C8-28B2-4BA4-1F00-27C3C0BDDC04 -name thresholds.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::DE476170-B65E-B429-A23C-F822E4190FFC -name IM_MOD_RL_thumbnail_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::31E46936-560D-1E88-8FC1-F8E590D2FD02 -name IM_MOD_RL_mpc_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::0C04692E-5DCF-864F-6640-2FF5BF12BA91 -name IM_MOD_RL_cmyk_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A620FEB9-39FE-B102-6963-FEDA25EBF2F1 -name IM_MOD_RL_pcd_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::80D1F9CA-D7DA-578E-CE25-4E0EE988D280 -name IM_MOD_RL_sct_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C85307C1-5F11-01EF-2193-95F37CB49822 -name IM_MOD_RL_pict_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::3ECF2FC0-91AA-9573-42B3-4BD784FA5BC9 -name IM_MOD_RL_gradient_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::544BC0E6-66E4-EB06-CCD5-A172F230C83E -name IM_MOD_RL_icon_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::305631EA-9397-0384-259C-643046B72E44 -name X11.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::CBF83E89-39E0-D7C3-7902-A4A0ADCDEF48 -name IM_MOD_RL_jbig_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::FFF32C7F-BB57-4BB3-A52D-4E4F3496B967 -name calibre-debug.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::80A3C65A-553D-EA27-FAED-4F831578F4F8 -name magic.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E2DF0DC3-3372-3CDF-5177-5B3F3BF84E66 -name IM_MOD_RL_mat_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4D938678-59AF-F5F6-697B-E3A5BE76B43B -name QtXml4.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::0A5A70A8-39EC-B733-E807-9C358E5EA7A3 -name IM_MOD_RL_meta_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E6419523-253A-3052-B9B4-0EA792EF4A64 -name pdftohtml.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::EF062C24-09D8-1DC8-891A-F9563BBA57C2 -name IM_MOD_RL_gray_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::0E21E0B1-C2D4-3F6D-E788-9EEB821128C3 -name web2disk.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::27127583-9DC6-4397-3E86-052A515ED051 -name lrfviewer.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::396B4F78-FB45-C0B2-ACB3-97769CF5CD5D -name msvcr90.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::1DE767EE-4891-4E54-422D-67A4DFF8C3B5 -name lrfviewer.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::AFFEC28A-615C-E3E6-0026-CCE2594A6D25 -name calibre-server.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::2C64F86B-9366-B52D-F7B2-5BBD51F6982A -name IM_MOD_RL_pwp_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F4B2EF9C-EB18-B865-6E99-75CFB9B60D87 -name IM_MOD_RL_dds_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::38770D87-6CA9-9E3E-FBA1-A8CCFCD88FB5 -name IM_MOD_RL_fpx_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BE2D7BC3-D294-AF3F-65E7-3B372DEFDE36 -name PIL._imaging.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::200B9AEC-809F-75B7-DC12-A51BFC2A6F93 -name PyQt4.QtSvg.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::52132A31-D3AE-C617-7568-BF2AF46B5D74 -name IM_MOD_RL_pcl_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F94472C3-C8D0-950F-5ED9-1611D1CE30E5 -name IM_MOD_RL_inline_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::055ADB4B-20C5-E071-442F-4DA0A8D6F3C5 -name english.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::B10B6B91-0C03-642D-90D8-37B607B164AD -name IM_MOD_RL_wpg_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BFBB144B-1794-8304-9772-F103A42F2CA4 -name IM_MOD_RL_pdb_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::2FE2FF56-5CF5-15B7-2BD8-32100DF421DC -name _ssl.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::AE47BDA8-A1E5-2E84-28D7-DF8A84B18202 -name Microsoft.VC90.CRT.manifest -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A6B1C213-DC68-B7C3-8EDE-806286829899 -name w9xpopen.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D3E03CFA-4AF0-93FB-E04B-B282926099E0 -name IM_MOD_RL_label_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::662783C0-3826-9869-8EB8-326B363D3686 -name IM_MOD_RL_clip_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::442D92A7-97B1-74BC-F150-A9992A925356 -name numpy.core.multiarray.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::54991918-D11F-EEAD-F7E3-0EE28F22249E -name IM_MOD_RL_pix_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::069E7552-C005-26F6-2837-CDDDC0159183 -name win32wnet.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::071C5A61-CAC7-1136-DCD5-B2C0847A004A -name colors.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F209A2F0-ED6A-E241-E351-4CA8A539F2BA -name perfmon.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::74DDFF28-013C-4C41-CCE7-0CAD45F7D6B4 -name IM_MOD_RL_cin_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5CB76241-5682-AE44-82D3-A6C8C66B88D6 -name IM_MOD_RL_bmp_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A843E4DA-8671-C4F7-BA61-998AA1D278C8 -name numpy.linalg.lapack_lite.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::908EA762-5568-17BE-D77D-5DE5551895D0 -name IM_MOD_RL_raw_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::CC186E15-8751-A4AA-B2A7-D2E522F1F9DF -name lrf2lrs.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A99CACD7-FE57-8A5E-BAA1-2D8B41925593 -name IM_MOD_RL_cip_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C4649D7A-9312-8984-E7CD-A0AB794C5A8E -name IM_MOD_RL_pdf_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::B50467F0-07D0-B634-EB43-C4B721798A84 -name analyze.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::47658BFB-7389-6866-359E-7517C18E768D -name IM_MOD_RL_mpr_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::3F6735E8-D4E6-A6F9-C9F8-4219E6BBC827 -name CORE_RL_jpeg_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::918BE500-1E97-90C0-3FB3-4056FE8D0E15 -name IM_MOD_RL_wbmp_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D59F7D54-24A7-774D-79EB-423A64E8CB21 -name IM_MOD_RL_stegano_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::17F9A868-E52D-F961-9DB7-8AC69BA702EA -name CORE_RL_jp2_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::878003DC-9B1D-7C58-29F8-14D4565ABA64 -name IM_MOD_RL_yuv_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::602B3244-CF6C-F934-E86C-8161800DB150 -name coder.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C23261F0-19EA-2216-A8D6-45FCC4ECBECE -name win32file.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::100103F9-C269-9B03-A133-7D046DCC5B30 -name IM_MOD_RL_null_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9BEE3580-3674-F4AE-C1F3-B8623E0E4FC8 -name IM_MOD_RL_pattern_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::58F70BF7-491E-38D1-B836-1BBF340AA602 -name IM_MOD_RL_plasma_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4B6C22CD-D139-FCAB-45FB-E9B7DADFFFED -name win32process.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9698339D-6A1E-7CBC-A772-C9C4B10418BC -name librarything.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A3F1DC1C-BEF6-CB6B-F7AC-39F34F4DFABD -name IM_MOD_RL_pcx_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BE44B72D-2ED1-4983-F652-DE8814401946 -name CORE_RL_xlib_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::EC5B5C55-8347-0A8C-E9B5-28E45680E2F2 -name IM_MOD_RL_caption_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::519BA66E-0CD3-00EA-0932-8D225C4C7EC8 -name calibredb.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::B7E13F99-C8D3-F2FB-1E5F-E8530A77BB71 -name IM_MOD_RL_url_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D0762C72-29E8-85CC-8550-6AC9E9AE39E9 -name _win32sysloader.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4921649D-06BD-A568-3879-BD2D94423FCB -name pdftohtml.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::2D4976D6-B0ED-C239-5461-70A711A018BE -name QtCore4.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::AA761ACD-B728-2324-AA75-B20A2A79F125 -name lrf2lrs.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::95434C76-22F5-B9CE-6194-6E1B1EE3232D -name IM_MOD_RL_info_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::AAF45D03-322F-5553-63A7-312DB754A20B -name _ctypes.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C3D351CA-A8D8-AB35-55D9-5AACF8DB37D1 -name python26.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::B50B66A1-FB65-FAD5-1DD7-E894ACC07464 -name QtSvg4.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::906FF13D-D993-7192-7EA5-6D15A5A24BFB -name CORE_RL_png_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5D368661-6BF0-D6AF-7C1A-87646864EB4B -name delegates.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::6BB7B9CF-131D-3B0A-3A23-21BF168D78A4 -name win32event.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9BA85EE5-1754-67AF-736D-481CDCC72DD2 -name _imagingft.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::6254DD0C-8F2C-D4AE-2107-2597D542C181 -name IM_MOD_RL_matte_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F159D566-88D6-C347-3E3C-55C2DDFC5FD0 -name IM_MOD_RL_mono_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::B873CAA2-011F-94C3-7977-FF344E53C44F -name CORE_RL_jbig_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::6921F62A-4015-4C9F-98A6-BCBBC43B698E -name msvcm90.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7276E0CA-C205-4B18-19A3-157F1B8523FB -name IM_MOD_RL_xtrn_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7B9624A9-88B4-C61E-6771-9A34FB6CA3B5 -name PyQt4.QtGui.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::80EC4265-6F3B-7F74-F995-4FA85E87A877 -name IM_MOD_RL_vicar_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4CDC2DC5-5A3D-B773-A338-3E12E8C5BB9D -name IM_MOD_RL_psd_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4AF4C7B2-8926-4581-2896-C6436460C81F -name IM_MOD_RL_uyvy_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BF71D048-1137-4453-960C-9267CB790EAD -name IM_MOD_RL_art_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D9B6371C-332C-45FB-DAEE-1A247130F704 -name calibre-customize.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::605E727F-DE13-27FE-75C0-34567C468B18 -name calibre-parallel.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::37306B68-BABB-418C-A2CA-BAF4E439D3F1 -name viewer.ico -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::6092C5A2-8740-2769-DB77-E0B664CD19EC -name PyQt4.QtWebKit.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::73C82473-A35A-23B8-067C-AA3120D1CEE2 -name win32pipe.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F269DBE1-334B-2108-31C2-E28664703103 -name _imaging.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::1FF92E56-1C02-1600-8FF5-24B25DD40A51 -name IM_MOD_RL_ycbcr_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::B863CAFC-1205-0F3B-949A-68310B7F3EDB -name type-ghostscript.xml -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::931C4A8D-5B70-AC18-605E-DE89810C778E -name IM_MOD_RL_x_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5BF8A346-2EC6-E5E0-063F-6FB02F84FCAC -name IM_MOD_RL_dng_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::19891B45-E756-8755-9156-FA8CB87AD057 -name IM_MOD_RL_html_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BC81419A-A3B0-45B4-6672-7EB91B249786 -name IM_MOD_RL_tim_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4E37CF0F-60E7-5CA5-D9FB-C9CD211B8A94 -name IM_MOD_RL_tile_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::D6A57A60-DCB9-BA5C-14BD-5C6143CF34C5 -name numpy.lib._compiled_base.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E2573481-3079-D789-64A6-CC6EA121F7B4 -name IM_MOD_RL_xc_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F7129083-E586-0227-69C1-63D832794884 -name CORE_RL_zlib_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::29022F2B-4E69-8624-2B2C-98A40E12DC0A -name calibre-server.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7592A236-4835-6A9D-56B1-78985267D9AD -name win32console.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::05F4A6BD-A7C3-5108-4708-1524EB0628D9 -name calibre.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::DEB8E703-365E-A7BB-2315-6306B2E5C978 -name win32evtlog.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::AB44B44C-E258-A5AB-9511-8D0FBB456EE8 -name IM_MOD_RL_gif_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5D5F2AAD-6668-5E14-B84C-5D80C4CCC968 -name calibre-customize.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9A0C05D0-26E3-72C5-1F04-76F76ABB180F -name numpy.core.scalarmath.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::0888A744-B049-01E8-6AC8-ECC3EE2CEFE6 -name IM_MOD_RL_sgi_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::4AEEBBED-E749-15A9-E1F7-9F6BE2A2C3D0 -name _socket.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::35B19292-0C50-4AEE-0A79-B2F3BC34B529 -name w9xpopen.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::E2C2739C-56B3-E2D0-A1DA-0E3FC3087924 -name IM_MOD_RL_ept_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C6C5BD2D-887F-5D79-F8B5-C6041C0AEF3C -name PyQt4.Qt.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::8CD7A1E2-9139-8FE7-AAF5-E18B2A6825F2 -name bz2.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::EBF917FB-15F6-9B3E-5C37-AB0B1D50C64D -name IM_MOD_RL_palm_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::A5500C64-121C-4419-9E3D-F698FE462AE8 -name IM_MOD_RL_ps_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::ADBFA663-E232-7AC1-34A1-700D056E143A -name IM_MOD_RL_miff_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::325F545D-30A8-08DA-74F0-AC1244F6C1D9 -name IM_MOD_RL_vid_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::24238371-77D0-0A8F-35D1-498A5FCC1B0D -name IM_MOD_RL_rla_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::6F5D62F3-5E63-0753-364C-01CAAF1002E0 -name IM_MOD_RL_magick_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9FDAC308-5D4F-A865-A09A-9FBF48162A47 -name IM_MOD_RL_djvu_.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5D748040-5973-EFF1-41FC-B424636C642E -name fetch-ebook-metadata.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::8B8655B8-3823-AA02-1CDA-02F5AD4677C0 -name fetch-ebook-metadata.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::8FC3D58A-F3FA-A2D1-711F-F4C3128620CE -name podofo.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::88034147-A376-B759-D48C-5F17A47E8CC3 -name ebook-meta.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::6E6F2A97-6614-F2A6-1751-95C099B909FD -name pdfmanipulate.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BA087530-7CF4-5460-C9AA-DE4A796C9AEB -name pdfmanipulate.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::6AF80BFC-A813-074D-897A-856744A91949 -name ebook-convert.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F8C59A30-9E90-0861-5604-95E7C69C3C80 -name ebook-convert.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9389D511-7BF3-4D72-C78E-4F98DCE8F723 -name calibre-smtp.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::36E9023D-CCBC-9C59-CDA3-71A4D3203B25 -name ebook-meta.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::B757AEB8-74A7-1EA8-AC7C-C2B5F690B539 -name ebook-device.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::CD137106-C058-6035-57F3-420F9540386E -name _multiprocessing.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7930C2FB-1C6F-3CFB-D8C6-BC677D96045F -name zlib1.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7FDFCBEF-0687-FDA5-F5B7-632966E87BD3 -name calibre-complete.exe -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::0450D3E0-07EB-F81F-DA39-038494E4C8FE -name win32com.shell.shell.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::8D7A36A6-4517-E995-E989-2E522E7A1438 -name calibre-smtp.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::9E4E5E8F-30C0-E631-9516-2AE01A5CA0E9 -name ebook-device.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::7BE6B538-70D5-A7EB-5F91-E14CE57B394B -name calibre-complete.exe.local -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::C4E40030-3EE0-8B05-E6B9-89E81433EE1F -name phonon4.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::B1560042-C99B-9803-552E-21C15F0DFD85 -type dir -name resources -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::DEDE8BE9-D712-2770-A1EC-7E9164CC6D29 -name libpng12.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::2A8619DB-B715-CBF8-E711-C6B0C5FD9EF4 -name _elementtree.pyd -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::F92DE458-3417-3474-E0E0-C2CB98CA452A -name libxml2.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::5243CC78-8F58-46D6-4CDB-98FE073F4966 -name libxml2.dll.manifest -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::6C13AD7D-4C52-05F7-21D7-6258D4ECD542 -name freetype.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::800D9AFB-00CF-043C-0096-77BB4A2CD629 -name fontconfig.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::3B4975F7-B38C-895A-F11F-04BDF303309E -name jpeg.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::BA7F0DB8-28CB-9E0C-AA32-C10A729813D5 -name libexpatw.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::54736356-200D-EE7B-5D46-62B198B8AAF5 -name libexpat.dll -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::620D5BA9-9652-2032-ED10-D3958F594AF4 -type dir -name fontconfig -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -File ::57DAE30B-1BBA-0D0B-8DB0-DCE473520E9C -name zlib1.dll.manifest -parent 8E5D85A4-7608-47A1-CF7C-309060D5FF40 -Component ::F6829AB7-9F66-4CEE-CA0E-21F54C6D3609 -setup Install -active Yes -platforms {AIX-ppc FreeBSD-4-x86 FreeBSD-x86 HPUX-hppa Linux-x86 Solaris-sparc Windows FreeBSD-5-x86 FreeBSD-6-x86 FreeBSD-7-x86 Linux-x86_64 Solaris-x86} -name Main -parent Components -SetupType ::D9ADE41C-B744-690C-2CED-CF826BF03D2E -setup Install -active Yes -platforms {AIX-ppc FreeBSD-4-x86 FreeBSD-x86 HPUX-hppa Linux-x86 Solaris-sparc Windows FreeBSD-5-x86 FreeBSD-6-x86 FreeBSD-7-x86 Linux-x86_64 Solaris-x86} -name Typical -parent SetupTypes - -InstallComponent 3EA07B17-04D8-6508-B535-96CC7173B49A -setup Install -type pane -conditions D7F585DB-0DEC-A94E-DAB0-94D558D82764 -title {Welcome Screen} -component Welcome -command insert -active Yes -parent StandardInstall -Condition D7F585DB-0DEC-A94E-DAB0-94D558D82764 -active Yes -parent 3EA07B17-04D8-6508-B535-96CC7173B49A -title {Execute Script Condition} -component ExecuteScriptCondition -TreeObject::id D7F585DB-0DEC-A94E-DAB0-94D558D82764 -InstallComponent 7CCDA4BB-861C-C21E-3011-E93DB58F07D6 -setup Install -type action -conditions ADBCD53E-C9A6-A3CA-1AAC-0DB0CE84F71E -title {Check for Previous Install} -component CheckForPreviousInstall -command insert -active Yes -parent 3EA07B17-04D8-6508-B535-96CC7173B49A -Condition ADBCD53E-C9A6-A3CA-1AAC-0DB0CE84F71E -active Yes -parent 7CCDA4BB-861C-C21E-3011-E93DB58F07D6 -title {Execute Script Condition} -component ExecuteScriptCondition -TreeObject::id ADBCD53E-C9A6-A3CA-1AAC-0DB0CE84F71E -InstallComponent 580ACF2C-517F-5E48-9DEF-7DAEFBA59FDD -setup Install -type action -conditions 6DE3B369-9D6B-6BC1-4EA0-2C54ECE159EB -title {Set Virtual Text} -component SetVirtualText -command insert -active Yes -parent 3EA07B17-04D8-6508-B535-96CC7173B49A -Condition 6DE3B369-9D6B-6BC1-4EA0-2C54ECE159EB -active Yes -parent 580ACF2C-517F-5E48-9DEF-7DAEFBA59FDD -title {String Is Condition} -component StringIsCondition -TreeObject::id 6DE3B369-9D6B-6BC1-4EA0-2C54ECE159EB -InstallComponent 9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D -setup Install -type pane -title {License Agreement} -component License -active Yes -parent StandardInstall -InstallComponent AAEC34E6-7F02-18F2-30BB-744738192A3B -setup Install -type action -conditions {081A479A-572E-5133-4979-84456DB40EFA A4388F3F-0D32-F14E-BA00-1BE7F54B05ED} -title {Modify Widget} -component ModifyWidget -command insert -active Yes -parent 9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D -Condition 081A479A-572E-5133-4979-84456DB40EFA -active Yes -parent AAEC34E6-7F02-18F2-30BB-744738192A3B -title {String Is Condition} -component StringIsCondition -TreeObject::id 081A479A-572E-5133-4979-84456DB40EFA -Condition A4388F3F-0D32-F14E-BA00-1BE7F54B05ED -active Yes -parent AAEC34E6-7F02-18F2-30BB-744738192A3B -title {String Is Condition} -component StringIsCondition -TreeObject::id A4388F3F-0D32-F14E-BA00-1BE7F54B05ED -InstallComponent 6661142D-D174-F52E-CD1D-6BFB3649BC64 -setup Install -type pane -conditions {B3F43ECF-D504-F7A0-45FE-A735D202B6F0 9E0D138E-5FFC-0F18-F110-F093644E4DD2} -title {Select Destination} -component SelectDestination -command insert -active Yes -parent StandardInstall -Condition B3F43ECF-D504-F7A0-45FE-A735D202B6F0 -active Yes -parent 6661142D-D174-F52E-CD1D-6BFB3649BC64 -title {Script Condition} -component ScriptCondition -TreeObject::id B3F43ECF-D504-F7A0-45FE-A735D202B6F0 -Condition 9E0D138E-5FFC-0F18-F110-F093644E4DD2 -active Yes -parent 6661142D-D174-F52E-CD1D-6BFB3649BC64 -title {File Permission Condition} -component FilePermissionCondition -TreeObject::id 9E0D138E-5FFC-0F18-F110-F093644E4DD2 -InstallComponent 28FDA3F4-B799-901F-8A27-AA04F0C022AB -setup Install -type pane -title {Copying Files} -component CopyFiles -active Yes -parent StandardInstall -InstallComponent A75C97CC-01AC-C12A-D663-A54E3257F11B -setup Install -type action -title {Disable Buttons} -component ModifyWidget -active Yes -parent 28FDA3F4-B799-901F-8A27-AA04F0C022AB -InstallComponent B6D03F99-8B73-BE6E-1050-721B286D3D60 -setup Install -type action -title {Execute Action} -component ExecuteAction -active Yes -parent 28FDA3F4-B799-901F-8A27-AA04F0C022AB -InstallComponent 91AB3DE5-D61C-522D-5B3B-F2953E1DE771 -setup Install -type action -title {Move Forward} -component MoveForward -active Yes -parent 28FDA3F4-B799-901F-8A27-AA04F0C022AB -InstallComponent 8A7FD0C2-F053-8764-F204-4BAE71E05708 -setup Install -type pane -title {Setup Complete} -component SetupComplete -active Yes -parent StandardInstall -InstallComponent 710F2507-2557-652D-EA55-440D710EFDFA -setup Install -type action -conditions {69188956-D764-5B26-B048-46A4239C3733 08195201-0797-932C-4B51-E5EF9D1D41BD 2E18F4AE-F1BB-5C62-2900-73A576A49261} -title {Install USB Driver} -component ExecuteExternalProgram -command insert -alias {Install USB Driver} -active Yes -parent 8A7FD0C2-F053-8764-F204-4BAE71E05708 -Condition 69188956-D764-5B26-B048-46A4239C3733 -active Yes -parent 710F2507-2557-652D-EA55-440D710EFDFA -title {Platform Condition} -component PlatformCondition -TreeObject::id 69188956-D764-5B26-B048-46A4239C3733 -Condition 08195201-0797-932C-4B51-E5EF9D1D41BD -active Yes -parent 710F2507-2557-652D-EA55-440D710EFDFA -title {String Is Condition} -component StringIsCondition -TreeObject::id 08195201-0797-932C-4B51-E5EF9D1D41BD -Condition 2E18F4AE-F1BB-5C62-2900-73A576A49261 -active Yes -parent 710F2507-2557-652D-EA55-440D710EFDFA -title {String Is Condition} -component StringIsCondition -TreeObject::id 2E18F4AE-F1BB-5C62-2900-73A576A49261 -InstallComponent 21B897C4-24BE-70D1-58EA-DE78EFA60719 -setup Install -type action -conditions 76FA3CA2-1F09-75C5-C6CF-72719A8EC4A5 -title {Message Box} -component MessageBox -command insert -active Yes -parent 8A7FD0C2-F053-8764-F204-4BAE71E05708 -Condition 76FA3CA2-1F09-75C5-C6CF-72719A8EC4A5 -active Yes -parent 21B897C4-24BE-70D1-58EA-DE78EFA60719 -title {String Is Condition} -component StringIsCondition -TreeObject::id 76FA3CA2-1F09-75C5-C6CF-72719A8EC4A5 -InstallComponent 940F7FED-7D20-7264-3BF9-ED78205A76B3 -setup Install -type action -conditions {96440B8B-C6D0-FCCA-6D3C-7ECE1C304CC0 FBA33088-C809-DD6B-D337-EADBF1CEE966} -title {Desktop Shortcut Checkbutton} -component AddWidget -command insert -active Yes -parent 8A7FD0C2-F053-8764-F204-4BAE71E05708 -Condition 96440B8B-C6D0-FCCA-6D3C-7ECE1C304CC0 -active Yes -parent 940F7FED-7D20-7264-3BF9-ED78205A76B3 -title {File Exists Condition} -component FileExistsCondition -TreeObject::id 96440B8B-C6D0-FCCA-6D3C-7ECE1C304CC0 -Condition FBA33088-C809-DD6B-D337-EADBF1CEE966 -active Yes -parent 940F7FED-7D20-7264-3BF9-ED78205A76B3 -title {String Is Condition} -component StringIsCondition -TreeObject::id FBA33088-C809-DD6B-D337-EADBF1CEE966 -InstallComponent 27B44808-381F-7202-A0D9-40788CD679D0 -setup Install -type action -conditions {1039BE84-4163-2FCB-9798-D85E6C37B668 657FDE96-809B-821F-3294-15E637B85E6E B7F0CB71-720B-7DC9-5C5E-AA1AF92D78E2} -title {Quick Launch Shortcut Checkbutton} -component AddWidget -command insert -active Yes -parent 8A7FD0C2-F053-8764-F204-4BAE71E05708 -Condition 1039BE84-4163-2FCB-9798-D85E6C37B668 -active Yes -parent 27B44808-381F-7202-A0D9-40788CD679D0 -title {Platform Condition} -component PlatformCondition -TreeObject::id 1039BE84-4163-2FCB-9798-D85E6C37B668 -Condition 657FDE96-809B-821F-3294-15E637B85E6E -active Yes -parent 27B44808-381F-7202-A0D9-40788CD679D0 -title {File Exists Condition} -component FileExistsCondition -TreeObject::id 657FDE96-809B-821F-3294-15E637B85E6E -Condition B7F0CB71-720B-7DC9-5C5E-AA1AF92D78E2 -active Yes -parent 27B44808-381F-7202-A0D9-40788CD679D0 -title {String Is Condition} -component StringIsCondition -TreeObject::id B7F0CB71-720B-7DC9-5C5E-AA1AF92D78E2 -InstallComponent FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0 -setup Install -type pane -title {Copying Files} -component CopyFiles -active Yes -parent DefaultInstall -InstallComponent 5C66451D-6042-DBDE-0D8C-31156EE244AD -setup Install -type action -title {Disable Buttons} -component ModifyWidget -active Yes -parent FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0 -InstallComponent A05E9D13-9686-83DD-C6AD-2A4D912C5B81 -setup Install -type action -title {Execute Action} -component ExecuteAction -active Yes -parent FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0 -InstallComponent 137ED7CE-70C6-DEC3-4929-CAE747038617 -setup Install -type action -title {Move Forward} -component MoveForward -active Yes -parent FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0 -InstallComponent A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39 -setup Install -type pane -title {Setup Complete} -component SetupComplete -active Yes -parent DefaultInstall -InstallComponent 7C57D3D3-B1DB-0888-B098-B46AD4F99F7E -setup Install -type action -conditions {37A46164-C287-5D4A-E55A-A2329E25E829 CFBE4459-450B-1FAB-3422-609544334AA2} -title {Launch Application Checkbutton} -component AddWidget -command insert -active Yes -parent A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39 -Condition 37A46164-C287-5D4A-E55A-A2329E25E829 -active Yes -parent 7C57D3D3-B1DB-0888-B098-B46AD4F99F7E -title {File Exists Condition} -component FileExistsCondition -TreeObject::id 37A46164-C287-5D4A-E55A-A2329E25E829 -Condition CFBE4459-450B-1FAB-3422-609544334AA2 -active Yes -parent 7C57D3D3-B1DB-0888-B098-B46AD4F99F7E -title {String Is Condition} -component StringIsCondition -TreeObject::id CFBE4459-450B-1FAB-3422-609544334AA2 -InstallComponent C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D -setup Install -type action -conditions {52ACF73B-2106-3106-B7F0-D8587A4A6A3B 7C2D1F15-9A28-9938-3C1B-681A4D79C7B2} -title {Desktop Shortcut Checkbutton} -component AddWidget -command insert -active Yes -parent A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39 -Condition 52ACF73B-2106-3106-B7F0-D8587A4A6A3B -active Yes -parent C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D -title {File Exists Condition} -component FileExistsCondition -TreeObject::id 52ACF73B-2106-3106-B7F0-D8587A4A6A3B -Condition 7C2D1F15-9A28-9938-3C1B-681A4D79C7B2 -active Yes -parent C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D -title {String Is Condition} -component StringIsCondition -TreeObject::id 7C2D1F15-9A28-9938-3C1B-681A4D79C7B2 -InstallComponent A246E5D4-5489-19CC-C7B1-AA0C98D55F85 -setup Install -type action -conditions {E57B5080-47C0-3209-40DC-144F41FBF866 BDC2A4B5-C169-A971-4F35-13B1BF3F8C24 AAF04AF0-329D-75A6-BB68-60ECF2EB74F0} -title {Quick Launch Shortcut Checkbutton} -component AddWidget -command insert -active Yes -parent A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39 -Condition E57B5080-47C0-3209-40DC-144F41FBF866 -active Yes -parent A246E5D4-5489-19CC-C7B1-AA0C98D55F85 -title {Platform Condition} -component PlatformCondition -TreeObject::id E57B5080-47C0-3209-40DC-144F41FBF866 -Condition BDC2A4B5-C169-A971-4F35-13B1BF3F8C24 -active Yes -parent A246E5D4-5489-19CC-C7B1-AA0C98D55F85 -title {File Exists Condition} -component FileExistsCondition -TreeObject::id BDC2A4B5-C169-A971-4F35-13B1BF3F8C24 -Condition AAF04AF0-329D-75A6-BB68-60ECF2EB74F0 -active Yes -parent A246E5D4-5489-19CC-C7B1-AA0C98D55F85 -title {String Is Condition} -component StringIsCondition -TreeObject::id AAF04AF0-329D-75A6-BB68-60ECF2EB74F0 -InstallComponent C93967A6-0618-9A8C-9554-35292F85F61B -setup Install -type action -title {Console Ask Yes Or No} -component ConsoleAskYesOrNo -active Yes -parent ConsoleInstall -InstallComponent 361C9910-C284-B9BE-FA0C-B94309DB19A7 -setup Install -type action -conditions 825CDD1E-9B3D-E64E-5381-5C5557D204A2 -title Exit -component Exit -command insert -active Yes -parent ConsoleInstall -Condition 825CDD1E-9B3D-E64E-5381-5C5557D204A2 -active Yes -parent 361C9910-C284-B9BE-FA0C-B94309DB19A7 -title {String Is Condition} -component StringIsCondition -TreeObject::id 825CDD1E-9B3D-E64E-5381-5C5557D204A2 -InstallComponent A1E6AD62-FD68-14BF-2D05-264DC2B370A5 -setup Install -type action -conditions F6C53555-674E-0479-7EC0-FE737201EA0A -title {Console Get User Input} -component ConsoleGetUserInput -command insert -active Yes -parent ConsoleInstall -Condition F6C53555-674E-0479-7EC0-FE737201EA0A -active Yes -parent A1E6AD62-FD68-14BF-2D05-264DC2B370A5 -title {File Permission Condition} -component FilePermissionCondition -TreeObject::id F6C53555-674E-0479-7EC0-FE737201EA0A -InstallComponent 1356216E-90D2-8324-0EEB-975A64F23EB8 -setup Install -type action -title {Console Message} -component ConsoleMessage -active Yes -parent ConsoleInstall -InstallComponent BFD200F2-6AC9-8FE2-046F-48E5126BE639 -setup Install -type action -title {Execute Action} -component ExecuteAction -active Yes -parent ConsoleInstall -InstallComponent E611105F-DC85-9E20-4F7B-E63C54E5DF06 -setup Install -type action -title {Console Message} -component ConsoleMessage -active Yes -parent ConsoleInstall -InstallComponent C5AD5B0C-26BE-16E5-899A-9A9436C8F688 -setup Install -type action -title Exit -component Exit -active Yes -parent ConsoleInstall -InstallComponent 1D757BEB-2EA2-269E-B331-C41CB71831EF -setup Install -type action -title {Execute Action} -component ExecuteAction -active Yes -parent SilentInstall -InstallComponent 67F58321-C0AF-1721-C519-0FCCABD66FE9 -setup Install -type action -title Exit -component Exit -active Yes -parent SilentInstall -InstallComponent 7C1E2A34-CD5C-F707-9DF3-92DF130C3BFD -setup Install -type actiongroup -title {Setup Actions} -alias {Setup Actions} -active Yes -parent ActionGroupsInstall -InstallComponent 3F2A14F0-06AC-C9D3-1F07-311F41E1338E -setup Install -type actiongroup -title {Startup Actions} -alias {Startup Actions} -active Yes -parent ActionGroupsInstall -InstallComponent 001FA257-6A8E-7CEA-ED5E-492247DF5E5A -setup Install -type action -title {Create Install Panes} -component CreateInstallPanes -active Yes -parent 3F2A14F0-06AC-C9D3-1F07-311F41E1338E -InstallComponent 2DF93B55-41E5-75D5-E815-BD9FDC32D9F8 -setup Install -type actiongroup -title {Install Actions} -alias {Install Actions} -active Yes -parent ActionGroupsInstall -InstallComponent 54B45A5F-FF59-0E99-952F-165BAA590889 -setup Install -type action -title {Install Selected Files} -component InstallSelectedFiles -active Yes -parent 2DF93B55-41E5-75D5-E815-BD9FDC32D9F8 -InstallComponent BE4A731E-1FC2-87A1-547D-91E2CA467AA7 -setup Install -type action -title {Add Directory To Path} -component AddDirectoryToPath -active Yes -parent 2DF93B55-41E5-75D5-E815-BD9FDC32D9F8 -InstallComponent C14CC317-9757-2C79-64C6-BC6C8A267CB1 -setup Install -type action -conditions 4AAFE838-3E44-5147-0F04-65DB5B647191 -title {Install Uninstaller} -component InstallUninstaller -command insert -active Yes -parent 2DF93B55-41E5-75D5-E815-BD9FDC32D9F8 -Condition 4AAFE838-3E44-5147-0F04-65DB5B647191 -active Yes -parent C14CC317-9757-2C79-64C6-BC6C8A267CB1 -title {String Is Condition} -component StringIsCondition -TreeObject::id 4AAFE838-3E44-5147-0F04-65DB5B647191 -InstallComponent EDD03974-B223-B62F-DA4B-FD5E94861CFE -setup Install -type action -conditions 1ADA4DE6-31A7-E816-7719-4C8558F5378D -title {Windows Uninstall Registry} -component AddWindowsUninstallEntry -command insert -active Yes -parent 2DF93B55-41E5-75D5-E815-BD9FDC32D9F8 -Condition 1ADA4DE6-31A7-E816-7719-4C8558F5378D -active Yes -parent EDD03974-B223-B62F-DA4B-FD5E94861CFE -title {String Is Condition} -component StringIsCondition -TreeObject::id 1ADA4DE6-31A7-E816-7719-4C8558F5378D -InstallComponent 48596410-DF5A-1E56-D59C-1B1E2F094FCA -setup Install -type action -conditions A75C28A7-801B-22B3-C00A-B4B6F148DAA5 -title {Program Shortcut} -component InstallProgramFolderShortcut -command insert -active Yes -parent 2DF93B55-41E5-75D5-E815-BD9FDC32D9F8 -Condition A75C28A7-801B-22B3-C00A-B4B6F148DAA5 -active Yes -parent 48596410-DF5A-1E56-D59C-1B1E2F094FCA -title {String Is Condition} -component StringIsCondition -TreeObject::id A75C28A7-801B-22B3-C00A-B4B6F148DAA5 -InstallComponent EE3AF196-AF0F-4947-CD75-7894634F48A6 -setup Install -type action -conditions C5416030-8AB4-3466-F341-9A0BBFEA55EF -title {Uninstall Shortcut} -component InstallProgramFolderShortcut -command insert -active Yes -parent 2DF93B55-41E5-75D5-E815-BD9FDC32D9F8 -Condition C5416030-8AB4-3466-F341-9A0BBFEA55EF -active Yes -parent EE3AF196-AF0F-4947-CD75-7894634F48A6 -title {String Is Condition} -component StringIsCondition -TreeObject::id C5416030-8AB4-3466-F341-9A0BBFEA55EF -InstallComponent 6734BA65-B25A-DA08-812C-EE0775F91A89 -setup Install -type action -title {Ebook viewer shorcut} -component InstallProgramFolderShortcut -active Yes -parent 2DF93B55-41E5-75D5-E815-BD9FDC32D9F8 -InstallComponent 77D1144B-1013-79B5-034B-5D6BDA6B2FD2 -setup Install -type action -title {LRFViewer Shortcut} -component InstallProgramFolderShortcut -active Yes -parent 2DF93B55-41E5-75D5-E815-BD9FDC32D9F8 -InstallComponent 28BAE662-E103-4E3F-D298-C8FBA36361FC -setup Install -type actiongroup -title {Finish Actions} -alias {Finish Actions} -active Yes -parent ActionGroupsInstall -InstallComponent E32519F3-A540-C8F3-957F-4C1DB5B25DFE -setup Install -type action -conditions {72D8B44E-E4CF-7551-645E-FB57C5B000E9 03FA7EEF-F626-B69A-09C6-0AA7A54EE9E7} -title {Install Desktop Shortcut} -component InstallDesktopShortcut -command insert -active Yes -parent 28BAE662-E103-4E3F-D298-C8FBA36361FC -Condition 72D8B44E-E4CF-7551-645E-FB57C5B000E9 -active Yes -parent E32519F3-A540-C8F3-957F-4C1DB5B25DFE -title {String Is Condition} -component StringIsCondition -TreeObject::id 72D8B44E-E4CF-7551-645E-FB57C5B000E9 -Condition 03FA7EEF-F626-B69A-09C6-0AA7A54EE9E7 -active Yes -parent E32519F3-A540-C8F3-957F-4C1DB5B25DFE -title {File Exists Condition} -component FileExistsCondition -TreeObject::id 03FA7EEF-F626-B69A-09C6-0AA7A54EE9E7 -InstallComponent D86BBA5C-4903-33BA-59F8-4266A3D45896 -setup Install -type action -conditions {C4C0A903-CF2A-D25A-27AB-A64219FB7E70 5EC7056B-6F90-311E-2C6F-76E96164CFFD} -title {Install Quick Launch Shortcut} -component InstallWindowsShortcut -command insert -active Yes -parent 28BAE662-E103-4E3F-D298-C8FBA36361FC -Condition C4C0A903-CF2A-D25A-27AB-A64219FB7E70 -active Yes -parent D86BBA5C-4903-33BA-59F8-4266A3D45896 -title {String Is Condition} -component StringIsCondition -TreeObject::id C4C0A903-CF2A-D25A-27AB-A64219FB7E70 -Condition 5EC7056B-6F90-311E-2C6F-76E96164CFFD -active Yes -parent D86BBA5C-4903-33BA-59F8-4266A3D45896 -title {File Exists Condition} -component FileExistsCondition -TreeObject::id 5EC7056B-6F90-311E-2C6F-76E96164CFFD -InstallComponent 2A230259-3A6F-8669-8B8B-23C3E7C1BFC2 -setup Install -type action -conditions {4E5FC4FE-5D37-B216-CFFE-E046A2D6321E E560F3A1-208D-2B4F-2C87-E08595F8E1CD 9C1E4BD9-066D-ABCE-28D0-9E194B9F8475} -title {Launch Application} -component ExecuteExternalProgram -command insert -active No -parent 28BAE662-E103-4E3F-D298-C8FBA36361FC -Condition 4E5FC4FE-5D37-B216-CFFE-E046A2D6321E -active Yes -parent 2A230259-3A6F-8669-8B8B-23C3E7C1BFC2 -title {String Is Condition} -component StringIsCondition -TreeObject::id 4E5FC4FE-5D37-B216-CFFE-E046A2D6321E -Condition E560F3A1-208D-2B4F-2C87-E08595F8E1CD -active Yes -parent 2A230259-3A6F-8669-8B8B-23C3E7C1BFC2 -title {String Is Condition} -component StringIsCondition -TreeObject::id E560F3A1-208D-2B4F-2C87-E08595F8E1CD -Condition 9C1E4BD9-066D-ABCE-28D0-9E194B9F8475 -active Yes -parent 2A230259-3A6F-8669-8B8B-23C3E7C1BFC2 -title {File Exists Condition} -component FileExistsCondition -TreeObject::id 9C1E4BD9-066D-ABCE-28D0-9E194B9F8475 -InstallComponent 6B66969B-8882-7EFE-A351-31DEBA7E384E -setup Install -type actiongroup -title {Cancel Actions} -alias {Cancel Actions} -active Yes -parent ActionGroupsInstall -InstallComponent 4603766D-70BD-919C-AF5F-C4D7B1C181DB -setup Uninstall -type pane -title Uninstall -component Uninstall -active Yes -parent StandardUninstall -InstallComponent E5CBB018-A89D-3145-CFF5-CFC3B62BEA97 -setup Uninstall -type action -title {Modify Widget} -component ModifyWidget -active Yes -parent 4603766D-70BD-919C-AF5F-C4D7B1C181DB -InstallComponent 3F1FF865-1284-2577-16AB-65B308DCE28F -setup Uninstall -type action -title {Execute Action} -component ExecuteAction -active Yes -parent 4603766D-70BD-919C-AF5F-C4D7B1C181DB -InstallComponent C9AF2317-503F-07D9-EC26-343C95E4831C -setup Uninstall -type action -title {Move Forward} -component MoveForward -active Yes -parent 4603766D-70BD-919C-AF5F-C4D7B1C181DB -InstallComponent EE91F1AF-8AEB-B248-D932-3702CC788AF9 -setup Uninstall -type pane -conditions 173ABC5E-D4D9-9CAE-D79F-E3067EC87EC7 -title {Uninstall Details} -component UninstallDetails -command insert -active Yes -parent StandardUninstall -Condition 173ABC5E-D4D9-9CAE-D79F-E3067EC87EC7 -active Yes -parent EE91F1AF-8AEB-B248-D932-3702CC788AF9 -title {String Is Condition} -component StringIsCondition -TreeObject::id 173ABC5E-D4D9-9CAE-D79F-E3067EC87EC7 -InstallComponent B3012DC5-8A65-EBF0-8641-CE533A8A7A2D -setup Uninstall -type pane -title {Uninstall Complete} -component UninstallComplete -active Yes -parent StandardUninstall -InstallComponent 58863721-5610-F284-0B46-D2D1D4B93D16 -setup Uninstall -type action -title {Console Ask Yes Or No} -component ConsoleAskYesOrNo -active Yes -parent ConsoleUninstall -InstallComponent FB99914F-F566-94B5-8F96-F5A9A07DF1FA -setup Uninstall -type action -conditions 797C84AD-91E9-78BB-A794-B1406EEA6ABF -title Exit -component Exit -command insert -active Yes -parent ConsoleUninstall -Condition 797C84AD-91E9-78BB-A794-B1406EEA6ABF -active Yes -parent FB99914F-F566-94B5-8F96-F5A9A07DF1FA -title {String Is Condition} -component StringIsCondition -TreeObject::id 797C84AD-91E9-78BB-A794-B1406EEA6ABF -InstallComponent C3E9E5D9-58C8-C2C5-DF75-21D908A64782 -setup Uninstall -type action -title {Console Message} -component ConsoleMessage -active Yes -parent ConsoleUninstall -InstallComponent B113E8EE-10BD-0792-4CD3-7E0ADC8CD7FA -setup Uninstall -type action -title {Execute Action} -component ExecuteAction -active Yes -parent ConsoleUninstall -InstallComponent 442920D9-8A51-9476-14E4-787D5C230E84 -setup Uninstall -type action -title {Console Message} -component ConsoleMessage -active Yes -parent ConsoleUninstall -InstallComponent BF3067ED-139A-269F-F6DA-9D43B840779A -setup Uninstall -type action -title Exit -component Exit -active Yes -parent ConsoleUninstall -InstallComponent 9B935DA3-A0E5-9C04-D692-9D10B44ADC90 -setup Uninstall -type action -title {Execute Action} -component ExecuteAction -active Yes -parent SilentUninstall -InstallComponent D79DC0D2-38BC-9D9F-2DF4-3C76D89BF933 -setup Uninstall -type action -title Exit -component Exit -active Yes -parent SilentUninstall -InstallComponent 678C30B6-BF0A-238C-524A-2BFEC6876FC5 -setup Uninstall -type actiongroup -title {Setup Actions} -alias {Setup Actions} -active Yes -parent ActionGroupsUninstall -InstallComponent 3D180445-8990-20F7-13DC-93B6909B907F -setup Uninstall -type actiongroup -title {Startup Actions} -alias {Startup Actions} -active Yes -parent ActionGroupsUninstall -InstallComponent 1CA13495-CB19-27A9-56E5-9BCF91958249 -setup Uninstall -type action -conditions {F8921FAD-AFBD-348C-F26C-67855FA4691D 64B8D0F3-4B11-DA22-D6E7-7248872D5FA7} -title Exit -component Exit -command insert -active Yes -parent 3D180445-8990-20F7-13DC-93B6909B907F -Condition F8921FAD-AFBD-348C-F26C-67855FA4691D -active Yes -parent 1CA13495-CB19-27A9-56E5-9BCF91958249 -title {String Is Condition} -component StringIsCondition -TreeObject::id F8921FAD-AFBD-348C-F26C-67855FA4691D -Condition 64B8D0F3-4B11-DA22-D6E7-7248872D5FA7 -active Yes -parent 1CA13495-CB19-27A9-56E5-9BCF91958249 -title {Ask Yes or No} -component AskYesOrNo -TreeObject::id 64B8D0F3-4B11-DA22-D6E7-7248872D5FA7 -InstallComponent 521E782E-2C93-8C60-9B2A-B65552FFA8E4 -setup Uninstall -type actiongroup -title {Uninstall Actions} -alias {Uninstall Actions} -active Yes -parent ActionGroupsUninstall -InstallComponent 79C2EE18-497D-DE39-8AB6-777CE25D9484 -setup Uninstall -type action -title {Uninstall Selected Files} -component UninstallSelectedFiles -active Yes -parent 521E782E-2C93-8C60-9B2A-B65552FFA8E4 -InstallComponent 2D445859-68B9-1761-BA4F-DE91AFE5B9EB -setup Uninstall -type action -title {Uninstall Leftover Files} -component UninstallLeftoverFiles -active Yes -parent 521E782E-2C93-8C60-9B2A-B65552FFA8E4 -InstallComponent 167174E3-7241-9060-3A3C-1F0D169A1A1F -setup Uninstall -type action -title {Uninstall USB Driver} -component ExecuteExternalProgram -active Yes -parent 521E782E-2C93-8C60-9B2A-B65552FFA8E4 -InstallComponent A57E3390-AA3E-A868-2C7D-75ADF12D8471 -setup Uninstall -type actiongroup -title {Finish Actions} -alias {Finish Actions} -active Yes -parent ActionGroupsUninstall -InstallComponent AAFE58A0-2DFB-CA20-1F6E-D3815F885996 -setup Uninstall -type actiongroup -title {Cancel Actions} -alias {Cancel Actions} -active Yes -parent ActionGroupsUninstall - -array set Properties { -001FA257-6A8E-7CEA-ED5E-492247DF5E5A,Conditions -{0 conditions} - -03FA7EEF-F626-B69A-09C6-0AA7A54EE9E7,CheckCondition -{Before Action is Executed} - -03FA7EEF-F626-B69A-09C6-0AA7A54EE9E7,Filename -<%ProgramExecutable%> - -08195201-0797-932C-4B51-E5EF9D1D41BD,CheckCondition -{Before Action is Executed} - -08195201-0797-932C-4B51-E5EF9D1D41BD,String -<%InstallUSBDriver%> - -081A479A-572E-5133-4979-84456DB40EFA,CheckCondition -{Before Action is Executed} - -081A479A-572E-5133-4979-84456DB40EFA,String -{<%Property <%CurrentPane%> UserMustAcceptLicense%>} - -1039BE84-4163-2FCB-9798-D85E6C37B668,CheckCondition -{Before Action is Executed} - -1039BE84-4163-2FCB-9798-D85E6C37B668,Platform -Windows - -1356216E-90D2-8324-0EEB-975A64F23EB8,Message,subst -1 - -167174E3-7241-9060-3A3C-1F0D169A1A1F,Conditions -{0 conditions} - -167174E3-7241-9060-3A3C-1F0D169A1A1F,IgnoreErrors -Yes - -167174E3-7241-9060-3A3C-1F0D169A1A1F,IncludeStderr -Yes - -167174E3-7241-9060-3A3C-1F0D169A1A1F,ProgramCommandLine -{devcon.exe remove "USB\VID_054C&PID_029B"} - -167174E3-7241-9060-3A3C-1F0D169A1A1F,WorkingDirectory -<%InstallDir%>/driver - -173ABC5E-D4D9-9CAE-D79F-E3067EC87EC7,String -<%ErrorsOccurred%> - -1ADA4DE6-31A7-E816-7719-4C8558F5378D,CheckCondition -{Before Action is Executed} - -1ADA4DE6-31A7-E816-7719-4C8558F5378D,Operator -false - -1ADA4DE6-31A7-E816-7719-4C8558F5378D,String -<%UpgradeInstall%> - -1CA13495-CB19-27A9-56E5-9BCF91958249,Comment -{Ask the user if they want to proceed with the uninstall.} - -1D757BEB-2EA2-269E-B331-C41CB71831EF,Action -{Install Actions} - -1D757BEB-2EA2-269E-B331-C41CB71831EF,Conditions -{0 conditions} - -21B897C4-24BE-70D1-58EA-DE78EFA60719,Conditions -{1 condition} - -21B897C4-24BE-70D1-58EA-DE78EFA60719,IgnoreErrors -Yes - -21B897C4-24BE-70D1-58EA-DE78EFA60719,Message,subst -1 - -21B897C4-24BE-70D1-58EA-DE78EFA60719,Title,subst -1 - -27B44808-381F-7202-A0D9-40788CD679D0,Background -white - -27B44808-381F-7202-A0D9-40788CD679D0,Checked -No - -27B44808-381F-7202-A0D9-40788CD679D0,Conditions -{3 conditions} - -27B44808-381F-7202-A0D9-40788CD679D0,Text,subst -1 - -27B44808-381F-7202-A0D9-40788CD679D0,Type -checkbutton - -27B44808-381F-7202-A0D9-40788CD679D0,VirtualText -CreateQuickLaunchShortcut - -27B44808-381F-7202-A0D9-40788CD679D0,X -185 - -27B44808-381F-7202-A0D9-40788CD679D0,Y -170 - -28BAE662-E103-4E3F-D298-C8FBA36361FC,Alias -{Finish Actions} - -28BAE662-E103-4E3F-D298-C8FBA36361FC,Conditions -{0 conditions} - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,BackButton,subst -1 - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,CancelButton,subst -1 - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,Caption,subst -1 - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,Conditions -{0 conditions} - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,FileLabel,subst -1 - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,Message,subst -1 - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,NextButton,subst -1 - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,ProgressValue,subst -1 - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,Subtitle,subst -1 - -28FDA3F4-B799-901F-8A27-AA04F0C022AB,Title,subst -1 - -2A230259-3A6F-8669-8B8B-23C3E7C1BFC2,Active -No - -2A230259-3A6F-8669-8B8B-23C3E7C1BFC2,Conditions -{3 conditions} - -2A230259-3A6F-8669-8B8B-23C3E7C1BFC2,ProgramCommandLine -<%ProgramExecutable%> - -2A230259-3A6F-8669-8B8B-23C3E7C1BFC2,WaitForProgram -No - -2A230259-3A6F-8669-8B8B-23C3E7C1BFC2,WorkingDirectory -<%InstallDir%> - -2D445859-68B9-1761-BA4F-DE91AFE5B9EB,Conditions -{0 conditions} - -2DF93B55-41E5-75D5-E815-BD9FDC32D9F8,Alias -{Install Actions} - -2DF93B55-41E5-75D5-E815-BD9FDC32D9F8,Conditions -{0 conditions} - -2E18F4AE-F1BB-5C62-2900-73A576A49261,CheckCondition -{Before Action is Executed} - -2E18F4AE-F1BB-5C62-2900-73A576A49261,Operator -false - -2E18F4AE-F1BB-5C62-2900-73A576A49261,String -<%UpgradeInstall%> - -37A46164-C287-5D4A-E55A-A2329E25E829,CheckCondition -{Before Action is Executed} - -37A46164-C287-5D4A-E55A-A2329E25E829,Filename -<%ProgramExecutable%> - -3D180445-8990-20F7-13DC-93B6909B907F,Alias -{Startup Actions} - -3EA07B17-04D8-6508-B535-96CC7173B49A,BackButton,subst -1 - -3EA07B17-04D8-6508-B535-96CC7173B49A,CancelButton,subst -1 - -3EA07B17-04D8-6508-B535-96CC7173B49A,Caption,subst -1 - -3EA07B17-04D8-6508-B535-96CC7173B49A,Conditions -{1 condition} - -3EA07B17-04D8-6508-B535-96CC7173B49A,Message,subst -1 - -3EA07B17-04D8-6508-B535-96CC7173B49A,NextButton,subst -1 - -3F1FF865-1284-2577-16AB-65B308DCE28F,Action -{Uninstall Actions} - -3F2A14F0-06AC-C9D3-1F07-311F41E1338E,Alias -{Startup Actions} - -3F2A14F0-06AC-C9D3-1F07-311F41E1338E,Conditions -{0 conditions} - -442920D9-8A51-9476-14E4-787D5C230E84,Message,subst -1 - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,BackButton,subst -1 - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,CancelButton,subst -1 - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,Caption,subst -1 - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,Conditions -{0 conditions} - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,FileValue,subst -1 - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,Message,subst -1 - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,NextButton,subst -1 - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,ProgressValue,subst -1 - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,Subtitle,subst -1 - -4603766D-70BD-919C-AF5F-C4D7B1C181DB,Title,subst -1 - -48596410-DF5A-1E56-D59C-1B1E2F094FCA,Conditions -{1 condition} - -48596410-DF5A-1E56-D59C-1B1E2F094FCA,IconPath -{<%InstallDir%>\library.ico} - -48596410-DF5A-1E56-D59C-1B1E2F094FCA,ShortcutName -<%AppName%> - -48596410-DF5A-1E56-D59C-1B1E2F094FCA,TargetFileName -<%ProgramExecutable%> - -48596410-DF5A-1E56-D59C-1B1E2F094FCA,WorkingDirectory -<%InstallDir%> - -4AAFE838-3E44-5147-0F04-65DB5B647191,CheckCondition -{Before Action is Executed} - -4AAFE838-3E44-5147-0F04-65DB5B647191,Operator -false - -4AAFE838-3E44-5147-0F04-65DB5B647191,String -<%UpgradeInstall%> - -4E5FC4FE-5D37-B216-CFFE-E046A2D6321E,CheckCondition -{Before Action is Executed} - -4E5FC4FE-5D37-B216-CFFE-E046A2D6321E,String -<%GuiMode%> - -521E782E-2C93-8C60-9B2A-B65552FFA8E4,Alias -{Uninstall Actions} - -521E782E-2C93-8C60-9B2A-B65552FFA8E4,Conditions -{0 conditions} - -52ACF73B-2106-3106-B7F0-D8587A4A6A3B,CheckCondition -{Before Action is Executed} - -52ACF73B-2106-3106-B7F0-D8587A4A6A3B,Filename -<%ProgramExecutable%> - -54B45A5F-FF59-0E99-952F-165BAA590889,Conditions -{0 conditions} - -580ACF2C-517F-5E48-9DEF-7DAEFBA59FDD,AutoUpdate -Yes - -580ACF2C-517F-5E48-9DEF-7DAEFBA59FDD,Conditions -{1 condition} - -580ACF2C-517F-5E48-9DEF-7DAEFBA59FDD,SubstituteValue -Yes - -580ACF2C-517F-5E48-9DEF-7DAEFBA59FDD,Value -<%PreviousInstallDir%> - -580ACF2C-517F-5E48-9DEF-7DAEFBA59FDD,VirtualText -InstallDir - -58863721-5610-F284-0B46-D2D1D4B93D16,Default -Yes - -58863721-5610-F284-0B46-D2D1D4B93D16,Prompt -<%UninstallStartupText%> - -5C66451D-6042-DBDE-0D8C-31156EE244AD,Conditions -{0 conditions} - -5C66451D-6042-DBDE-0D8C-31156EE244AD,State -disabled - -5C66451D-6042-DBDE-0D8C-31156EE244AD,Widget -{Back Button;Next Button} - -5EC7056B-6F90-311E-2C6F-76E96164CFFD,CheckCondition -{Before Action is Executed} - -5EC7056B-6F90-311E-2C6F-76E96164CFFD,Filename -<%ProgramExecutable%> - -64B8D0F3-4B11-DA22-D6E7-7248872D5FA7,CheckCondition -{Before Action is Executed} - -64B8D0F3-4B11-DA22-D6E7-7248872D5FA7,Message,subst -1 - -64B8D0F3-4B11-DA22-D6E7-7248872D5FA7,Title,subst -1 - -64B8D0F3-4B11-DA22-D6E7-7248872D5FA7,TrueValue -No - -657FDE96-809B-821F-3294-15E637B85E6E,CheckCondition -{Before Action is Executed} - -657FDE96-809B-821F-3294-15E637B85E6E,Filename -<%ProgramExecutable%> - -6661142D-D174-F52E-CD1D-6BFB3649BC64,BackButton,subst -1 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,BrowseButton,subst -1 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,BrowseText,subst -1 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,CancelButton,subst -1 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,Caption,subst -1 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,Conditions -{2 conditions} - -6661142D-D174-F52E-CD1D-6BFB3649BC64,Destination,subst -1 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,DestinationLabel,subst -0 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,Message,subst -1 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,NextButton,subst -1 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,Subtitle,subst -1 - -6661142D-D174-F52E-CD1D-6BFB3649BC64,Title,subst -1 - -6734BA65-B25A-DA08-812C-EE0775F91A89,Conditions -{0 conditions} - -6734BA65-B25A-DA08-812C-EE0775F91A89,FileName -{} - -6734BA65-B25A-DA08-812C-EE0775F91A89,IconPath -{<%InstallDir%>\viewer.ico} - -6734BA65-B25A-DA08-812C-EE0775F91A89,InstallForAllUsers -Yes - -6734BA65-B25A-DA08-812C-EE0775F91A89,ShortcutName -{Ebook Viewer} - -6734BA65-B25A-DA08-812C-EE0775F91A89,TargetFileName -{<%InstallDir%>\ebook-viewer<%Ext%>} - -6734BA65-B25A-DA08-812C-EE0775F91A89,WorkingDirectory -<%InstallDir%> - -678C30B6-BF0A-238C-524A-2BFEC6876FC5,Alias -{Setup Actions} - -67F58321-C0AF-1721-C519-0FCCABD66FE9,ExitType -Finish - -69188956-D764-5B26-B048-46A4239C3733,CheckCondition -{Before Action is Executed} - -69188956-D764-5B26-B048-46A4239C3733,Platform -Windows - -6B66969B-8882-7EFE-A351-31DEBA7E384E,Alias -{Cancel Actions} - -6B66969B-8882-7EFE-A351-31DEBA7E384E,Conditions -{0 conditions} - -6DE3B369-9D6B-6BC1-4EA0-2C54ECE159EB,CheckCondition -{Before Action is Executed} - -6DE3B369-9D6B-6BC1-4EA0-2C54ECE159EB,Operator -{not empty} - -6DE3B369-9D6B-6BC1-4EA0-2C54ECE159EB,String -<%PreviousInstallDir%> - -710F2507-2557-652D-EA55-440D710EFDFA,Alias -{Install USB Driver} - -710F2507-2557-652D-EA55-440D710EFDFA,Comment -{Instal the USB driver for the SONY PRS500} - -710F2507-2557-652D-EA55-440D710EFDFA,Conditions -{3 conditions} - -710F2507-2557-652D-EA55-440D710EFDFA,ConsoleTitle -{} - -710F2507-2557-652D-EA55-440D710EFDFA,ExecuteAction -{Before Pane is Displayed} - -710F2507-2557-652D-EA55-440D710EFDFA,IncludeStderr -Yes - -710F2507-2557-652D-EA55-440D710EFDFA,ProgramCommandLine -{devcon.exe install prs500.inf "USB\VID_054&PID029B"} - -710F2507-2557-652D-EA55-440D710EFDFA,ResultVirtualText -DevconResult - -710F2507-2557-652D-EA55-440D710EFDFA,StatusVirtualText -DevconStatus - -710F2507-2557-652D-EA55-440D710EFDFA,WorkingDirectory -<%InstallDir%>/driver - -72D8B44E-E4CF-7551-645E-FB57C5B000E9,CheckCondition -{Before Action is Executed} - -72D8B44E-E4CF-7551-645E-FB57C5B000E9,String -<%CreateDesktopShortcut%> - -76FA3CA2-1F09-75C5-C6CF-72719A8EC4A5,CheckCondition -{Before Action is Executed} - -76FA3CA2-1F09-75C5-C6CF-72719A8EC4A5,String -<%InstallUSBDriver%> - -77D1144B-1013-79B5-034B-5D6BDA6B2FD2,Conditions -{0 conditions} - -77D1144B-1013-79B5-034B-5D6BDA6B2FD2,FileName -{} - -77D1144B-1013-79B5-034B-5D6BDA6B2FD2,IconPath -{<%InstallDir%>\viewer.ico} - -77D1144B-1013-79B5-034B-5D6BDA6B2FD2,InstallForAllUsers -Yes - -77D1144B-1013-79B5-034B-5D6BDA6B2FD2,ShortcutName -{LRF Viewer} - -77D1144B-1013-79B5-034B-5D6BDA6B2FD2,TargetFileName -{<%InstallDir%>\lrfviewer<%Ext%>} - -77D1144B-1013-79B5-034B-5D6BDA6B2FD2,WorkingDirectory -<%InstallDir%> - -797C84AD-91E9-78BB-A794-B1406EEA6ABF,CheckCondition -{Before Action is Executed} - -797C84AD-91E9-78BB-A794-B1406EEA6ABF,Operator -false - -797C84AD-91E9-78BB-A794-B1406EEA6ABF,String -<%Answer%> - -7C1E2A34-CD5C-F707-9DF3-92DF130C3BFD,Alias -{Setup Actions} - -7C1E2A34-CD5C-F707-9DF3-92DF130C3BFD,Conditions -{0 conditions} - -7C2D1F15-9A28-9938-3C1B-681A4D79C7B2,CheckCondition -{Before Action is Executed} - -7C2D1F15-9A28-9938-3C1B-681A4D79C7B2,Operator -false - -7C2D1F15-9A28-9938-3C1B-681A4D79C7B2,String -<%InstallStopped%> - -7C57D3D3-B1DB-0888-B098-B46AD4F99F7E,Background -white - -7C57D3D3-B1DB-0888-B098-B46AD4F99F7E,Text,subst -1 - -7C57D3D3-B1DB-0888-B098-B46AD4F99F7E,Type -checkbutton - -7C57D3D3-B1DB-0888-B098-B46AD4F99F7E,VirtualText -LaunchApplication - -7C57D3D3-B1DB-0888-B098-B46AD4F99F7E,X -185 - -7C57D3D3-B1DB-0888-B098-B46AD4F99F7E,Y -160 - -7CCDA4BB-861C-C21E-3011-E93DB58F07D6,Conditions -{1 condition} - -7CCDA4BB-861C-C21E-3011-E93DB58F07D6,ExecuteAction -{Before Next Pane is Displayed} - -825CDD1E-9B3D-E64E-5381-5C5557D204A2,CheckCondition -{Before Action is Executed} - -825CDD1E-9B3D-E64E-5381-5C5557D204A2,Operator -false - -825CDD1E-9B3D-E64E-5381-5C5557D204A2,String -<%Answer%> - -8A7FD0C2-F053-8764-F204-4BAE71E05708,BackButton,subst -1 - -8A7FD0C2-F053-8764-F204-4BAE71E05708,CancelButton,subst -1 - -8A7FD0C2-F053-8764-F204-4BAE71E05708,Caption,subst -1 - -8A7FD0C2-F053-8764-F204-4BAE71E05708,Conditions -{0 conditions} - -8A7FD0C2-F053-8764-F204-4BAE71E05708,Message,subst -1 - -8A7FD0C2-F053-8764-F204-4BAE71E05708,NextButton,subst -1 - -940F7FED-7D20-7264-3BF9-ED78205A76B3,Background -white - -940F7FED-7D20-7264-3BF9-ED78205A76B3,Conditions -{2 conditions} - -940F7FED-7D20-7264-3BF9-ED78205A76B3,Text,subst -1 - -940F7FED-7D20-7264-3BF9-ED78205A76B3,Type -checkbutton - -940F7FED-7D20-7264-3BF9-ED78205A76B3,VirtualText -CreateDesktopShortcut - -940F7FED-7D20-7264-3BF9-ED78205A76B3,X -185 - -940F7FED-7D20-7264-3BF9-ED78205A76B3,Y -150 - -96440B8B-C6D0-FCCA-6D3C-7ECE1C304CC0,CheckCondition -{Before Action is Executed} - -96440B8B-C6D0-FCCA-6D3C-7ECE1C304CC0,Filename -<%ProgramExecutable%> - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,AcceptRadiobutton,subst -0 - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,Active -Yes - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,BackButton,subst -1 - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,Buttons -Next/Cancel - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,CancelButton,subst -1 - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,Caption,subst -1 - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,Conditions -{0 conditions} - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,DeclineRadiobutton,subst -0 - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,Message,subst -1 - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,NextButton,subst -1 - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,Subtitle,subst -1 - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,Text,subst -1 - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,Title,subst -1 - -9B935DA3-A0E5-9C04-D692-9D10B44ADC90,Action -{Uninstall Actions} - -9C1E4BD9-066D-ABCE-28D0-9E194B9F8475,CheckCondition -{Before Action is Executed} - -9C1E4BD9-066D-ABCE-28D0-9E194B9F8475,Filename -<%ProgramExecutable%> - -9E0D138E-5FFC-0F18-F110-F093644E4DD2,CheckCondition -{Before Next Pane is Displayed} - -9E0D138E-5FFC-0F18-F110-F093644E4DD2,FailureMessage -<%DirectoryPermissionText%> - -9E0D138E-5FFC-0F18-F110-F093644E4DD2,Filename -<%InstallDir%> - -9E0D138E-5FFC-0F18-F110-F093644E4DD2,Permission -{can create} - -A05E9D13-9686-83DD-C6AD-2A4D912C5B81,Action -{Install Actions} - -A05E9D13-9686-83DD-C6AD-2A4D912C5B81,Conditions -{0 conditions} - -A1E6AD62-FD68-14BF-2D05-264DC2B370A5,Prompt -<%ConsoleSelectDestinationText%> - -A1E6AD62-FD68-14BF-2D05-264DC2B370A5,VirtualText -InstallDir - -A246E5D4-5489-19CC-C7B1-AA0C98D55F85,Background -white - -A246E5D4-5489-19CC-C7B1-AA0C98D55F85,Checked -No - -A246E5D4-5489-19CC-C7B1-AA0C98D55F85,Conditions -{3 conditions} - -A246E5D4-5489-19CC-C7B1-AA0C98D55F85,Text,subst -1 - -A246E5D4-5489-19CC-C7B1-AA0C98D55F85,Type -checkbutton - -A246E5D4-5489-19CC-C7B1-AA0C98D55F85,VirtualText -CreateQuickLaunchShortcut - -A246E5D4-5489-19CC-C7B1-AA0C98D55F85,X -185 - -A246E5D4-5489-19CC-C7B1-AA0C98D55F85,Y -200 - -A4388F3F-0D32-F14E-BA00-1BE7F54B05ED,CheckCondition -{Before Action is Executed} - -A4388F3F-0D32-F14E-BA00-1BE7F54B05ED,Operator -false - -A4388F3F-0D32-F14E-BA00-1BE7F54B05ED,String -<%LicenseAccepted%> - -A57E3390-AA3E-A868-2C7D-75ADF12D8471,Alias -{Finish Actions} - -A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39,BackButton,subst -1 - -A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39,CancelButton,subst -1 - -A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39,Caption,subst -1 - -A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39,Conditions -{0 conditions} - -A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39,Message,subst -1 - -A5A97363-4CD6-4A6A-3D39-6EFC56BA9D39,NextButton,subst -1 - -A75C28A7-801B-22B3-C00A-B4B6F148DAA5,CheckCondition -{Before Action is Executed} - -A75C28A7-801B-22B3-C00A-B4B6F148DAA5,Operator -false - -A75C28A7-801B-22B3-C00A-B4B6F148DAA5,String -<%UpgradeInstall%> - -A75C97CC-01AC-C12A-D663-A54E3257F11B,State -disabled - -A75C97CC-01AC-C12A-D663-A54E3257F11B,Widget -{Back Button;Next Button} - -AAEC34E6-7F02-18F2-30BB-744738192A3B,Conditions -{2 conditions} - -AAEC34E6-7F02-18F2-30BB-744738192A3B,State -disabled - -AAEC34E6-7F02-18F2-30BB-744738192A3B,Widget -NextButton - -AAF04AF0-329D-75A6-BB68-60ECF2EB74F0,CheckCondition -{Before Action is Executed} - -AAF04AF0-329D-75A6-BB68-60ECF2EB74F0,Operator -false - -AAF04AF0-329D-75A6-BB68-60ECF2EB74F0,String -<%InstallStopped%> - -AAFE58A0-2DFB-CA20-1F6E-D3815F885996,Alias -{Cancel Actions} - -ADBCD53E-C9A6-A3CA-1AAC-0DB0CE84F71E,CheckCondition -{Before Action is Executed} - -ADBCD53E-C9A6-A3CA-1AAC-0DB0CE84F71E,FailureMessage -{Cannot proceed because calibre is running. You can quit it by right clicking the calibre system tray icon.} - -ADBCD53E-C9A6-A3CA-1AAC-0DB0CE84F71E,ResultVirtualText -CalibreRunning - -ADBCD53E-C9A6-A3CA-1AAC-0DB0CE84F71E,Script -{set pid [::InstallAPI::FindProcesses -name calibre.exe] -if {$pid eq ""} { - ## myapp.exe is not running - return 1 -} -return 0} - -AIX-ppc,Active -No - -AIX-ppc,BuildSeparateArchives -No - -AIX-ppc,DefaultDirectoryPermission -0755 - -AIX-ppc,DefaultFilePermission -0755 - -AIX-ppc,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -AIX-ppc,FallBackToConsole -Yes - -AIX-ppc,InstallDir -<%Home%>/<%ShortAppName%> - -AIX-ppc,InstallMode -Standard - -AIX-ppc,InstallType -Typical - -AIX-ppc,ProgramExecutable -<%InstallDir%>/calibre - -AIX-ppc,ProgramFolderAllUsers -No - -AIX-ppc,ProgramFolderName -<%AppName%> - -AIX-ppc,ProgramLicense -<%InstallDir%>/LICENSE - -AIX-ppc,ProgramName -{} - -AIX-ppc,ProgramReadme -<%InstallDir%>/README.txt - -AIX-ppc,PromptForRoot -Yes - -AIX-ppc,RequireRoot -No - -AIX-ppc,RootInstallDir -/usr/local/<%ShortAppName%> - -B113E8EE-10BD-0792-4CD3-7E0ADC8CD7FA,Action -{Uninstall Actions} - -B3012DC5-8A65-EBF0-8641-CE533A8A7A2D,BackButton,subst -1 - -B3012DC5-8A65-EBF0-8641-CE533A8A7A2D,CancelButton,subst -1 - -B3012DC5-8A65-EBF0-8641-CE533A8A7A2D,Caption,subst -1 - -B3012DC5-8A65-EBF0-8641-CE533A8A7A2D,Message,subst -1 - -B3012DC5-8A65-EBF0-8641-CE533A8A7A2D,NextButton,subst -1 - -B3F43ECF-D504-F7A0-45FE-A735D202B6F0,Comment -{Do not display this pane if this is an upgrade install unless there is more than one installation present} - -B3F43ECF-D504-F7A0-45FE-A735D202B6F0,Script -{!<%UpgradeInstall%> || <%PreviousInstallCount%> != 1} - -B6D03F99-8B73-BE6E-1050-721B286D3D60,Action -{Install Actions} - -B6D03F99-8B73-BE6E-1050-721B286D3D60,Conditions -{0 conditions} - -B7F0CB71-720B-7DC9-5C5E-AA1AF92D78E2,CheckCondition -{Before Action is Executed} - -B7F0CB71-720B-7DC9-5C5E-AA1AF92D78E2,Operator -false - -B7F0CB71-720B-7DC9-5C5E-AA1AF92D78E2,String -<%InstallStopped%> - -BDC2A4B5-C169-A971-4F35-13B1BF3F8C24,CheckCondition -{Before Action is Executed} - -BDC2A4B5-C169-A971-4F35-13B1BF3F8C24,Filename -<%ProgramExecutable%> - -BE4A731E-1FC2-87A1-547D-91E2CA467AA7,Conditions -{0 conditions} - -BE4A731E-1FC2-87A1-547D-91E2CA467AA7,Directory -<%InstallDir%> - -BE4A731E-1FC2-87A1-547D-91E2CA467AA7,ExecuteAction -{Before Pane is Displayed} - -BE4A731E-1FC2-87A1-547D-91E2CA467AA7,Level -system - -BEF8D398-58BA-1F66-39D6-D4A63D5BEEF9,Destination -<%InstallDir%> - -BEF8D398-58BA-1F66-39D6-D4A63D5BEEF9,FileUpdateMethod -{Always overwrite files} - -BEF8D398-58BA-1F66-39D6-D4A63D5BEEF9,Name -{Program Files} - -BF3067ED-139A-269F-F6DA-9D43B840779A,ExitType -Finish - -BFD200F2-6AC9-8FE2-046F-48E5126BE639,Action -{Install Actions} - -C14CC317-9757-2C79-64C6-BC6C8A267CB1,Conditions -{1 condition} - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message,subst -1 - -C4C0A903-CF2A-D25A-27AB-A64219FB7E70,CheckCondition -{Before Action is Executed} - -C4C0A903-CF2A-D25A-27AB-A64219FB7E70,String -<%CreateQuickLaunchShortcut%> - -C5416030-8AB4-3466-F341-9A0BBFEA55EF,CheckCondition -{Before Action is Executed} - -C5416030-8AB4-3466-F341-9A0BBFEA55EF,Operator -false - -C5416030-8AB4-3466-F341-9A0BBFEA55EF,String -<%UpgradeInstall%> - -C5AD5B0C-26BE-16E5-899A-9A9436C8F688,ExitType -Finish - -C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D,Background -white - -C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D,Conditions -{2 conditions} - -C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D,Text,subst -1 - -C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D,Type -checkbutton - -C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D,VirtualText -CreateDesktopShortcut - -C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D,X -185 - -C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D,Y -180 - -C93967A6-0618-9A8C-9554-35292F85F61B,Conditions -{0 conditions} - -C93967A6-0618-9A8C-9554-35292F85F61B,Default -Yes - -C93967A6-0618-9A8C-9554-35292F85F61B,Prompt -<%InstallStartupText%> - -CFBE4459-450B-1FAB-3422-609544334AA2,CheckCondition -{Before Action is Executed} - -CFBE4459-450B-1FAB-3422-609544334AA2,Operator -false - -CFBE4459-450B-1FAB-3422-609544334AA2,String -<%InstallStopped%> - -D79DC0D2-38BC-9D9F-2DF4-3C76D89BF933,ExitType -Finish - -D7F585DB-0DEC-A94E-DAB0-94D558D82764,CheckCondition -{Before Next Pane is Displayed} - -D7F585DB-0DEC-A94E-DAB0-94D558D82764,Comment -{Check if calibre.exe is still running} - -D7F585DB-0DEC-A94E-DAB0-94D558D82764,FailureMessage -{calibre is still running. Please shut it down before proceeding. You can quit calibre by right clicking on the calibre system tray icon.} - -D7F585DB-0DEC-A94E-DAB0-94D558D82764,ResultVirtualText -CalibreRunning - -D7F585DB-0DEC-A94E-DAB0-94D558D82764,Script -{set pid [::InstallAPI::FindProcesses -name calibre.exe] -if {$pid eq ""} { - ## myapp.exe is not running - return 1 -} -return 0} - -D86BBA5C-4903-33BA-59F8-4266A3D45896,Conditions -{2 conditions} - -D86BBA5C-4903-33BA-59F8-4266A3D45896,IconPath -{<%InstallDir%>\library.ico} - -D86BBA5C-4903-33BA-59F8-4266A3D45896,ShortcutDirectory -<%QUICK_LAUNCH%> - -D86BBA5C-4903-33BA-59F8-4266A3D45896,ShortcutName -<%AppName%> - -D86BBA5C-4903-33BA-59F8-4266A3D45896,TargetFileName -<%ProgramExecutable%> - -D86BBA5C-4903-33BA-59F8-4266A3D45896,WorkingDirectory -<%InstallDir%> - -D9ADE41C-B744-690C-2CED-CF826BF03D2E,Components -F6829AB7-9F66-4CEE-CA0E-21F54C6D3609 - -D9ADE41C-B744-690C-2CED-CF826BF03D2E,Description,subst -1 - -D9ADE41C-B744-690C-2CED-CF826BF03D2E,DisplayName,subst -1 - -D9ADE41C-B744-690C-2CED-CF826BF03D2E,Name -Typical - -E32519F3-A540-C8F3-957F-4C1DB5B25DFE,Conditions -{2 conditions} - -E32519F3-A540-C8F3-957F-4C1DB5B25DFE,IconPath -{<%InstallDir%>\library.ico} - -E32519F3-A540-C8F3-957F-4C1DB5B25DFE,ShortcutName -<%AppName%> - -E32519F3-A540-C8F3-957F-4C1DB5B25DFE,TargetFileName -<%ProgramExecutable%> - -E32519F3-A540-C8F3-957F-4C1DB5B25DFE,WorkingDirectory -<%InstallDir%> - -E560F3A1-208D-2B4F-2C87-E08595F8E1CD,CheckCondition -{Before Action is Executed} - -E560F3A1-208D-2B4F-2C87-E08595F8E1CD,String -<%LaunchApplication%> - -E57B5080-47C0-3209-40DC-144F41FBF866,CheckCondition -{Before Action is Executed} - -E57B5080-47C0-3209-40DC-144F41FBF866,Platform -Windows - -E5CBB018-A89D-3145-CFF5-CFC3B62BEA97,State -disabled - -E5CBB018-A89D-3145-CFF5-CFC3B62BEA97,Widget -{NextButton; CancelButton} - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message,subst -1 - -EDD03974-B223-B62F-DA4B-FD5E94861CFE,Conditions -{1 condition} - -EE3AF196-AF0F-4947-CD75-7894634F48A6,Conditions -{1 condition} - -EE3AF196-AF0F-4947-CD75-7894634F48A6,FileName -<%ShortAppName%>-uninstall - -EE3AF196-AF0F-4947-CD75-7894634F48A6,ShortcutName -{Uninstall <%AppName%>} - -EE3AF196-AF0F-4947-CD75-7894634F48A6,TargetFileName -<%Uninstaller%> - -EE3AF196-AF0F-4947-CD75-7894634F48A6,WorkingDirectory -<%InstallDir%> - -EE91F1AF-8AEB-B248-D932-3702CC788AF9,BackButton,subst -1 - -EE91F1AF-8AEB-B248-D932-3702CC788AF9,CancelButton,subst -1 - -EE91F1AF-8AEB-B248-D932-3702CC788AF9,Caption,subst -1 - -EE91F1AF-8AEB-B248-D932-3702CC788AF9,Message,subst -1 - -EE91F1AF-8AEB-B248-D932-3702CC788AF9,NextButton,subst -1 - -EE91F1AF-8AEB-B248-D932-3702CC788AF9,Subtitle,subst -1 - -EE91F1AF-8AEB-B248-D932-3702CC788AF9,Text,subst -1 - -EE91F1AF-8AEB-B248-D932-3702CC788AF9,Title,subst -1 - -F6829AB7-9F66-4CEE-CA0E-21F54C6D3609,Description,subst -1 - -F6829AB7-9F66-4CEE-CA0E-21F54C6D3609,DisplayName,subst -1 - -F6829AB7-9F66-4CEE-CA0E-21F54C6D3609,FileGroups -BEF8D398-58BA-1F66-39D6-D4A63D5BEEF9 - -F6829AB7-9F66-4CEE-CA0E-21F54C6D3609,Name -Main - -F6829AB7-9F66-4CEE-CA0E-21F54C6D3609,RequiredComponent -Yes - -F6C53555-674E-0479-7EC0-FE737201EA0A,CheckCondition -{Before Next Action is Executed} - -F6C53555-674E-0479-7EC0-FE737201EA0A,FailureMessage -<%DirectoryPermissionText%> - -F6C53555-674E-0479-7EC0-FE737201EA0A,Filename -<%InstallDir%> - -F6C53555-674E-0479-7EC0-FE737201EA0A,Permission -{can create} - -F8921FAD-AFBD-348C-F26C-67855FA4691D,CheckCondition -{Before Action is Executed} - -F8921FAD-AFBD-348C-F26C-67855FA4691D,String -<%GuiMode%> - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,BackButton,subst -1 - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,CancelButton,subst -1 - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,Caption,subst -1 - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,Conditions -{0 conditions} - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,FileLabel,subst -1 - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,Message,subst -1 - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,NextButton,subst -1 - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,ProgressValue,subst -1 - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,Subtitle,subst -1 - -FAE98A0F-B6A9-30D2-A9EA-33F9D5F8B3D0,Title,subst -1 - -FBA33088-C809-DD6B-D337-EADBF1CEE966,CheckCondition -{Before Action is Executed} - -FBA33088-C809-DD6B-D337-EADBF1CEE966,Operator -false - -FBA33088-C809-DD6B-D337-EADBF1CEE966,String -<%InstallStopped%> - -FreeBSD-4-x86,Active -No - -FreeBSD-4-x86,BuildSeparateArchives -No - -FreeBSD-4-x86,DefaultDirectoryPermission -0755 - -FreeBSD-4-x86,DefaultFilePermission -0755 - -FreeBSD-4-x86,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -FreeBSD-4-x86,FallBackToConsole -Yes - -FreeBSD-4-x86,InstallDir -<%Home%>/<%ShortAppName%> - -FreeBSD-4-x86,InstallMode -Standard - -FreeBSD-4-x86,InstallType -Typical - -FreeBSD-4-x86,ProgramExecutable -<%InstallDir%>/calibre - -FreeBSD-4-x86,ProgramFolderAllUsers -No - -FreeBSD-4-x86,ProgramFolderName -<%AppName%> - -FreeBSD-4-x86,ProgramLicense -<%InstallDir%>/LICENSE.txt - -FreeBSD-4-x86,ProgramName -{} - -FreeBSD-4-x86,ProgramReadme -<%InstallDir%>/README.txt - -FreeBSD-4-x86,PromptForRoot -Yes - -FreeBSD-4-x86,RequireRoot -No - -FreeBSD-4-x86,RootInstallDir -/usr/local/<%ShortAppName%> - -FreeBSD-5-x86,Active -No - -FreeBSD-5-x86,BuildSeparateArchives -No - -FreeBSD-5-x86,DefaultDirectoryPermission -0755 - -FreeBSD-5-x86,DefaultFilePermission -0755 - -FreeBSD-5-x86,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -FreeBSD-5-x86,FallBackToConsole -Yes - -FreeBSD-5-x86,InstallDir -<%Home%>/<%ShortAppName%> - -FreeBSD-5-x86,InstallMode -Standard - -FreeBSD-5-x86,InstallType -Typical - -FreeBSD-5-x86,ProgramExecutable -{} - -FreeBSD-5-x86,ProgramFolderAllUsers -No - -FreeBSD-5-x86,ProgramFolderName -<%AppName%> - -FreeBSD-5-x86,ProgramLicense -<%InstallDir%>/LICENSE.txt - -FreeBSD-5-x86,ProgramName -{} - -FreeBSD-5-x86,ProgramReadme -<%InstallDir%>/README.txt - -FreeBSD-5-x86,PromptForRoot -Yes - -FreeBSD-5-x86,RequireRoot -No - -FreeBSD-5-x86,RootInstallDir -/usr/local/<%ShortAppName%> - -FreeBSD-6-x86,Active -No - -FreeBSD-6-x86,BuildSeparateArchives -No - -FreeBSD-6-x86,DefaultDirectoryPermission -0755 - -FreeBSD-6-x86,DefaultFilePermission -0755 - -FreeBSD-6-x86,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -FreeBSD-6-x86,FallBackToConsole -Yes - -FreeBSD-6-x86,InstallDir -<%Home%>/<%ShortAppName%> - -FreeBSD-6-x86,InstallMode -Standard - -FreeBSD-6-x86,InstallType -Typical - -FreeBSD-6-x86,ProgramExecutable -{} - -FreeBSD-6-x86,ProgramFolderAllUsers -No - -FreeBSD-6-x86,ProgramFolderName -<%AppName%> - -FreeBSD-6-x86,ProgramLicense -<%InstallDir%>/LICENSE.txt - -FreeBSD-6-x86,ProgramName -{} - -FreeBSD-6-x86,ProgramReadme -<%InstallDir%>/README.txt - -FreeBSD-6-x86,PromptForRoot -Yes - -FreeBSD-6-x86,RequireRoot -No - -FreeBSD-6-x86,RootInstallDir -/usr/local/<%ShortAppName%> - -FreeBSD-7-x86,Active -No - -FreeBSD-7-x86,BuildSeparateArchives -No - -FreeBSD-7-x86,DefaultDirectoryPermission -0755 - -FreeBSD-7-x86,DefaultFilePermission -0755 - -FreeBSD-7-x86,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -FreeBSD-7-x86,FallBackToConsole -Yes - -FreeBSD-7-x86,InstallDir -<%Home%>/<%ShortAppName%> - -FreeBSD-7-x86,InstallMode -Standard - -FreeBSD-7-x86,InstallType -Typical - -FreeBSD-7-x86,ProgramExecutable -{} - -FreeBSD-7-x86,ProgramFolderAllUsers -No - -FreeBSD-7-x86,ProgramFolderName -<%AppName%> - -FreeBSD-7-x86,ProgramLicense -<%InstallDir%>/LICENSE.txt - -FreeBSD-7-x86,ProgramName -{} - -FreeBSD-7-x86,ProgramReadme -<%InstallDir%>/README.txt - -FreeBSD-7-x86,PromptForRoot -Yes - -FreeBSD-7-x86,RequireRoot -No - -FreeBSD-7-x86,RootInstallDir -/usr/local/<%ShortAppName%> - -FreeBSD-x86,Active -No - -FreeBSD-x86,BuildSeparateArchives -No - -FreeBSD-x86,DefaultDirectoryPermission -0755 - -FreeBSD-x86,DefaultFilePermission -0755 - -FreeBSD-x86,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -FreeBSD-x86,FallBackToConsole -Yes - -FreeBSD-x86,InstallDir -<%Home%>/<%ShortAppName%> - -FreeBSD-x86,InstallMode -Standard - -FreeBSD-x86,InstallType -Typical - -FreeBSD-x86,ProgramExecutable -<%InstallDir%>/calibre - -FreeBSD-x86,ProgramFolderAllUsers -No - -FreeBSD-x86,ProgramFolderName -<%AppName%> - -FreeBSD-x86,ProgramLicense -<%InstallDir%>/LICENSE.txt - -FreeBSD-x86,ProgramName -{} - -FreeBSD-x86,ProgramReadme -<%InstallDir%>/README.txt - -FreeBSD-x86,PromptForRoot -Yes - -FreeBSD-x86,RequireRoot -No - -FreeBSD-x86,RootInstallDir -/usr/local/<%ShortAppName%> - -HPUX-hppa,Active -No - -HPUX-hppa,BuildSeparateArchives -No - -HPUX-hppa,DefaultDirectoryPermission -0755 - -HPUX-hppa,DefaultFilePermission -0755 - -HPUX-hppa,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -HPUX-hppa,FallBackToConsole -Yes - -HPUX-hppa,InstallDir -<%Home%>/<%ShortAppName%> - -HPUX-hppa,InstallMode -Standard - -HPUX-hppa,InstallType -Typical - -HPUX-hppa,ProgramExecutable -<%InstallDir%>/calibre - -HPUX-hppa,ProgramFolderAllUsers -No - -HPUX-hppa,ProgramFolderName -<%AppName%> - -HPUX-hppa,ProgramLicense -<%InstallDir%>/LICENSE.txt - -HPUX-hppa,ProgramName -{} - -HPUX-hppa,ProgramReadme -<%InstallDir%>/README.txt - -HPUX-hppa,PromptForRoot -Yes - -HPUX-hppa,RequireRoot -No - -HPUX-hppa,RootInstallDir -/usr/local/<%ShortAppName%> - -Linux-x86,Active -No - -Linux-x86,BuildSeparateArchives -No - -Linux-x86,DefaultDirectoryPermission -0755 - -Linux-x86,DefaultFilePermission -0755 - -Linux-x86,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -Linux-x86,FallBackToConsole -Yes - -Linux-x86,InstallDir -<%Home%>/<%ShortAppName%> - -Linux-x86,InstallMode -Standard - -Linux-x86,InstallType -Typical - -Linux-x86,ProgramExecutable -<%InstallDir%>/calibre - -Linux-x86,ProgramFolderAllUsers -No - -Linux-x86,ProgramFolderName -<%AppName%> - -Linux-x86,ProgramLicense -<%InstallDir%>/LICENSE.txt - -Linux-x86,ProgramName -{} - -Linux-x86,ProgramReadme -<%InstallDir%>/README.txt - -Linux-x86,PromptForRoot -Yes - -Linux-x86,RequireRoot -Yes - -Linux-x86,RootInstallDir -/opt/<%ShortAppName%> - -Linux-x86_64,Active -No - -Linux-x86_64,BuildSeparateArchives -No - -Linux-x86_64,DefaultDirectoryPermission -0755 - -Linux-x86_64,DefaultFilePermission -0755 - -Linux-x86_64,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -Linux-x86_64,FallBackToConsole -Yes - -Linux-x86_64,InstallDir -<%Home%>/<%ShortAppName%> - -Linux-x86_64,InstallMode -Standard - -Linux-x86_64,InstallType -Typical - -Linux-x86_64,ProgramExecutable -{} - -Linux-x86_64,ProgramFolderAllUsers -No - -Linux-x86_64,ProgramFolderName -<%AppName%> - -Linux-x86_64,ProgramLicense -<%InstallDir%>/LICENSE.txt - -Linux-x86_64,ProgramName -{} - -Linux-x86_64,ProgramReadme -<%InstallDir%>/README.txt - -Linux-x86_64,PromptForRoot -Yes - -Linux-x86_64,RequireRoot -No - -Linux-x86_64,RootInstallDir -/usr/local/<%ShortAppName%> - -Solaris-sparc,Active -No - -Solaris-sparc,BuildSeparateArchives -No - -Solaris-sparc,DefaultDirectoryPermission -0755 - -Solaris-sparc,DefaultFilePermission -0755 - -Solaris-sparc,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -Solaris-sparc,FallBackToConsole -Yes - -Solaris-sparc,InstallDir -<%Home%>/<%ShortAppName%> - -Solaris-sparc,InstallMode -Standard - -Solaris-sparc,InstallType -Typical - -Solaris-sparc,ProgramExecutable -<%InstallDir%>/calibre - -Solaris-sparc,ProgramFolderAllUsers -No - -Solaris-sparc,ProgramFolderName -<%AppName%> - -Solaris-sparc,ProgramLicense -<%InstallDir%>/LICENSE.txt - -Solaris-sparc,ProgramName -{} - -Solaris-sparc,ProgramReadme -<%InstallDir%>/README.txt - -Solaris-sparc,PromptForRoot -Yes - -Solaris-sparc,RequireRoot -No - -Solaris-sparc,RootInstallDir -/usr/local/<%ShortAppName%> - -Solaris-x86,Active -No - -Solaris-x86,BuildSeparateArchives -No - -Solaris-x86,DefaultDirectoryPermission -0755 - -Solaris-x86,DefaultFilePermission -0755 - -Solaris-x86,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -Solaris-x86,FallBackToConsole -Yes - -Solaris-x86,InstallDir -<%Home%>/<%ShortAppName%> - -Solaris-x86,InstallMode -Standard - -Solaris-x86,InstallType -Typical - -Solaris-x86,ProgramExecutable -{} - -Solaris-x86,ProgramFolderAllUsers -No - -Solaris-x86,ProgramFolderName -<%AppName%> - -Solaris-x86,ProgramLicense -<%InstallDir%>/LICENSE.txt - -Solaris-x86,ProgramName -{} - -Solaris-x86,ProgramReadme -<%InstallDir%>/README.txt - -Solaris-x86,PromptForRoot -Yes - -Solaris-x86,RequireRoot -No - -Solaris-x86,RootInstallDir -/usr/local/<%ShortAppName%> - -TarArchive,Active -No - -TarArchive,BuildSeparateArchives -No - -TarArchive,CompressionLevel -6 - -TarArchive,DefaultDirectoryPermission -0755 - -TarArchive,DefaultFilePermission -0755 - -TarArchive,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -TarArchive,FallBackToConsole -Yes - -TarArchive,InstallDir -<%Home%>/<%ShortAppName%> - -TarArchive,InstallMode -Standard - -TarArchive,InstallType -Typical - -TarArchive,OutputFileName -<%ShortAppName%>-<%Version%>.tar.gz - -TarArchive,ProgramExecutable -{} - -TarArchive,ProgramFolderAllUsers -No - -TarArchive,ProgramFolderName -<%AppName%> - -TarArchive,ProgramLicense -<%InstallDir%>/LICENSE.txt - -TarArchive,ProgramName -{} - -TarArchive,ProgramReadme -<%InstallDir%>/README.txt - -TarArchive,PromptForRoot -Yes - -TarArchive,RequireRoot -No - -TarArchive,RootInstallDir -/usr/local/<%ShortAppName%> - -TarArchive,VirtualTextMap -{<%InstallDir%> <%ShortAppName%>} - -Windows,Active -Yes - -Windows,BuildSeparateArchives -No - -Windows,Executable -<%AppName%>-<%Version%><%Ext%> - -Windows,FileDescription -{<%AppName%> <%Version%> Setup} - -Windows,IncludeTWAPI -Yes - -Windows,InstallDir -<%PROGRAM_FILES%>/<%AppName%> - -Windows,InstallMode -Standard - -Windows,InstallType -Typical - -Windows,LastRequireAdministrator -Yes - -Windows,ProgramExecutable -<%InstallDir%>/calibre.exe - -Windows,ProgramFolderAllUsers -Yes - -Windows,ProgramFolderName -<%AppName%> - -Windows,ProgramLicense -<%InstallDir%>/LICENSE - -Windows,ProgramName -{} - -Windows,ProgramReadme -<%InstallDir%>/README.txt - -Windows,RequireAdministrator -Yes - -Windows,UseUncompressedBinaries -No - -Windows,WindowsIcon -{Setup Blue Screen.ico} - -ZipArchive,Active -No - -ZipArchive,BuildSeparateArchives -No - -ZipArchive,CompressionLevel -6 - -ZipArchive,DefaultDirectoryPermission -0755 - -ZipArchive,DefaultFilePermission -0755 - -ZipArchive,Executable -<%AppName%>-<%Version%>-<%Platform%>-Install<%Ext%> - -ZipArchive,FallBackToConsole -Yes - -ZipArchive,InstallDir -<%Home%>/<%ShortAppName%> - -ZipArchive,InstallMode -Standard - -ZipArchive,InstallType -Typical - -ZipArchive,OutputFileName -<%ShortAppName%>-<%Version%>.zip - -ZipArchive,ProgramExecutable -{} - -ZipArchive,ProgramFolderAllUsers -No - -ZipArchive,ProgramFolderName -<%AppName%> - -ZipArchive,ProgramLicense -<%InstallDir%>/LICENSE.txt - -ZipArchive,ProgramName -{} - -ZipArchive,ProgramReadme -<%InstallDir%>/README.txt - -ZipArchive,PromptForRoot -Yes - -ZipArchive,RequireRoot -No - -ZipArchive,RootInstallDir -/usr/local/<%ShortAppName%> - -ZipArchive,VirtualTextMap -{<%InstallDir%> <%ShortAppName%>} - -} - -::msgcat::mcmset de { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -} -::msgcat::mcmset en { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -21B897C4-24BE-70D1-58EA-DE78EFA60719,Message -{USB Driver installation failed with return code <%DevconStatus%> and console output \n\n<%DevconResult%>} - -21B897C4-24BE-70D1-58EA-DE78EFA60719,Title -{USB Driver installation failed} - -27B44808-381F-7202-A0D9-40788CD679D0,Text -<%CreateQuickLaunchShortcutText%> - -3EA07B17-04D8-6508-B535-96CC7173B49A,Caption -{Welcome to the installer for <%AppName%>} - -3EA07B17-04D8-6508-B535-96CC7173B49A,Message -{<%AppName%> version <%Version%> created by Kovid Goyal - -Please make sure that calibre is not running, as this will cause the install to fail. Click Next to continue or Cancel to exit Setup.} - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -48E8A9D6-B57E-C506-680D-898C65DD2A1B,Message -<%InstallStartupText%> - -48E8A9D6-B57E-C506-680D-898C65DD2A1B,Title -<%InstallApplicationText%> - -64B8D0F3-4B11-DA22-D6E7-7248872D5FA7,Message -<%UninstallStartupText%> - -64B8D0F3-4B11-DA22-D6E7-7248872D5FA7,Title -<%UninstallApplicationText%> - -7C57D3D3-B1DB-0888-B098-B46AD4F99F7E,Text -<%LaunchApplicationText%> - -8A7FD0C2-F053-8764-F204-4BAE71E05708,Caption -{<%AppName%> Installation complete} - -8A7FD0C2-F053-8764-F204-4BAE71E05708,Message -{Installation of <%AppName%> was successful. Click Finish to quit the installer. <%AppName%> can be launched from the start menu.} - -940F7FED-7D20-7264-3BF9-ED78205A76B3,Text -<%CreateDesktopShortcutText%> - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,CancelButton -<%Cancel%> - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,NextButton -<%Next%> - -9ACCDC35-E034-F142-ED42-AC8EC2B9AE2D,Text -<%License%> - -A246E5D4-5489-19CC-C7B1-AA0C98D55F85,Text -<%CreateQuickLaunchShortcutText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -C7D6444E-DB8B-EE24-3E12-A2AF8A392C5D,Text -<%CreateDesktopShortcutText%> - -D9ADE41C-B744-690C-2CED-CF826BF03D2E,Description -<%TypicalInstallDescription%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -F6829AB7-9F66-4CEE-CA0E-21F54C6D3609,Description -<%ProgramFilesDescription%> - -} -::msgcat::mcmset es { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -} -::msgcat::mcmset fr { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -} -::msgcat::mcmset hu { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -} -::msgcat::mcmset it { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -} -::msgcat::mcmset nl { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -} -::msgcat::mcmset pl { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -} -::msgcat::mcmset pt_br { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -} -::msgcat::mcmset ru { -1356216E-90D2-8324-0EEB-975A64F23EB8,Message -<%InstallingApplicationText%> - -442920D9-8A51-9476-14E4-787D5C230E84,Message -<%UninstallCompleteText%> - -C3E9E5D9-58C8-C2C5-DF75-21D908A64782,Message -<%UninstallingApplicationText%> - -E611105F-DC85-9E20-4F7B-E63C54E5DF06,Message -<%InstallationCompleteText%> - -} - diff --git a/setup/installer/windows/en-us.xml b/setup/installer/windows/en-us.xml index c4c53dc048..4c157e5a4f 100644 --- a/setup/installer/windows/en-us.xml +++ b/setup/installer/windows/en-us.xml @@ -1,5 +1,5 @@ - Click Install to install the product with default options just for you. Click Advanced to change installation options. If you are upgrading from a {app} version older than 0.6.17, please uninstall {app} first. + If you are upgrading from a {app} version older than 0.6.17, please uninstall {app} first. Click Advanced to change installation settings. diff --git a/setup/installer/windows/freeze.py b/setup/installer/windows/freeze.py index dede19085a..4960337c1c 100644 --- a/setup/installer/windows/freeze.py +++ b/setup/installer/windows/freeze.py @@ -1,193 +1,214 @@ -#!/usr/bin/env python +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import with_statement + __license__ = 'GPL v3' -__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' +__copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' -''' -Freeze app into executable using py2exe. -''' -import sys, os +import sys, os, shutil, glob, py_compile, subprocess, re -QT_DIR = 'C:\\Qt\\4.5.2' +from setup import Command, modules, functions, basenames, __version__, \ + __appname__ +from setup.build_environment import msvc, MT, RC +from setup.installer.windows.wix import WixMixIn + +QT_DIR = 'C:\\Qt\\4.5.2' +QT_DLLS = ['Core', 'Gui', 'Network', 'Svg', 'WebKit', 'Xml', 'phonon'] LIBUSB_DIR = 'C:\\libusb' LIBUNRAR = 'C:\\Program Files\\UnrarDLL\\unrar.dll' SW = r'C:\cygwin\home\kovid\sw' IMAGEMAGICK = os.path.join(SW, 'build', 'ImageMagick-6.5.6', 'VisualMagick', 'bin') - -def fix_module_finder(): - # ModuleFinder can't handle runtime changes to __path__, but win32com uses them - import py2exe.mf as modulefinder - import win32com - for p in win32com.__path__[1:]: - modulefinder.AddPackagePath("win32com", p) - for extra in ["win32com.shell"]: #,"win32com.mapi" - __import__(extra) - m = sys.modules[extra] - for p in m.__path__[1:]: - modulefinder.AddPackagePath(extra, p) - - -import os, shutil, zipfile, glob, re -from distutils.core import setup -from setup import __version__ as VERSION, __appname__ as APPNAME, scripts, \ - basenames, SRC, Command - -BASE_DIR = os.path.dirname(SRC) -ICONS = [os.path.abspath(os.path.join(BASE_DIR, 'icons', i)) for i in ('library.ico', 'viewer.ico')] -for icon in ICONS: - if not os.access(icon, os.R_OK): - raise Exception('No icon at '+icon) - -VERSION = re.sub('[a-z]\d+', '', VERSION) +VERSION = re.sub('[a-z]\d+', '', __version__) WINVER = VERSION+'.0' -PY2EXE_DIR = os.path.join(BASE_DIR, 'build','py2exe') +DESCRIPTIONS = { + 'calibre' : 'The main calibre program', + 'ebook-viewer' : 'Viewer for all e-book formats', + 'lrfviewer' : 'Viewer for LRF files', + 'ebook-convert': 'Command line interface to the conversion/news download system', + 'ebook-meta' : 'Command line interface for manipulating e-book metadata', + 'calibredb' : 'Command line interface to the calibre database', + 'calibre-launcher' : 'Utility functions common to all executables', + 'calibre-debug' : 'Command line interface for calibre debugging/development', + 'calibre-customize' : 'Command line interface to calibre plugin system', + 'pdfmanipulate' : 'Command line tool to manipulate PDF files', + 'calibre-server': 'Standalone calibre content server', + 'calibre-parallel': 'calibre worker process', + 'calibre-smtp' : 'Command line interface for sending books via email', +} -info = warn = None +class Win32Freeze(Command, WixMixIn): -class Win32Freeze(Command): + description = 'Free windows calibre installation' - description = 'Freeze windows calibre installation' + def add_options(self, parser): + parser.add_option('--no-ice', default=False, action='store_true', + help='Disable ICE checks when building MSI (needed when running' + ' from cygwin sshd)') + parser.add_option('--msi-compression', '--compress', default='high', + help='Compression when generating installer. Set to none to disable') + parser.add_option('--keep-site', default=False, action='store_true', + help='Keep human readable site.py') + parser.add_option('--verbose', default=0, action="count", + help="Be more verbose") def run(self, opts): - global info, warn - info, warn = self.info, self.warn - main() + self.SW = SW + self.opts = opts + self.src_root = self.d(self.SRC) + self.base = self.j(self.d(self.SRC), 'build', 'winfrozen') + self.rc_template = self.j(self.d(self.a(__file__)), 'template.rc') + self.py_ver = ''.join(map(str, sys.version_info[:2])) + self.lib_dir = self.j(self.base, 'Lib') -BOOT_COMMON = '''\ -import sys, os -if sys.frozen == "windows_exe": - class Stderr(object): - softspace = 0 - _file = None - _error = None - def write(self, text, alert=sys._MessageBox, fname=os.path.expanduser('~\calibre.log')): - if self._file is None and self._error is None: - try: - self._file = open(fname, 'wb') - except Exception, details: - self._error = details - import atexit - atexit.register(alert, 0, - ("The logfile %s could not be opened: " - "\\n%s\\n\\nTry setting the HOME environment " - "variable to a directory for which you " - "have write permission.") % (fname, details), - "Errors occurred") - else: - import atexit - #atexit.register(alert, 0, - # "See the logfile '%s' for details" % fname, - # "Errors occurred") - if self._file is not None: - self._file.write(text) - self._file.flush() - def flush(self): - if self._file is not None: - self._file.flush() + self.initbase() + self.build_launchers() + self.freeze() + self.embed_manifests() + self.install_site_py() + self.create_installer() - #del sys._MessageBox - #del Stderr + def initbase(self): + if self.e(self.base): + shutil.rmtree(self.base) + os.makedirs(self.base) - class Blackhole(object): - softspace = 0 - def write(self, text): - pass - def flush(self): - pass - sys.stdout = Stderr() - sys.stderr = Stderr() - del Blackhole + def freeze(self): + shutil.copy2(self.j(self.src_root, 'LICENSE'), self.base) -# Disable linecache.getline() which is called by -# traceback.extract_stack() when an exception occurs to try and read -# the filenames embedded in the packaged python code. This is really -# annoying on windows when the d: or e: on our build box refers to -# someone elses removable or network drive so the getline() call -# causes it to ask them to insert a disk in that drive. -import linecache -def fake_getline(filename, lineno, module_globals=None): - return '' -linecache.orig_getline = linecache.getline -linecache.getline = fake_getline - -del linecache, fake_getline - -fenc = sys.getfilesystemencoding( ) -base = os.path.dirname(sys.executable.decode(fenc)) -sys.resources_location = os.path.join(base, 'resources') -sys.extensions_location = os.path.join(base, 'plugins') - -dv = os.environ.get('CALIBRE_DEVELOP_FROM', None) -if dv and os.path.exists(dv): - sys.path.insert(0, os.path.abspath(dv)) - -del sys -''' - -try: - import py2exe - bc = py2exe.build_exe.py2exe -except ImportError: - py2exe = object - bc = object - -class BuildEXE(bc): - - def run(self): - py2exe.build_exe.py2exe.run(self) - info('\nAdding plugins...') - tgt = os.path.join(self.dist_dir, 'plugins') + self.info('Adding plugins...') + tgt = os.path.join(self.base, 'plugins') if not os.path.exists(tgt): os.mkdir(tgt) - for f in glob.glob(os.path.join(BASE_DIR, 'src', 'calibre', 'plugins', '*.dll')): - shutil.copyfile(f, os.path.join(self.dist_dir, os.path.basename(f))) - for f in glob.glob(os.path.join(BASE_DIR, 'src', 'calibre', 'plugins', '*.pyd')): - shutil.copyfile(f, os.path.join(tgt, os.path.basename(f))) - for f in glob.glob(os.path.join(BASE_DIR, 'src', 'calibre', 'plugins', '*.manifest')): - shutil.copyfile(f, os.path.join(tgt, os.path.basename(f))) - shutil.copyfile('LICENSE', os.path.join(self.dist_dir, 'LICENSE')) + base = self.j(self.SRC, 'calibre', 'plugins') + for pat in ('*.pyd', '*.manifest'): + for f in glob.glob(self.j(base, pat)): + shutil.copy2(f, tgt) - - info('\nAdding resources...') - tgt = os.path.join(self.dist_dir, 'resources') + self.info('Adding resources...') + tgt = self.j(self.base, 'resources') if os.path.exists(tgt): shutil.rmtree(tgt) - shutil.copytree(os.path.join(BASE_DIR, 'resources'), tgt) + shutil.copytree(self.j(self.src_root, 'resources'), tgt) - info('\nAdding QtXml4.dll') - shutil.copyfile(os.path.join(QT_DIR, 'bin', 'QtXml4.dll'), - os.path.join(self.dist_dir, 'QtXml4.dll')) - info('\nAdding Qt plugins...') + self.info('Adding Qt and python...') + self.dll_dir = self.j(self.base, 'DLLs') + shutil.copytree(r'C:\Python%s\DLLs'%self.py_ver, self.dll_dir, + ignore=shutil.ignore_patterns('msvc*.dll', 'Microsoft.*')) + for x in QT_DLLS: + x += '4.dll' + if not x.startswith('phonon'): x = 'Qt'+x + shutil.copy2(os.path.join(QT_DIR, 'bin', x), self.dll_dir) + shutil.copy2(r'C:\windows\system32\python%s.dll'%self.py_ver, + self.dll_dir) + for x in os.walk(r'C:\Python%s\Lib'%self.py_ver): + for f in x[-1]: + if f.lower().endswith('.dll'): + f = self.j(x[0], f) + if 'py2exe' not in f: + shutil.copy2(f, self.dll_dir) + shutil.copy2( + r'C:\Python%(v)s\Lib\site-packages\pywin32_system32\pywintypes%(v)s.dll' + % dict(v=self.py_ver), self.dll_dir) + + def ignore_lib(root, items): + ans = [] + for x in items: + ext = os.path.splitext(x)[1] + if (not ext and (x in ('demos', 'tests') or 'py2exe' in x)) or \ + (ext in ('.dll', '.chm', '.htm', '.txt')): + ans.append(x) + return ans + + shutil.copytree(r'C:\Python%s\Lib'%self.py_ver, self.lib_dir, + ignore=ignore_lib) + + # Fix win32com + sp_dir = self.j(self.lib_dir, 'site-packages') + comext = self.j(sp_dir, 'win32comext') + shutil.copytree(self.j(comext, 'shell'), self.j(sp_dir, 'win32com', 'shell')) + shutil.rmtree(comext) + + for pat in (r'numpy', r'PyQt4\uic\port_v3'): + x = glob.glob(self.j(self.lib_dir, 'site-packages', pat))[0] + shutil.rmtree(x) + + self.info('Adding calibre sources...') + for x in glob.glob(self.j(self.SRC, '*')): + shutil.copytree(x, self.j(sp_dir, self.b(x))) + + for x in (r'calibre\manual', r'calibre\trac', 'pythonwin'): + shutil.rmtree(self.j(sp_dir, x)) + + for x in os.walk(self.j(sp_dir, 'calibre')): + for f in x[-1]: + if not f.endswith('.py'): + os.remove(self.j(x[0], f)) + + self.info('Byte-compiling all python modules...') + for x in ('test', 'lib2to3', 'distutils'): + shutil.rmtree(self.j(self.lib_dir, x)) + for x in os.walk(self.lib_dir): + root = x[0] + for f in x[-1]: + if f.endswith('.py'): + y = self.j(root, f) + rel = os.path.relpath(y, self.lib_dir) + try: + py_compile.compile(y, dfile=rel, doraise=True) + os.remove(y) + except: + self.warn('Failed to byte-compile', y) + pyc, pyo = y+'c', y+'o' + epyc, epyo, epy = map(os.path.exists, (pyc,pyo,y)) + if (epyc or epyo) and epy: + os.remove(y) + if epyo and epyc: + os.remove(pyc) + + self.info('\nAdding Qt plugins...') qt_prefix = QT_DIR - plugdir = os.path.join(qt_prefix, 'plugins') + plugdir = self.j(qt_prefix, 'plugins') + tdir = self.j(self.base, 'qt_plugins') for d in ('imageformats', 'codecs', 'iconengines'): - info(d) + self.info('\t', d) imfd = os.path.join(plugdir, d) - tg = os.path.join(self.dist_dir, d) + tg = os.path.join(tdir, d) if os.path.exists(tg): shutil.rmtree(tg) shutil.copytree(imfd, tg) - info('Adding main scripts') - f = zipfile.ZipFile(os.path.join(PY2EXE_DIR, 'library.zip'), 'a', zipfile.ZIP_DEFLATED) - for i in scripts['console'] + scripts['gui']: - f.write(i, i.partition('\\')[-1]) - f.close() - - info('Copying icons') - for icon in ICONS: - shutil.copyfile(icon, os.path.join(PY2EXE_DIR, os.path.basename(icon))) - print print 'Adding third party dependencies' - tdir = os.path.join(PY2EXE_DIR, 'driver') + tdir = os.path.join(self.base, 'driver') os.makedirs(tdir) for pat in ('*.dll', '*.sys', '*.cat', '*.inf'): for f in glob.glob(os.path.join(LIBUSB_DIR, pat)): shutil.copyfile(f, os.path.join(tdir, os.path.basename(f))) + print '\tAdding unrar' + shutil.copyfile(LIBUNRAR, + os.path.join(self.dll_dir, os.path.basename(LIBUNRAR))) + + print '\tAdding misc binary deps' + bindir = os.path.join(SW, 'bin') + shutil.copy2(os.path.join(bindir, 'pdftohtml.exe'), self.base) + for pat in ('*.dll',): + for f in glob.glob(os.path.join(bindir, pat)): + ok = True + for ex in ('expatw',): + if ex in f.lower(): + ok = False + if not ok: continue + dest = self.dll_dir + shutil.copy2(f, dest) + for x in ('zlib1.dll', 'libxml2.dll'): + shutil.copy2(self.j(bindir, x+'.manifest'), self.dll_dir) + + shutil.copytree(os.path.join(SW, 'etc', 'fonts'), + os.path.join(self.base, 'fontconfig')) # Copy ImageMagick for pat in ('*.dll', '*.xml'): for f in glob.glob(self.j(IMAGEMAGICK, pat)): @@ -197,95 +218,142 @@ class BuildEXE(bc): if not ok: continue shutil.copy2(f, self.dll_dir) - print '\tAdding unrar' - shutil.copyfile(LIBUNRAR, os.path.join(PY2EXE_DIR, os.path.basename(LIBUNRAR))) + def embed_manifests(self): + self.info('Embedding remaining manifests...') + for x in os.walk(self.base): + for f in x[-1]: + base, ext = os.path.splitext(f) + if ext != '.manifest': continue + dll = self.j(x[0], base) + manifest = self.j(x[0], f) + res = 2 + if os.path.splitext(dll)[1] == '.exe': + res = 1 + if os.path.exists(dll): + self.run_builder([MT, '-manifest', manifest, + '-outputresource:%s;%d'%(dll,res)]) + os.remove(manifest) - print '\tAdding misc binary deps' - bindir = os.path.join(SW, 'bin') - shutil.copy2(os.path.join(bindir, 'pdftohtml.exe'), PY2EXE_DIR) - for pat in ('*.dll', '*.xml'): - for f in glob.glob(os.path.join(bindir, pat)): - shutil.copy2(f, PY2EXE_DIR) - for x in ('Microsoft.VC90.CRT', 'zlib1.dll', 'libxml2.dll'): - shutil.copy2(os.path.join(bindir, x+'.manifest'), PY2EXE_DIR) - shutil.copytree(os.path.join(SW, 'etc', 'fonts'), - os.path.join(PY2EXE_DIR, 'fontconfig')) - - print - print 'Doing DLL redirection' # See http://msdn.microsoft.com/en-us/library/ms682600(VS.85).aspx - for f in glob.glob(os.path.join(PY2EXE_DIR, '*.exe')): - open(f + '.local', 'w').write('\n') - - - -def exe_factory(dest_base, script, icon_resources=None): - exe = { - 'dest_base' : dest_base, - 'script' : script, - 'name' : dest_base, - 'version' : WINVER, - 'description' : 'calibre - E-book library management', - 'author' : 'Kovid Goyal', - 'copyright' : '(c) Kovid Goyal, 2008', - 'company' : 'kovidgoyal.net', - } - if icon_resources is not None: - exe['icon_resources'] = icon_resources - return exe - -def main(args=sys.argv): - sys.argv[1:2] = ['py2exe'] - if os.path.exists(PY2EXE_DIR): - shutil.rmtree(PY2EXE_DIR) - - fix_module_finder() - - boot_common = os.path.join(sys.prefix, 'Lib', 'site-packages', 'py2exe', - 'boot_common.py') - open(boot_common, 'wb').write(BOOT_COMMON) - - console = [exe_factory(basenames['console'][i], scripts['console'][i]) - for i in range(len(scripts['console']))] - setup( - cmdclass = {'py2exe': BuildEXE}, - windows = [ - exe_factory(APPNAME, scripts['gui'][0], [(1, ICONS[0])]), - exe_factory('lrfviewer', scripts['gui'][1], [(1, ICONS[1])]), - exe_factory('ebook-viewer', scripts['gui'][2], [(1, ICONS[1])]), - ], - console = console, - options = { 'py2exe' : {'compressed': 1, - 'optimize' : 2, - 'dist_dir' : PY2EXE_DIR, - 'includes' : [ - 'sip', 'pkg_resources', 'PyQt4.QtSvg', - 'mechanize', 'ClientForm', 'wmi', - 'win32file', 'pythoncom', - 'email.iterators', - 'email.generator', - 'win32process', 'win32api', 'msvcrt', - 'win32event', - 'sqlite3.dump', - 'BeautifulSoup', 'pyreadline', - 'pydoc', 'IPython.Extensions.*', - 'calibre.web.feeds.recipes.*', - 'calibre.gui2.convert.*', - 'PyQt4.QtWebKit', 'PyQt4.QtNetwork', - ], - 'packages' : ['PIL', 'lxml', 'cherrypy', - 'dateutil', 'dns'], - 'excludes' : ["Tkconstants", "Tkinter", "tcl", - "_imagingtk", "ImageTk", - "FixTk", - 'PyQt4.uic.port_v3.proxy_base' - ], - 'dll_excludes' : ['mswsock.dll', 'tcl85.dll', - 'tk85.dll'], - }, - }, - - ) - return 0 + def compress(self): + self.info('Compressing app dir using 7-zip') + subprocess.check_call([r'C:\Program Files\7-Zip\7z.exe', 'a', '-r', + '-scsUTF-8', '-sfx', 'winfrozen', 'winfrozen'], cwd=self.base) + def embed_resources(self, module, desc=None): + icon_base = self.j(self.src_root, 'icons') + icon_map = {'calibre':'library', 'ebook-viewer':'viewer', + 'lrfviewer':'viewer'} + file_type = 'DLL' if module.endswith('.dll') else 'APP' + template = open(self.rc_template, 'rb').read() + bname = self.b(module) + internal_name = os.path.splitext(bname)[0] + icon = icon_map.get(internal_name, 'command-prompt') + icon = self.j(icon_base, icon+'.ico') + if desc is None: + defdesc = 'A dynamic link library' if file_type == 'DLL' else \ + 'An executable program' + desc = DESCRIPTIONS.get(internal_name, defdesc) + license = 'GNU GPL v3.0' + def e(val): return val.replace('"', r'\"') + rc = template.format( + icon=icon, + file_type=e(file_type), + file_version=e(WINVER.replace('.', ',')), + file_version_str=e(WINVER), + file_description=e(desc), + internal_name=e(internal_name), + original_filename=e(bname), + product_version=e(WINVER.replace('.', ',')), + product_version_str=e(__version__), + product_name=e(__appname__), + product_description=e(__appname__+' - E-book management'), + legal_copyright=e(license), + legal_trademarks=e(__appname__ + \ + ' is a registered U.S. trademark number 3,666,525') + ) + tdir = self.obj_dir + rcf = self.j(tdir, bname+'.rc') + with open(rcf, 'wb') as f: + f.write(rc) + res = self.j(tdir, bname + '.res') + cmd = [RC, '/n', '/fo'+res, rcf] + self.run_builder(cmd) + return res + + def install_site_py(self): + if not os.path.exists(self.lib_dir): + os.makedirs(self.lib_dir) + shutil.copy2(self.j(self.d(__file__), 'site.py'), self.lib_dir) + y = os.path.join(self.lib_dir, 'site.py') + py_compile.compile(y, dfile='site.py', doraise=True) + if not self.opts.keep_site: + os.remove(y) + + def run_builder(self, cmd): + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + if p.wait() != 0: + self.info('Failed to run builder:') + self.info(*cmd) + self.info(p.stdout.read()) + self.info(p.stderr.read()) + sys.exit(1) + + def build_launchers(self): + self.obj_dir = self.j(self.src_root, 'build', 'launcher') + if not os.path.exists(self.obj_dir): + os.makedirs(self.obj_dir) + base = self.j(self.src_root, 'setup', 'installer', 'windows') + sources = [self.j(base, x) for x in ['util.c']] + headers = [self.j(base, x) for x in ['util.h']] + objects = [self.j(self.obj_dir, self.b(x)+'.obj') for x in sources] + cflags = '/c /EHsc /MD /W3 /Ox /nologo /D_UNICODE'.split() + cflags += ['/DPYDLL="python%s.dll"'%self.py_ver, '/IC:/Python%s/include'%self.py_ver] + for src, obj in zip(sources, objects): + if not self.newer(obj, headers+[src]): continue + cmd = [msvc.cc] + cflags + ['/Fo'+obj, '/Tc'+src] + self.run_builder(cmd) + + dll = self.j(self.obj_dir, 'calibre-launcher.dll') + ver = '.'.join(__version__.split('.')[:2]) + if self.newer(dll, objects): + cmd = [msvc.linker, '/DLL', '/INCREMENTAL:NO', '/VERSION:'+ver, + '/OUT:'+dll, '/nologo', '/MACHINE:X86'] + objects + \ + [self.embed_resources(dll), + '/LIBPATH:C:/Python%s/libs'%self.py_ver, + 'python%s.lib'%self.py_ver, + '/delayload:python%s.dll'%self.py_ver] + self.info('Linking calibre-launcher.dll') + self.run_builder(cmd) + + src = self.j(base, 'main.c') + shutil.copy2(dll, self.base) + for typ in ('console', 'gui', ): + self.info('Processing %s launchers'%typ) + subsys = 'WINDOWS' if typ == 'gui' else 'CONSOLE' + for mod, bname, func in zip(modules[typ], basenames[typ], + functions[typ]): + xflags = list(cflags) + if typ == 'gui': + xflags += ['/DGUI_APP='] + + xflags += ['/DMODULE="%s"'%mod, '/DBASENAME="%s"'%bname, + '/DFUNCTION="%s"'%func] + dest = self.j(self.obj_dir, bname+'.obj') + if self.newer(dest, [src]+headers): + self.info('Compiling', bname) + cmd = [msvc.cc] + xflags + ['/Tc'+src, '/Fo'+dest] + self.run_builder(cmd) + exe = self.j(self.base, bname+'.exe') + manifest = exe+'.manifest' + lib = dll.replace('.dll', '.lib') + if self.newer(exe, [dest, lib, self.rc_template, __file__]): + self.info('Linking', bname) + cmd = [msvc.linker] + ['/INCREMENTAL:NO', '/MACHINE:X86', + '/LIBPATH:'+self.obj_dir, '/SUBSYSTEM:'+subsys, + '/LIBPATH:C:/Python%s/libs'%self.py_ver, '/RELEASE', + '/OUT:'+exe, self.embed_resources(exe), + dest, lib] + self.run_builder(cmd) diff --git a/setup/installer/windows/freeze2.py b/setup/installer/windows/freeze2.py deleted file mode 100644 index 3e837dd503..0000000000 --- a/setup/installer/windows/freeze2.py +++ /dev/null @@ -1,358 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai -from __future__ import with_statement - -__license__ = 'GPL v3' -__copyright__ = '2009, Kovid Goyal ' -__docformat__ = 'restructuredtext en' - -import sys, os, shutil, glob, py_compile, subprocess, re - -from setup import Command, modules, functions, basenames, __version__, \ - __appname__ -from setup.build_environment import msvc, MT, RC -from setup.installer.windows.wix import WixMixIn - -QT_DIR = 'C:\\Qt\\4.5.2' -QT_DLLS = ['Core', 'Gui', 'Network', 'Svg', 'WebKit', 'Xml', 'phonon'] -LIBUSB_DIR = 'C:\\libusb' -LIBUNRAR = 'C:\\Program Files\\UnrarDLL\\unrar.dll' -SW = r'C:\cygwin\home\kovid\sw' -IMAGEMAGICK = os.path.join(SW, 'build', 'ImageMagick-6.5.6', - 'VisualMagick', 'bin') - -VERSION = re.sub('[a-z]\d+', '', __version__) -WINVER = VERSION+'.0' - -DESCRIPTIONS = { - 'calibre' : 'The main calibre program', - 'ebook-viewer' : 'Viewer for all e-book formats', - 'lrfviewer' : 'Viewer for LRF files', - 'ebook-convert': 'Command line interface to the conversion/news download system', - 'ebook-meta' : 'Command line interface for manipulating e-book metadata', - 'calibredb' : 'Command line interface to the calibre database', - 'calibre-launcher' : 'Utility functions common to all executables', - 'calibre-debug' : 'Command line interface for calibre debugging/development', - 'calibre-customize' : 'Command line interface to calibre plugin system', - 'pdfmanipulate' : 'Command line tool to manipulate PDF files', - 'calibre-server': 'Standalone calibre content server', - 'calibre-parallel': 'calibre worker process', - 'calibre-smtp' : 'Command line interface for sending books via email', -} - -class Win32Freeze2(Command, WixMixIn): - - description = 'Free windows calibre installation' - - def add_options(self, parser): - parser.add_option('--no-ice', default=False, action='store_true', - help='Disable ICE checks when building MSI (needed when running' - ' from cygwin sshd)') - parser.add_option('--msi-compression', '--compress', default='high', - help='Compression when generating installer. Set to none to disable') - parser.add_option('--verbose', default=0, action="count", - help="Be moer verbose") - - def run(self, opts): - self.opts = opts - self.src_root = self.d(self.SRC) - self.base = self.j(self.d(self.SRC), 'build', 'winfrozen') - self.rc_template = self.j(self.d(self.a(__file__)), 'template.rc') - self.py_ver = ''.join(map(str, sys.version_info[:2])) - self.lib_dir = self.j(self.base, 'Lib') - - self.initbase() - self.build_launchers() - self.freeze() - self.embed_manifests() - self.install_site_py() - self.create_installer() - - def initbase(self): - if self.e(self.base): - shutil.rmtree(self.base) - os.makedirs(self.base) - - def freeze(self): - shutil.copy2(self.j(self.src_root, 'LICENSE'), self.base) - - self.info('Adding plugins...') - tgt = os.path.join(self.base, 'plugins') - if not os.path.exists(tgt): - os.mkdir(tgt) - base = self.j(self.SRC, 'calibre', 'plugins') - for pat in ('*.pyd', '*.manifest'): - for f in glob.glob(self.j(base, pat)): - shutil.copy2(f, tgt) - - self.info('Adding resources...') - tgt = self.j(self.base, 'resources') - if os.path.exists(tgt): - shutil.rmtree(tgt) - shutil.copytree(self.j(self.src_root, 'resources'), tgt) - - self.info('Adding Qt and python...') - self.dll_dir = self.j(self.base, 'DLLs') - shutil.copytree(r'C:\Python%s\DLLs'%self.py_ver, self.dll_dir, - ignore=shutil.ignore_patterns('msvc*.dll', 'Microsoft.*')) - for x in QT_DLLS: - x += '4.dll' - if not x.startswith('phonon'): x = 'Qt'+x - shutil.copy2(os.path.join(QT_DIR, 'bin', x), self.dll_dir) - shutil.copy2(r'C:\windows\system32\python%s.dll'%self.py_ver, - self.dll_dir) - for x in os.walk(r'C:\Python%s\Lib'%self.py_ver): - for f in x[-1]: - if f.lower().endswith('.dll'): - f = self.j(x[0], f) - if 'py2exe' not in f: - shutil.copy2(f, self.dll_dir) - shutil.copy2( - r'C:\Python%(v)s\Lib\site-packages\pywin32_system32\pywintypes%(v)s.dll' - % dict(v=self.py_ver), self.dll_dir) - - def ignore_lib(root, items): - ans = [] - for x in items: - ext = os.path.splitext(x)[1] - if (not ext and (x in ('demos', 'tests') or 'py2exe' in x)) or \ - (ext in ('.dll', '.chm', '.htm', '.txt')): - ans.append(x) - return ans - - shutil.copytree(r'C:\Python%s\Lib'%self.py_ver, self.lib_dir, - ignore=ignore_lib) - - # Fix win32com - sp_dir = self.j(self.lib_dir, 'site-packages') - comext = self.j(sp_dir, 'win32comext') - shutil.copytree(self.j(comext, 'shell'), self.j(sp_dir, 'win32com', 'shell')) - shutil.rmtree(comext) - - for pat in (r'numpy', r'PyQt4\uic\port_v3'): - x = glob.glob(self.j(self.lib_dir, 'site-packages', pat))[0] - shutil.rmtree(x) - - self.info('Adding calibre sources...') - for x in glob.glob(self.j(self.SRC, '*')): - shutil.copytree(x, self.j(sp_dir, self.b(x))) - - for x in (r'calibre\manual', r'calibre\trac', 'pythonwin'): - shutil.rmtree(self.j(sp_dir, x)) - - for x in os.walk(self.j(sp_dir, 'calibre')): - for f in x[-1]: - if not f.endswith('.py'): - os.remove(self.j(x[0], f)) - - self.info('Byte-compiling all python modules...') - for x in ('test', 'lib2to3', 'distutils'): - shutil.rmtree(self.j(self.lib_dir, x)) - for x in os.walk(self.lib_dir): - root = x[0] - for f in x[-1]: - if f.endswith('.py'): - y = self.j(root, f) - rel = os.path.relpath(y, self.lib_dir) - try: - py_compile.compile(y, dfile=rel, doraise=True) - os.remove(y) - except: - self.warn('Failed to byte-compile', y) - pyc, pyo = y+'c', y+'o' - epyc, epyo, epy = map(os.path.exists, (pyc,pyo,y)) - if (epyc or epyo) and epy: - os.remove(y) - if epyo and epyc: - os.remove(pyc) - - self.info('\nAdding Qt plugins...') - qt_prefix = QT_DIR - plugdir = self.j(qt_prefix, 'plugins') - tdir = self.j(self.base, 'qt_plugins') - for d in ('imageformats', 'codecs', 'iconengines'): - self.info('\t', d) - imfd = os.path.join(plugdir, d) - tg = os.path.join(tdir, d) - if os.path.exists(tg): - shutil.rmtree(tg) - shutil.copytree(imfd, tg) - - print - print 'Adding third party dependencies' - tdir = os.path.join(self.base, 'driver') - os.makedirs(tdir) - for pat in ('*.dll', '*.sys', '*.cat', '*.inf'): - for f in glob.glob(os.path.join(LIBUSB_DIR, pat)): - shutil.copyfile(f, os.path.join(tdir, os.path.basename(f))) - print '\tAdding unrar' - shutil.copyfile(LIBUNRAR, - os.path.join(self.dll_dir, os.path.basename(LIBUNRAR))) - - print '\tAdding misc binary deps' - bindir = os.path.join(SW, 'bin') - shutil.copy2(os.path.join(bindir, 'pdftohtml.exe'), self.base) - for pat in ('*.dll',): - for f in glob.glob(os.path.join(bindir, pat)): - ok = True - for ex in ('expatw',): - if ex in f.lower(): - ok = False - if not ok: continue - dest = self.dll_dir - if self.b(f).startswith('msvc'): - dest = self.base - shutil.copy2(f, dest) - for x in ('Microsoft.VC90.CRT', 'zlib1.dll', 'libxml2.dll'): - dest = self.base if x.startswith('Microsoft') else self.dll_dir - shutil.copy2(self.j(bindir, x+'.manifest'), dest) - - shutil.copytree(os.path.join(SW, 'etc', 'fonts'), - os.path.join(self.base, 'fontconfig')) - # Copy ImageMagick - for pat in ('*.dll', '*.xml'): - for f in glob.glob(self.j(IMAGEMAGICK, pat)): - ok = True - for ex in ('magick++', 'x11.dll', 'xext.dll'): - if ex in f.lower(): ok = False - if not ok: continue - shutil.copy2(f, self.dll_dir) - - def embed_manifests(self): - self.info('Embedding remaining manifests...') - for x in os.walk(self.base): - for f in x[-1]: - base, ext = os.path.splitext(f) - if ext != '.manifest': continue - dll = self.j(x[0], base) - manifest = self.j(x[0], f) - res = 2 - if os.path.splitext(dll)[1] == '.exe': - res = 1 - if os.path.exists(dll): - self.run_builder([MT, '-manifest', manifest, - '-outputresource:%s;%d'%(dll,res)]) - os.remove(manifest) - - def compress(self): - self.info('Compressing app dir using 7-zip') - subprocess.check_call([r'C:\Program Files\7-Zip\7z.exe', 'a', '-r', - '-scsUTF-8', '-sfx', 'winfrozen', 'winfrozen'], cwd=self.base) - - def embed_resources(self, module, desc=None): - icon_base = self.j(self.src_root, 'icons') - icon_map = {'calibre':'library', 'ebook-viewer':'viewer', - 'lrfviewer':'viewer'} - file_type = 'DLL' if module.endswith('.dll') else 'APP' - template = open(self.rc_template, 'rb').read() - bname = self.b(module) - internal_name = os.path.splitext(bname)[0] - icon = icon_map.get(internal_name, 'command-prompt') - icon = self.j(icon_base, icon+'.ico') - if desc is None: - defdesc = 'A dynamic link library' if file_type == 'DLL' else \ - 'An executable program' - desc = DESCRIPTIONS.get(internal_name, defdesc) - license = 'GNU GPL v3.0' - def e(val): return val.replace('"', r'\"') - rc = template.format( - icon=icon, - file_type=e(file_type), - file_version=e(WINVER.replace('.', ',')), - file_version_str=e(WINVER), - file_description=e(desc), - internal_name=e(internal_name), - original_filename=e(bname), - product_version=e(WINVER.replace('.', ',')), - product_version_str=e(__version__), - product_name=e(__appname__), - product_description=e(__appname__+' - E-book management'), - legal_copyright=e(license), - legal_trademarks=e(__appname__ + \ - ' is a registered U.S. trademark number 3,666,525') - ) - tdir = self.obj_dir - rcf = self.j(tdir, bname+'.rc') - with open(rcf, 'wb') as f: - f.write(rc) - res = self.j(tdir, bname + '.res') - cmd = [RC, '/n', '/fo'+res, rcf] - self.run_builder(cmd) - return res - - def install_site_py(self): - if not os.path.exists(self.lib_dir): - os.makedirs(self.lib_dir) - shutil.copy2(self.j(self.d(__file__), 'site.py'), self.lib_dir) - y = os.path.join(self.lib_dir, 'site.py') - py_compile.compile(y, dfile='site.py', doraise=True) - os.remove(y) - - def run_builder(self, cmd): - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - if p.wait() != 0: - self.info('Failed to run builder:') - self.info(*cmd) - self.info(p.stdout.read()) - self.info(p.stderr.read()) - sys.exit(1) - - def build_launchers(self): - self.obj_dir = self.j(self.src_root, 'build', 'launcher') - if not os.path.exists(self.obj_dir): - os.makedirs(self.obj_dir) - base = self.j(self.src_root, 'setup', 'installer', 'windows') - sources = [self.j(base, x) for x in ['util.c']] - headers = [self.j(base, x) for x in ['util.h']] - objects = [self.j(self.obj_dir, self.b(x)+'.obj') for x in sources] - cflags = '/c /EHsc /MD /W3 /Ox /nologo /D_UNICODE'.split() - cflags += ['/DPYDLL="python%s.dll"'%self.py_ver, '/IC:/Python%s/include'%self.py_ver] - for src, obj in zip(sources, objects): - if not self.newer(obj, headers+[src]): continue - cmd = [msvc.cc] + cflags + ['/Fo'+obj, '/Tc'+src] - self.run_builder(cmd) - - dll = self.j(self.obj_dir, 'calibre-launcher.dll') - ver = '.'.join(__version__.split('.')[:2]) - if self.newer(dll, objects): - cmd = [msvc.linker, '/DLL', '/INCREMENTAL:NO', '/VERSION:'+ver, - '/OUT:'+dll, '/nologo', '/MACHINE:X86'] + objects + \ - [self.embed_resources(dll), - '/LIBPATH:C:/Python%s/libs'%self.py_ver, - 'python%s.lib'%self.py_ver, - '/delayload:python%s.dll'%self.py_ver] - self.info('Linking calibre-launcher.dll') - self.run_builder(cmd) - - src = self.j(base, 'main.c') - shutil.copy2(dll, self.base) - for typ in ('console', 'gui', ): - self.info('Processing %s launchers'%typ) - subsys = 'WINDOWS' if typ == 'gui' else 'CONSOLE' - for mod, bname, func in zip(modules[typ], basenames[typ], - functions[typ]): - xflags = list(cflags) - if typ == 'gui': - xflags += ['/DGUI_APP='] - - xflags += ['/DMODULE="%s"'%mod, '/DBASENAME="%s"'%bname, - '/DFUNCTION="%s"'%func] - dest = self.j(self.obj_dir, bname+'.obj') - if self.newer(dest, [src]+headers): - self.info('Compiling', bname) - cmd = [msvc.cc] + xflags + ['/Tc'+src, '/Fo'+dest] - self.run_builder(cmd) - exe = self.j(self.base, bname+'.exe') - manifest = exe+'.manifest' - lib = dll.replace('.dll', '.lib') - if self.newer(exe, [dest, lib, self.rc_template, __file__]): - self.info('Linking', bname) - cmd = [msvc.linker] + ['/INCREMENTAL:NO', '/MACHINE:X86', - '/LIBPATH:'+self.obj_dir, '/SUBSYSTEM:'+subsys, - '/LIBPATH:C:/Python%s/libs'%self.py_ver, '/RELEASE', - '/OUT:'+exe, self.embed_resources(exe), - dest, lib] - self.run_builder(cmd) - - diff --git a/setup/installer/windows/wix-template.xml b/setup/installer/windows/wix-template.xml index 957cc6531e..015ef8c87b 100644 --- a/setup/installer/windows/wix-template.xml +++ b/setup/installer/windows/wix-template.xml @@ -11,7 +11,8 @@ SummaryCodepage='1252' /> - + + @@ -70,6 +71,10 @@ Description="All the files need to run {app}" Absent="disallow"> + + + + @@ -100,16 +105,16 @@ - + + diff --git a/setup/installer/windows/wix.py b/setup/installer/windows/wix.py index 9f5f3a91ee..fe560f43a3 100644 --- a/setup/installer/windows/wix.py +++ b/setup/installer/windows/wix.py @@ -37,7 +37,8 @@ class WixMixIn: app_components = components, exe_map = self.smap, main_icon = self.j(self.src_root, 'icons', 'library.ico'), - web_icon = self.j(self.src_root, 'icons', 'web.ico'), + web_icon = self.j(self.src_root, 'icons', 'web.ico'), + crt_msm = self.j(self.SW, 'Microsoft_VC90_CRT_x86.msm') ) template = open(self.j(self.d(__file__), 'en-us.xml'), 'rb').read() @@ -60,10 +61,15 @@ class WixMixIn: self.installer = self.j(self.installer, '%s-%s.msi' % (__appname__, __version__)) license = self.j(self.src_root, 'LICENSE.rtf') + banner = self.j(self.src_root, 'icons', 'wix-banner.bmp') + dialog = self.j(self.src_root, 'icons', 'wix-dialog.bmp') cmd = [LIGHT, '-nologo', '-ext', 'WixUIExtension', '-cultures:en-us', '-loc', enusf, wixobj, '-ext', 'WixUtilExtension', - '-o', self.installer, '-dWixUILicenseRtf='+license] + '-o', self.installer, + '-dWixUILicenseRtf='+license, + '-dWixUIBannerBmp='+banner, + '-dWixUIDialogBmp='+dialog] cmd.append('-sice:ICE60') # No language in dlls warning if self.opts.no_ice: cmd.append('-sval') diff --git a/src/calibre/libunrar.py b/src/calibre/libunrar.py index 92df962330..ed09d66a46 100644 --- a/src/calibre/libunrar.py +++ b/src/calibre/libunrar.py @@ -26,8 +26,6 @@ else: Structure = _Structure if hasattr(sys, 'frozen') and iswindows: lp = os.path.join(os.path.dirname(sys.executable), 'DLLs', 'unrar.dll') - if not os.path.exists(lp): - lp = os.path.join(os.path.dirname(sys.executable), 'unrar.dll') _libunrar = cdll.LoadLibrary(lp) else: _libunrar = load_library(_librar_name, cdll) diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst index 6593ec4fa1..a4bf0fd275 100644 --- a/src/calibre/manual/faq.rst +++ b/src/calibre/manual/faq.rst @@ -78,7 +78,7 @@ Device Integration What devices does |app| support? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -At the moment |app| has full support for the SONY PRS 300/500/505/600/700, Cybook Gen 3/Opus, Amazon Kindle 1/2/DX, Netronix EB600, Ectaco Jetbook, BeBook/BeBook Mini, Irex Illiad/DR1000, Adroid phones and the iPhone. In addition, using the :guilabel:`Save to disk` function you can use it with any ebook reader that exports itself as a USB disk. +At the moment |app| has full support for the SONY PRS 300/500/505/600/700, Cybook Gen 3/Opus, Amazon Kindle 1/2/DX, Netronix EB600, Ectaco Jetbook, BeBook/BeBook Mini, Irex Illiad/DR1000, Foxit eSlick, Android phones and the iPhone. In addition, using the :guilabel:`Save to disk` function you can use it with any ebook reader that exports itself as a USB disk. I used |app| to transfer some books to my reader, and now the SONY software hangs every time I connect the reader? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/calibre/trac/plugins/download.py b/src/calibre/trac/plugins/download.py index 75ea6a5913..815428c57e 100644 --- a/src/calibre/trac/plugins/download.py +++ b/src/calibre/trac/plugins/download.py @@ -145,7 +145,9 @@ else: data = dict(version = version, name='windows', installer_name='Windows installer', title='Download %s for windows'%(__appname__), - compatibility='%s works on Windows XP and Windows Vista.'%(__appname__,), + compatibility=('%(a)s works on Windows XP, Vista and 7.' + 'If you are upgrading from a version older than 0.6.17, ' + 'please uninstall %(a)s first.')%dict(a=__appname__,), path=MOBILEREAD+file, app=__appname__, note=Markup(\ ''' diff --git a/src/calibre/utils/PythonMagickWand.py b/src/calibre/utils/PythonMagickWand.py index 39a45f2abb..16ca8d2935 100644 --- a/src/calibre/utils/PythonMagickWand.py +++ b/src/calibre/utils/PythonMagickWand.py @@ -82,8 +82,6 @@ if isosx: _lib = util.find_library('Wand') elif iswindows: flib = os.path.join(os.path.dirname(sys.executable), 'DLLs', 'CORE_RL_wand_.dll') - if not os.path.exists(flib): - flib = os.path.join(os.path.dirname(sys.executable), 'CORE_RL_wand_.dll') _lib = flib if isfrozen else 'CORE_RL_wand_' else: if isfrozen: