aboutsummaryrefslogtreecommitdiff
path: root/install-win32
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--install-win32/GetWindowsVersion.nsi109
-rwxr-xr-xinstall-win32/openvpn.nsi.in52
-rwxr-xr-xinstall-win32/prebuild29
3 files changed, 167 insertions, 23 deletions
diff --git a/install-win32/GetWindowsVersion.nsi b/install-win32/GetWindowsVersion.nsi
new file mode 100644
index 0000000..103caff
--- /dev/null
+++ b/install-win32/GetWindowsVersion.nsi
@@ -0,0 +1,109 @@
+; Turn off old selected section
+; GetWindowsVersion
+;
+; Based on Yazno's function
+; Updated by Joost Verburg
+; Updated for Windows 98 SE by Matthew Win Tibbals 5-21-03
+; Updated for Vista by Joe Cincotta 12-2-07
+;
+; Returns on top of stack
+;
+; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003, VISTA)
+; or
+; '' (Unknown Windows Version)
+;
+; Usage:
+; Call GetWindowsVersion
+; Pop $R0
+; ; at this point $R0 is "NT 4.0" or whatnot
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Function GetWindowsVersion
+
+ Push $R0
+ Push $R1
+
+ ClearErrors
+
+ ReadRegStr $R0 HKLM \
+ "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
+
+ IfErrors 0 lbl_winnt
+
+ ; we are not NT
+ ReadRegStr $R0 HKLM \
+ "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
+
+ StrCpy $R1 $R0 1
+ StrCmp $R1 '4' 0 lbl_error
+
+ StrCpy $R1 $R0 3
+
+ StrCmp $R1 '4.0' lbl_win32_95
+ StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
+
+ lbl_win32_95:
+ StrCpy $R0 '95'
+ Goto lbl_done
+
+ lbl_win32_98:
+;;beginning of additions to support win 98 SE
+ push $R0
+ push "."
+ call strstr
+ pop $R0
+ StrCpy $R0 $R0 "" 1
+ StrCmp $R0 "10.2222" lbl_win32_98SE
+ StrCpy $R0 '98' ;;this line was not added
+ Goto lbl_done ;;this line was not added either
+
+ lbl_win32_98SE:
+ StrCpy $R0 '98 SE'
+ Goto lbl_done
+;;end of additions to support win 98 SE
+ lbl_win32_ME:
+ StrCpy $R0 'ME'
+ Goto lbl_done
+
+ lbl_winnt:
+
+ StrCpy $R1 $R0 1
+
+ StrCmp $R1 '3' lbl_winnt_x
+ StrCmp $R1 '4' lbl_winnt_x
+
+ StrCpy $R1 $R0 3
+
+ StrCmp $R1 '5.0' lbl_winnt_2000
+ StrCmp $R1 '5.1' lbl_winnt_XP
+ StrCmp $R1 '5.2' lbl_winnt_2003
+ StrCmp $R1 '6.0' lbl_winnt_VISTA lbl_error
+
+ lbl_winnt_x:
+ StrCpy $R0 "NT $R0" 6
+ Goto lbl_done
+
+ lbl_winnt_2000:
+ Strcpy $R0 '2000'
+ Goto lbl_done
+
+ lbl_winnt_XP:
+ Strcpy $R0 'XP'
+ Goto lbl_done
+
+ lbl_winnt_2003:
+ Strcpy $R0 '2003'
+ Goto lbl_done
+
+ lbl_winnt_VISTA:
+ Strcpy $R0 'VISTA'
+ Goto lbl_done
+
+ lbl_error:
+ Strcpy $R0 ''
+ lbl_done:
+
+ Pop $R1
+ Exch $R0
+
+FunctionEnd
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/install-win32/openvpn.nsi.in b/install-win32/openvpn.nsi.in
index 9a5b47a..8c24158 100755
--- a/install-win32/openvpn.nsi.in
+++ b/install-win32/openvpn.nsi.in
@@ -9,6 +9,7 @@
!include "MUI.nsh"
!include "setpath.nsi"
+!include "GetWindowsVersion.nsi"
!define HOME ".."
!define BIN "${HOME}\bin"
@@ -16,7 +17,7 @@
!define PRODUCT_NAME "OpenVPN"
!define VERSION "@VERSION@" # AUTO_VERSION
-!define TAP "tap0801"
+!define TAP "tap0901"
!define TAPDRV "${TAP}.sys"
; something like "-DBG2"
@@ -168,6 +169,8 @@ FunctionEnd
Function .onInit
ClearErrors
+
+# Verify that user has admin privs
UserInfo::GetName
IfErrors ok
Pop $R0
@@ -177,6 +180,35 @@ Function .onInit
Messagebox MB_OK "Administrator privileges required to install OpenVPN [$R0/$R1]"
Abort
ok:
+
+ Call GetWindowsVersion
+ Pop $1
+ StrCmp $1 "2000" goodwinver
+ StrCmp $1 "XP" goodwinver
+ StrCmp $1 "2003" goodwinver
+ StrCmp $1 "VISTA" goodwinver
+
+ Messagebox MB_OK "Sorry, OpenVPN does not currently support Windows $1"
+ Abort
+
+goodwinver:
+ System::Call "kernel32::GetCurrentProcess() i .s"
+ System::Call "kernel32::IsWow64Process(i s, *i .r0)"
+ IntCmp $0 0 init32bits
+
+ ; we are running on 64-bit windows
+ StrCmp $1 "VISTA" vista64bummer
+
+ Messagebox MB_OK "Sorry, OpenVPN doesn't currently support 64-bit Windows."
+ Abort
+
+vista64bummer:
+
+ Messagebox MB_OK "Sorry, OpenVPN doesn't currently support 64-bit Vista because Microsoft doesn't allow the installation of 64 bit unsigned drivers."
+ Abort
+
+init32bits:
+
FunctionEnd
!define SF_SELECTED 1
@@ -290,13 +322,15 @@ Section "TAP-Win32 Virtual Ethernet Adapter" SecTAP
DetailPrint "We are running on a 64-bit system."
SetOutPath "$INSTDIR\bin"
- File "${BIN}\ti3790-amd64\tapinstall.exe"
+
+; File "${BIN}\ti3790-amd64\tapinstall.exe"
SetOutPath "$INSTDIR\driver"
- File "${HOME}\tap-win32\amd64\OemWin2k.inf"
- File "${HOME}\tap-win32\amd64\${TAPDRV}"
- goto tapend
+; File "${HOME}\tap-win32\amd64\OemWin2k.inf"
+; File "${HOME}\tap-win32\amd64\${TAPDRV}"
+
+goto tapend
tap-32bit:
@@ -382,12 +416,10 @@ Section -post
tapinstall:
DetailPrint "TAP-Win32 REMOVE OLD TAP"
- nsExec::ExecToLog '"$INSTDIR\bin\tapinstall.exe" remove TAP'
- Pop $R0 # return value/error/timeout
- DetailPrint "tapinstall remove TAP returned: $R0"
- nsExec::ExecToLog '"$INSTDIR\bin\tapinstall.exe" remove TAPDEV'
+
+ nsExec::ExecToLog '"$INSTDIR\bin\tapinstall.exe" remove TAP0801'
Pop $R0 # return value/error/timeout
- DetailPrint "tapinstall remove TAPDEV returned: $R0"
+ DetailPrint "tapinstall remove TAP0801 returned: $R0"
DetailPrint "TAP-Win32 INSTALL (${TAP})"
nsExec::ExecToLog '"$INSTDIR\bin\tapinstall.exe" install "$INSTDIR\driver\OemWin2k.inf" ${TAP}'
diff --git a/install-win32/prebuild b/install-win32/prebuild
index b4cb00b..95b93de 100755
--- a/install-win32/prebuild
+++ b/install-win32/prebuild
@@ -28,11 +28,10 @@ LZO=$H/lzo-2.02
# dmalloc.
DMALLOC=$H/dmalloc-5.4.2
-# TAP binaries should be here: tap0801.sys and tapinstall.exe
+# TAP binaries should be here: tap0901.sys and tapinstall.exe
# These must be built with MS DDK.
-TAPBIN=$H/tapbin-0804
-TAPBIN64=$H/tapbin64-0801
-#TAPBIN64=$H/tapbin64-0804
+TAPBIN=$H/tapbin-0901
+#TAPBIN64=$H/tapbin64-0901
# u2d.c should exist here.
SCRIPTS=$IN/install-win32
@@ -86,6 +85,7 @@ mkdir $OUT/install-win32
cp $IN/install-win32/openvpn.nsi $OUT/install-win32
cp $IN/install-win32/setpath.nsi $OUT/install-win32
+cp $IN/install-win32/GetWindowsVersion.nsi $OUT/install-win32
cp $IN/images/install-whirl.bmp $OUT/install-win32
cp $IN/images/openvpn.ico $OUT/install-win32
cp $IN/INSTALL-win32.txt $OUT/install-win32
@@ -107,18 +107,17 @@ cp $IN/tap-win32/SOURCES $OUT/tap-win32
mkdir $OUT/tap-win32/i386
cp $IN/tap-win32/i386/OemWin2k.inf $OUT/tap-win32/i386
cp $IN/tap-win32/i386/tap.cat $OUT/tap-win32/i386
-cp $TAPBIN/tap0801.sys $OUT/tap-win32/i386
+cp $TAPBIN/tap0901.sys $OUT/tap-win32/i386
-mkdir $OUT/tap-win32/amd64
-cp $TAPBIN64/OemWin2k.inf $OUT/tap-win32/amd64
-#cp $IN/tap-win32/amd64/OemWin2k.inf $OUT/tap-win32/amd64
-cp $IN/tap-win32/amd64/tap.cat $OUT/tap-win32/amd64
-cp $TAPBIN64/tap0801.sys $OUT/tap-win32/amd64
+#mkdir $OUT/tap-win32/amd64
+#cp $TAPBIN64/OemWin2k.inf $OUT/tap-win32/amd64
+#cp $IN/tap-win32/amd64/tap.cat $OUT/tap-win32/amd64
+#cp $TAPBIN64/tap0901.sys $OUT/tap-win32/amd64
mkdir $OUT/bin/ti3790-i386
cp $TAPBIN/tapinstall.exe $OUT/bin/ti3790-i386
-mkdir $OUT/bin/ti3790-amd64
-cp $TAPBIN64/tapinstall.exe $OUT/bin/ti3790-amd64
+#mkdir $OUT/bin/ti3790-amd64
+#cp $TAPBIN64/tapinstall.exe $OUT/bin/ti3790-amd64
echo BUILD service-win32
@@ -133,7 +132,11 @@ cp $OUT/service-win32/service.h $OUT/service-win32/service.h.orig
cp $OUT/service-win32/service.c $OUT/service-win32/service.c.orig
pushd $OUT/service-win32
-patch <service.patch
+
+# Vista security theatre
+cp `which patch` p.exe
+
+./p <service.patch
popd
echo BUILD easy-rsa