summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-06-17 20:46:33 -0700
committerKeith Packard <keithp@keithp.com>2014-06-17 20:48:23 -0700
commit3f4e765c05ddbae83ca0c0176572cd698f285d08 (patch)
tree4c9818e7fb222c0bc4007c8005d996de68c42c76
parent495e84540943cccb6d1cb965a772021f7dc5f639 (diff)
Fix java version detection and downloading
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>
-rw-r--r--altosui/Instdrv/NSIS/Includes/java.nsh50
-rw-r--r--altosui/altos-windows.nsi.in47
-rw-r--r--micropeak/Makefile.am2
-rw-r--r--micropeak/micropeak-windows.nsi.in46
-rw-r--r--telegps/telegps-windows.nsi.in47
5 files changed, 58 insertions, 134 deletions
diff --git a/altosui/Instdrv/NSIS/Includes/java.nsh b/altosui/Instdrv/NSIS/Includes/java.nsh
new file mode 100644
index 00000000..ebf1c5b9
--- /dev/null
+++ b/altosui/Instdrv/NSIS/Includes/java.nsh
@@ -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
diff --git a/altosui/altos-windows.nsi.in b/altosui/altos-windows.nsi.in
index b72772e2..ab5ac453 100644
--- a/altosui/altos-windows.nsi.in
+++ b/altosui/altos-windows.nsi.in
@@ -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
diff --git a/micropeak/Makefile.am b/micropeak/Makefile.am
index 216874df..39ebc43a 100644
--- a/micropeak/Makefile.am
+++ b/micropeak/Makefile.am
@@ -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' > $@
diff --git a/micropeak/micropeak-windows.nsi.in b/micropeak/micropeak-windows.nsi.in
index 6dc9d8c1..bb5da1bb 100644
--- a/micropeak/micropeak-windows.nsi.in
+++ b/micropeak/micropeak-windows.nsi.in
@@ -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
diff --git a/telegps/telegps-windows.nsi.in b/telegps/telegps-windows.nsi.in
index e6798c46..b4145520 100644
--- a/telegps/telegps-windows.nsi.in
+++ b/telegps/telegps-windows.nsi.in
@@ -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