From 422d9bd7e538ffa63075195787287aae9ce81fba Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Mon, 25 Jun 2012 10:10:22 -0400 Subject: [PATCH] Changes to portableapp building --- .../Launcher}/OpenLPPortableLauncher.ini | 0 .../OpenLPPortable/App/Appinfo/appicon.ico | Bin 0 -> 15086 bytes .../App/Appinfo/appicon_128.png | Bin 0 -> 17767 bytes .../App/Appinfo/appicon_16.png} | Bin .../App/Appinfo/appicon_32.png} | Bin windows/OpenLPPortable/App/Readme.txt | 3 + .../Other/Help/Images/Donation_Button.png | Bin 0 -> 1742 bytes .../Other/Help/Images/Favicon.ico | Bin 0 -> 1150 bytes .../Help/Images/Help_Background_Footer.png | Bin 0 -> 168 bytes .../Help/Images/Help_Background_Header.png | Bin 0 -> 269 bytes .../Other/Help/Images/Help_Logo_Top.png | Bin 0 -> 2588 bytes .../Other/Source/LauncherLicense.txt | 339 ++++++++++++++++++ .../Other/Source/OpenLPPortable.ini | 6 + .../OpenLPPortable/Other/Source/Readme.txt | 47 +++ windows/OpenLPPortable/help.html | 160 +++++++++ windows/appinfo.ini.default | 10 +- windows/help.html | 20 -- windows/windows-builder.py | 49 ++- 18 files changed, 583 insertions(+), 51 deletions(-) rename windows/{ => OpenLPPortable/App/Appinfo/Launcher}/OpenLPPortableLauncher.ini (100%) create mode 100644 windows/OpenLPPortable/App/Appinfo/appicon.ico create mode 100644 windows/OpenLPPortable/App/Appinfo/appicon_128.png rename windows/{openlp-logo-16x16.png => OpenLPPortable/App/Appinfo/appicon_16.png} (100%) rename windows/{openlp-logo-32x32.png => OpenLPPortable/App/Appinfo/appicon_32.png} (100%) create mode 100644 windows/OpenLPPortable/App/Readme.txt create mode 100644 windows/OpenLPPortable/Other/Help/Images/Donation_Button.png create mode 100644 windows/OpenLPPortable/Other/Help/Images/Favicon.ico create mode 100644 windows/OpenLPPortable/Other/Help/Images/Help_Background_Footer.png create mode 100644 windows/OpenLPPortable/Other/Help/Images/Help_Background_Header.png create mode 100644 windows/OpenLPPortable/Other/Help/Images/Help_Logo_Top.png create mode 100644 windows/OpenLPPortable/Other/Source/LauncherLicense.txt create mode 100644 windows/OpenLPPortable/Other/Source/OpenLPPortable.ini create mode 100644 windows/OpenLPPortable/Other/Source/Readme.txt create mode 100644 windows/OpenLPPortable/help.html delete mode 100644 windows/help.html diff --git a/windows/OpenLPPortableLauncher.ini b/windows/OpenLPPortable/App/Appinfo/Launcher/OpenLPPortableLauncher.ini similarity index 100% rename from windows/OpenLPPortableLauncher.ini rename to windows/OpenLPPortable/App/Appinfo/Launcher/OpenLPPortableLauncher.ini diff --git a/windows/OpenLPPortable/App/Appinfo/appicon.ico b/windows/OpenLPPortable/App/Appinfo/appicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b275542c3809b3c3fb91facd13bc8ce75df076e0 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/windows/OpenLPPortable/App/Appinfo/appicon_128.png b/windows/OpenLPPortable/App/Appinfo/appicon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..be443af6cb544538172e3a56cfb0ad63cfd52034 GIT binary patch literal 17767 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 literal 0 HcmV?d00001 diff --git a/windows/OpenLPPortable/Other/Help/Images/Favicon.ico b/windows/OpenLPPortable/Other/Help/Images/Favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ed849b2de9d9a36c0ead2127ed17518390c96b89 GIT binary patch literal 1150 zcma)(zbi&j7{|};B@4MyGAKqu24z6$AdA(kScoj76vMTv8}$wbG8j*6vd|qYiVXgN zE20z`Wx(g@J*Q5m>wUeq&-?uPexG~Z^C}hb#IfSLOD)zZ)uxo{23m9~eZs#!<#c-h zcHkPG;RWuX45QVSFyDor8XPk(g?s3o*YNp!Rzq?zQ8AEc!TNCZ#^=1|KUx6 z|C?R{@~(c5KJp0=|FGS)WNYd9$o=}YpYQwULU&L_>-!|X^1UvnzX@M8_M}c<6!CVz yI-Efc4{!l;7d@fpquJ=ZWONo8oj_+|^jHQ@M$dg3tsvQeEl?FrhCXjFTD-sAs{( zJaZG%Q-e|yQz{EjrrH1%d3m}xhE&{2N;tqR5grlscw*YmzfZaCUe1@ddo=mq*T2?r zhwJ|wSpECC|DH?x>mQrStluB`FF=LY@Q-~|#H3}?%T1JpjhSyUC>&roZzZ|1h*iE5 PXexuJtDnm{r-UW|8o)cC literal 0 HcmV?d00001 diff --git a/windows/OpenLPPortable/Other/Help/Images/Help_Background_Header.png b/windows/OpenLPPortable/Other/Help/Images/Help_Background_Header.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1ebf762de566f0c78216c650d03d0f98a32bb3 GIT binary patch literal 269 zcmV+o0rLKdP)Dp5eaVvA4Z{GE9QJV1VVN<$c@mTYv!oF@IZi TfEpg400000NkvXXu0mjfu#a+n literal 0 HcmV?d00001 diff --git a/windows/OpenLPPortable/Other/Help/Images/Help_Logo_Top.png b/windows/OpenLPPortable/Other/Help/Images/Help_Logo_Top.png new file mode 100644 index 0000000000000000000000000000000000000000..1a705050e80e3786a6a8e3bf7dbc2aa8e9f1f7f7 GIT binary patch literal 2588 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 + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. \ No newline at end of file diff --git a/windows/OpenLPPortable/Other/Source/OpenLPPortable.ini b/windows/OpenLPPortable/Other/Source/OpenLPPortable.ini new file mode 100644 index 0000000..e85e60f --- /dev/null +++ b/windows/OpenLPPortable/Other/Source/OpenLPPortable.ini @@ -0,0 +1,6 @@ +AdditionalParameters= +DisableSplashScreen=false +RunLocally=false + +# The above options are explained in the included readme.txt +# This INI file is an example only and is not used unless it is placed as described in the included readme.txt diff --git a/windows/OpenLPPortable/Other/Source/Readme.txt b/windows/OpenLPPortable/Other/Source/Readme.txt new file mode 100644 index 0000000..91e311f --- /dev/null +++ b/windows/OpenLPPortable/Other/Source/Readme.txt @@ -0,0 +1,47 @@ +The base application's source code is available from the portable app's +homepage listed in the help.html file (if applicable). + +Details of most other things are available there as well. + +LICENSE +======= + +This package's installer and launcher are released under the GPL. The launcher +is the PortableApps.com Launcher, available with full source and documentation +from http://portableapps.com/development. We request that developers using the +PortableApps.com Launcher please leave this directory intact and unchanged. + +USER CONFIGURATION +================== + +Some configuration in the PortableApps.com Launcher can be overridden by the +user in an INI file next to OpenLPPortable.exe called OpenLPPortablePortable.ini. +If you are happy with the default options, it is not necessary, though. There +is an example INI included with this package to get you started. To use it, +copy AppNamePortable.ini from this directory to OpenLPPortable.ini next to +OpenLPPortable.exe. The options in the INI file are as follows: + + AdditionalParameters= + DisableSplashScreen=false + RunLocally=false + +(There is no need for an INI header in this file; if you have one, though, it +won't damage anything.) + +The AdditionalParameters entry allows you to pass additional command-line +parameters to the application. + +The DisableSplashScreen entry allows you to run the launcher without the splash +screen showing up. The default is false. + +The RunLocally entry allows you to run the portable application from a read- +only medium. This is known as Live mode. It copies what it needs to to a +temporary directory on the host computer, runs the application, and then +deletes it afterwards, leaving nothing behind. This can be useful for running +the application from a CD or if you work on a computer that may have spyware or +viruses and you'd like to keep your device set to read-only. As a consequence +of this technique, any changes you make during the Live mode session aren't +saved back to your device. The default is false. + +There may be other values also permitted in the user configuration file by the +portable application; refer to help.html for any details of them. \ No newline at end of file diff --git a/windows/OpenLPPortable/help.html b/windows/OpenLPPortable/help.html new file mode 100644 index 0000000..3b0a402 --- /dev/null +++ b/windows/OpenLPPortable/help.html @@ -0,0 +1,160 @@ + + + + + OpenLP Portable Help + + + + + + + +
+

OpenLP Portable Help

+

Open Lyrics Projection

+

OpenLP Portable is the OpenLP Lyrics Presentation program packaged with a PortableApps.com launcher as a portable app, so you can manage your services on your iPod, USB flash drive, portable hard drive, etc. It has all the same features as OpenLP, plus, it leaves no personal information behind on the machine you run it on, so you can take it with you wherever you go. Learn more about OpenLP...

+ +

Make a Donation - Support PortableApps.com's Hosting and Development

+ +

Go to the OpenLP Portable Homepage >>

+

Get more portable apps at PortableApps.com

+ +

This software is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative.

+ +

Portable App Issues

+ +

You can read about advanced configuration options for the PortableApps.com Launcher in its readme file.

+ +

OpenLP Help

+

You can access help from within OpenLP by navigating to Help -> User Guide

+

Also, the following Help options are available:

+
    +
  • OpenLP.org - Visit the Main website for OpenLP.
  • +
  • Online Help - Visit the online manual for OpenLP. (Most up-to-date documentation, internet connection required.)
  • +
  • Local OpenLP Help - Use the local help files (no internet connection required.)
  • +
+
+ + + + diff --git a/windows/appinfo.ini.default b/windows/appinfo.ini.default index 3abf098..688062d 100644 --- a/windows/appinfo.ini.default +++ b/windows/appinfo.ini.default @@ -18,9 +18,15 @@ Freeware=true CommercialUse=true [Version] -DisplayVersion=%(version)s -PackageVersion=%(version)s +DisplayVersion=%(display_version)s +PackageVersion=%(package_version)s [Control] Icons=1 Start=OpenLPPortable.exe + +[Associations] +FileType=osz + +[FileTypeIcons] +osz=app \ No newline at end of file diff --git a/windows/help.html b/windows/help.html deleted file mode 100644 index 59d2fb2..0000000 --- a/windows/help.html +++ /dev/null @@ -1,20 +0,0 @@ - - - OpenLP Help - - -

OpenLP Help

- -

You can access help from within OpenLP by navigating to Help -> User Guide

- -

Also, the following Help options are available:

- -
    -
  • OpenLP.org - Visit the Main website for OpenLP.
  • -
  • Online Help - Visit the online manual for OpenLP. (Most up-to-date documentation, internet connection required.)
  • -
  • Local OpenLP Help - Use the local help files (no internet connection required.)
  • - -
- - - diff --git a/windows/windows-builder.py b/windows/windows-builder.py index 612c269..37f7a47 100644 --- a/windows/windows-builder.py +++ b/windows/windows-builder.py @@ -126,7 +126,8 @@ Portable App Builds import os import sys -from shutil import copy, rmtree, copytree +from shutil import copy, rmtree, move +from distutils import dir_util from subprocess import Popen, PIPE from ConfigParser import SafeConfigParser as ConfigParser from argparse import ArgumentParser @@ -167,9 +168,9 @@ class WindowsBuilder(object): parser = ArgumentParser() parser.add_argument('-b', '--branch', metavar='BRANCH', dest='branch', help='Specify the path to the branch you wish to build.', - default='../trunk') + default=None) parser.add_argument('-d', '--documentation', metavar='DOCS', - dest='docs', default=os.path.join('..', 'documentation'), + dest='docs', default=None, help='Specify the path to the documentation branch.') parser.add_argument('-c', '--config', metavar='CONFIG', dest='config', help='Specify the path to the configuration file.', @@ -534,9 +535,11 @@ class WindowsBuilder(object): Create a Portabbleapps appinfo.ini file. """ self._print(u' Creating PortableApps appinfo file ...') + portable_version = self.version + '.0' * (3-self.version.count('.')) input = open(os.path.join(self.script_path, u'appinfo.ini.default'), u'r').read() - output = input.replace(u'%(version)s', self.version) + output = input.replace(u'%(display_version)s', self.version) + output = output.replace(u'%(package_version)s', portable_version) outfile = open(os.path.join(self.portable_path, u'App', u'Appinfo', u'appinfo.ini'), u'w') outfile.write(output) @@ -562,37 +565,25 @@ class WindowsBuilder(object): 3 Builds the PortableApps Install """ self._print(u'Running PortableApps Builder...') + self._print(u' Clearing old files') + # Remove previous contents of portableapp build directory. + if os.path.exists(self.portable_path): + rmtree(self.portable_path) + # Copy the contents of the OpenLPPortable directory to the portable + # build directory. + self._print(u' Creating PortableApps build directory') + dir_util.copy_tree(os.path.join(self.script_path, u'OpenLPPortable'), + self.portable_path) self.check_portableapp_directory() self.create_portableapps_appinfo_file() self._print(u' Copying distribution files') - portable_app_path = os.path.join(self.portable_path, u'App', u'OpenLP') # Copy distribution files to portableapp build directory. - if os.path.exists(portable_app_path): - rmtree(portable_app_path) - copytree(self.dist_path, portable_app_path) + portable_app_path = os.path.join(self.portable_path, u'App', u'OpenLP') + dir_util.copy_tree(self.dist_path, portable_app_path) # Copy help files to portableapp build directory. self._print(u' Copying help files') - copytree(self.helpfile_path, + dir_util.copy_tree(self.helpfile_path, os.path.join(portable_app_path, u'help')) - # Copy the icons. - copy(os.path.join(self.script_path, u'OpenLP.ico'), - os.path.join(self.portable_path, u'App', - u'Appinfo', u'appicon.ico')) - copy(os.path.join(self.script_path, u'openlp-logo-16x16.png'), - os.path.join(self.portable_path, u'App', - u'Appinfo', u'appicon_16.png')) - copy(os.path.join(self.script_path, u'openlp-logo-32x32.png'), - os.path.join(self.portable_path, u'App', - u'Appinfo', u'appicon_32.png')) - # Copy the launcher config ini file - launcher_path = os.path.join(self.portable_path, u'App', - u'Appinfo', u'Launcher') - if not os.path.exists(launcher_path): - os.mkdir(launcher_path) - copy(os.path.join(self.script_path, u'OpenLPPortableLauncher.ini'), - os.path.join(launcher_path, u'OpenLPPortable.ini')) - # Copy the help.html file - copy(os.path.join(self.script_path, u'help.html'),self.portable_path) # Build the launcher. self._print(u' Building PortableApps Launcher') portableapps = Popen((self.portablelauncher, self.portable_path), @@ -610,7 +601,7 @@ class WindowsBuilder(object): portable_app = os.path.abspath(os.path.join(self.portable_path, u'..', u'OpenLPPortable_%s.paf.exe' % self.version)) if os.path.exists(portable_app): - copy(portable_app, os.path.abspath( + move(portable_app, os.path.abspath( os.path.join(self.dist_path, u'..'))) self._print(u' PortableApp build complete') else: