Revision 4a1a5303

b/trunk/Pithos.Installer/PithosPlus.iss
1
; Script generated by the Inno Setup Script Wizard.
2
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
3

  
4
#define MyAppName "Pithos+"
5
#define SrcApp "PSourcex64\Pithos.Client.WPF.exe"
6
#define MyAppPublisher "GRNET"
7
#define MyAppURL "http://pithos.grnet.gr/"
8
#define MyAppExeName "Pithos.Client.WPF.exe"
9
#define MyAppVersion GetFileVersion(SrcApp)
10
#define MyURL "http://www.grnet.gr/"
11

  
12
[Setup]
13
;WARNING: DO NOT CHANGE THE APP ID (AppId) or the update will not work correctly.
14
;AppId is used to check if we are installed using this isntaller and not by other means.
15
AppId={{926354B2-04D2-47CF-8FAA-04AB3682008B}
16
AppName={#MyAppName}
17
AppVersion={#MyAppVersion}
18
AppVerName={#MyAppName} {#MyAppVersion}
19
UninstallDisplayName={#MyAppName} {#MyAppVersion}
20
AppPublisher={#MyAppPublisher}
21
AppPublisherURL={#MyAppURL}
22
AppSupportURL={#MyAppURL}
23
AppUpdatesURL={#MyAppURL}
24
DefaultDirName={pf}\PithosPlus
25
DefaultGroupName={#MyAppName}
26
AllowNoIcons=yes
27
LicenseFile=Licenses\GRNET License.txt
28
OutputBaseFilename=PithosPlus_Setupv{#MyAppVersion}
29
SolidCompression=True
30
UsePreviousSetupType=False
31
UsePreviousTasks=False
32
UsePreviousLanguage=False
33
ShowTasksTreeLines=True
34
AppCopyright=(c) 2011 - 2012 GRNET
35
PrivilegesRequired=none
36
EnableDirDoesntExistWarning=True
37
DirExistsWarning=yes
38
AppContact=okeanos@grnet.gr
39
AppSupportPhone=+30 210 0000000
40
AppReadmeFile=My Readme
41
UninstallDisplayIcon={app}\Pithos.Client.WPF.exe
42
WizardImageFile=Images\ppWZDImage.bmp
43
WizardSmallImageFile=Images\ppWZDSmall.bmp
44
VersionInfoVersion={#MyAppVersion}
45
MinVersion=0,5.01sp3
46

  
47
[Languages]
48
Name: "english"; MessagesFile: "compiler:Default.isl"
49
Name: "greek"; MessagesFile: "compiler:Languages\Greek.isl"
50
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
51
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
52
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
53

  
54
[CustomMessages]
55
Web=You can visit our web site for more info
56

  
57
[Tasks]
58
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; Components: Documentation RequiredFiles
59
;Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1; Components: Manual RequiredFiles Source
60
Name: "visitweb"; Description: "{cm:Web}"; GroupDescription: "{cm:Web}"; Flags: unchecked; Components: Documentation RequiredFiles; Languages: english french german greek spanish
61

  
62
[Files]
63
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
64
Source: "PSourcex64\Pithos.Client.WPF.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek; Check: Is64BitInstallMode
65
Source: "PSource\Pithos.Client.WPF.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek; Check: not Is64BitInstallMode
66
Source: "PSourcex64\AsyncCtpLibrary.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Tasks: desktopicon; Languages: english french german spanish greek
67
Source: "PSourcex64\Castle.ActiveRecord.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
68
Source: "PSourcex64\Caliburn.Micro.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
69
Source: "PSourcex64\Castle.ActiveRecord.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
70
Source: "PSourcex64\Castle.Components.Validator.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
71
Source: "PSourcex64\Castle.Core.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
72
Source: "PSourcex64\Hardcodet.Wpf.TaskbarNotification.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
73
Source: "PSourcex64\Iesi.Collections.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
74
Source: "PSourcex64\log4net.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
75
Source: "PSourcex64\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
76
Source: "PSourcex64\NHibernate.ByteCode.Castle.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
77
Source: "PSourcex64\NHibernate.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
78
Source: "PSourcex64\NHibernate.Search.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
79
Source: "PSourcex64\ParallelExtensionsExtras.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
80
Source: "PSourcex64\Pithos.Client.WPF.exe.config"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
81
Source: "PSourcex64\Pithos.Core.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
82
Source: "PSourcex64\Pithos.Interfaces.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
83
Source: "PSourcex64\Pithos.Network.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
84
Source: "PSourcex64\Pithos.ShellExtensions.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
85
;Source: "PSourcex64\Pithos.ShellExtensions.tlb"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
86
Source: "PSourcex64\System.Data.SQLite.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
87
Source: "PSourcex64\System.Threading.Tasks.Dataflow.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
88
Source: "PSourcex64\System.Windows.Interactivity.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
89
Source: "PSourcex64\WPFToolkit.Extended.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
90
Source: "TortoiseOverlays\License.txt"; DestDir: "{cf}/\TortoiseOverlays"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
91
Source: "TortoiseOverlays\TortoiseOverlays.dll"; DestDir: "{cf}/\TortoiseOverlays"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
92
Source: "TortoiseOverlays\icons\XPStyle\AddedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
93
Source: "TortoiseOverlays\icons\XPStyle\ConflictIcon.ico"; DestDir: "{cf}/TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
94
Source: "TortoiseOverlays\icons\XPStyle\DeletedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
95
Source: "TortoiseOverlays\icons\XPStyle\IgnoredIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
96
Source: "TortoiseOverlays\icons\XPStyle\LockedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
97
Source: "TortoiseOverlays\icons\XPStyle\ModifiedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
98
Source: "TortoiseOverlays\icons\XPStyle\NormalIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
99
Source: "TortoiseOverlays\icons\XPStyle\ReadOnlyIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
100
Source: "TortoiseOverlays\icons\XPStyle\UnversionedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
101
;32 & 64 Bit
102
;Source: "PSourcex64\Pithos.Client.WPF.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: Is64BitInstallMode
103
;Source: "PSource\Pithos.Client.WPF.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode
104
;Redistributables
105
Source: "Redistributables\*"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall
106
Source: "Images\grnet-logo.bmp"; Flags: dontcopy
107
Source: "Images\account.bmp"; Flags: dontcopy
108

  
109
[Icons]
110
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
111
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
112
Name: "{group}\{cm:ProgramOnTheWeb,GRNET}"; Filename: "{#MyURL}"
113
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
114
Name: "{commonstartup}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
115
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
116
;Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
117

  
118
[Run]
119
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
120

  
121
[Registry]
122
;Startup 
123
;Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "Pithos+"; ValueData: """{app}\{#MyAppExeName}"""; Flags: createvalueifdoesntexist uninsdeletevalue
124

  
125
Root: "HKCR"; Subkey: "*\shellex\ContextMenuHandlers\Pithos.FileContextMenu"; ValueData: "b1f1405d-94a1-4692-b72f-fc8caf8b8700"; Flags: createvalueifdoesntexist uninsdeletekey
126
Root: "HKCR"; Subkey: "CLSID\0CFB4119-DABE-4E32-AB2D-2D41873BC599"; ValueData: "PithosContextMenu Class"; Flags: createvalueifdoesntexist uninsdeletekey
127

  
128
[Components]
129
Name: "RequiredFiles"; Description: "Required Files"; Types: Advanced Default; Flags: checkablealone fixed; Languages: english french german greek spanish
130
Name: "Documentation"; Description: "Documentation"; Types: Default Advanced; Flags: dontinheritcheck; Languages: english french german greek spanish
131

  
132
[Types]
133
Name: "Default"; Description: "Default Installation"; Languages: english french german greek spanish
134
Name: "Advanced"; Description: "Custom Installation"; Flags: iscustom; Languages: english german french greek spanish
135

  
136
[Dirs]
137
Name: "{cf}/\TortoiseOverlays"; Components: RequiredFiles; Tasks: desktopicon; Languages: english french german greek spanish
138
Name: "{cf}/\TortoiseOverlays/\icons"
139
Name: "{cf}/\TortoiseOverlays/icons/\XPStyle"
140

  
141

  
142
[Code]
143
const 
144
  WM_QUIT = 18;
145
  MyAppMutex = 'MYAPPMUTEX';
146
var 
147
dotNET40Missing: Boolean;
148
       IsUpdate: boolean;
149
      UsagePage: TOutputMsgWizardPage;
150
      Wz1, Wz2 : TOutputMsgWizardPage;
151

  
152
function IsDotNetDetected(version: string; service: cardinal): boolean;
153
//    'v1.1.4322'     .NET Framework 1.1
154
//    'v2.0.50727'    .NET Framework 2.0
155
//    'v3.0'          .NET Framework 3.0
156
//    'v3.5'          .NET Framework 3.5
157
//    'v4\Client'     .NET Framework 4.0 Client Profile
158
//    'v4\Full'       .NET Framework 4.0 Full Installation
159
// service pack
160
//    0               No service packs required
161
//    1, 2, etc.      Service pack 1, 2, etc. required
162
//    if not IsDotNetDetected('v4\Client', 0) then begin
163
var
164
    key: string;
165
    install, serviceCount: cardinal;
166
    success: boolean;
167
    
168
begin
169
    key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
170
    // .NET 3.0 uses value InstallSuccess in subkey Setup
171
    if Pos('v3.0', version) = 1 then begin
172
        success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
173
    end else begin
174
        success := RegQueryDWordValue(HKLM, key, 'Install', install);
175
    end;
176
    // .NET 4.0 uses value Servicing instead of SP
177
    if Pos('v4', version) = 1 then begin
178
        success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
179
    end else begin
180
        success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
181
    end;
182
    result := success and (install = 1) and (serviceCount >= service);
183
end;
184

  
185
function InitializeSetup(): Boolean;
186
begin
187
    // Test the presence of .NET 4.0
188
    if (not(RegKeyExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4'))) then
189
        dotNET40Missing := True;
190

  
191
    Result := True;
192
end;
193

  
194
function ShouldInstalldotNET40(): Boolean;
195
begin
196
    Result := dotNET40Missing;
197
end;
198

  
199
procedure CurPageChanged(CurPageID: Integer);
200
begin
201
  if CurPageID = wpInstalling then
202
    IsUpdate := FileExists(ExpandConstant('{app}\{#MyAppExeName}'));
203
end;
204

  
205
function NotAnUpdate: Boolean;
206
begin
207
  result := not IsUpdate;
208
end;
209

  
210
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
211
var
212
mRes : integer;
213
begin
214
  case CurUninstallStep of
215
    usUninstall:
216
      begin
217
        mRes := MsgBox('Do you want to remove your settings?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2)
218
        if mRes = IDYES then
219
          begin
220
            DelTree(ExpandConstant('{localappdata}')+'\GRNET',true,true,true);
221
          End
222
        else
223
          MsgBox ('Settings will not be removed', mbInformation, MB_OK);        
224
      end;
225
  end;
226
end;
227

  
228
procedure BitmapImageOnClick(Sender: TObject);
229
var
230
  ErrCode: integer;
231
begin
232
  ShellExec('open', 'http://pithos.grnet.gr','', '', SW_SHOW, ewNoWait, ErrCode);
233
end;
234

  
235
procedure CreateTheWizardPages;
236
var
237
  Page: TWizardPage;
238
  Button, FormButton: TNewButton;
239
  BitmapImage,BitmapImage1: TBitmapImage;
240
  BitmapFileName: String;
241
  Memo: TMemo;
242
  LabelWz: TLabel;
243
begin
244

  
245
  Page := CreateCustomPage(wpWelcome, 'GRNET Pithos+ Dev Build {#MyAppVersion}', 'Software License');
246
  BitmapFileName := ExpandConstant('{tmp}\grnet-logo.bmp');
247
  ExtractTemporaryFile(ExtractFileName(BitmapFileName));
248
  
249
  Page.Surface.Color := clWhite;
250
  BitmapImage := TBitmapImage.Create(Page);
251
  BitmapImage.AutoSize := True;
252
  BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
253
  BitmapImage.Cursor := crHand;
254
  BitmapImage.Left := (Page.Surfacewidth - BitmapImage.Width) / 2;
255
  BitmapImage.Top := Page.Surface.Top;
256
  BitmapImage.OnClick := @BitmapImageOnClick;
257
  BitmapImage.Parent := Page.Surface;
258
  
259
  Memo := TMemo.Create(Page);
260
  Memo.Top := BitmapImage.Height;
261
  Memo.Width := Page.SurfaceWidth;
262
  Memo.Height := Page.SurfaceHeight - (BitmapImage.Height)
263
  Memo.ScrollBars := ssVertical;
264
  Memo.Text := 'This software is provided by GRNET S.A. "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall GRNET S.A. or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.';
265
  Memo.Parent := Page.Surface;
266
  
267
  Page := CreateCustomPage(wpInfoAfter, 'First Steps', 'Setup your account');
268
  BitmapFileName := ExpandConstant('{tmp}\account.bmp');
269
  ExtractTemporaryFile(ExtractFileName(BitmapFileName));
270

  
271
  Page.Surface.Color := clWhite;
272
  BitmapImage1 := TBitmapImage.Create(Page);
273
  BitmapImage1.width := Page.SurfaceWidth;
274
  BitmapImage1.height := PAge.SurfaceHeight;
275
  BitmapImage1.Bitmap.LoadFromFile(BitmapFileName);
276
  //BitmapImage1.Cursor := crHand;
277
  BitmapImage1.Left := 0 //(Page.Surfacewidth - BitmapImage.Width) / 2;
278
  BitmapImage1.Top := Page.Surface.Top;
279
  //BitmapImage1.OnClick := @BitmapImageOnClick;
280
  BitmapImage1.Parent := Page.Surface;
281
  
282
  LabelWz := Tlabel.Create(Page);
283
  LabelWz.Top := 0;
284
  LabelWz.Caption := 'To setup your account right click on the Pithos+ icon in the taskbar.';
285
  LabelWz.Parent := Page.Surface;
286
end;
287

  
288
procedure InitializeWizard;
289
var
290
winHwnd: longint;
291
retVal : boolean;
292
strProg: string;
293
begin
294
  winHwnd := FindWindowByClassName('{#MyAppExeName}');
295
  if winHwnd<>0 then begin { no module found or ignored pressed}
296
      postmessage(winHwnd,WM_QUIT,0,0);
297
   //abort();  
298
  end;   
299

  
300
  CreateTheWizardPages;
301
end;
302

  
303
[Run]
304
Filename: {tmp}\dotNetFx40_Client_setup.exe; Description: Install Microsoft .Net Framework 4.0;    Parameters: /q /noreboot; Flags: skipifdoesntexist; Check: ShouldInstalldotNET40
b/trunk/Pithos.Installer/TortoiseOverlays/License.txt
1
====================================================================
2
Copyright (c) 2007-2008 The TortoiseSVN Project.  All rights reserved.
3

  
4
Preamble:
5
The TortoiseOverlays handler was written to reduce the problems with
6
the limited available icon overlay handler slots in Windows. The goal
7
is to have all clients use it equally. The purpose of this license is
8
to allow all clients to use the TortoiseOverlays handler, no matter 
9
what license the client itself has. And to state some rules for all 
10
clients to avoid compatibility problems and for users to know where
11
the TortoiseOverlays handler comes from.
12

  
13

  
14

  
15
Redistribution and use of the TortoiseOverlays handler and the overlay 
16
icons in it are permitted provided that the following conditions are met:
17

  
18
1. Clients using the TortoiseOverlay handler must provide an
19
   acknowlegdement that it was taken from the TortoiseSVN project, with
20
   a link to the project website (tortoisesvn.net)
21
   in one or more of the following places:
22
   a) an "about" box.
23
   b) the product user manual.
24
   c) a textfile in the installation folder of the application.
25
   d) a contributors page on the product web page.
26

  
27
2. The name "TortoiseSVN" must not be used to endorse or
28
   promote products using this overlay handler without prior written
29
   permission. For written permission, please contact
30
   dev@tortoisesvn.tigris.org.

Also available in: Unified diff