X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;ds=sidebyside;f=setup.nsi;h=89d308723e92f2f377b0e83aa3da591710b29f57;hb=a21dcd7e1c8623f4aaf3a3659e81247273f652e9;hp=5923536aa99d543ac5348fa167f548cdc6ebc930;hpb=10efe308d58fef36e7e48aad9f3de7052d70225b;p=odoo%2Fodoo.git diff --git a/setup.nsi b/setup.nsi index 5923536..89d3087 100644 --- a/setup.nsi +++ b/setup.nsi @@ -1,246 +1,266 @@ -;NSIS Modern User Interface -;Start Menu Folder Selection Example Script -;Written by Joost Verburg +############################################################################## +# +# Copyright (c) 2004-2008 Tiny SPRL (http://tiny.be) All Rights Reserved. +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 3 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +############################################################################### +!ifndef VERSION + !error "Do not forget to specify the version of OpenERP - /DVERSION=" +!endif + +!include "MUI.nsh" ;-------------------------------- -;Include Modern UI +;General - !include "MUI.nsh" +;Name and file +Name "OpenERP Server" +OutFile "openerp-server-setup-${VERSION}.exe" +SetCompressor lzma +SetCompress auto -;-------------------------------- -;General +;Default installation folder +InstallDir "$PROGRAMFILES\OpenERP Server" - ;Name and file - Name "TinyERP Server" - OutFile "tinyerp-server-setup.exe" +;Get installation folder from registry if available +InstallDirRegKey HKLM "Software\OpenERP Server" "" - ;Default installation folder - InstallDir "$PROGRAMFILES\TinyERP Server" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\TinyERP Server" "" +BrandingText "OpenERP Server ${VERSION}" - ;Vista redirects $SMPROGRAMS to all users without this - RequestExecutionLevel admin +;Vista redirects $SMPROGRAMS to all users without this +RequestExecutionLevel admin ;-------------------------------- ;Variables - Var MUI_TEMP - Var STARTMENU_FOLDER +Var MUI_TEMP +Var STARTMENU_FOLDER ;-------------------------------- ;Interface Settings - !define MUI_ABORTWARNING +!define MUI_ABORTWARNING +!define REGKEY "SOFTWARE\$(^Name)" +!define MUI_LANGDLL_REGISTRY_ROOT HKLM +!define MUI_LANGDLL_REGISTRY_KEY ${REGKEY} +!define MUI_LANGDLL_REGISTRY_VALUENAME InstallerLanguage + +!insertmacro MUI_RESERVEFILE_LANGDLL ;-------------------------------- ;Pages - !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_LICENSE "doc\\License.rtf" - # !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - - ;Start Menu Folder Page Configuration - !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" - !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\TinyERP Server" - !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "TinyERP Server" - - !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER - - !insertmacro MUI_PAGE_INSTFILES - - !define MUI_FINISHPAGE_NOAUTOCLOSE - !define MUI_FINISHPAGE_RUN - !define MUI_FINISHPAGE_RUN_CHECKED - !define MUI_FINISHPAGE_RUN_TEXT "Start TinyERP Server" - !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" - !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED - !define MUI_FINISHPAGE_SHOWREADME $INSTDIR\README.txt - !insertmacro MUI_PAGE_FINISH - - - !insertmacro MUI_UNPAGE_WELCOME - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES +!define MUI_ICON ".\pixmaps\openerp-icon.ico" +!define MUI_WELCOMEFINISHPAGE_BITMAP ".\pixmaps\openerp-intro.bmp" +!define MUI_UNWELCOMEFINISHPAGE_BITMAP ".\pixmaps\openerp-intro.bmp" +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_BITMAP_NOSTRETCH +!define MUI_HEADER_TRANSPARENT_TEXT "" +!define MUI_HEADERIMAGE_BITMAP ".\pixmaps\openerp-slogan.bmp" +!define MUI_LICENSEPAGE_TEXT_BOTTOM "$(LicenseText)" +!define MUI_LICENSEPAGE_BUTTON "$(LicenseNext)" + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "doc\License.rtf" +!insertmacro MUI_PAGE_DIRECTORY + +;Start Menu Folder Page Configuration +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenERP Server" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "OpenERP Server" + +!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER + +!insertmacro MUI_PAGE_INSTFILES + +!define MUI_FINISHPAGE_NOAUTOCLOSE +!define MUI_FINISHPAGE_RUN +!define MUI_FINISHPAGE_RUN_CHECKED +!define MUI_FINISHPAGE_RUN_TEXT "$(FinishPageText)" +!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" +!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED +!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\README.txt +!insertmacro MUI_PAGE_FINISH + + +!insertmacro MUI_UNPAGE_WELCOME +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES ;-------------------------------- ;Languages - - !insertmacro MUI_LANGUAGE "English" + +!insertmacro MUI_LANGUAGE "English" +!insertmacro MUI_LANGUAGE "French" + +!macro CreateInternetShortcut FILENAME URL + WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}" +!macroend ;-------------------------------- ;Installer Sections +Function .onInit +!ifndef ALLINONE + ;Language selection dialog + Push "" + Push ${LANG_ENGLISH} + Push English + Push ${LANG_FRENCH} + Push French + Push A ; A means auto count languages + ; for the auto count to work the first empty push (Push "") must remain + LangDLL::LangDialog "Installer Language" "Please select the language of the installer" + + Pop $LANGUAGE + StrCmp $LANGUAGE "cancel" 0 +2 + Abort +!endif + + ClearErrors + ReadRegStr $0 HKLM "Software\OpenERP Server" "" + IfErrors DoInstall 0 + MessageBox MB_OK "$(CannotInstallServerText)" + Quit + DoInstall: +FunctionEnd -Section "TinyERP Server" SecTinyERPServer - - nsExec::Exec "net stop tinyerp-service" - sleep 2 - - SetOutPath "$INSTDIR" - - ;ADD YOUR OWN FILES HERE... - File /r "dist\\*" - - SetOutPath "$INSTDIR\service" - File /r "win32\\dist\\*" - File "win32\\start.bat" - File "win32\\stop.bat" - - ;Store installation folder - WriteRegStr HKCU "Software\TinyERP Server" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - - ;Create shortcuts - CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\TinyERP Server.lnk" "$INSTDIR\tinyerp-server.exe" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Start service.lnk" "$INSTDIR\service\start.bat" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Stop service.lnk" "$INSTDIR\service\stop.bat" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Edit config.lnk" "notepad.exe" "$INSTDIR\tinyerp-server.conf" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Edit log.lnk" "notepad.exe" "$INSTDIR\tinyerp-server.log" - - !insertmacro MUI_STARTMENU_WRITE_END - - nsExec::Exec '"$INSTDIR\\tinyerp-server.exe" --stop-after-init --logfile "$INSTDIR\\tinyerp-server.log" -s' - nsExec::Exec '"$INSTDIR\\service\\TinyERPServerService.exe" -auto -install' +Section "OpenERP Server" SecOpenERPServer + nsExec::Exec "net stop openerp-service" + sleep 2 + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + File /r "dist\*" + + SetOutPath "$INSTDIR\service" + File /r "win32\dist\*" + File "win32\start.bat" + File "win32\stop.bat" + + ;Store installation folder + WriteRegStr HKLM "Software\OpenERP Server" "" $INSTDIR + +!ifndef ALLINONE + ;Create uninstaller + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "DisplayName" "OpenERP Server ${VERSION}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "UninstallString" "$INSTDIR\Uninstall.exe" +!else + WriteRegStr HKLM "Software\OpenERP AllInOne" "UninstallServer" "$INSTDIR\Uninstall.exe" +!endif + WriteUninstaller "$INSTDIR\Uninstall.exe" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + ;Create shortcuts + CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenERP Server.lnk" "$INSTDIR\openerp-server.exe" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Start service.lnk" "$INSTDIR\service\start.bat" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Stop service.lnk" "$INSTDIR\service\stop.bat" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Edit config.lnk" "notepad.exe" "$INSTDIR\openerp-server.conf" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\View log.lnk" "notepad.exe" "$INSTDIR\openerp-server.log" +!ifndef ALLINONE + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\uninstall.exe" +!endif + !insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\Forum" "http://www.openerp.com/forum" + !insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\Translation" "https://translations.launchpad.net/openobject" + !insertmacro MUI_STARTMENU_WRITE_END + + nsExec::Exec '"$INSTDIR\openerp-server.exe" --stop-after-init --logfile "$INSTDIR\openerp-server.log" -s' + nsExec::Exec '"$INSTDIR\service\OpenERPServerService.exe" -auto -install' SectionEnd ;Descriptions - ;Language strings - LangString DESC_SecTinyERPServer ${LANG_ENGLISH} "TinyERP Server." - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecTinyERPServer} $(DESC_SecTinyERPServer) - !insertmacro MUI_FUNCTION_DESCRIPTION_END ;-------------------------------- ;Uninstaller Section Section "Uninstall" - - nsExec::Exec "net stop tinyerp-service" - sleep 2 - nsExec::Exec '"$INSTDIR\\service\\TinyERPServerService.exe" -remove' - sleep 2 - - ;ADD YOUR OWN FILES HERE... - Delete "$INSTDIR\Uninstall.exe" - Push "$INSTDIR\addons" - Push "" - Call un.RmFilesButOne - Delete "$INSTDIR\service\*" - Delete "$INSTDIR\*" - Delete "$INSTDIR\Uninstall.exe" - - Push "$INSTDIR\addons" - Push "" - Call un.RmDirsButOne - RMDir "$INSTDIR\addons" - RMDir "$INSTDIR\service" - RMDir "$INSTDIR" - - !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP - - Delete "$SMPROGRAMS\$MUI_TEMP\TinyERP Server.lnk" - Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" - Delete "$SMPROGRAMS\$MUI_TEMP\Start service.lnk" - Delete "$SMPROGRAMS\$MUI_TEMP\Stop service.lnk" - - ;Delete empty start menu parent diretories - StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" + nsExec::Exec "net stop openerp-service" + sleep 2 + nsExec::Exec '"$INSTDIR\service\OpenERPServerService.exe" -remove' + sleep 2 + + RMDIR /r "$INSTDIR" + !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP + + Delete "$SMPROGRAMS\$MUI_TEMP\Forum.url" + Delete "$SMPROGRAMS\$MUI_TEMP\Translation.url" +!ifndef ALLINONE + Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" +!endif + Delete "$SMPROGRAMS\$MUI_TEMP\OpenERP Server.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\Start service.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\Stop service.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\Edit config.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\View log.lnk" + + ;Delete empty start menu parent diretories + StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" - startMenuDeleteLoop: - ClearErrors - RMDir $MUI_TEMP - GetFullPathName $MUI_TEMP "$MUI_TEMP\.." - - IfErrors startMenuDeleteLoopDone - - StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop - startMenuDeleteLoopDone: - - DeleteRegKey /ifempty HKCU "Software\TinyERP Server" + startMenuDeleteLoop: + ClearErrors + RMDir $MUI_TEMP + GetFullPathName $MUI_TEMP "$MUI_TEMP\.." + + IfErrors startMenuDeleteLoopDone + + StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop + + startMenuDeleteLoopDone: + +!ifndef ALLINONE + DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" +!else + DeleteRegKey HKLM "Software\OpenERP AllInOne\UninstallServer" +!endif + DeleteRegKey /ifempty HKLM "Software\OpenERP Server" SectionEnd Function LaunchLink - nsExec::Exec "net start tinyerp-service" + nsExec::Exec "net start openerp-service" FunctionEnd -Function un.RmDirsButOne - Exch $R0 ; exclude dir - Exch - Exch $R1 ; route dir - Push $R2 - Push $R3 - - FindFirst $R3 $R2 "$R1\*.*" - IfErrors Exit - - Top: - StrCmp $R2 "." Next - StrCmp $R2 ".." Next - StrCmp $R2 $R0 Next - IfFileExists "$R1\$R2\*.*" 0 Next - RmDir /r "$R1\$R2" - - #Goto Exit ;uncomment this to stop it being recursive - - Next: - ClearErrors - FindNext $R3 $R2 - IfErrors Exit - Goto Top - - Exit: - FindClose $R3 - - Pop $R3 - Pop $R2 - Pop $R1 - Pop $R0 -FunctionEnd +LangString LicenseText ${LANG_ENGLISH} "Usually, a proprietary license is provided with the software: limited number of users, limited in time usage, etc. This Open Source license is the opposite: it garantees you the right to use, copy, study, distribute and modify Open ERP for free." +LangString LicenseText ${LANG_FRENCH} "Normalement, une licence propriétaire est fournie avec le logiciel: limitation du nombre d'utilisateurs, limitation dans le temps, etc. Cette licence Open Source est l'opposé: Elle vous garantie le droit d'utiliser, de copier, d'étudier, de distribuer et de modifier Open ERP librement." -Function un.RmFilesButOne - Exch $R0 ; exclude file - Exch - Exch $R1 ; route dir - Push $R2 - Push $R3 - - FindFirst $R3 $R2 "$R1\*.*" - IfErrors Exit - - Top: - StrCmp $R2 "." Next - StrCmp $R2 ".." Next - StrCmp $R2 $R0 Next - IfFileExists "$R1\$R2\*.*" Next - Delete "$R1\$R2" - - #Goto Exit ;uncomment this to stop it being recursive - - Next: - ClearErrors - FindNext $R3 $R2 - IfErrors Exit - Goto Top - - Exit: - FindClose $R3 - - Pop $R3 - Pop $R2 - Pop $R1 - Pop $R0 -FunctionEnd +LangString LicenseNext ${LANG_ENGLISH} "Next >" +LangString LicenseNext ${LANG_FRENCH} "Suivant >" + +LangString FinishPageText ${LANG_ENGLISH} "Start OpenERP Server" +LangString FinishPageText ${LANG_FRENCH} "Lancer le serveur OpenERP" + +;Language strings +LangString DESC_SecOpenERPServer ${LANG_ENGLISH} "OpenERP Server." +LangString DESC_SecOpenERPServer ${LANG_FRENCH} "Serveur OpenERP." + +LangString CannotInstallServerText ${LANG_ENGLISH} "Can not install the Open ERP Server because a previous installation already exists on this system. Please uninstall your current installation and relaunch this setup wizard." +LangString CannotInstallServerText ${LANG_FRENCH} "Ne peut pas installer le serveur Open ERP parce qu'une installation existe déjà  sur ce système. S'il vous plait, désinstallez votre installation actuelle et relancer l'installeur." + + +;Assign language strings to sections +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecOpenERPServer} $(DESC_SecOpenERPServer) +!insertmacro MUI_FUNCTION_DESCRIPTION_END