1 #####################################################################################
\r
3 # Copyright (c) 2004-TODAY OpenERP S.A. (http://www.openerp.com) All Rights Reserved.
\r
5 # WARNING: This program as such is intended to be used by professional
\r
6 # programmers who take the whole responsability of assessing all potential
\r
7 # consequences resulting from its eventual inadequacies and bugs
\r
8 # End users who are looking for a ready-to-use solution with commercial
\r
9 # garantees and support are strongly adviced to contract a Free Software
\r
12 # This program is Free Software; you can redistribute it and/or
\r
13 # modify it under the terms of the GNU General Public License
\r
14 # as published by the Free Software Foundation; either version 3
\r
15 # of the License, or (at your option) any later version.
\r
17 # This program is distributed in the hope that it will be useful,
\r
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
20 # GNU General Public License for more details.
\r
22 # You should have received a copy of the GNU General Public License
\r
23 # along with this program; if not, write to the Free Software
\r
24 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
\r
25 #####################################################################################
\r
28 !include 'FileFunc.nsh'
\r
29 !include 'LogicLib.nsh'
\r
30 !include 'Sections.nsh'
\r
32 !define PUBLISHER 'OpenERP S.A.'
\r
37 #!define VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${REVISION_VERSION}"
\r
39 !define PRODUCT_NAME "OpenERP Server"
\r
40 !define DISPLAY_NAME "${PRODUCT_NAME} ${VERSION}"
\r
42 !define UNINSTALL_REGISTRY_ROOT HKLM
\r
43 !define UNINSTALL_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${DISPLAY_NAME}"
\r
45 !define REGISTRY_KEY "Software\${DISPLAY_NAME}"
\r
47 !define DEFAULT_POSTGRESQL_HOSTNAME 'localhost'
\r
48 !define DEFAULT_POSTGRESQL_PORT 5432
\r
49 !define DEFAULT_POSTGRESQL_USERNAME 'openpg'
\r
50 !define DEFAULT_POSTGRESQL_PASSWORD 'openpgpwd'
\r
52 Name '${DISPLAY_NAME}'
\r
53 Caption "${PRODUCT_NAME} ${VERSION} Setup"
\r
54 OutFile "openerp-server-setup-${VERSION}.exe"
\r
55 SetCompressor /final /solid lzma
\r
57 ShowInstDetails show
\r
61 InstallDir "$PROGRAMFILES\OpenERP ${VERSION}"
\r
62 InstallDirRegKey HKCU "${REGISTRY_KEY}" ""
\r
64 BrandingText '${PRODUCT_NAME} ${VERSION}'
\r
66 RequestExecutionLevel admin
\r
68 #VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
\r
69 #VIAddVersionKey "CompanyName" "${PUBLISHER}"
\r
70 #VIAddVersionKey "FileDescription" "Installer of ${DISPLAY_NAME}"
\r
71 #VIAddVersionKey "LegalCopyright" "${PUBLISHER}"
\r
72 #VIAddVersionKey "LegalTrademark" "OpenERP is a trademark of ${PUBLISHER}"
\r
73 #VIAddVersionKey "FileVersion" "${MAJOR_VERSION}.${MINOR_VERSION}.${REVISION_VERSION}"
\r
74 #VIProductVersion "${MAJOR_VERSION}.${MINOR_VERSION}.${REVISION_VERSION}"
\r
76 !insertmacro GetParameters
\r
77 !insertmacro GetOptions
\r
83 Var TextPostgreSQLHostname
\r
84 Var TextPostgreSQLPort
\r
85 Var TextPostgreSQLUsername
\r
86 Var TextPostgreSQLPassword
\r
88 Var HWNDPostgreSQLHostname
\r
89 Var HWNDPostgreSQLPort
\r
90 Var HWNDPostgreSQLUsername
\r
91 Var HWNDPostgreSQLPassword
\r
94 Var STARTMENU_FOLDER
\r
96 !define MUI_ABORTWARNING
\r
97 !define MUI_ICON ".\install\openerp-icon.ico"
\r
99 !define MUI_WELCOMEFINISHPAGE_BITMAP ".\install\openerp-intro.bmp"
\r
100 !define MUI_UNWELCOMEFINISHPAGE_BITMAP ".\install\openerp-intro.bmp"
\r
101 !define MUI_HEADERIMAGE
\r
102 !define MUI_HEADERIMAGE_BITMAP ".\install\openerp-slogan.bmp"
\r
103 !define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
\r
104 !define MUI_HEADER_TRANSPARENT_TEXT ""
\r
106 !insertmacro MUI_PAGE_WELCOME
\r
107 !insertmacro MUI_PAGE_LICENSE ".\LICENSE"
\r
108 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
109 !insertmacro MUI_PAGE_DIRECTORY
\r
110 Page Custom ShowPostgreSQL LeavePostgreSQL
\r
112 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
\r
113 !define MUI_STARTMENUPAGE_REGISTRY_KEY "${REGISTRY_KEY}"
\r
114 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${DISPLAY_NAME}"
\r
116 !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
\r
117 !insertmacro MUI_PAGE_INSTFILES
\r
119 !define MUI_FINISHPAGE_NOAUTOCLOSE
\r
120 !define MUI_FINISHPAGE_LINK $(DESC_FinishPage_Link)
\r
121 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.openerp.com/contact"
\r
122 !insertmacro MUI_PAGE_FINISH
\r
124 !insertmacro MUI_UNPAGE_WELCOME
\r
125 !insertmacro MUI_UNPAGE_CONFIRM
\r
126 !insertmacro MUI_UNPAGE_INSTFILES
\r
127 !insertmacro MUI_UNPAGE_FINISH
\r
129 !insertmacro MUI_LANGUAGE "English"
\r
130 !insertmacro MUI_LANGUAGE "French"
\r
131 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
133 !macro CreateInternetShortcut FILENAME URL
\r
134 WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
\r
138 LangString DESC_FinishPage_Link ${LANG_ENGLISH} "Contact OpenERP for Partnership and/or Support"
\r
139 LangString WARNING_HostNameIsEmpty ${LANG_ENGLISH} "The hostname for the connection to the PostgreSQL Server is empty"
\r
140 LangString WARNING_UserNameIsEmpty ${LANG_ENGLISH} "The username for the connection to the PostgreSQL Server is empty"
\r
141 LangString WARNING_PasswordIsEmpty ${LANG_ENGLISH} "The password for the connection to the PostgreSQL Server is empty"
\r
142 LangString WARNING_PortIsWrong ${LANG_ENGLISH} "The port for the connexion to the PostgreSQL Server is wrong (default: 5432)"
\r
143 LangString DESC_PostgreSQLPage ${LANG_ENGLISH} "Configure the information for the PostgreSQL connection"
\r
144 LangString DESC_PostgreSQL_Hostname ${LANG_ENGLISH} "Hostname"
\r
145 LangString DESC_PostgreSQL_Port ${LANG_ENGLISH} "Port"
\r
146 LangString DESC_PostgreSQL_Username ${LANG_ENGLISH} "Username"
\r
147 LangString DESC_PostgreSQL_Password ${LANG_ENGLISH} "Password"
\r
151 LangString DESC_FinishPage_Link ${LANG_FRENCH} "Contactez OpenERP pour un Partenariat et/ou du Support"
\r
152 LangString WARNING_HostNameIsEmpty ${LANG_FRENCH} "L'adresse pour la connection au serveur PostgreSQL est vide"
\r
153 LangString WARNING_UserNameIsEmpty ${LANG_FRENCH} "Le nom d'utilisateur pour la connection au serveur PostgreSQL est vide"
\r
154 LangString WARNING_PasswordIsEmpty ${LANG_FRENCH} "Le mot de passe pour la connection au serveur PostgreSQL est vide"
\r
155 LangString WARNING_PortIsWrong ${LANG_FRENCH} "Le port pour la connection au serveur PostgreSQL est erron? (d?faut: 5432)"
\r
156 LangString DESC_PostgreSQLPage ${LANG_FRENCH} "Configurez les informations de connection pour le serveur PostgreSQL"
\r
157 LangString DESC_PostgreSQL_Hostname ${LANG_FRENCH} "H?te"
\r
158 LangString DESC_PostgreSQL_Port ${LANG_FRENCH} "Port"
\r
159 LangString DESC_PostgreSQL_Username ${LANG_FRENCH} "Utilisateur"
\r
160 LangString DESC_PostgreSQL_Password ${LANG_FRENCH} "Mot de passe"
\r
162 Section -StopService
\r
163 nsExec::Exec "net stop openerp-server-6.1"
\r
167 Section OpenERP_Server SectionOpenERP_Server
\r
168 SetOutPath '$INSTDIR\server'
\r
172 SetOutPath "$INSTDIR\service"
\r
173 File /r "win32\dist\*"
\r
174 File "win32\start.bat"
\r
175 File "win32\stop.bat"
\r
177 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
\r
179 CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
\r
180 !insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenERP" "http://localhost:8069/"
\r
181 !insertmacro MUI_STARTMENU_WRITE_END
\r
184 FileOpen $9 '$INSTDIR\install.log' w
\r
185 FileWrite $9 "INSTDIR $INSTDIR$\r$\n"
\r
186 FileWrite $9 "Hostname $TextPostgreSQLHostname$\r$\n"
\r
187 FileWrite $9 "Port $TextPostgreSQLPort$\r$\n"
\r
188 FileWrite $9 "Username $TextPostgreSQLUsername$\r$\n"
\r
189 FileWrite $9 "Password $TextPostgreSQLPassword$\r$\n"
\r
192 # If there is a previous install of the OpenERP Server, keep the login/password from the config file
\r
193 WriteIniStr "$INSTDIR\server\openerp-server.conf" "options" "db_host" $TextPostgreSQLHostname
\r
194 WriteIniStr "$INSTDIR\server\openerp-server.conf" "options" "db_user" $TextPostgreSQLUsername
\r
195 WriteIniStr "$INSTDIR\server\openerp-server.conf" "options" "db_password" $TextPostgreSQLPassword
\r
196 WriteIniStr "$INSTDIR\server\openerp-server.conf" "options" "db_port" $TextPostgreSQLPort
\r
197 WriteIniStr "$INSTDIR\server\openerp-server.conf" "options" "pg_path" "$INSTDIR\PostgreSQL\bin"
\r
199 nsExec::Exec '"$INSTDIR\server\openerp-server.exe" --stop-after-init --logfile "$INSTDIR\server\openerp-server.log" -s'
\r
200 nsExec::Exec '"$INSTDIR\service\OpenERPServerService.exe" -auto -install'
\r
203 Section -RestartServer
\r
204 nsExec::Exec "net start openerp-server-6.1"
\r
209 WriteRegExpandStr HKLM "${UNINSTALL_REGISTRY_KEY}" "UninstallString" "$INSTDIR\server\Uninstall.exe"
\r
210 WriteRegExpandStr HKLM "${UNINSTALL_REGISTRY_KEY}" "InstallLocation" "$INSTDIR"
\r
211 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "DisplayName" "${DISPLAY_NAME}"
\r
212 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "DisplayVersion" "${VERSION}"
\r
213 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "Publisher" "${PUBLISHER}"
\r
214 ; WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "Version" "${VERSION}"
\r
215 ; WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "VersionMajor" "${MAJOR_VERSION}.${MINOR_VERSION}"
\r
216 ; WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "VersionMinor" "${REVISION_VERSION}"
\r
217 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "HelpLink" "support@openerp.com"
\r
218 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "HelpTelephone" "+32.81.81.37.00"
\r
219 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "URLInfoAbout" "http://www.openerp.com"
\r
220 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "Contact" "sales@openerp.com"
\r
221 WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "NoModify" "1"
\r
222 WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "NoRepair" "1"
\r
223 WriteUninstaller "$INSTDIR\server\Uninstall.exe"
\r
226 Section "Uninstall"
\r
227 ; Stop the NT Service
\r
228 nsExec::Exec "net stop openerp-server-6.1"
\r
231 ; Uninstall the OpenERP Service
\r
232 nsExec::Exec '"$INSTDIR\..\service\OpenERPServerService.exe" -remove'
\r
235 Rmdir /r "$INSTDIR\service"
\r
236 Rmdir /r "$INSTDIR\server"
\r
238 !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
\r
240 Delete "$SMPROGRAMS\$MUI_TEMP\OpenERP.url"
\r
242 ;Delete empty start menu parent diretories
\r
243 StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
\r
245 startMenuDeleteLoop:
\r
248 GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
\r
250 IfErrors startMenuDeleteLoopDone
\r
252 StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
\r
254 startMenuDeleteLoopDone:
\r
256 ; Clean the Registry
\r
257 DeleteRegKey HKLM "${UNINSTALL_REGISTRY_KEY}"
\r
263 ${GetParameters} $cmdLineParams
\r
268 StrCpy $Option_AllInOne 0
\r
269 StrCpy $HasPostgreSQL 0
\r
271 StrCpy $TextPostgreSQLHostname ${DEFAULT_POSTGRESQL_HOSTNAME}
\r
272 StrCpy $TextPostgreSQLPort ${DEFAULT_POSTGRESQL_PORT}
\r
273 StrCpy $TextPostgreSQLUsername ${DEFAULT_POSTGRESQL_USERNAME}
\r
274 StrCpy $TextPostgreSQLPassword ${DEFAULT_POSTGRESQL_PASSWORD}
\r
277 ${GetOptions} $cmdLineParams '/allinone' $R0
\r
279 StrCpy $Option_AllInOne 1
\r
282 StrCmp $Option_AllInOne 1 AllInOneMode
\r
283 StrCmp $Option_AllInOne 0 NoAllInOneMode
\r
286 MessageBox MB_OK|MB_ICONINFORMATION "All In One"
\r
290 !insertmacro MUI_LANGDLL_DISPLAY
\r
293 EnumRegKey $0 HKLM "SOFTWARE\PostgreSQL" 0
\r
294 IfErrors DoInstallPostgreSQL 0
\r
295 StrCpy $HasPostgreSQL 1
\r
297 DoInstallPostgreSQL:
\r
300 Function PostgreSQLOnBack
\r
303 Function ShowPostgreSQL
\r
304 SectionGetFlags ${SectionOpenERP_Server} $0
\r
305 IntOp $0 $0 & ${SF_SELECTED}
\r
306 IntCmp $0 ${SF_SELECTED} LaunchPostgreSQLConfiguration
\r
308 LaunchPostgreSQLConfiguration:
\r
310 nsDialogs::Create /NOUNLOAD 1018
\r
317 GetFunctionAddress $0 PostgreSQLOnBack
\r
318 nsDialogs::OnBack $0
\r
320 ${NSD_CreateLabel} 0 0 100% 10u $(DESC_PostgreSQLPage)
\r
323 ${NSD_CreateLabel} 0 45 60u 12u $(DESC_PostgreSQL_Hostname)
\r
325 ${NSD_CreateText} 100 45 150u 12u $TextPostgreSQLHostname
\r
326 Pop $HWNDPostgreSQLHostname
\r
328 ${NSD_CreateLabel} 0 75 60u 12u $(DESC_PostgreSQL_Port)
\r
330 ${NSD_CreateNumber} 100 75 150u 12u $TextPostgreSQLPort
\r
331 Pop $HWNDPostgreSQLPort
\r
332 ${NSD_CreateLabel} 0 105 60u 12u $(DESC_PostgreSQL_Username)
\r
334 ${NSD_CreateText} 100 105 150u 12u $TextPostgreSQLUsername
\r
335 Pop $HWNDPostgreSQLUsername
\r
336 ${NSD_CreateLabel} 0 135 60u 12u $(DESC_PostgreSQL_Password)
\r
338 ${NSD_CreateText} 100 135 150u 12u $TextPostgreSQLPassword
\r
339 Pop $HWNDPostgreSQLPassword
\r
344 Function LeavePostgreSQL
\r
345 # Before to leave the PostgreSQL configuration screen, we check the values
\r
346 # from the inputs, to be sure we have the right values
\r
348 ${NSD_GetText} $HWNDPostgreSQLHostname $TextPostgreSQLHostname
\r
349 ${NSD_GetText} $HWNDPostgreSQLPort $TextPostgreSQLPort
\r
350 ${NSD_GetText} $HWNDPostgreSQLUsername $TextPostgreSQLUsername
\r
351 ${NSD_GetText} $HWNDPostgreSQLPassword $TextPostgreSQLPassword
\r
353 StrLen $1 $TextPostgreSQLHostname
\r
355 MessageBox MB_ICONEXCLAMATION|MB_OK $(WARNING_HostNameIsEmpty)
\r
359 ${If} $TextPostgreSQLPort <= 0
\r
360 ${OrIf} $TextPostgreSQLPort > 65535
\r
361 MessageBox MB_ICONEXCLAMATION|MB_OK $(WARNING_PortIsWrong)
\r
365 StrLen $1 $TextPostgreSQLUsername
\r
367 MessageBox MB_ICONEXCLAMATION|MB_OK $(WARNING_UserNameIsEmpty)
\r
371 StrLen $1 $TextPostgreSQLPassword
\r
373 MessageBox MB_ICONEXCLAMATION|MB_OK $(WARNING_PasswordIsEmpty)
\r