Fix java version detection and downloading
authorKeith Packard <keithp@keithp.com>
Wed, 18 Jun 2014 03:46:33 +0000 (20:46 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 18 Jun 2014 03:48:23 +0000 (20:48 -0700)
Move java stuff to a common include file, java.nsh

Let any version no older than 1.6 serve by using ${VersionCompare}

Use version 6 downloads as those don't require a click-through agreement.

Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/Instdrv/NSIS/Includes/java.nsh [new file with mode: 0644]
altosui/altos-windows.nsi.in
micropeak/Makefile.am
micropeak/micropeak-windows.nsi.in
telegps/telegps-windows.nsi.in

diff --git a/altosui/Instdrv/NSIS/Includes/java.nsh b/altosui/Instdrv/NSIS/Includes/java.nsh
new file mode 100644 (file)
index 0000000..ebf1c5b
--- /dev/null
@@ -0,0 +1,50 @@
+!include WordFunc.nsh
+
+; Definitions for Java Detection
+
+!define JRE_VERSION "1.6"
+!define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52247&/jre-6u27-windows-i586.exe"
+!define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52249&/jre-6u27-windows-x64.exe"
+
+Var JavaDownload
+Var JavaBits
+
+Function GetJRE
+       ${If} ${RunningX64}
+          StrCpy $JavaDownload ${JRE64_URL}
+          StrCpy $JavaBits "64"
+       ${Else}
+          StrCpy $JavaDownload ${JRE32_URL}
+          StrCpy $JavaBits "32"
+       ${EndIf}
+
+        MessageBox MB_OK "This product uses Java ${JRE_VERSION}, \
+                       $JavaBits bits, it will now \
+                        be downloaded and installed"
+
+        StrCpy $2 "$TEMP\Java Runtime Environment.exe"
+        nsisdl::download /TIMEOUT=30000 $JavaDownload $2
+        Pop $R0 ;Get the return value
+                StrCmp $R0 "success" +3
+                MessageBox MB_OK "Download failed: $R0"
+                Quit
+        ExecWait $2
+        Delete $2
+FunctionEnd
+
+Function DetectJRE
+  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
+             "CurrentVersion"
+
+  DetailPrint "Desired Java version ${JRE_VERSION}"
+  DetailPrint "Actual Java version $2"
+
+  ${VersionCompare} $2 ${JRE_VERSION} $3
+
+  IntCmp $3 1 done done
+
+  Call GetJRE
+
+done:
+
+FunctionEnd
index b72772e290b786fd1777c6e609504f91bfb8852e..ab5ac4530ecf8ee9493f904d53ac317998e9d287 100644 (file)
@@ -1,10 +1,8 @@
 !addplugindir Instdrv/NSIS/Plugins
+!addincludedir Instdrv/NSIS/Includes
 !include x64.nsh
-; Definitions for Java 1.7 Detection
-!define JRE_VERSION "1.7"
-!define JRE_ALTERNATE "1.6"
-!define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83383&/jre-7u51-windows-i586.exe"
-!define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83385&/jre-7u51-windows-x64.exe"
+!include java.nsh
+
 !define PRODUCT_NAME "Altus Metrum Windows Software"
 
 Name "Altus Metrum Installer"
@@ -35,45 +33,6 @@ Function .onInit
        ${EndIf}
 FunctionEnd
 
-Var JavaDownload
-Var JavaBits
-
-Function GetJRE
-       ${If} ${RunningX64}
-          StrCpy $JavaDownload ${JRE64_URL}
-          StrCpy $JavaBits "64"
-       ${Else}
-          StrCpy $JavaDownload ${JRE32_URL}
-          StrCpy $JavaBits "32"
-       ${EndIf}
-
-        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, \
-                       $JavaBits bits, it will now \
-                        be downloaded and installed"
-
-        StrCpy $2 "$TEMP\Java Runtime Environment.exe"
-        nsisdl::download /TIMEOUT=30000 $JavaDownload $2
-        Pop $R0 ;Get the return value
-                StrCmp $R0 "success" +3
-                MessageBox MB_OK "Download failed: $R0"
-                Quit
-        ExecWait $2
-        Delete $2
-FunctionEnd
-
-Function DetectJRE
-  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
-             "CurrentVersion"
-
-  StrCmp $2 ${JRE_VERSION} done
-
-  StrCmp $2 ${JRE_ALTERNATE} done
-
-  Call GetJRE
-
-  done:
-FunctionEnd
-
 ; Pages to present
 
 Page license
index 216874dfb362c5fe0d518a85fd191bfaacdd991f..39ebc43a069df837a49ddf841c6a8783160c7ba4 100644 (file)
@@ -272,7 +272,7 @@ $(MACOSX_DIST): $(MACOSX_FILES)
 
 $(WINDOWS_DIST): $(WINDOWS_FILES) micropeak-windows.nsi
        -rm -f $@
-       makensis -Omicropeak-windows.log "-XOutFile $@" "-DVERSION=$(VERSION)" micropeak-windows.nsi
+       makensis -Omicropeak-windows.log "-XOutFile $@" "-DVERSION=$(VERSION)" micropeak-windows.nsi || (cat micropeak-windows.log && exit 1)
 
 Manifest.txt: Makefile
        echo 'Main-Class: org.altusmetrum.micropeak.MicroPeak' > $@
index 6dc9d8c15ebedd739ed59cd6a7e4359f62c69cd6..bb5da1bb64e4e33846344a57bb5e3c5c9058e43b 100644 (file)
@@ -1,11 +1,7 @@
 !addplugindir Instdrv/NSIS/Plugins
+!addincludedir ../altosui/Instdrv/NSIS/Includes
 !include x64.nsh
-; Definitions for Java 1.7 Detection
-!define JRE_VERSION "1.7"
-!define JRE_ALTERNATE "1.6"
-!define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83383&/jre-7u51-windows-i586.exe"
-!define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83385&/jre-7u51-windows-x64.exe"
-!define PRODUCT_NAME "Altus Metrum Windows Software"
+!include java.nsh
 
 Name "Altus Metrum MicroPeak Installer"
 
@@ -35,44 +31,6 @@ Function .onInit
        ${EndIf}
 FunctionEnd
 
-Var JavaDownload
-Var JavaBits
-
-Function GetJRE
-       ${If} ${RunningX64}
-          StrCpy $JavaDownload ${JRE64_URL}
-          StrCpy $JavaBits "64"
-       ${Else}
-          StrCpy $JavaDownload ${JRE32_URL}
-          StrCpy $JavaBits "32"
-       ${EndIf}
-
-        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, \
-                       $JavaBits bits, it will now \
-                        be downloaded and installed"
-
-        StrCpy $2 "$TEMP\Java Runtime Environment.exe"
-        nsisdl::download /TIMEOUT=30000 $JavaDownload $2
-        Pop $R0 ;Get the return value
-                StrCmp $R0 "success" +3
-                MessageBox MB_OK "Download failed: $R0"
-                Quit
-        ExecWait $2
-        Delete $2
-FunctionEnd
-
-Function DetectJRE
-  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
-             "CurrentVersion"
-  StrCmp $2 ${JRE_VERSION} done
-
-  StrCmp $2 ${JRE_ALTERNATE} done
-
-  Call GetJRE
-
-  done:
-FunctionEnd
-
 ; Pages to present
 
 Page license
index e6798c46783cba7cd9fe6bbc311e28c33df5e169..b41455206532d5152840c88be662d70e5a598f9e 100644 (file)
@@ -1,11 +1,7 @@
 !addplugindir ../altosui/Instdrv/NSIS/Plugins
+!addincludedir ../altosui/Instdrv/NSIS/Includes
 !include x64.nsh
-; Definitions for Java 1.7 Detection
-!define JRE_VERSION "1.7"
-!define JRE_ALTERNATE "1.6"
-!define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83383&/jre-7u51-windows-i586.exe"
-!define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83385&/jre-7u51-windows-x64.exe"
-!define PRODUCT_NAME "TeleGPS Windows Software"
+!include java.nsh
 
 Name "TeleGPS Installer"
 
@@ -35,45 +31,6 @@ Function .onInit
        ${EndIf}
 FunctionEnd
 
-Var JavaDownload
-Var JavaBits
-
-Function GetJRE
-       ${If} ${RunningX64}
-          StrCpy $JavaDownload ${JRE64_URL}
-          StrCpy $JavaBits "64"
-       ${Else}
-          StrCpy $JavaDownload ${JRE32_URL}
-          StrCpy $JavaBits "32"
-       ${EndIf}
-
-        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, \
-                       $JavaBits bits, it will now \
-                        be downloaded and installed"
-
-        StrCpy $2 "$TEMP\Java Runtime Environment.exe"
-        nsisdl::download /TIMEOUT=30000 $JavaDownload $2
-        Pop $R0 ;Get the return value
-                StrCmp $R0 "success" +3
-                MessageBox MB_OK "Download failed: $R0"
-                Quit
-        ExecWait $2
-        Delete $2
-FunctionEnd
-
-Function DetectJRE
-  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
-             "CurrentVersion"
-
-  StrCmp $2 ${JRE_VERSION} done
-
-  StrCmp $2 ${JRE_ALTERNATE} done
-
-  Call GetJRE
-
-  done:
-FunctionEnd
-
 ; Pages to present
 
 Page license