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
34 !ifndef MAJOR_VERSION
\r
35 !define MAJOR_VERSION '6'
\r
37 !ifndef MINOR_VERSION
\r
38 !define MINOR_VERSION '0'
\r
40 !ifndef REVISION_VERSION
\r
41 !define REVISION_VERSION '0'
\r
43 !ifndef BUILD_VERSION
\r
44 !define VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${REVISION_VERSION}"
\r
46 !define VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${REVISION_VERSION}-${BUILD_VERSION}"
\r
49 !define PRODUCT_NAME "OpenERP Server"
\r
50 !define DISPLAY_NAME "${PRODUCT_NAME} ${MAJOR_VERSION}.${MINOR_VERSION}"
\r
52 !define UNINSTALL_REGISTRY_ROOT HKLM
\r
53 !define UNINSTALL_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${DISPLAY_NAME}"
\r
55 !define REGISTRY_KEY "Software\${DISPLAY_NAME}"
\r
57 !define DEFAULT_POSTGRESQL_HOSTNAME 'localhost'
\r
58 !define DEFAULT_POSTGRESQL_PORT 5432
\r
59 !define DEFAULT_POSTGRESQL_USERNAME 'openpg'
\r
60 !define DEFAULT_POSTGRESQL_PASSWORD 'openpgpwd'
\r
62 Name '${DISPLAY_NAME}'
\r
63 Caption "${PRODUCT_NAME} ${VERSION} Setup"
\r
64 OutFile "openerp-server-setup-${VERSION}.exe"
\r
65 SetCompressor /final /solid lzma
\r
67 ShowInstDetails show
\r
71 InstallDir "$PROGRAMFILES\OpenERP ${MAJOR_VERSION}.${MINOR_VERSION}\Server"
\r
72 InstallDirRegKey HKCU "${REGISTRY_KEY}" ""
\r
74 BrandingText '${PRODUCT_NAME} ${VERSION}'
\r
76 RequestExecutionLevel admin
\r
78 #VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
\r
79 #VIAddVersionKey "CompanyName" "${PUBLISHER}"
\r
80 #VIAddVersionKey "FileDescription" "Installer of ${DISPLAY_NAME}"
\r
81 #VIAddVersionKey "LegalCopyright" "${PUBLISHER}"
\r
82 #VIAddVersionKey "LegalTrademark" "OpenERP is a trademark of ${PUBLISHER}"
\r
83 #VIAddVersionKey "FileVersion" "${MAJOR_VERSION}.${MINOR_VERSION}.${REVISION_VERSION}"
\r
84 #VIProductVersion "${MAJOR_VERSION}.${MINOR_VERSION}.${REVISION_VERSION}"
\r
86 !insertmacro GetParameters
\r
87 !insertmacro GetOptions
\r
93 Var TextPostgreSQLHostname
\r
94 Var TextPostgreSQLPort
\r
95 Var TextPostgreSQLUsername
\r
96 Var TextPostgreSQLPassword
\r
98 Var HWNDPostgreSQLHostname
\r
99 Var HWNDPostgreSQLPort
\r
100 Var HWNDPostgreSQLUsername
\r
101 Var HWNDPostgreSQLPassword
\r
104 Var STARTMENU_FOLDER
\r
106 !define MUI_ABORTWARNING
\r
107 !define MUI_ICON ".\pixmaps\openerp-icon.ico"
\r
109 !define MUI_WELCOMEFINISHPAGE_BITMAP ".\pixmaps\openerp-intro.bmp"
\r
110 !define MUI_UNWELCOMEFINISHPAGE_BITMAP ".\pixmaps\openerp-intro.bmp"
\r
111 !define MUI_HEADERIMAGE
\r
112 !define MUI_HEADERIMAGE_BITMAP ".\pixmaps\openerp-slogan.bmp"
\r
113 !define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
\r
114 !define MUI_HEADER_TRANSPARENT_TEXT ""
\r
116 !insertmacro MUI_PAGE_WELCOME
\r
117 !insertmacro MUI_PAGE_LICENSE ".\LICENSE"
\r
118 !define MUI_COMPONENTSPAGE_SMALLDESC
\r
119 !insertmacro MUI_PAGE_DIRECTORY
\r
120 Page Custom ShowPostgreSQL LeavePostgreSQL
\r
122 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
\r
123 !define MUI_STARTMENUPAGE_REGISTRY_KEY "${REGISTRY_KEY}"
\r
124 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${DISPLAY_NAME}"
\r
126 !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
\r
127 !insertmacro MUI_PAGE_INSTFILES
\r
129 !define MUI_FINISHPAGE_NOAUTOCLOSE
\r
130 !define MUI_FINISHPAGE_LINK $(DESC_FinishPage_Link)
\r
131 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.openerp.com/contact"
\r
132 !insertmacro MUI_PAGE_FINISH
\r
134 !insertmacro MUI_UNPAGE_WELCOME
\r
135 !insertmacro MUI_UNPAGE_CONFIRM
\r
136 !insertmacro MUI_UNPAGE_INSTFILES
\r
137 !insertmacro MUI_UNPAGE_FINISH
\r
139 !insertmacro MUI_LANGUAGE "English"
\r
140 !insertmacro MUI_LANGUAGE "French"
\r
141 !insertmacro MUI_RESERVEFILE_LANGDLL
\r
143 !macro CreateInternetShortcut FILENAME URL
\r
144 WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
\r
148 LangString DESC_FinishPage_Link ${LANG_ENGLISH} "Contact OpenERP for Partnership and/or Support"
\r
149 LangString WARNING_HostNameIsEmpty ${LANG_ENGLISH} "The hostname for the connection to the PostgreSQL Server is empty"
\r
150 LangString WARNING_UserNameIsEmpty ${LANG_ENGLISH} "The username for the connection to the PostgreSQL Server is empty"
\r
151 LangString WARNING_PasswordIsEmpty ${LANG_ENGLISH} "The password for the connection to the PostgreSQL Server is empty"
\r
152 LangString WARNING_PortIsWrong ${LANG_ENGLISH} "The port for the connexion to the PostgreSQL Server is wrong (default: 5432)"
\r
153 LangString DESC_PostgreSQLPage ${LANG_ENGLISH} "Configure the information for the PostgreSQL connection"
\r
154 LangString DESC_PostgreSQL_Hostname ${LANG_ENGLISH} "Hostname"
\r
155 LangString DESC_PostgreSQL_Port ${LANG_ENGLISH} "Port"
\r
156 LangString DESC_PostgreSQL_Username ${LANG_ENGLISH} "Username"
\r
157 LangString DESC_PostgreSQL_Password ${LANG_ENGLISH} "Password"
\r
161 LangString DESC_FinishPage_Link ${LANG_FRENCH} "Contactez OpenERP pour un Partenariat et/ou du Support"
\r
162 LangString WARNING_HostNameIsEmpty ${LANG_FRENCH} "L'adresse pour la connection au serveur PostgreSQL est vide"
\r
163 LangString WARNING_UserNameIsEmpty ${LANG_FRENCH} "Le nom d'utilisateur pour la connection au serveur PostgreSQL est vide"
\r
164 LangString WARNING_PasswordIsEmpty ${LANG_FRENCH} "Le mot de passe pour la connection au serveur PostgreSQL est vide"
\r
165 LangString WARNING_PortIsWrong ${LANG_FRENCH} "Le port pour la connection au serveur PostgreSQL est erroné (défaut: 5432)"
\r
166 LangString DESC_PostgreSQLPage ${LANG_FRENCH} "Configurez les informations de connection pour le serveur PostgreSQL"
\r
167 LangString DESC_PostgreSQL_Hostname ${LANG_FRENCH} "Hôte"
\r
168 LangString DESC_PostgreSQL_Port ${LANG_FRENCH} "Port"
\r
169 LangString DESC_PostgreSQL_Username ${LANG_FRENCH} "Utilisateur"
\r
170 LangString DESC_PostgreSQL_Password ${LANG_FRENCH} "Mot de passe"
\r
172 Section -StopService
\r
173 nsExec::Exec "net stop openerp-server-6.0"
\r
177 Section OpenERP_Server SectionOpenERP_Server
\r
178 SetOutPath '$INSTDIR'
\r
182 SetOutPath "$INSTDIR\service"
\r
183 File /r "win32\dist\*"
\r
184 File "win32\start.bat"
\r
185 File "win32\stop.bat"
\r
187 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
\r
189 CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
\r
190 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenERP Server.lnk" "$INSTDIR\openerp-server.exe"
\r
191 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Start service.lnk" "$INSTDIR\service\start.bat"
\r
192 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Stop service.lnk" "$INSTDIR\service\stop.bat"
\r
193 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Edit config.lnk" "notepad.exe" "$INSTDIR\openerp-server.conf"
\r
194 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\View log.lnk" "notepad.exe" "$INSTDIR\openerp-server.log"
\r
195 CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\uninstall.exe"
\r
196 !insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\Forum" "http://www.openerp.com/forum"
\r
197 !insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\Translation" "https://translations.launchpad.net/openobject"
\r
198 !insertmacro MUI_STARTMENU_WRITE_END
\r
201 FileOpen $9 '$INSTDIR\install.log' w
\r
202 FileWrite $9 "Hostname $TextPostgreSQLHostname$\r$\n"
\r
203 FileWrite $9 "Port $TextPostgreSQLPort$\r$\n"
\r
204 FileWrite $9 "Username $TextPostgreSQLUsername$\r$\n"
\r
205 FileWrite $9 "Password $TextPostgreSQLPassword$\r$\n"
\r
208 # If there is a previous install of the OpenERP Server, keep the login/password from the config file
\r
209 WriteIniStr "$INSTDIR\openerp-server.conf" "options" "db_host" $TextPostgreSQLHostname
\r
210 WriteIniStr "$INSTDIR\openerp-server.conf" "options" "db_user" $TextPostgreSQLUsername
\r
211 WriteIniStr "$INSTDIR\openerp-server.conf" "options" "db_password" $TextPostgreSQLPassword
\r
212 WriteIniStr "$INSTDIR\openerp-server.conf" "options" "db_port" $TextPostgreSQLPort
\r
213 WriteIniStr "$INSTDIR\openerp-server.conf" "options" "pg_path" "$INSTDIR\PostgreSQL\bin"
\r
215 nsExec::Exec '"$INSTDIR\openerp-server.exe" --stop-after-init --logfile "$INSTDIR\openerp-server.log" -s'
\r
216 nsExec::Exec '"$INSTDIR\service\OpenERPServerService.exe" -auto -install'
\r
219 Section -RestartServer
\r
220 nsExec::Exec "net start openerp-server-6.0"
\r
225 WriteRegExpandStr HKLM "${UNINSTALL_REGISTRY_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
\r
226 WriteRegExpandStr HKLM "${UNINSTALL_REGISTRY_KEY}" "InstallLocation" "$INSTDIR"
\r
227 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "DisplayName" "${DISPLAY_NAME}"
\r
228 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "DisplayVersion" "${MAJOR_VERSION}.${MINOR_VERSION}"
\r
229 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "Publisher" "${PUBLISHER}"
\r
230 WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "Version" "${VERSION}"
\r
231 WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "VersionMajor" "${MAJOR_VERSION}.${MINOR_VERSION}"
\r
232 WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "VersionMinor" "${REVISION_VERSION}"
\r
233 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "HelpLink" "support@openerp.com"
\r
234 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "HelpTelephone" "+32.81.81.37.00"
\r
235 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "URLInfoAbout" "http://www.openerp.com"
\r
236 WriteRegStr HKLM "${UNINSTALL_REGISTRY_KEY}" "Contact" "sales@openerp.com"
\r
237 WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "NoModify" "1"
\r
238 WriteRegDWORD HKLM "${UNINSTALL_REGISTRY_KEY}" "NoRepair" "1"
\r
239 WriteUninstaller "$INSTDIR\Uninstall.exe"
\r
242 Section "Uninstall"
\r
243 ; Stop the NT Service
\r
244 nsExec::Exec "net stop openerp-server-6.0"
\r
247 ; Uninstall the OpenERP Service
\r
248 nsExec::Exec '"$INSTDIR\service\OpenERPServerService.exe" -remove'
\r
251 Rmdir /r "$INSTDIR"
\r
253 !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
\r
255 Delete "$SMPROGRAMS\$MUI_TEMP\Forum.url"
\r
256 Delete "$SMPROGRAMS\$MUI_TEMP\Translation.url"
\r
257 Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
\r
258 Delete "$SMPROGRAMS\$MUI_TEMP\OpenERP Server.lnk"
\r
259 Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
\r
260 Delete "$SMPROGRAMS\$MUI_TEMP\Start service.lnk"
\r
261 Delete "$SMPROGRAMS\$MUI_TEMP\Stop service.lnk"
\r
262 Delete "$SMPROGRAMS\$MUI_TEMP\Edit config.lnk"
\r
263 Delete "$SMPROGRAMS\$MUI_TEMP\View log.lnk"
\r
265 ;Delete empty start menu parent diretories
\r
266 StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
\r
268 startMenuDeleteLoop:
\r
271 GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
\r
273 IfErrors startMenuDeleteLoopDone
\r
275 StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
\r
277 startMenuDeleteLoopDone:
\r
279 ; Clean the Registry
\r
280 DeleteRegKey HKLM "${UNINSTALL_REGISTRY_KEY}"
\r
286 ${GetParameters} $cmdLineParams
\r
291 StrCpy $Option_AllInOne 0
\r
292 StrCpy $HasPostgreSQL 0
\r
294 StrCpy $TextPostgreSQLHostname ${DEFAULT_POSTGRESQL_HOSTNAME}
\r
295 StrCpy $TextPostgreSQLPort ${DEFAULT_POSTGRESQL_PORT}
\r
296 StrCpy $TextPostgreSQLUsername ${DEFAULT_POSTGRESQL_USERNAME}
\r
297 StrCpy $TextPostgreSQLPassword ${DEFAULT_POSTGRESQL_PASSWORD}
\r
300 ${GetOptions} $cmdLineParams '/allinone' $R0
\r
302 StrCpy $Option_AllInOne 1
\r
305 StrCmp $Option_AllInOne 1 AllInOneMode
\r
306 StrCmp $Option_AllInOne 0 NoAllInOneMode
\r
309 MessageBox MB_OK|MB_ICONINFORMATION "All In One"
\r
313 !insertmacro MUI_LANGDLL_DISPLAY
\r
316 EnumRegKey $0 HKLM "SOFTWARE\PostgreSQL" 0
\r
317 IfErrors DoInstallPostgreSQL 0
\r
318 StrCpy $HasPostgreSQL 1
\r
320 DoInstallPostgreSQL:
\r
323 Function PostgreSQLOnBack
\r
326 Function ShowPostgreSQL
\r
327 SectionGetFlags ${SectionOpenERP_Server} $0
\r
328 IntOp $0 $0 & ${SF_SELECTED}
\r
329 IntCmp $0 ${SF_SELECTED} LaunchPostgreSQLConfiguration
\r
331 LaunchPostgreSQLConfiguration:
\r
333 nsDialogs::Create /NOUNLOAD 1018
\r
340 GetFunctionAddress $0 PostgreSQLOnBack
\r
341 nsDialogs::OnBack $0
\r
343 ${NSD_CreateLabel} 0 0 100% 10u $(DESC_PostgreSQLPage)
\r
346 ${NSD_CreateLabel} 0 45 60u 12u $(DESC_PostgreSQL_Hostname)
\r
348 ${NSD_CreateText} 100 45 150u 12u $TextPostgreSQLHostname
\r
349 Pop $HWNDPostgreSQLHostname
\r
351 ${NSD_CreateLabel} 0 75 60u 12u $(DESC_PostgreSQL_Port)
\r
353 ${NSD_CreateNumber} 100 75 150u 12u $TextPostgreSQLPort
\r
354 Pop $HWNDPostgreSQLPort
\r
355 ${NSD_CreateLabel} 0 105 60u 12u $(DESC_PostgreSQL_Username)
\r
357 ${NSD_CreateText} 100 105 150u 12u $TextPostgreSQLUsername
\r
358 Pop $HWNDPostgreSQLUsername
\r
359 ${NSD_CreateLabel} 0 135 60u 12u $(DESC_PostgreSQL_Password)
\r
361 ${NSD_CreateText} 100 135 150u 12u $TextPostgreSQLPassword
\r
362 Pop $HWNDPostgreSQLPassword
\r
367 Function LeavePostgreSQL
\r
368 # Before to leave the PostgreSQL configuration screen, we check the values
\r
369 # from the inputs, to be sure we have the right values
\r
371 ${NSD_GetText} $HWNDPostgreSQLHostname $TextPostgreSQLHostname
\r
372 ${NSD_GetText} $HWNDPostgreSQLPort $TextPostgreSQLPort
\r
373 ${NSD_GetText} $HWNDPostgreSQLUsername $TextPostgreSQLUsername
\r
374 ${NSD_GetText} $HWNDPostgreSQLPassword $TextPostgreSQLPassword
\r
376 StrLen $1 $TextPostgreSQLHostname
\r
378 MessageBox MB_ICONEXCLAMATION|MB_OK $(WARNING_HostNameIsEmpty)
\r
382 ${If} $TextPostgreSQLPort <= 0
\r
383 ${OrIf} $TextPostgreSQLPort > 65535
\r
384 MessageBox MB_ICONEXCLAMATION|MB_OK $(WARNING_PortIsWrong)
\r
388 StrLen $1 $TextPostgreSQLUsername
\r
390 MessageBox MB_ICONEXCLAMATION|MB_OK $(WARNING_UserNameIsEmpty)
\r
394 StrLen $1 $TextPostgreSQLPassword
\r
396 MessageBox MB_ICONEXCLAMATION|MB_OK $(WARNING_PasswordIsEmpty)
\r