From: Brian S. <xue...@us...> - 2006-08-29 15:52:54
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11752 Modified Files: Tag: b0_22_2 getssl.nsh Log Message: Updated to work with the NSIS 2.19 compiler (for the 0.22.5 release). Switched from the standard NSISdl plugin to the Inetc plugin since it offers much better proxy support and also better support for dial-up connections. No longer need to ping the remote site to detect if the target system is connected to the Internet. Vpatch used when installing SSL Support files from the University of Winnipeg repository. IO::Socket::SSL v0.99 and v0.999 are not compatible with POPFile 0.22.x so this patch is used to downgrade the SSL.pm file to v0.97 which is compatible. Index: getssl.nsh =================================================================== RCS file: /cvsroot/popfile/windows/getssl.nsh,v retrieving revision 1.6.2.6 retrieving revision 1.6.2.7 diff -C2 -d -r1.6.2.6 -r1.6.2.7 *** getssl.nsh 6 Feb 2006 16:13:24 -0000 1.6.2.6 --- getssl.nsh 29 Aug 2006 15:52:48 -0000 1.6.2.7 *************** *** 9,12 **** --- 9,20 ---- # programs download and install the same SSL files. # + # On 18 July 2006 the University of Winnipeg repository was updated to provide + # IO::Socket::SSL v0.99 which is not compatible with POPFile so a patch will be + # applied to downgrade the relevant file to the compatible v0.97 version. + # + # On 18 August 2006 the University of Winnipeg repository was updated to supply + # IO::Socket::SSL v0.999 which is not compatible with POPFile so a patch will + # be applied to downgrade the relevant file to the compatible v0.97 version. + # # Copyright (c) 2005-2006 John Graham-Cumming # *************** *** 31,36 **** #-------------------------------------------------------------------------- ! ; This version of the script has been tested with the "NSIS 2" compiler (final), ! ; released 7 February 2004, with no "official" NSIS patches applied. ;------------------------------------------------ --- 39,61 ---- #-------------------------------------------------------------------------- ! ; This version of the script has been tested with the "NSIS v2.19" compiler, ! ; released 6 August 2006. This particular compiler can be downloaded from ! ; http://prdownloads.sourceforge.net/nsis/nsis-2.19-setup.exe?download ! ! ;------------------------------------------------ ! ; This script requires the 'Inetc' NSIS plugin ! ;------------------------------------------------ ! ! ; This script uses a special NSIS plugin (inetc) to download the SSL files. This plugin ! ; has much better proxy support than the standard NSISdl plugin shipped with NSIS. ! ; ! ; The 'NSIS Wiki' page for the 'Inetc' plugin (description, example and download links): ! ; http://nsis.sourceforge.net/Inetc_plug-in ! ; ! ; To compile this script, copy the 'inetc.dll' file to the standard NSIS plugins folder ! ; (${NSISDIR}\Plugins\). The 'Inetc' source and example files can be unzipped to the ! ; appropriate ${NSISDIR} sub-folders if you wish, but this step is entirely optional. ! ; ! ; Tested with the inetc.dll plugin timestamped 24 June 2006 12:40 ;------------------------------------------------ *************** *** 52,55 **** --- 77,94 ---- ; Tested with versions 1.0.5, 1.0.6, 1.0.7 and 1.0.8 of the 'untgz' plugin. + ;------------------------------------------------ + ; How the SSL.pm patch was created + ;------------------------------------------------ + + ; The patch used to downgrade either SSL.pm v0.99 or SSL.pm v0.999 to v0.97 was created + ; using the VPATCH package which is supplied with NSIS. This special patch was made using + ; the commands: + ; + ; GenPat.exe SSL_0.99.pm SSL_0.97.pm SSL_pm.pat + ; GenPat.exe SSL_0.999.pm SSL_0.97.pm SSL_pm.pat + ; + ; where SSL_0.97.pm was the SSL.pm file from v0.97 of the IO::Socket:SSL module + ; and SSL_0.99.pm was the SSL.pm file from v0.99 of the IO::Socket:SSL module + ; and SSL_0.999.pm was the SSL.pm file from v0.999 of the IO::Socket:SSL module #-------------------------------------------------------------------------- *************** *** 58,65 **** #-------------------------------------------------------------------------- - ; To check if the target computer is connected to the Internet, we ping this address: - - !define C_UWR_URL_TO_PING "http://theoryx5.uwinnipeg.ca/" - ; In addition to some extra Perl modules, POPFile's SSL support needs two OpenSSL DLLs. --- 97,100 ---- *************** *** 94,98 **** Section "SSL Support" SecSSL ! ; The stand-alone utility includes a compressed set of POPFile 0.22.x compatible SSL ; support files so we increase the size estimate to take the necessary unpacking into ; account (and assume that there will not be a significant difference in the space --- 129,133 ---- Section "SSL Support" SecSSL ! ; The stand-alone utility includes a compressed set of POPFile pre-0.22.3 compatible SSL ; support files so we increase the size estimate to take the necessary unpacking into ; account (and assume that there will not be a significant difference in the space *************** *** 109,119 **** !ifdef ADDSSL ! !define L_VER_X $R1 ; We check only the first three fields in the version number ! !define L_VER_Y $R2 ; but the code could be further simplified by merely testing ! !define L_VER_Z $R3 ; the 'build number' field (the field we currently ignore) ! Push ${L_VER_X} ! Push ${L_VER_Y} ! Push ${L_VER_Z} ; The stand-alone utility may be used to add SSL support to an 0.22.x installation --- 144,166 ---- !ifdef ADDSSL ! ; For POPFile 0.22.3 (and later) releases this stand-alone utility will download and, ! ; if necessary, patch the SSL support files from the University of Winnipeg repository. ! ; ! ; However there will always be some delay between the repository being updated with SSL ! ; files which are not compatible with POPFile and the generation of an updated version ! ; of this stand-alone utility which fixes the SSL compatibility problem. ! ; ! ; The /BUILTIN command-line switch provides an easy way to force the installation of ! ; the old SSL support files normally used only for the POPFile 0.22.0, 0.22.1 and ! ; 0.22.2 releases as a workaround until this utility can be updated to handle the new ! ; SSL support files. ! Call PFI_GetParameters ! Pop ${L_RESULT} ! StrCmp ${L_RESULT} "/BUILTIN" 0 look_for_minimal_Perl ! DetailPrint "The '/BUILTIN' option was supplied on the command-line" ! Goto assume_pre_0_22_3 ! ! look_for_minimal_Perl: ; The stand-alone utility may be used to add SSL support to an 0.22.x installation *************** *** 123,130 **** IfFileExists "$G_ROOTDIR\perl58.dll" check_Perl_version ! DetailPrint "Assume 0.22.x installation (perl58.dll not found in '$G_ROOTDIR' folder)" ! Goto assume_0_22_x check_Perl_version: GetDllVersion "$G_ROOTDIR\perl58.dll" ${L_VER_Y} ${L_VER_Z} IntOp ${L_VER_X} ${L_VER_Y} / 0x00010000 --- 170,186 ---- IfFileExists "$G_ROOTDIR\perl58.dll" check_Perl_version ! DetailPrint "Assume pre-0.22.3 installation (perl58.dll not found in '$G_ROOTDIR' folder)" ! Goto assume_pre_0_22_3 check_Perl_version: + + !define L_VER_X $R1 ; We check only the first three fields in the version number + !define L_VER_Y $R2 ; but the code could be further simplified by merely testing + !define L_VER_Z $R3 ; the 'build number' field (the field we currently ignore) + + Push ${L_VER_X} + Push ${L_VER_Y} + Push ${L_VER_Z} + GetDllVersion "$G_ROOTDIR\perl58.dll" ${L_VER_Y} ${L_VER_Z} IntOp ${L_VER_X} ${L_VER_Y} / 0x00010000 *************** *** 155,159 **** StrCmp ${L_RESULT} "download" download_ssl ! assume_0_22_x: ; Pretend we've just downloaded these files from the repository --- 211,215 ---- StrCmp ${L_RESULT} "download" download_ssl ! assume_pre_0_22_3: ; Pretend we've just downloaded these files from the repository *************** *** 173,212 **** !endif - SetDetailsPrint textonly - DetailPrint "$(PFI_LANG_PROG_CHECKINTERNET) $(PFI_LANG_TAKE_SEVERAL_SECONDS)" - SetDetailsPrint listonly - - !define FLAG_ICC_FORCE_CONNECTION 0x00000001 - - ; The system call result is returned in 'r10' (i.e. in $R0) - - System::Call "wininet::InternetCheckConnection( \ - t '${C_UWR_URL_TO_PING}', \ - i ${FLAG_ICC_FORCE_CONNECTION}, i 0) i .r10" - - StrCmp ${L_RESULT} "error" no_ie3 - StrCmp ${L_RESULT} "0" no_connection - DetailPrint "InternetCheckConnection: online (${L_RESULT})" - Goto download - - no_ie3: - DetailPrint "InternetCheckConnection: no IE3" - Goto manual_connect - - no_connection: - DetailPrint "InternetCheckConnection: offline" - - manual_connect: - DetailPrint "InternetCheckConnection: manual connect requested" - MessageBox MB_OKCANCEL|MB_ICONINFORMATION "$(PFI_LANG_MB_INTERNETCONNECT)" IDOK download - DetailPrint "InternetCheckConnection: cancelled by user" - !ifdef INSTALLER - Goto installer_error_exit - !else - Goto error_exit - !endif - - download: - ; Download the archives and OpenSSL DLLs --- 229,232 ---- *************** *** 254,258 **** SetDetailsPrint listonly untgz::extractFile -d "$G_PLS_FIELD_1" "$PLUGINSDIR\IO-Socket-SSL.tar.gz" "SSL.pm" ! StrCmp ${L_RESULT} "success" label_a error_exit label_a: --- 274,324 ---- SetDetailsPrint listonly untgz::extractFile -d "$G_PLS_FIELD_1" "$PLUGINSDIR\IO-Socket-SSL.tar.gz" "SSL.pm" ! StrCmp ${L_RESULT} "success" 0 error_exit ! ! ; If IO::Socket::SSL v0.99 has been downloaded and installed, apply the patch which ! ; downgrades the SSL.pm file from v0.99 to v0.97 to make it compatible with POPFile ! ! DetailPrint "" ! DetailPrint "$(PFI_LANG_SSLPREPAREPATCH)" ! ! SetDetailsPrint none ! !ifdef INSTALLER ! File "/oname=$PLUGINSDIR\SSL_pm.pat" "SSL_pm.pat" ! !else ! File "/oname=$PLUGINSDIR\SSL_pm.pat" "..\SSL_pm.pat" ! !endif ! SetDetailsPrint listonly ! ! DetailPrint "" ! vpatch::vpatchfile "$PLUGINSDIR\SSL_pm.pat" "$G_PLS_FIELD_1\SSL.pm" "$PLUGINSDIR\SSL_v097.pm" ! Pop $G_PLS_FIELD_2 ! ! SetDetailsPrint both ! DetailPrint "$(PFI_LANG_SSLPATCHSTATUS)" ! SetDetailsPrint listonly ! DetailPrint "" ! ! StrCmp $G_PLS_FIELD_2 "No suitable patches were found" label_a ! StrCmp $G_PLS_FIELD_2 "OK" 0 show_downgrade_status ! !insertmacro PFI_BACKUP_123_DP "$G_PLS_FIELD_1" "SSL.pm" ! SetDetailsPrint none ! Rename "$PLUGINSDIR\SSL_v097.pm" "$G_PLS_FIELD_1\SSL.pm" ! IfFileExists "$G_PLS_FIELD_1\SSL.pm" downgrade_success ! Rename "$G_PLS_FIELD_1\SSL.pm.bk1" "$G_PLS_FIELD_1\SSL.pm" ! SetDetailsPrint listonly ! DetailPrint "" ! SetDetailsPrint both ! DetailPrint "$(PFI_LANG_SSLPATCHFAILED)" ! Goto label_a ! ! downgrade_success: ! SetDetailsPrint listonly ! DetailPrint "$(PFI_LANG_SSLPATCHCOMPLETED)" ! DetailPrint "" ! ! show_downgrade_status: ! !ifdef ADDSSL ! MessageBox MB_OK|MB_ICONEXCLAMATION "$(PFI_LANG_SSLPATCHSTATUS)" ! !endif label_a: *************** *** 335,339 **** IfFileExists "$G_PLS_FIELD_1\SSLeay.bs" done ! File "/oname=$G_PLS_FIELD_1\SSLeay.bs" "zerobyte.file" done: --- 401,409 ---- IfFileExists "$G_PLS_FIELD_1\SSLeay.bs" done ! !ifdef INSTALLER ! File "/oname=$G_PLS_FIELD_1\SSLeay.bs" "zerobyte.file" ! !else ! File "/oname=$G_PLS_FIELD_1\SSLeay.bs" "..\zerobyte.file" ! !endif done: *************** *** 381,387 **** DetailPrint "" DetailPrint "$(PFI_LANG_PROG_STARTDOWNLOAD)" ! NSISdl::download ${C_NSISDL_TRANSLATIONS} "$G_SSL_FILEURL" "$PLUGINSDIR\$G_PLS_FIELD_1" Pop $G_PLS_FIELD_2 ! StrCmp $G_PLS_FIELD_2 "success" file_received SetDetailsPrint both DetailPrint "$(PFI_LANG_MB_NSISDLFAIL_1)" --- 451,457 ---- DetailPrint "" DetailPrint "$(PFI_LANG_PROG_STARTDOWNLOAD)" ! inetc::get /RESUME "$(PFI_LANG_MB_CHECKINTERNET)" ${C_NSISDL_TRANSLATIONS} "$G_SSL_FILEURL" "$PLUGINSDIR\$G_PLS_FIELD_1" /END Pop $G_PLS_FIELD_2 ! StrCmp $G_PLS_FIELD_2 "OK" file_received SetDetailsPrint both DetailPrint "$(PFI_LANG_MB_NSISDLFAIL_1)" |