diff options
author | McCabe Maxsted | 2011-07-13 21:35:31 -0700 |
---|---|---|
committer | McCabe Maxsted | 2011-09-08 16:47:46 -0700 |
commit | 0e18be36d49140365ba1092bd965b645c4bf1eef (patch) | |
tree | d5820f876e9741be5be1540a3af807fdc505f678 /linden | |
parent | Removed packaging private assemblies since that's no longer how we distribute... (diff) | |
download | meta-impy-0e18be36d49140365ba1092bd965b645c4bf1eef.zip meta-impy-0e18be36d49140365ba1092bd965b645c4bf1eef.tar.gz meta-impy-0e18be36d49140365ba1092bd965b645c4bf1eef.tar.bz2 meta-impy-0e18be36d49140365ba1092bd965b645c4bf1eef.tar.xz |
Added a new Windows installer script for ISS. Packaging now just generates a versioned script that must be compiled (currently) by hand. Leaving the NSIS files to be cleaned up as the installer work continues
Diffstat (limited to 'linden')
-rw-r--r-- | linden/indra/lib/python/indra/util/llmanifest.py | 26 | ||||
-rw-r--r-- | linden/indra/newview/installers/windows/inworldz_installer_template.iss | 367 | ||||
-rwxr-xr-x | linden/indra/newview/viewer_manifest.py | 180 |
3 files changed, 418 insertions, 155 deletions
diff --git a/linden/indra/lib/python/indra/util/llmanifest.py b/linden/indra/lib/python/indra/util/llmanifest.py index fc777b2..3cd8786 100644 --- a/linden/indra/lib/python/indra/util/llmanifest.py +++ b/linden/indra/lib/python/indra/util/llmanifest.py | |||
@@ -121,15 +121,16 @@ ARGUMENTS=[ | |||
121 | default=""), | 121 | default=""), |
122 | dict(name='artwork', description='Artwork directory.', default=DEFAULT_SRCTREE), | 122 | dict(name='artwork', description='Artwork directory.', default=DEFAULT_SRCTREE), |
123 | dict(name='build', description='Build directory.', default=DEFAULT_SRCTREE), | 123 | dict(name='build', description='Build directory.', default=DEFAULT_SRCTREE), |
124 | dict(name='buildtype', | 124 | dict(name='buildtype', description="""The build type used. ('Debug', 'Release', 'ReleaseSSE2', or 'RelWithDebInfo') |
125 | description='Set to DEBUG if this is a debug build.', | 125 | Default is Release """, |
126 | default="RELEASE"), | 126 | default="Release"), |
127 | dict(name='channel', | 127 | dict(name='branding_id', description="""Identifier for the branding set to |
128 | description="""The channel to use for updates, packaging, settings name, etc.""", | 128 | use. Currently, 'imprudence')""", |
129 | default=get_channel), | 129 | default='inworldz'), |
130 | dict(name='configuration', | 130 | dict(name='configuration', |
131 | description="""The build configuration used. Only used on OS X for | 131 | description="""The build configuration used. On OSX this is |
132 | now, but it could be used for other platforms as well.""", | 132 | Universal, etc. On Windows it's the *actual* buildtype for |
133 | some weird reason.""", | ||
133 | default="Universal"), | 134 | default="Universal"), |
134 | dict(name='dest', description='Destination directory.', default=DEFAULT_SRCTREE), | 135 | dict(name='dest', description='Destination directory.', default=DEFAULT_SRCTREE), |
135 | dict(name='grid', | 136 | dict(name='grid', |
@@ -137,13 +138,16 @@ ARGUMENTS=[ | |||
137 | though it's not strictly a grid, 'firstlook' is also an acceptable | 138 | though it's not strictly a grid, 'firstlook' is also an acceptable |
138 | value for this parameter.""", | 139 | value for this parameter.""", |
139 | default=""), | 140 | default=""), |
141 | dict(name='channel', | ||
142 | description="""The channel to use for updates, packaging, settings name, etc.""", | ||
143 | default=get_channel), | ||
144 | dict(name='login_channel', | ||
145 | description="""The channel to use for login handshake/updates only.""", | ||
146 | default=None), | ||
140 | dict(name='installer_name', | 147 | dict(name='installer_name', |
141 | description=""" The name of the file that the installer should be | 148 | description=""" The name of the file that the installer should be |
142 | packaged up into. Only used on Linux at the moment.""", | 149 | packaged up into. Only used on Linux at the moment.""", |
143 | default=None), | 150 | default=None), |
144 | dict(name='login_channel', | ||
145 | description="""The channel to use for login handshake/updates only.""", | ||
146 | default=None), | ||
147 | dict(name='login_url', | 151 | dict(name='login_url', |
148 | description="""The url that the login screen displays in the client.""", | 152 | description="""The url that the login screen displays in the client.""", |
149 | default=None), | 153 | default=None), |
diff --git a/linden/indra/newview/installers/windows/inworldz_installer_template.iss b/linden/indra/newview/installers/windows/inworldz_installer_template.iss new file mode 100644 index 0000000..655ebc5 --- /dev/null +++ b/linden/indra/newview/installers/windows/inworldz_installer_template.iss | |||
@@ -0,0 +1,367 @@ | |||
1 | ; InWorldz inno setup installer template by McCabe Maxsted | ||
2 | |||
3 | [Setup] | ||
4 | ; NOTE: The value of AppId uniquely identifies this application. | ||
5 | ; Do not use the same AppId value in installers for other applications. | ||
6 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) | ||
7 | |||
8 | ; These will change | ||
9 | AppId={{DC6CCE02-BC61-43B1-B4CA-292C6BCCCB34} | ||
10 | AppName=%%APPNAME%% | ||
11 | AppVerName=%%APPVERNAME%% | ||
12 | DefaultDirName={pf}\InWorldz | ||
13 | DefaultGroupName=InWorldz | ||
14 | VersionInfoProductName=%%APPNAME%% | ||
15 | OutputBaseFilename=%%INSTALLERFILENAME%% | ||
16 | VersionInfoVersion=%%VERSION%% | ||
17 | VersionInfoTextVersion=%%VERSION%% | ||
18 | VersionInfoProductVersion=%%VERSION%% | ||
19 | AppVersion=%%VERSION%% | ||
20 | VersionInfoCopyright=2011 | ||
21 | |||
22 | ; These won't change | ||
23 | VersionInfoCompany=InWorldz, LLC | ||
24 | AppPublisher=InWorldz, LLC | ||
25 | AppPublisherURL=http://inworldz.com | ||
26 | AppSupportURL=http://inworldz.com | ||
27 | AllowNoIcons=true | ||
28 | InfoAfterFile=..\..\..\..\..\..\README.txt | ||
29 | OutputDir=. | ||
30 | SetupIconFile=..\..\..\..\newview\installers\windows\install_icon.ico | ||
31 | Compression=lzma2/ultra64 | ||
32 | InternalCompressLevel=ultra64 | ||
33 | SolidCompression=true | ||
34 | PrivilegesRequired=poweruser | ||
35 | AllowRootDirectory=true | ||
36 | WizardImageFile=..\..\..\..\newview\installers\windows\installer_icon_left.bmp | ||
37 | WizardSmallImageFile=..\..\..\..\newview\installers\windows\installer_icon_right.bmp | ||
38 | SetupLogging=true | ||
39 | RestartIfNeededByRun=false | ||
40 | AlwaysRestart=false | ||
41 | |||
42 | [Languages] | ||
43 | Name: english; MessagesFile: compiler:Default.isl | ||
44 | |||
45 | [Tasks] | ||
46 | Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkedonce | ||
47 | Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkedonce | ||
48 | ; TODO: use scripting for something like this on uninstall: | ||
49 | ; Name: uninstallsettings; Description: Remove user settings; Flags: checkablealone; Languages: ; GroupDescription: Uninstall: | ||
50 | |||
51 | ; NOTE VS2005 is currently the only version supported anywhere in the packaging system, so we can do this here | ||
52 | [Files] | ||
53 | Source: %%PACKAGEFILES%%\inworldz.exe; DestDir: {app}; Flags: ignoreversion | ||
54 | Source: %%PACKAGEFILES%%\character\*; DestDir: {app}\character; Flags: ignoreversion recursesubdirs createallsubdirs | ||
55 | Source: %%PACKAGEFILES%%\fonts\*; DestDir: {app}\fonts; Flags: ignoreversion recursesubdirs createallsubdirs | ||
56 | Source: %%PACKAGEFILES%%\app_settings\*; DestDir: {app}\app_settings; Flags: ignoreversion recursesubdirs createallsubdirs | ||
57 | Source: %%PACKAGEFILES%%\skins\*; DestDir: {app}\skins; Flags: ignoreversion recursesubdirs createallsubdirs | ||
58 | Source: %%PACKAGEFILES%%\llplugin\*; DestDir: {app}\llplugin; Flags: ignoreversion recursesubdirs createallsubdirs | ||
59 | Source: %%PACKAGEFILES%%\doc\*; DestDir: {app}\doc; Flags: ignoreversion recursesubdirs createallsubdirs | ||
60 | Source: %%PACKAGEFILES%%\alut.dll; DestDir: {app}; Flags: ignoreversion | ||
61 | Source: %%PACKAGEFILES%%\dbghelp.dll; DestDir: {app}; Flags: ignoreversion | ||
62 | Source: %%PACKAGEFILES%%\libapr-1.dll; DestDir: {app}; Flags: ignoreversion | ||
63 | Source: %%PACKAGEFILES%%\libapriconv-1.dll; DestDir: {app}; Flags: ignoreversion | ||
64 | Source: %%PACKAGEFILES%%\libaprutil-1.dll; DestDir: {app}; Flags: ignoreversion | ||
65 | Source: %%PACKAGEFILES%%\llcommon.dll; DestDir: {app}; Flags: ignoreversion | ||
66 | Source: %%PACKAGEFILES%%\featuretable.txt; DestDir: {app}; Flags: ignoreversion | ||
67 | Source: %%PACKAGEFILES%%\gpu_table.txt; DestDir: {app}; Flags: ignoreversion | ||
68 | Source: %%PACKAGEFILES%%\kdu_v64R.dll; DestDir: {app}; Flags: ignoreversion | ||
69 | Source: %%PACKAGEFILES%%\kdu_v64R.dll.config; DestDir: {app}; Flags: ignoreversion | ||
70 | Source: %%PACKAGEFILES%%\openal32.dll; DestDir: {app}; Flags: ignoreversion | ||
71 | Source: %%PACKAGEFILES%%\OpenJPEG.dll; DestDir: {app}; Flags: ignoreversion | ||
72 | Source: %%PACKAGEFILES%%\README.txt; DestDir: {app}; Flags: ignoreversion | ||
73 | Source: %%PACKAGEFILES%%\SLPlugin.exe; DestDir: {app}; Flags: ignoreversion | ||
74 | |||
75 | ; Gstreamer-specific files below | ||
76 | Source: %%PACKAGEFILES%%\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs | ||
77 | Source: %%PACKAGEFILES%%\avcodec-gpl-52.dll; DestDir: {app}; Flags: ignoreversion | ||
78 | Source: %%PACKAGEFILES%%\avdevice-gpl-52.dll; DestDir: {app}; Flags: ignoreversion | ||
79 | Source: %%PACKAGEFILES%%\avfilter-gpl-1.dll; DestDir: {app}; Flags: ignoreversion | ||
80 | Source: %%PACKAGEFILES%%\avformat-gpl-52.dll; DestDir: {app}; Flags: ignoreversion | ||
81 | Source: %%PACKAGEFILES%%\avutil-gpl-50.dll; DestDir: {app}; Flags: ignoreversion | ||
82 | Source: %%PACKAGEFILES%%\iconv.dll; DestDir: {app}; Flags: ignoreversion | ||
83 | Source: %%PACKAGEFILES%%\liba52-0.dll; DestDir: {app}; Flags: ignoreversion | ||
84 | Source: %%PACKAGEFILES%%\libbz2.dll; DestDir: {app}; Flags: ignoreversion | ||
85 | Source: %%PACKAGEFILES%%\libcelt-0.dll; DestDir: {app}; Flags: ignoreversion | ||
86 | Source: %%PACKAGEFILES%%\libdca-0.dll; DestDir: {app}; Flags: ignoreversion | ||
87 | Source: %%PACKAGEFILES%%\libexpat-1.dll; DestDir: {app}; Flags: ignoreversion | ||
88 | Source: %%PACKAGEFILES%%\libfaad-2.dll; DestDir: {app}; Flags: ignoreversion | ||
89 | Source: %%PACKAGEFILES%%\libFLAC-8.dll; DestDir: {app}; Flags: ignoreversion | ||
90 | Source: %%PACKAGEFILES%%\libgcrypt-11.dll; DestDir: {app}; Flags: ignoreversion | ||
91 | Source: %%PACKAGEFILES%%\libgio-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
92 | Source: %%PACKAGEFILES%%\libglib-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
93 | Source: %%PACKAGEFILES%%\libgmodule-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
94 | Source: %%PACKAGEFILES%%\libgnutls-26.dll; DestDir: {app}; Flags: ignoreversion | ||
95 | Source: %%PACKAGEFILES%%\libgobject-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
96 | Source: %%PACKAGEFILES%%\libgpg-error-0.dll; DestDir: {app}; Flags: ignoreversion | ||
97 | Source: %%PACKAGEFILES%%\libgstapp-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
98 | Source: %%PACKAGEFILES%%\libgstaudio-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
99 | Source: %%PACKAGEFILES%%\libgstbase-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
100 | Source: %%PACKAGEFILES%%\libgstcontroller-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
101 | Source: %%PACKAGEFILES%%\libgstdataprotocol-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
102 | Source: %%PACKAGEFILES%%\libgstfft-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
103 | Source: %%PACKAGEFILES%%\libgstinterfaces-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
104 | Source: %%PACKAGEFILES%%\libgstnet-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
105 | Source: %%PACKAGEFILES%%\libgstnetbuffer-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
106 | Source: %%PACKAGEFILES%%\libgstpbutils-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
107 | Source: %%PACKAGEFILES%%\libgstphotography-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
108 | Source: %%PACKAGEFILES%%\libgstreamer-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
109 | Source: %%PACKAGEFILES%%\libgstriff-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
110 | Source: %%PACKAGEFILES%%\libgstrtp-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
111 | Source: %%PACKAGEFILES%%\libgstrtsp-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
112 | Source: %%PACKAGEFILES%%\libgstsdp-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
113 | Source: %%PACKAGEFILES%%\libgstsignalprocessor-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
114 | Source: %%PACKAGEFILES%%\libgsttag-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
115 | Source: %%PACKAGEFILES%%\libgstvideo-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
116 | Source: %%PACKAGEFILES%%\libgthread-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
117 | Source: %%PACKAGEFILES%%\libmms-0.dll; DestDir: {app}; Flags: ignoreversion | ||
118 | Source: %%PACKAGEFILES%%\libmpeg2-0.dll; DestDir: {app}; Flags: ignoreversion | ||
119 | Source: %%PACKAGEFILES%%\libneon-27.dll; DestDir: {app}; Flags: ignoreversion | ||
120 | Source: %%PACKAGEFILES%%\libogg-0.dll; DestDir: {app}; Flags: ignoreversion | ||
121 | Source: %%PACKAGEFILES%%\liboil-0.3-0.dll; DestDir: {app}; Flags: ignoreversion | ||
122 | Source: %%PACKAGEFILES%%\libsoup-2.4-1.dll; DestDir: {app}; Flags: ignoreversion | ||
123 | Source: %%PACKAGEFILES%%\libtasn1-3.dll; DestDir: {app}; Flags: ignoreversion | ||
124 | Source: %%PACKAGEFILES%%\libtheora-0.dll; DestDir: {app}; Flags: ignoreversion | ||
125 | Source: %%PACKAGEFILES%%\libtheoradec-1.dll; DestDir: {app}; Flags: ignoreversion | ||
126 | Source: %%PACKAGEFILES%%\libvorbis-0.dll; DestDir: {app}; Flags: ignoreversion | ||
127 | Source: %%PACKAGEFILES%%\libvorbisenc-2.dll; DestDir: {app}; Flags: ignoreversion | ||
128 | Source: %%PACKAGEFILES%%\libvorbisfile-3.dll; DestDir: {app}; Flags: ignoreversion | ||
129 | Source: %%PACKAGEFILES%%\libwavpack-1.dll; DestDir: {app}; Flags: ignoreversion | ||
130 | Source: %%PACKAGEFILES%%\libx264-67.dll; DestDir: {app}; Flags: ignoreversion | ||
131 | Source: %%PACKAGEFILES%%\libxml2-2.dll; DestDir: {app}; Flags: ignoreversion | ||
132 | Source: %%PACKAGEFILES%%\libxml2.dll; DestDir: {app}; Flags: ignoreversion | ||
133 | Source: %%PACKAGEFILES%%\SDL.dll; DestDir: {app}; Flags: ignoreversion | ||
134 | Source: %%PACKAGEFILES%%\xvidcore.dll; DestDir: {app}; Flags: ignoreversion | ||
135 | Source: %%PACKAGEFILES%%\z.dll; DestDir: {app}; Flags: ignoreversion | ||
136 | |||
137 | ; VC++ 2005 SP1 x86, VC++ 2008 SP1 x86, and VC++ 2010 SP1 x86 redist | ||
138 | Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2005_SP1_MFC_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2005_SP1_MFC_SEC.exe | ||
139 | Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2008_SP1_ATL_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2008_SP1_ATL_SEC.exe | ||
140 | Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2010_SP1.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2010_SP1.exe | ||
141 | |||
142 | ; Old files we don't use anymore: | ||
143 | ; Source: %%PACKAGEFILES%%\dronesettings.xml; DestDir: {app}; Flags: ignoreversion | ||
144 | ; Source: %%PACKAGEFILES%%\volume_settings.xml; DestDir: {app}; Flags: ignoreversion | ||
145 | ; Source: %%PACKAGEFILES%%\srtp.dll; DestDir: {app}; Flags: ignoreversion | ||
146 | ; Source: %%PACKAGEFILES%%\ssleay32.dll; DestDir: {app}; Flags: ignoreversion | ||
147 | ; Source: %%PACKAGEFILES%%\tntk.dll; DestDir: {app}; Flags: ignoreversion | ||
148 | ; Source: %%PACKAGEFILES%%\libeay32.dll; DestDir: {app}; Flags: ignoreversion | ||
149 | ; Source: %%PACKAGEFILES%%\lsl_guide.html; DestDir: {app}; Flags: ignoreversion | ||
150 | |||
151 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files | ||
152 | ;Source: %%PACKAGEFILES%%\msvcr71.dll; DestDir: {app}; Flags: ignoreversion; MinVersion: 0,6.01; Tasks: ; Languages: | ||
153 | |||
154 | [Registry] | ||
155 | Root: HKCR; Subkey: inworldz; ValueType: string; Flags: uninsdeletekey deletekey; ValueName: (default); ValueData: URL:InWorldz | ||
156 | Root: HKCR; Subkey: inworldz; ValueType: string; Flags: uninsdeletekey deletekey; ValueName: URL Protocol | ||
157 | Root: HKCR; Subkey: inworldz\DefaultIcon; Flags: uninsdeletekey deletekey; ValueType: string; ValueData: {app}\inworldz.exe | ||
158 | Root: HKCR; Subkey: inworldz\shell\open\command; ValueType: expandsz; Flags: uninsdeletekey deletekey; ValueData: "{app}\inworldz.exe -url ""%1"""; Languages: | ||
159 | ; Root: HKCU; Subkey: Environment; ValueType: string; ValueName: GST_PLUGIN_PATH; Flags: deletevalue uninsdeletevalue; ValueData: {app}\lib | ||
160 | ; Root: HKCU; Subkey: Environment; ValueType: expandsz; ValueName: PATH; ValueData: {app} | ||
161 | |||
162 | [Icons] | ||
163 | Name: {group}\{cm:UninstallProgram,InWorldz}; Filename: {uninstallexe} | ||
164 | Name: {commondesktop}\InWorldz; Filename: {app}\inworldz.exe; Tasks: desktopicon; WorkingDir: {app}; IconIndex: 0 | ||
165 | Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\InWorldz; Filename: {app}\inworldz.exe; Tasks: quicklaunchicon; WorkingDir: {app} | ||
166 | Name: {group}\InWorldz; Filename: {app}\inworldz.exe; WorkingDir: {app}; Comment: inworldz; IconIndex: 0; | ||
167 | |||
168 | [Run] | ||
169 | ; Install redistributables. | ||
170 | ; | ||
171 | ; !!!!BEWARE!!!! | ||
172 | ; | ||
173 | ; Command line parameters and filenames WILL change with each version. Blame Microsoft. | ||
174 | |||
175 | ; Always use /q for VS2005 rather than something quieter such as Parameters: "/q:a c:""msiexec /i vcredist.msi /qn"" ". The redist will fail sometimes if you do otherwise. | ||
176 | Filename: {app}\redist\vcredist_x86_VS2005_SP1_MFC_SEC.exe; Parameters: "/q"; Check: Needs2005Redist; Flags: runhidden | ||
177 | Filename: {app}\redist\vcredist_x86_VS2008_SP1_ATL_SEC.exe; Parameters: "/q"; Check: Needs2008Redist; Flags: runhidden | ||
178 | Filename: {app}\redist\vcredist_x86_VS2010_SP1.exe; Parameters: "/q /norestart"; Check: Needs2010Redist; Flags: runhidden | ||
179 | Filename: {app}\inworldz.exe; WorkingDir: {app}; Flags: nowait postinstall | ||
180 | |||
181 | [UninstallDelete] | ||
182 | Name: {userappdata}\InWorldz\user_settings\password.dat; Type: files; Languages: | ||
183 | Name: {userappdata}\InWorldz\user_settings\settings.xml; Type: files; Languages: | ||
184 | ; 1.1 and lower cache location: | ||
185 | Name: {userappdata}\InWorldz\cache; Type: filesandordirs | ||
186 | ; 1.2 and higher cache location: | ||
187 | Name: {localappdata}\InWorldz\cache; Type: filesandordirs | ||
188 | Name: {userappdata}\InWorldz\logs; Type: filesandordirs | ||
189 | Name: {userappdata}\InWorldz\browser_profile; Type: filesandordirs | ||
190 | Name: C:\Users\{username}\.gstreamer-0.10; Type: filesandordirs | ||
191 | Name: C:\Documents and Settings\{username}\.gstreamer-0.10; Type: filesandordirs | ||
192 | |||
193 | [InstallDelete] | ||
194 | ; Name: {app}\*.dll; Type: files; Tasks: ; Languages: | ||
195 | Name: {app}\licenses.txt; Type: files; Tasks: ; Languages: | ||
196 | ; ALWAYS delete the plugins! Beware if you don't | ||
197 | Name: {app}\lib\gstreamer-plugins\*; Type: filesandordirs; Tasks: ; Languages: | ||
198 | ; Name: {app}\skins\default\xui\*; Type: filesandordirs; Tasks: ; Languages: | ||
199 | ; Old xui skin files can cause bugs, always kill them | ||
200 | Name: {app}\skins\silver\xui\en-us\*; Type: filesandordirs; Tasks: ; Languages: | ||
201 | Name: {app}\app_settings\mozilla; Type: filesandordirs; Tasks: ; Languages: | ||
202 | Name: {app}\app_settings\mozilla_debug; Type: filesandordirs; Tasks: ; Languages: | ||
203 | Name: {app}\app_settings\viewerversion.xml; Type: filesandordirs; Tasks: ; Languages: | ||
204 | Name: C:\Documents and Settings\{username}\.gstreamer-0.10\*; Type: filesandordirs | ||
205 | Name: C:\Users\{username}\.gstreamer-0.10\*; Type: filesandordirs | ||
206 | ; Breaks the browser if installing on top of 1.1: | ||
207 | Name: {app}\gksvggdiplus.dll; Type: files; Tasks: ; Languages: | ||
208 | ; Breaks inworld audio if it's from an old version with a different GUID | ||
209 | Name: {app}\alut.dll; Type: files; Tasks: ; Languages: | ||
210 | |||
211 | ; Old plugin files we want to kill: | ||
212 | Name: {app}\charset.dll; Type: files; Tasks: ; Languages: | ||
213 | Name: {app}\freebl3.dll; Type: files; Tasks: ; Languages: | ||
214 | Name: {app}\glew32.dll; Type: files; Tasks: ; Languages: | ||
215 | Name: {app}\iconv.dll; Type: files; Tasks: ; Languages: | ||
216 | Name: {app}\intl.dll; Type: files; Tasks: ; Languages: | ||
217 | Name: {app}\InWorldzViewer.exe; Type: files; Tasks: ; Languages: | ||
218 | Name: {app}\js3250.dll; Type: files; Tasks: ; Languages: | ||
219 | Name: {app}\libcairo-2.dll; Type: files; Tasks: ; Languages: | ||
220 | Name: {app}\libfaad-2.dll; Type: files; Tasks: ; Languages: | ||
221 | Name: {app}\libgcrypt-11.dll; Type: files; Tasks: ; Languages: | ||
222 | Name: {app}\libgio-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
223 | Name: {app}\libglib-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
224 | Name: {app}\libgmodule-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
225 | Name: {app}\libgnutls-26.dll; Type: files; Tasks: ; Languages: | ||
226 | Name: {app}\libgobject-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
227 | Name: {app}\libgpg-error-0.dll; Type: files; Tasks: ; Languages: | ||
228 | Name: {app}\libgstapp.dll; Type: files; Tasks: ; Languages: | ||
229 | Name: {app}\libgstaudio.dll; Type: files; Tasks: ; Languages: | ||
230 | Name: {app}\libgstaudio-0.10.dll; Type: files; Tasks: ; Languages: | ||
231 | Name: {app}\libgstbase-0.10.dll; Type: files; Tasks: ; Languages: | ||
232 | Name: {app}\libgstcdda.dll; Type: files; Tasks: ; Languages: | ||
233 | Name: {app}\libgstcontroller-0.10.dll; Type: files; Tasks: ; Languages: | ||
234 | Name: {app}\libgstdataprotocol-0.10.dll; Type: files; Tasks: ; Languages: | ||
235 | Name: {app}\libgstdshow.dll; Type: files; Tasks: ; Languages: | ||
236 | Name: {app}\libgstfft.dll; Type: files; Tasks: ; Languages: | ||
237 | Name: {app}\libgstinterfaces.dll; Type: files; Tasks: ; Languages: | ||
238 | Name: {app}\libgstnet-0.10.dll; Type: files; Tasks: ; Languages: | ||
239 | Name: {app}\libgstnetbuffer.dll; Type: files; Tasks: ; Languages: | ||
240 | Name: {app}\libgstpbutils.dll; Type: files; Tasks: ; Languages: | ||
241 | Name: {app}\libgstreamer-0.10.dll; Type: files; Tasks: ; Languages: | ||
242 | Name: {app}\libgstriff.dll; Type: files; Tasks: ; Languages: | ||
243 | Name: {app}\libgstrtp.dll; Type: files; Tasks: ; Languages: | ||
244 | Name: {app}\libgstrtsp.dll; Type: files; Tasks: ; Languages: | ||
245 | Name: {app}\libgstsdp.dll; Type: files; Tasks: ; Languages: | ||
246 | Name: {app}\libgsttag.dll; Type: files; Tasks: ; Languages: | ||
247 | Name: {app}\libgstvideo.dll; Type: files; Tasks: ; Languages: | ||
248 | Name: {app}\libgthread-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
249 | Name: {app}\libjpeg.dll; Type: files; Tasks: ; Languages: | ||
250 | Name: {app}\libmp3lame-0.dll; Type: files; Tasks: ; Languages: | ||
251 | Name: {app}\libneon-27.dll; Type: files; Tasks: ; Languages: | ||
252 | Name: {app}\libogg-0.dll; Type: files; Tasks: ; Languages: | ||
253 | Name: {app}\liboil-0.3-0.dll; Type: files; Tasks: ; Languages: | ||
254 | Name: {app}\libopenjpeg-2.dll; Type: files; Tasks: ; Languages: | ||
255 | Name: {app}\libpng12-0.dll; Type: files; Tasks: ; Languages: | ||
256 | Name: {app}\libschroedinger-1.0-0.dll; Type: files; Tasks: ; Languages: | ||
257 | Name: {app}\libspeex-1.dll; Type: files; Tasks: ; Languages: | ||
258 | Name: {app}\libtheora-0.dll; Type: files; Tasks: ; Languages: | ||
259 | Name: {app}\libvorbis-0.dll; Type: files; Tasks: ; Languages: | ||
260 | Name: {app}\libvorbisenc-2.dll; Type: files; Tasks: ; Languages: | ||
261 | Name: {app}\libxml2-2.dll; Type: files; Tasks: ; Languages: | ||
262 | Name: {app}\libxml2.dll; Type: files; Tasks: ; Languages: | ||
263 | Name: {app}\nspr4.dll; Type: files; Tasks: ; Languages: | ||
264 | Name: {app}\nss3.dll; Type: files; Tasks: ; Languages: | ||
265 | Name: {app}\nssckbi.dll; Type: files; Tasks: ; Languages: | ||
266 | Name: {app}\plc4.dll; Type: files; Tasks: ; Languages: | ||
267 | Name: {app}\plds4.dll; Type: files; Tasks: ; Languages: | ||
268 | Name: {app}\smime3.dll; Type: files; Tasks: ; Languages: | ||
269 | Name: {app}\softokn3.dll; Type: files; Tasks: ; Languages: | ||
270 | Name: {app}\ssl3.dll; Type: files; Tasks: ; Languages: | ||
271 | Name: {app}\xpcom.dll; Type: files; Tasks: ; Languages: | ||
272 | Name: {app}\xul.dll; Type: files; Tasks: ; Languages: | ||
273 | Name: {app}\xvidcore.dll; Type: files; Tasks: ; Languages: | ||
274 | Name: {app}\zlib1.dll; Type: files; Tasks: ; Languages: | ||
275 | |||
276 | ; We don't distribute the CRT like this anymore; murder death kill | ||
277 | Name: {app}\SLPlugin.exe.config; Type: files; Tasks: ; Languages: | ||
278 | Name: {app}\Microsoft.VC80.CRT.manifest; Type: files; Tasks: ; Languages: | ||
279 | Name: {app}\msvcp80.dll; Type: files; Tasks: ; Languages: | ||
280 | Name: {app}\msvcr80.dll; Type: files; Tasks: ; Languages: | ||
281 | Name: {app}\msvcr71.dll; Type: files; Tasks: ; Languages: | ||
282 | Name: {app}\inworldz.exe.config; Type: files; Tasks: ; Languages: | ||
283 | |||
284 | |||
285 | [Code] | ||
286 | // [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86] | ||
287 | // Installed = 1 (REG_DWORD) | ||
288 | function IsVS2010RedistInstalled(): Boolean; | ||
289 | var | ||
290 | V: Cardinal; | ||
291 | Success: Boolean; | ||
292 | begin | ||
293 | if IsWin64 then begin | ||
294 | Success := RegQueryDWordValue(HKLM64, 'SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86', 'Installed', V); | ||
295 | end else begin | ||
296 | Success := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86', 'Installed', V); | ||
297 | end | ||
298 | |||
299 | if Success = TRUE then begin | ||
300 | if V = 1 then begin | ||
301 | Result := TRUE; | ||
302 | end else begin | ||
303 | Result := FALSE; | ||
304 | end | ||
305 | end else begin | ||
306 | Result := FALSE; | ||
307 | end | ||
308 | end; | ||
309 | |||
310 | function Needs2010Redist(): Boolean; | ||
311 | begin | ||
312 | Result := (IsVS2010RedistInstalled = FALSE); | ||
313 | if (Result = TRUE) then begin | ||
314 | Log('User system needs VS 2010 SP1 x86 Redistributable, installing.'); | ||
315 | end else begin | ||
316 | Log('User already has VS 2010 SP1 x86 Redistributable installed, skipping.'); | ||
317 | end | ||
318 | end; | ||
319 | |||
320 | // VS2008 and 2005 x86 redists. Always look for the latest version we know about. I wish there were a better way to check for these | ||
321 | const | ||
322 | VS2005_X86 = '{A49F249F-0C91-497F-86DF-B2585E8E76B7}'; // http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE | ||
323 | VS2005_SP1_X86 = '{7299052B-02A4-4627-81F2-1818DA5D550D}'; // 8.0.50727.762: http://www.microsoft.com/downloads/details.aspx?FamilyID=200B2FD9-AE1A-4A14-984D-389C36F85647 | ||
324 | VS2005_SP1_X86_ATL_SEC = '{837B34E3-7C30-493C-8F6A-2B0F04E2912C}'; // 8.0.50727.4053: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=14431 | ||
325 | VS2005_SP1_X86_MFC_SEC = '{710f4c1c-cc18-4c49-8cbf-51240c89a1a2}'; // 8.0.50727.6195: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26347 | ||
326 | |||
327 | VS2008_X86 = '{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}'; // http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf | ||
328 | VS2008_SP1_X86 = '{9A25302D-30C0-39D9-BD6F-21E6EC160475}'; // 9.0.30729.17: http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2 | ||
329 | VS2008_SP1_X86_ATL_SEC = '{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}'; // 9.0.30729.4148: http://www.microsoft.com/downloads/details.aspx?familyid=2051A0C1-C9B5-4B0A-A8F5-770A549FD78C | ||
330 | // These updates currently don't have redist links: | ||
331 | // 9.0.30729.5026: | ||
332 | // 9.0.30729.5570: | ||
333 | // 9.0.30729.6161: http://support.microsoft.com/kb/2538243 | ||
334 | |||
335 | INSTALLSTATE_INVALIDARG = -2; // An invalid parameter was passed to the function | ||
336 | INSTALLSTATE_UNKNOWN = -1; // The product is not advertised or installed | ||
337 | INSTALLSTATE_ADVERTISED = 1; // The product is advertised but not installed | ||
338 | INSTALLSTATE_ABSENT = 2; // The product is installed for a different user | ||
339 | INSTALLSTATE_DEFAULT = 5; // The product is installed for the current user | ||
340 | |||
341 | function MsiQueryProductState(ProductCode: String): Integer; | ||
342 | external 'MsiQueryProductStateA@msi.dll stdcall'; | ||
343 | |||
344 | function IsProductCodeInstalled(ProductUUID: String): Boolean; | ||
345 | begin | ||
346 | Result := (MsiQueryProductState(ProductUUID) = INSTALLSTATE_DEFAULT); | ||
347 | end; | ||
348 | |||
349 | function Needs2005Redist(): Boolean; | ||
350 | begin | ||
351 | Result:= (IsProductCodeInstalled(VS2005_SP1_X86_MFC_SEC) = FALSE); | ||
352 | if (Result = TRUE) then begin | ||
353 | Log('User system needs VS 2005 SP1 x86 Redistributable, installing.'); | ||
354 | end else begin | ||
355 | Log('User already has VS 2005 SP1 x86 Redistributable installed, skipping.'); | ||
356 | end | ||
357 | end; | ||
358 | |||
359 | function Needs2008Redist(): Boolean; | ||
360 | begin | ||
361 | Result := (IsProductCodeInstalled(VS2008_SP1_X86_ATL_SEC) = FALSE); | ||
362 | if (Result = TRUE) then begin | ||
363 | Log('User system needs VS 2008 SP1 x86 Redistributable, installing.'); | ||
364 | end else begin | ||
365 | Log('User already has VS 2008 SP1 x86 Redistributable installed, skipping.'); | ||
366 | end | ||
367 | end; | ||
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py index 19344d5..6bf9dc7 100755 --- a/linden/indra/newview/viewer_manifest.py +++ b/linden/indra/newview/viewer_manifest.py | |||
@@ -166,6 +166,10 @@ class ViewerManifest(LLManifest): | |||
166 | return self.args['standalone'] == "ON" | 166 | return self.args['standalone'] == "ON" |
167 | def debug(self): | 167 | def debug(self): |
168 | return self.args['buildtype'] == "DEBUG" | 168 | return self.args['buildtype'] == "DEBUG" |
169 | def buildtype(self): | ||
170 | return self.args['buildtype'] | ||
171 | def configuration(self): | ||
172 | return self.args['configuration'] | ||
169 | def grid(self): | 173 | def grid(self): |
170 | return self.args['grid'] | 174 | return self.args['grid'] |
171 | def channel(self): | 175 | def channel(self): |
@@ -176,6 +180,11 @@ class ViewerManifest(LLManifest): | |||
176 | return "".join(self.channel_unique().split()) | 180 | return "".join(self.channel_unique().split()) |
177 | def channel_lowerword(self): | 181 | def channel_lowerword(self): |
178 | return self.channel_oneword().lower() | 182 | return self.channel_oneword().lower() |
183 | def viewer_branding_id(self): | ||
184 | return self.args['branding_id'] | ||
185 | def installer_prefix(self): | ||
186 | mapping={"imprudence":'Imprudence-'} | ||
187 | return mapping[self.viewer_branding_id()] | ||
179 | 188 | ||
180 | def flags_list(self): | 189 | def flags_list(self): |
181 | """ Convenience function that returns the command-line flags | 190 | """ Convenience function that returns the command-line flags |
@@ -443,145 +452,31 @@ class WindowsManifest(ViewerManifest): | |||
443 | # self.end_prefix() | 452 | # self.end_prefix() |
444 | 453 | ||
445 | 454 | ||
446 | def nsi_file_commands(self, install=True): | ||
447 | def wpath(path): | ||
448 | if path.endswith('/') or path.endswith(os.path.sep): | ||
449 | path = path[:-1] | ||
450 | path = path.replace('/', '\\') | ||
451 | return path | ||
452 | |||
453 | result = "" | ||
454 | dest_files = [pair[1] for pair in self.file_list if pair[0] and os.path.isfile(pair[1])] | ||
455 | # sort deepest hierarchy first | ||
456 | dest_files.sort(lambda a,b: cmp(a.count(os.path.sep),b.count(os.path.sep)) or cmp(a,b)) | ||
457 | dest_files.reverse() | ||
458 | out_path = None | ||
459 | for pkg_file in dest_files: | ||
460 | rel_file = os.path.normpath(pkg_file.replace(self.get_dst_prefix()+os.path.sep,'')) | ||
461 | installed_dir = wpath(os.path.join('$INSTDIR', os.path.dirname(rel_file))) | ||
462 | pkg_file = wpath(os.path.normpath(pkg_file)) | ||
463 | if installed_dir != out_path: | ||
464 | if install: | ||
465 | out_path = installed_dir | ||
466 | result += 'SetOutPath ' + out_path + '\n' | ||
467 | if install: | ||
468 | result += 'File ' + pkg_file + '\n' | ||
469 | else: | ||
470 | result += 'Delete ' + wpath(os.path.join('$INSTDIR', rel_file)) + '\n' | ||
471 | # at the end of a delete, just rmdir all the directories | ||
472 | if not install: | ||
473 | deleted_file_dirs = [os.path.dirname(pair[1].replace(self.get_dst_prefix()+os.path.sep,'')) for pair in self.file_list] | ||
474 | # find all ancestors so that we don't skip any dirs that happened to have no non-dir children | ||
475 | deleted_dirs = [] | ||
476 | for d in deleted_file_dirs: | ||
477 | deleted_dirs.extend(path_ancestors(d)) | ||
478 | # sort deepest hierarchy first | ||
479 | deleted_dirs.sort(lambda a,b: cmp(a.count(os.path.sep),b.count(os.path.sep)) or cmp(a,b)) | ||
480 | deleted_dirs.reverse() | ||
481 | prev = None | ||
482 | for d in deleted_dirs: | ||
483 | if d != prev: # skip duplicates | ||
484 | result += 'RMDir ' + wpath(os.path.join('$INSTDIR', os.path.normpath(d))) + '\n' | ||
485 | prev = d | ||
486 | |||
487 | return result | ||
488 | |||
489 | def package_finish(self): | 455 | def package_finish(self): |
490 | # a standard map of strings for replacing in the templates | 456 | # InWorldz uses Inno Setup to compile its installers. This process creates a new installer from a template |
491 | substitution_strings = { | 457 | # See http://www.jrsoftware.org/isinfo.php |
492 | 'version' : '.'.join(self.args['version']).replace(' ', '_'), | 458 | sse_string = '' |
493 | 'version_short' : '.'.join(self.args['version'][:-1]).replace(' ', '_'), | 459 | if self.configuration().lower() == "releasesse2": |
494 | 'version_dashes' : '-'.join(self.args['version']).replace(' ', '_'), | 460 | sse_string = ".SSE2" |
495 | 'final_exe' : self.final_exe(), | 461 | |
496 | 'grid':self.args['grid'], | 462 | version = '.'.join(self.args['version']) |
497 | 'grid_caps':self.args['grid'].upper(), | 463 | base_filename = self.installer_prefix() + version + sse_string |
498 | # escape quotes becase NSIS doesn't handle them well | 464 | app_name = self.channel() |
499 | 'flags':self.flags_list().replace('"', '$\\"'), | 465 | app_ver_name="%s %s" % (app_name, version) |
500 | 'channel':self.channel(), | 466 | |
501 | 'channel_oneword':self.channel_oneword(), | 467 | new_script = base_filename + ".iss" |
502 | 'channel_unique':self.channel_unique(), | 468 | self.replace_in("installers/windows/inworldz_installer_template.iss", new_script, { |
503 | } | 469 | "%%VERSION%%":version, |
504 | 470 | "%%INSTALLERFILENAME%%":base_filename, | |
505 | version_vars = """ | 471 | "%%PACKAGEFILES%%":self.args['dest'], |
506 | !define INSTEXE "%(final_exe)s" | 472 | "%%APPNAME%%":app_name, |
507 | !define VERSION "%(version_short)s" | 473 | "%%APPVERNAME%%":app_ver_name, |
508 | !define VERSION_LONG "%(version)s" | 474 | }) |
509 | !define VERSION_DASHES "%(version_dashes)s" | 475 | |
510 | """ % substitution_strings | 476 | self.created_path(self.dst_path_of(new_script)) |
511 | if self.default_channel(): | 477 | self.package_file = base_filename + ".exe" |
512 | if self.default_grid(): | 478 | |
513 | # release viewer | 479 | print "New ISS script created at " + self.args['dest'] + "\\" + new_script |
514 | installer_file = "Imprudence_%(version_dashes)s_Setup.exe" | ||
515 | grid_vars_template = """ | ||
516 | OutFile "%(installer_file)s" | ||
517 | !define INSTFLAGS "%(flags)s" | ||
518 | !define INSTNAME "Imprudence" | ||
519 | !define SHORTCUT "Imprudence" | ||
520 | !define URLNAME "imprudence" | ||
521 | Caption "Imprudence ${VERSION}" | ||
522 | """ | ||
523 | else: | ||
524 | # beta grid viewer | ||
525 | installer_file = "Imprudence_%(version_dashes)s_(%(grid_caps)s)_Setup.exe" | ||
526 | grid_vars_template = """ | ||
527 | OutFile "%(installer_file)s" | ||
528 | !define INSTFLAGS "%(flags)s" | ||
529 | !define INSTNAME "Imprudence%(grid_caps)s" | ||
530 | !define SHORTCUT "Imprudence (%(grid_caps)s)" | ||
531 | !define URLNAME "imprudence%(grid)s" | ||
532 | !define UNINSTALL_SETTINGS 1 | ||
533 | Caption "Imprudence %(grid)s ${VERSION}" | ||
534 | """ | ||
535 | else: | ||
536 | # some other channel on some grid | ||
537 | installer_file = "Imprudence_%(version_dashes)s_%(channel_oneword)s_Setup.exe" | ||
538 | grid_vars_template = """ | ||
539 | OutFile "%(installer_file)s" | ||
540 | !define INSTFLAGS "%(flags)s" | ||
541 | !define INSTNAME "Imprudence%(channel_oneword)s" | ||
542 | !define SHORTCUT "%(channel)s" | ||
543 | !define URLNAME "imprudence" | ||
544 | !define UNINSTALL_SETTINGS 1 | ||
545 | Caption "%(channel)s ${VERSION}" | ||
546 | """ | ||
547 | if 'installer_name' in self.args: | ||
548 | installer_file = self.args['installer_name'] | ||
549 | else: | ||
550 | installer_file = installer_file % substitution_strings | ||
551 | substitution_strings['installer_file'] = installer_file | ||
552 | |||
553 | tempfile = "imprudence_setup_tmp.nsi" | ||
554 | # the following replaces strings in the nsi template | ||
555 | # it also does python-style % substitution | ||
556 | self.replace_in("installers/windows/installer_template.nsi", tempfile, { | ||
557 | "%%VERSION%%":version_vars, | ||
558 | "%%SOURCE%%":self.get_src_prefix(), | ||
559 | "%%GRID_VARS%%":grid_vars_template % substitution_strings, | ||
560 | "%%INSTALL_FILES%%":self.nsi_file_commands(True), | ||
561 | "%%DELETE_FILES%%":self.nsi_file_commands(False)}) | ||
562 | |||
563 | # We use the Unicode version of NSIS, available from | ||
564 | # http://www.scratchpaper.com/ | ||
565 | try: | ||
566 | import _winreg as reg | ||
567 | NSIS_path = reg.QueryValue(reg.HKEY_LOCAL_MACHINE, r"SOFTWARE\NSIS\Unicode") + '\\makensis.exe' | ||
568 | self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) | ||
569 | except: | ||
570 | try: | ||
571 | NSIS_path = os.environ['ProgramFiles'] + '\\NSIS\\Unicode\\makensis.exe' | ||
572 | self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) | ||
573 | except: | ||
574 | NSIS_path = os.environ['ProgramFiles(X86)'] + '\\NSIS\\Unicode\\makensis.exe' | ||
575 | self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) | ||
576 | # self.remove(self.dst_path_of(tempfile)) | ||
577 | # If we're on a build machine, sign the code using our Authenticode certificate. JC | ||
578 | sign_py = 'C:\\buildscripts\\code-signing\\sign.py' | ||
579 | if os.path.exists(sign_py): | ||
580 | self.run_command(sign_py + ' ' + self.dst_path_of(installer_file)) | ||
581 | else: | ||
582 | print "Skipping code signing,", sign_py, "does not exist" | ||
583 | self.created_path(self.dst_path_of(installer_file)) | ||
584 | self.package_file = installer_file | ||
585 | 480 | ||
586 | 481 | ||
587 | class DarwinManifest(ViewerManifest): | 482 | class DarwinManifest(ViewerManifest): |
@@ -832,20 +727,17 @@ class DarwinManifest(ViewerManifest): | |||
832 | if not self.default_channel(): | 727 | if not self.default_channel(): |
833 | channel_standin = self.channel() | 728 | channel_standin = self.channel() |
834 | 729 | ||
835 | imagename="Imprudence_" + '_'.join(self.args['version']) | 730 | imagename=self.installer_prefix() + '-'.join(self.args['version']) |
836 | |||
837 | # MBW -- If the mounted volume name changes, it breaks the .DS_Store's background image and icon positioning. | ||
838 | # If we really need differently named volumes, we'll need to create multiple DS_Store file images, or use some other trick. | ||
839 | 731 | ||
840 | volname="Imprudence Installer" # DO NOT CHANGE without understanding comment above | 732 | volname="Imprudence Installer" # DO NOT CHANGE without understanding comment above |
841 | 733 | ||
842 | if self.default_channel(): | 734 | if self.default_channel(): |
843 | if not self.default_grid(): | 735 | if not self.default_grid(): |
844 | # beta case | 736 | # beta case |
845 | imagename = imagename + '_' + self.args['grid'].upper() | 737 | imagename = imagename + '-' + self.args['grid'].upper() |
846 | else: | 738 | else: |
847 | # first look, etc | 739 | # first look, etc |
848 | imagename = imagename + '_' + self.channel_oneword().upper() | 740 | imagename = imagename + '-' + self.channel_oneword().upper() |
849 | 741 | ||
850 | sparsename = imagename + ".sparseimage" | 742 | sparsename = imagename + ".sparseimage" |
851 | finalname = imagename + ".dmg" | 743 | finalname = imagename + ".dmg" |