[X2Go-Commits] [pyhoca-gui] 01/01: Windows: Numerous improvements to installer

git-admin at x2go.org git-admin at x2go.org
Mon Jul 7 01:05:39 CEST 2014


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository pyhoca-gui.

commit dd8b65b7fdb73fed793ffa3a5e96b1e14c0b63ff
Author: Mike DePaulo <mikedep333 at gmail.com>
Date:   Sun Jul 6 19:05:34 2014 -0400

    Windows: Numerous improvements to installer
---
 debian/changelog |    4 ++++
 nsis_template.py |   24 +++++++++++++++++-------
 setup.py         |   25 ++++++++++++++++++++++---
 3 files changed, 43 insertions(+), 10 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 9eaead3..5035a46 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -73,6 +73,10 @@ pyhoca-gui (0.5.0.0-0x2go1) UNRELEASED; urgency=low
 
   [ Mike DePaulo ]
   * New upstream version (0.5.0.0):
+    - Windows: List as "X2Go PyHoca-GUI" instead of "PyHoca-GUI" in
+      add/remove programs
+    - Windows: Numerous other improvements to installer.
+      add version string, add icon, etc.
     - Windows: Upgrade PulseAudio from 1.1 to 5.0-rev18 from OBS.
       Fixes choppy sound in Adobe Flash Player (Fixes: #533) 
     - Windows: Upgrade from VcXsrv 1.14.2.0 to VcXsrv-xp 1.14.3.2
diff --git a/nsis_template.py b/nsis_template.py
index 5574e95..b4391c7 100644
--- a/nsis_template.py
+++ b/nsis_template.py
@@ -24,13 +24,15 @@ NSIS_SCRIPT_TEMPLATE = """
 
 !define VERSION {program_version}
 
+!define UNINSTALL_REGKEY    "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}"
+
 ;--------------------------------
 
 ; The name of the installer
 Name "{program_name}"
 
-; Sets the title bar text (although NSIS seems to append "Installer")
-Caption "{program_desc}"
+; Sets the title bar text
+Caption "{program_desc_short}"
 
 !define distOutputDirectory '{output_dir}'
 
@@ -257,10 +259,18 @@ Section "{program_name} ($REQUIRED)"
   WriteRegStr HKLM SOFTWARE\\{program_name} "Install_Dir" "$INSTDIR"
 
   ; Write the uninstall keys for Windows
-  WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}" "DisplayName" "{program_name}"
-  WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}" "UninstallString" '"$INSTDIR\\uninstall.exe"'
-  WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}" "NoModify" 1
-  WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}" "NoRepair" 1
+  
+  WriteRegStr HKLM ${{UNINSTALL_REGKEY}}   "InstallLocation"      "$INSTDIR"
+  WriteRegStr HKLM ${{UNINSTALL_REGKEY}}   "UninstallString"      "$INSTDIR\\uninstall.exe"
+  WriteRegStr HKLM ${{UNINSTALL_REGKEY}}   "DisplayIcon"          "$INSTDIR\\{icon_location}"
+  WriteRegStr HKLM ${{UNINSTALL_REGKEY}}   "DisplayName"          "{uninstall_name}"
+  WriteRegStr HKLM ${{UNINSTALL_REGKEY}}   "DisplayVersion"       "{program_version}"
+  WriteRegStr HKLM ${{UNINSTALL_REGKEY}}   "Publisher"            "{publisher}"
+  WriteRegStr HKLM ${{UNINSTALL_REGKEY}}   "HelpLink"             "{url}"
+  WriteRegStr HKLM ${{UNINSTALL_REGKEY}}   "URLInfoAbout"         "{url}"
+  WriteRegStr HKLM ${{UNINSTALL_REGKEY}}   "URLUpdateInfo"        "{url}"
+  WriteRegDWORD HKLM ${{UNINSTALL_REGKEY}} "NoModify" 1
+  WriteRegDWORD HKLM ${{UNINSTALL_REGKEY}} "NoRepair" 1
   WriteUninstaller "uninstall.exe"
 
 SectionEnd
@@ -294,7 +304,7 @@ SectionEnd
 Section "Uninstall"
 
   ; Remove registry keys
-  DeleteRegKey HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}"
+  DeleteRegKey HKLM ${{UNINSTALL_REGKEY}}
   DeleteRegKey HKLM SOFTWARE\\{program_name}
 
   ; Remove files and uninstaller
diff --git a/setup.py b/setup.py
index 1e0bb71..eb78221 100755
--- a/setup.py
+++ b/setup.py
@@ -24,15 +24,21 @@ import os
 import platform
 
 PROGRAM_NAME = 'PyHoca-GUI'
+# Windows:  UNINSTALL_NAME is for add/remove programs
+UNINSTALL_NAME = 'X2Go PyHoca-GUI'
 SCRIPT_NAME = 'pyhoca-gui'
 PROGRAM_DESC = '%s is a cross-platform (Windows, MacOS X, Linux) graphical X2Go client.' % PROGRAM_NAME
+PROGRAM_DESC_SHORT = '%s is a graphical X2Go client.' % PROGRAM_NAME
 for line in file(os.path.join('pyhoca', 'wxgui', '__init__.py')).readlines():
     if (line.startswith('__VERSION__')):
         exec(line.strip())
 PROGRAM_VERSION = __VERSION__
 PROGRAM_ICON = "pixmaps/pyhoca_x2go-logo-ubuntu.ico"
+# Windows:  UNINSTALL_ICON is for add/remove programs.
+UNINSTALL_ICON = "icons\\pyhoca-gui.ico"
 LICENSE = 'AGPLv3+'
 AUTHOR = 'Mike Gabriel, Dick Kniep'
+PUBLISHER = 'X2Go Project'
 URL = 'http://www.x2go.org'
 LIBRARY_ZIP = r"lib\shardlib.zip"
 
@@ -101,10 +107,14 @@ def datafilelist(installbase, sourcebase):
 
 class NSISScript(object):
 
-    def __init__(self, program_name, program_desc, program_version, dist_dir, icon_loc):
+    def __init__(self, program_name, uninstall_name, program_desc, program_desc_short, program_version, publisher, url, dist_dir, icon_loc):
         self.program_name = program_name
+        self.uninstall_name = uninstall_name
         self.program_desc =  program_desc
+        self.program_desc_short =  program_desc_short
         self.program_version = program_version
+        self.publisher = publisher
+        self.url = url
         self.dist_dir = dist_dir
         self.icon_loc = icon_loc
         self.pathname = "setup_%s.nsi" % self.program_name
@@ -112,10 +122,14 @@ class NSISScript(object):
     def create(self):
         contents = NSIS_SCRIPT_TEMPLATE.format(
                     program_name = self.program_name,
+                    uninstall_name = self.uninstall_name,
                     program_version = self.program_version,
                     program_desc = self.program_desc,
+                    program_desc_short = self.program_desc_short,
+                    publisher = self.publisher,
+                    url = self.url,
                     output_dir = self.dist_dir,
-                    icon_location = os.path.join(self.dist_dir, self.icon_loc)
+                    icon_location = self.icon_loc
         )
 
         with open(self.pathname, "w") as outfile:
@@ -158,10 +172,14 @@ class build_installer(object):
         # Create the installer, using the files py2exe has created.
         script = NSISScript(
                             PROGRAM_NAME,
+                            UNINSTALL_NAME,
                             PROGRAM_DESC,
+                            PROGRAM_DESC_SHORT,
                             PROGRAM_VERSION,
+                            PUBLISHER,
+                            URL,
                             self.dist_dir,
-                            os.path.normpath(PROGRAM_ICON)
+                            UNINSTALL_ICON
                            )
         print "*** creating the NSIS setup script***"
         script.create()
@@ -250,6 +268,7 @@ if platform.system() == 'Windows':
     i18n_files = datafilelist('mo', r'build\\mo')
 
     data_files.extend([ ('icons', ["pixmaps\\pyhoca-gui.ico"]), ] +
+                      [ ('icons', ["pixmaps\\pyhoca_x2go-logo-ubuntu.ico"]), ] +
                       dll_data_files +
                       icon_files +
                       img_files +

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/pyhoca-gui.git


More information about the x2go-commits mailing list