aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--linden/indra/cmake/CopyWinLibs.cmake48
-rw-r--r--linden/indra/lib/python/indra/util/llversion.py17
-rw-r--r--linden/indra/llcommon/llversionserver.h2
-rw-r--r--linden/indra/llcommon/llversionviewer.h6
-rw-r--r--linden/indra/newview/English.lproj/InfoPlist.strings4
-rw-r--r--linden/indra/newview/Info-SecondLife.plist2
-rw-r--r--linden/indra/newview/app_settings/settings.xml2
-rw-r--r--linden/indra/newview/build_win32_appConfig.py58
-rw-r--r--linden/indra/newview/llassetuploadresponders.cpp3
-rw-r--r--linden/indra/newview/llfloaterbulkpermission.cpp36
-rw-r--r--linden/indra/newview/llpreview.cpp28
-rw-r--r--linden/indra/newview/llpreview.h1
-rw-r--r--linden/indra/newview/res/viewerRes.rc8
-rwxr-xr-xlinden/indra/newview/viewer_manifest.py47
14 files changed, 218 insertions, 44 deletions
diff --git a/linden/indra/cmake/CopyWinLibs.cmake b/linden/indra/cmake/CopyWinLibs.cmake
index b1291df..6612528 100644
--- a/linden/indra/cmake/CopyWinLibs.cmake
+++ b/linden/indra/cmake/CopyWinLibs.cmake
@@ -169,6 +169,20 @@ if (MSVC80)
169 ${debug_msvc8_files} 169 ${debug_msvc8_files}
170 ) 170 )
171 set(all_targets ${all_targets} ${out_targets}) 171 set(all_targets ${all_targets} ${out_targets})
172
173 set(debug_appconfig_file ${CMAKE_CURRENT_BINARY_DIR}/Debug/${VIEWER_BINARY_NAME}.exe.config)
174 add_custom_command(
175 OUTPUT ${debug_appconfig_file}
176 COMMAND ${PYTHON_EXECUTABLE}
177 ARGS
178 ${CMAKE_CURRENT_SOURCE_DIR}/build_win32_appConfig.py
179 ${CMAKE_CURRENT_BINARY_DIR}/Debug/Microsoft.VC80.DebugCRT.manifest
180 ${CMAKE_CURRENT_SOURCE_DIR}/SecondLifeDebug.exe.config
181 ${debug_appconfig_file}
182 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Debug/Microsoft.VC80.DebugCRT.manifest
183 COMMENT "Creating debug app config file"
184 )
185
172 endif (EXISTS ${debug_msvc8_redist_path}) 186 endif (EXISTS ${debug_msvc8_redist_path})
173 187
174 FIND_PATH(release_msvc8_redist_path msvcr80.dll 188 FIND_PATH(release_msvc8_redist_path msvcr80.dll
@@ -201,10 +215,42 @@ if (MSVC80)
201 ) 215 )
202 set(all_targets ${all_targets} ${out_targets}) 216 set(all_targets ${all_targets} ${out_targets})
203 217
218 set(release_appconfig_file ${CMAKE_CURRENT_BINARY_DIR}/Release/${VIEWER_BINARY_NAME}.exe.config)
219 add_custom_command(
220 OUTPUT ${release_appconfig_file}
221 COMMAND ${PYTHON_EXECUTABLE}
222 ARGS
223 ${CMAKE_CURRENT_SOURCE_DIR}/build_win32_appConfig.py
224 ${CMAKE_CURRENT_BINARY_DIR}/Release/Microsoft.VC80.CRT.manifest
225 ${CMAKE_CURRENT_SOURCE_DIR}/SecondLife.exe.config
226 ${release_appconfig_file}
227 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Release/Microsoft.VC80.CRT.manifest
228 COMMENT "Creating release app config file"
229 )
230
231 set(relwithdebinfo_appconfig_file ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/${VIEWER_BINARY_NAME}.exe.config)
232 add_custom_command(
233 OUTPUT ${relwithdebinfo_appconfig_file}
234 COMMAND ${PYTHON_EXECUTABLE}
235 ARGS
236 ${CMAKE_CURRENT_SOURCE_DIR}/build_win32_appConfig.py
237 ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/Microsoft.VC80.CRT.manifest
238 ${CMAKE_CURRENT_SOURCE_DIR}/SecondLife.exe.config
239 ${relwithdebinfo_appconfig_file}
240 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/Microsoft.VC80.CRT.manifest
241 COMMENT "Creating relwithdebinfo app config file"
242 )
243
204 endif (EXISTS ${release_msvc8_redist_path}) 244 endif (EXISTS ${release_msvc8_redist_path})
205endif (MSVC80) 245endif (MSVC80)
206 246
207add_custom_target(copy_win_libs ALL DEPENDS ${all_targets}) 247add_custom_target(copy_win_libs ALL
248 DEPENDS
249 ${all_targets}
250 ${release_appconfig_file}
251 ${relwithdebinfo_appconfig_file}
252 ${debug_appconfig_file}
253 )
208 254
209if(EXISTS ${internal_llkdu_path}) 255if(EXISTS ${internal_llkdu_path})
210 add_dependencies(copy_win_libs llkdu) 256 add_dependencies(copy_win_libs llkdu)
diff --git a/linden/indra/lib/python/indra/util/llversion.py b/linden/indra/lib/python/indra/util/llversion.py
index 770b861..77fa5a2 100644
--- a/linden/indra/lib/python/indra/util/llversion.py
+++ b/linden/indra/lib/python/indra/util/llversion.py
@@ -43,7 +43,7 @@ def get_version_file_contents(version_type):
43 file.close() 43 file.close()
44 return file_str 44 return file_str
45 45
46def get_version(version_type): 46def get_version(version_type, revision=0):
47 file_str = get_version_file_contents(version_type) 47 file_str = get_version_file_contents(version_type)
48 m = re.search('const S32 LL_VERSION_MAJOR = (\d+);', file_str) 48 m = re.search('const S32 LL_VERSION_MAJOR = (\d+);', file_str)
49 VER_MAJOR = m.group(1) 49 VER_MAJOR = m.group(1)
@@ -51,8 +51,11 @@ def get_version(version_type):
51 VER_MINOR = m.group(1) 51 VER_MINOR = m.group(1)
52 m = re.search('const S32 LL_VERSION_PATCH = (\d+);', file_str) 52 m = re.search('const S32 LL_VERSION_PATCH = (\d+);', file_str)
53 VER_PATCH = m.group(1) 53 VER_PATCH = m.group(1)
54 m = re.search('const S32 LL_VERSION_BUILD = (\d+);', file_str) 54 if revision > 0:
55 VER_BUILD = m.group(1) 55 VER_BUILD = revision
56 else:
57 m = re.search('const S32 LL_VERSION_BUILD = (\d+);', file_str)
58 VER_BUILD = m.group(1)
56 version = "%(VER_MAJOR)s.%(VER_MINOR)s.%(VER_PATCH)s.%(VER_BUILD)s" % locals() 59 version = "%(VER_MAJOR)s.%(VER_MINOR)s.%(VER_PATCH)s.%(VER_BUILD)s" % locals()
57 return version 60 return version
58 61
@@ -61,11 +64,11 @@ def get_channel(version_type):
61 m = re.search('const char \* const LL_CHANNEL = "(.+)";', file_str) 64 m = re.search('const char \* const LL_CHANNEL = "(.+)";', file_str)
62 return m.group(1) 65 return m.group(1)
63 66
64def get_viewer_version(): 67def get_viewer_version(revision=0):
65 return get_version('viewer') 68 return get_version('viewer', revision)
66 69
67def get_server_version(): 70def get_server_version(revision=0):
68 return get_version('server') 71 return get_version('server', revision)
69 72
70def get_viewer_channel(): 73def get_viewer_channel():
71 return get_channel('viewer') 74 return get_channel('viewer')
diff --git a/linden/indra/llcommon/llversionserver.h b/linden/indra/llcommon/llversionserver.h
index 479b06d..3831479 100644
--- a/linden/indra/llcommon/llversionserver.h
+++ b/linden/indra/llcommon/llversionserver.h
@@ -36,7 +36,7 @@
36const S32 LL_VERSION_MAJOR = 1; 36const S32 LL_VERSION_MAJOR = 1;
37const S32 LL_VERSION_MINOR = 27; 37const S32 LL_VERSION_MINOR = 27;
38const S32 LL_VERSION_PATCH = 0; 38const S32 LL_VERSION_PATCH = 0;
39const S32 LL_VERSION_BUILD = 123523; 39const S32 LL_VERSION_BUILD = 136262;
40 40
41const char * const LL_CHANNEL = "Second Life Server"; 41const char * const LL_CHANNEL = "Second Life Server";
42 42
diff --git a/linden/indra/llcommon/llversionviewer.h b/linden/indra/llcommon/llversionviewer.h
index eb84643..56711ce 100644
--- a/linden/indra/llcommon/llversionviewer.h
+++ b/linden/indra/llcommon/llversionviewer.h
@@ -35,9 +35,9 @@
35 35
36const S32 LL_VERSION_MAJOR = 1; 36const S32 LL_VERSION_MAJOR = 1;
37const S32 LL_VERSION_MINOR = 23; 37const S32 LL_VERSION_MINOR = 23;
38const S32 LL_VERSION_PATCH = 4; 38const S32 LL_VERSION_PATCH = 5;
39const S32 LL_VERSION_BUILD = 123523; 39const S32 LL_VERSION_BUILD = 136262;
40 40
41const char * const LL_CHANNEL = "Second Life Release Candidate"; 41const char * const LL_CHANNEL = "Second Life Release";
42 42
43#endif 43#endif
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings
index ed4dd60..7bb58d2 100644
--- a/linden/indra/newview/English.lproj/InfoPlist.strings
+++ b/linden/indra/newview/English.lproj/InfoPlist.strings
@@ -2,6 +2,6 @@
2 2
3CFBundleName = "Second Life"; 3CFBundleName = "Second Life";
4 4
5CFBundleShortVersionString = "Second Life version 1.23.4.123523"; 5CFBundleShortVersionString = "Second Life version 1.23.5.136262";
6CFBundleGetInfoString = "Second Life version 1.23.4.123523, Copyright 2004-2008 Linden Research, Inc."; 6CFBundleGetInfoString = "Second Life version 1.23.5.136262, Copyright 2004-2008 Linden Research, Inc.";
7 7
diff --git a/linden/indra/newview/Info-SecondLife.plist b/linden/indra/newview/Info-SecondLife.plist
index 5c5388d..de71a64 100644
--- a/linden/indra/newview/Info-SecondLife.plist
+++ b/linden/indra/newview/Info-SecondLife.plist
@@ -32,7 +32,7 @@
32 </dict> 32 </dict>
33 </array> 33 </array>
34 <key>CFBundleVersion</key> 34 <key>CFBundleVersion</key>
35 <string>1.23.4.123523</string> 35 <string>1.23.5.136262</string>
36 <key>CSResourcesFileMapped</key> 36 <key>CSResourcesFileMapped</key>
37 <true/> 37 <true/>
38</dict> 38</dict>
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index 5ebf14d..b696cac 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -7491,7 +7491,7 @@
7491 <key>Type</key> 7491 <key>Type</key>
7492 <string>S32</string> 7492 <string>S32</string>
7493 <key>Value</key> 7493 <key>Value</key>
7494 <integer>4096</integer> 7494 <integer>8192</integer>
7495 </map> 7495 </map>
7496 <key>RenderMaxVBOSize</key> 7496 <key>RenderMaxVBOSize</key>
7497 <map> 7497 <map>
diff --git a/linden/indra/newview/build_win32_appConfig.py b/linden/indra/newview/build_win32_appConfig.py
new file mode 100644
index 0000000..fb6a025
--- /dev/null
+++ b/linden/indra/newview/build_win32_appConfig.py
@@ -0,0 +1,58 @@
1# @file build_win32_appConfig.py
2# @brief Create the windows app.config file to redirect crt linkage.
3#
4# $LicenseInfo:firstyear=2009&license=viewergpl$
5#
6# Copyright (c) 2009, Linden Research, Inc.
7#
8# Second Life Viewer Source Code
9# The source code in this file ("Source Code") is provided by Linden Lab
10# to you under the terms of the GNU General Public License, version 2.0
11# ("GPL"), unless you have obtained a separate licensing agreement
12# ("Other License"), formally executed by you and Linden Lab. Terms of
13# the GPL can be found in doc/GPL-license.txt in this distribution, or
14# online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
15#
16# There are special exceptions to the terms and conditions of the GPL as
17# it is applied to this Source Code. View the full text of the exception
18# in the file doc/FLOSS-exception.txt in this software distribution, or
19# online at
20# http://secondlifegrid.net/programs/open_source/licensing/flossexception
21#
22# By copying, modifying or distributing this software, you acknowledge
23# that you have read and understood your obligations described above,
24# and agree to abide by those obligations.
25#
26# ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
27# WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
28# COMPLETENESS OR PERFORMANCE.
29# $/LicenseInfo$
30
31import sys, os, re
32from xml.dom.minidom import parse
33
34def main():
35 src_manifest_name = sys.argv[1]
36 src_config_name = sys.argv[2]
37 dst_config_name = sys.argv[3]
38
39 manifest_dom = parse(src_manifest_name)
40 node = manifest_dom.getElementsByTagName('assemblyIdentity')[0]
41 manifest_assm_ver = node.getAttribute('version')
42
43 config_dom = parse(src_config_name)
44 node = config_dom.getElementsByTagName('bindingRedirect')[0]
45 node.setAttribute('newVersion', manifest_assm_ver)
46 src_old_ver = re.match('([^-]*-).*', node.getAttribute('oldVersion')).group(1)
47 node.setAttribute('oldVersion', src_old_ver + manifest_assm_ver)
48 comment = config_dom.createComment("This file is automatically generated by the build. see indra/newview/build_win32_appConfig.py")
49 config_dom.insertBefore(comment, config_dom.childNodes[0])
50
51 f = open(dst_config_name, 'w')
52 config_dom.writexml(f)
53 f.close()
54
55 return 0
56
57if __name__ == "__main__":
58 main()
diff --git a/linden/indra/newview/llassetuploadresponders.cpp b/linden/indra/newview/llassetuploadresponders.cpp
index 4fca9b1..571dea9 100644
--- a/linden/indra/newview/llassetuploadresponders.cpp
+++ b/linden/indra/newview/llassetuploadresponders.cpp
@@ -524,7 +524,6 @@ void LLUpdateTaskInventoryResponder::uploadComplete(const LLSD& content)
524 { 524 {
525 case LLAssetType::AT_NOTECARD: 525 case LLAssetType::AT_NOTECARD:
526 { 526 {
527
528 // Update the UI with the new asset. 527 // Update the UI with the new asset.
529 LLPreviewNotecard* nc; 528 LLPreviewNotecard* nc;
530 nc = (LLPreviewNotecard*)LLPreview::find(item_id); 529 nc = (LLPreviewNotecard*)LLPreview::find(item_id);
@@ -542,7 +541,7 @@ void LLUpdateTaskInventoryResponder::uploadComplete(const LLSD& content)
542 content["new_asset"].asUUID(), 541 content["new_asset"].asUUID(),
543 LLAssetType::AT_NOTECARD); 542 LLAssetType::AT_NOTECARD);
544 } 543 }
545 544 nc->setAssetId(content["new_asset"].asUUID());
546 nc->refreshFromInventory(); 545 nc->refreshFromInventory();
547 } 546 }
548 } 547 }
diff --git a/linden/indra/newview/llfloaterbulkpermission.cpp b/linden/indra/newview/llfloaterbulkpermission.cpp
index d4e1e98..6721661 100644
--- a/linden/indra/newview/llfloaterbulkpermission.cpp
+++ b/linden/indra/newview/llfloaterbulkpermission.cpp
@@ -281,6 +281,35 @@ void LLFloaterBulkPermission::handleInventory(LLViewerObject* viewer_obj, Invent
281 LLInventoryItem* item = (LLInventoryItem*)((LLInventoryObject*)(*it)); 281 LLInventoryItem* item = (LLInventoryItem*)((LLInventoryObject*)(*it));
282 LLViewerInventoryItem* new_item = (LLViewerInventoryItem*)item; 282 LLViewerInventoryItem* new_item = (LLViewerInventoryItem*)item;
283 LLPermissions perm(new_item->getPermissions()); 283 LLPermissions perm(new_item->getPermissions());
284 U32 flags = new_item->getFlags();
285
286 U32 desired_next_owner_perms = LLFloaterPerms::getNextOwnerPerms("BulkChange");
287 U32 desired_everyone_perms = LLFloaterPerms::getEveryonePerms("BulkChange");
288 U32 desired_group_perms = LLFloaterPerms::getGroupPerms("BulkChange");
289
290 // If next owner permissions have changed (and this is an object)
291 // then set the slam permissions flag so that they are applied on rez.
292 if((perm.getMaskNextOwner() != desired_next_owner_perms)
293 && (new_item->getType() == LLAssetType::AT_OBJECT))
294 {
295 flags |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM;
296 }
297 // If everyone permissions have changed (and this is an object)
298 // then set the overwrite everyone permissions flag so they
299 // are applied on rez.
300 if ((perm.getMaskEveryone() != desired_everyone_perms)
301 && (new_item->getType() == LLAssetType::AT_OBJECT))
302 {
303 flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE;
304 }
305 // If group permissions have changed (and this is an object)
306 // then set the overwrite group permissions flag so they
307 // are applied on rez.
308 if ((perm.getMaskGroup() != desired_group_perms)
309 && (new_item->getType() == LLAssetType::AT_OBJECT))
310 {
311 flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP;
312 }
284 313
285 // chomp the inventory name so it fits in the scroll window nicely 314 // chomp the inventory name so it fits in the scroll window nicely
286 // and the user can see the [OK] 315 // and the user can see the [OK]
@@ -303,10 +332,11 @@ void LLFloaterBulkPermission::handleInventory(LLViewerObject* viewer_obj, Invent
303 //|| something else // for next owner perms 332 //|| something else // for next owner perms
304 ) 333 )
305 { 334 {
306 perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("BulkChange")); 335 perm.setMaskNext(desired_next_owner_perms);
307 perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("BulkChange")); 336 perm.setMaskEveryone(desired_everyone_perms);
308 perm.setMaskGroup(LLFloaterPerms::getGroupPerms("BulkChange")); 337 perm.setMaskGroup(desired_group_perms);
309 new_item->setPermissions(perm); // here's the beef 338 new_item->setPermissions(perm); // here's the beef
339 new_item->setFlags(flags); // and the tofu
310 updateInventory(object,new_item,TASK_INVENTORY_ITEM_KEY,FALSE); 340 updateInventory(object,new_item,TASK_INVENTORY_ITEM_KEY,FALSE);
311 //status_text.setArg("[STATUS]", getString("status_ok_text")); 341 //status_text.setArg("[STATUS]", getString("status_ok_text"));
312 status_text.setArg("[STATUS]", ""); 342 status_text.setArg("[STATUS]", "");
diff --git a/linden/indra/newview/llpreview.cpp b/linden/indra/newview/llpreview.cpp
index 6d7082b..5979ff6 100644
--- a/linden/indra/newview/llpreview.cpp
+++ b/linden/indra/newview/llpreview.cpp
@@ -597,3 +597,31 @@ void LLMultiPreview::setAutoOpenInstance(LLMultiPreview* previewp, const LLUUID&
597 sAutoOpenPreviewHandles[id] = previewp->getHandle(); 597 sAutoOpenPreviewHandles[id] = previewp->getHandle();
598 } 598 }
599} 599}
600
601void LLPreview::setAssetId(const LLUUID& asset_id)
602{
603 const LLViewerInventoryItem* item = getItem();
604 if(NULL == item)
605 {
606 return;
607 }
608
609 if(mObjectUUID.isNull())
610 {
611 // Update avatar inventory asset_id.
612 LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
613 new_item->setAssetUUID(asset_id);
614 gInventory.updateItem(new_item);
615 gInventory.notifyObservers();
616 }
617 else
618 {
619 // Update object inventory asset_id.
620 LLViewerObject* object = gObjectList.findObject(mObjectUUID);
621 if(NULL == object)
622 {
623 return;
624 }
625 object->updateViewerInventoryAsset(item, asset_id);
626 }
627}
diff --git a/linden/indra/newview/llpreview.h b/linden/indra/newview/llpreview.h
index ff084be..fba4ef2 100644
--- a/linden/indra/newview/llpreview.h
+++ b/linden/indra/newview/llpreview.h
@@ -84,6 +84,7 @@ public:
84 void setItemID(const LLUUID& item_id); 84 void setItemID(const LLUUID& item_id);
85 void setObjectID(const LLUUID& object_id); 85 void setObjectID(const LLUUID& object_id);
86 void setSourceID(const LLUUID& source_id); 86 void setSourceID(const LLUUID& source_id);
87 void setAssetId(const LLUUID& asset_id);
87 const LLViewerInventoryItem *getItem() const; // searches if not constructed with it 88 const LLViewerInventoryItem *getItem() const; // searches if not constructed with it
88 89
89 static LLPreview* find(const LLUUID& item_uuid); 90 static LLPreview* find(const LLUUID& item_uuid);
diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc
index ee25195..3bb6813 100644
--- a/linden/indra/newview/res/viewerRes.rc
+++ b/linden/indra/newview/res/viewerRes.rc
@@ -138,8 +138,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur"
138// 138//
139 139
140VS_VERSION_INFO VERSIONINFO 140VS_VERSION_INFO VERSIONINFO
141 FILEVERSION 1,23,4,123523 141 FILEVERSION 1,23,5,136262
142 PRODUCTVERSION 1,23,4,123523 142 PRODUCTVERSION 1,23,5,136262
143 FILEFLAGSMASK 0x3fL 143 FILEFLAGSMASK 0x3fL
144#ifdef _DEBUG 144#ifdef _DEBUG
145 FILEFLAGS 0x1L 145 FILEFLAGS 0x1L
@@ -156,12 +156,12 @@ BEGIN
156 BEGIN 156 BEGIN
157 VALUE "CompanyName", "Linden Lab" 157 VALUE "CompanyName", "Linden Lab"
158 VALUE "FileDescription", "Second Life" 158 VALUE "FileDescription", "Second Life"
159 VALUE "FileVersion", "1.23.4.123523" 159 VALUE "FileVersion", "1.23.5.136262"
160 VALUE "InternalName", "Second Life" 160 VALUE "InternalName", "Second Life"
161 VALUE "LegalCopyright", "Copyright © 2001-2008, Linden Research, Inc." 161 VALUE "LegalCopyright", "Copyright © 2001-2008, Linden Research, Inc."
162 VALUE "OriginalFilename", "SecondLife.exe" 162 VALUE "OriginalFilename", "SecondLife.exe"
163 VALUE "ProductName", "Second Life" 163 VALUE "ProductName", "Second Life"
164 VALUE "ProductVersion", "1.23.4.123523" 164 VALUE "ProductVersion", "1.23.5.136262"
165 END 165 END
166 END 166 END
167 BLOCK "VarFileInfo" 167 BLOCK "VarFileInfo"
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index c645245..f365016 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -202,6 +202,18 @@ class WindowsManifest(ViewerManifest):
202 self.path("Microsoft.VC80.CRT.manifest") 202 self.path("Microsoft.VC80.CRT.manifest")
203 self.end_prefix() 203 self.end_prefix()
204 204
205 # The config file name needs to match the exe's name.
206 self.path(src="%s/secondlife-bin.exe.config" % self.args['configuration'], dst=self.final_exe() + ".config")
207
208 # We need this one too, so that llkdu loads at runtime - DEV-41194
209 self.path(src="%s/secondlife-bin.exe.config" % self.args['configuration'], dst="llkdu.dll.2.config")
210
211 # We need this one too, so that win_crash_logger.exe loads at runtime - DEV-19004
212 self.path(src="%s/secondlife-bin.exe.config" % self.args['configuration'], dst="win_crash_logger.exe.config")
213
214 # same thing for auto-updater.
215 self.path(src="%s/secondlife-bin.exe.config" % self.args['configuration'], dst="updater.exe.config")
216
205 # Mozilla runtime DLLs (CP) 217 # Mozilla runtime DLLs (CP)
206 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""): 218 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
207 self.path("freebl3.dll") 219 self.path("freebl3.dll")
@@ -230,9 +242,6 @@ class WindowsManifest(ViewerManifest):
230 242
231 # Mozilla hack to get it to accept newer versions of msvc*80.dll than are listed in manifest 243 # Mozilla hack to get it to accept newer versions of msvc*80.dll than are listed in manifest
232 # necessary as llmozlib2-vc80.lib refers to an old version of msvc*80.dll - can be removed when new version of llmozlib is built - Nyx 244 # necessary as llmozlib2-vc80.lib refers to an old version of msvc*80.dll - can be removed when new version of llmozlib is built - Nyx
233 # The config file name needs to match the exe's name.
234 self.path("SecondLife.exe.config", dst=self.final_exe() + ".config")
235
236 # Vivox runtimes 245 # Vivox runtimes
237 if self.prefix(src="vivox-runtime/i686-win32", dst=""): 246 if self.prefix(src="vivox-runtime/i686-win32", dst=""):
238 self.path("SLVoice.exe") 247 self.path("SLVoice.exe")
@@ -242,12 +251,12 @@ class WindowsManifest(ViewerManifest):
242 self.path("wrap_oal.dll") 251 self.path("wrap_oal.dll")
243 self.end_prefix() 252 self.end_prefix()
244 253
245# # pull in the crash logger and updater from other projects 254 # pull in the crash logger and updater from other projects
246# self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter 255 self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter
247# "../win_crash_logger/debug/windows-crash-logger.exe", 256 "../win_crash_logger/debug/windows-crash-logger.exe",
248# "../win_crash_logger/release/windows-crash-logger.exe", 257 "../win_crash_logger/release/windows-crash-logger.exe",
249# "../win_crash_logger/relwithdebinfo/windows-crash-logger.exe"), 258 "../win_crash_logger/relwithdebinfo/windows-crash-logger.exe"),
250# dst="win_crash_logger.exe") 259 dst="win_crash_logger.exe")
251 self.path(src=self.find_existing_file( 260 self.path(src=self.find_existing_file(
252 "../win_updater/debug/windows-updater.exe", 261 "../win_updater/debug/windows-updater.exe",
253 "../win_updater/release/windows-updater.exe", 262 "../win_updater/release/windows-updater.exe",
@@ -459,13 +468,13 @@ class DarwinManifest(ViewerManifest):
459 self.path("vivox-runtime/universal-darwin/SLVoice", "SLVoice") 468 self.path("vivox-runtime/universal-darwin/SLVoice", "SLVoice")
460 469
461 # llkdu dynamic library 470 # llkdu dynamic library
462# self.path("../../libraries/universal-darwin/lib_release/libllkdu.dylib", "libllkdu.dylib") 471 self.path("../../libraries/universal-darwin/lib_release/libllkdu.dylib", "libllkdu.dylib")
463 472
464 #libfmodwrapper.dylib 473 #libfmodwrapper.dylib
465 self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib") 474 self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib")
466 475
467 # our apps 476 # our apps
468# self.path("../mac_crash_logger/" + self.args['configuration'] + "/mac-crash-logger.app", "mac-crash-logger.app") 477 self.path("../mac_crash_logger/" + self.args['configuration'] + "/mac-crash-logger.app", "mac-crash-logger.app")
469 self.path("../mac_updater/" + self.args['configuration'] + "/mac-updater.app", "mac-updater.app") 478 self.path("../mac_updater/" + self.args['configuration'] + "/mac-updater.app", "mac-updater.app")
470 479
471 # command line arguments for connecting to the proper grid 480 # command line arguments for connecting to the proper grid
@@ -634,20 +643,20 @@ class Linux_i686Manifest(LinuxManifest):
634 def construct(self): 643 def construct(self):
635 super(Linux_i686Manifest, self).construct() 644 super(Linux_i686Manifest, self).construct()
636 645
637# # install either the libllkdu we just built, or a prebuilt one, in 646 # install either the libllkdu we just built, or a prebuilt one, in
638 # decreasing order of preference. for linux package, this goes to bin/ 647 # decreasing order of preference. for linux package, this goes to bin/
639 try: 648 try:
640# self.path(self.find_existing_file('../llkdu/libllkdu.so', 649 self.path(self.find_existing_file('../llkdu/libllkdu.so',
641# '../../libraries/i686-linux/lib_release_client/libllkdu.so'), 650 '../../libraries/i686-linux/lib_release_client/libllkdu.so'),
642# dst='bin/libllkdu.so') 651 dst='bin/libllkdu.so')
643 # keep this one to preserve syntax, open source mangling removes previous lines 652 # keep this one to preserve syntax, open source mangling removes previous lines
644 pass 653 pass
645 except: 654 except:
646# print "Skipping libllkdu.so - not found" 655 print "Skipping libllkdu.so - not found"
647 pass 656 pass
648 657
649 self.path("secondlife-stripped","bin/do-not-directly-run-secondlife-bin") 658 self.path("secondlife-stripped","bin/do-not-directly-run-secondlife-bin")
650# self.path("../linux_crash_logger/linux-crash-logger-stripped","linux-crash-logger.bin") 659 self.path("../linux_crash_logger/linux-crash-logger-stripped","linux-crash-logger.bin")
651 self.path("linux_tools/launch_url.sh","launch_url.sh") 660 self.path("linux_tools/launch_url.sh","launch_url.sh")
652 if self.prefix("res-sdl"): 661 if self.prefix("res-sdl"):
653 self.path("*") 662 self.path("*")
@@ -660,7 +669,7 @@ class Linux_i686Manifest(LinuxManifest):
660 self.path("app_settings/mozilla-runtime-linux-i686") 669 self.path("app_settings/mozilla-runtime-linux-i686")
661 670
662 if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"): 671 if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"):
663# self.path("libkdu_v42R.so", "libkdu.so") 672 self.path("libkdu_v42R.so", "libkdu.so")
664 self.path("libfmod-3.75.so") 673 self.path("libfmod-3.75.so")
665 self.path("libapr-1.so.0") 674 self.path("libapr-1.so.0")
666 self.path("libaprutil-1.so.0") 675 self.path("libaprutil-1.so.0")
@@ -689,7 +698,7 @@ class Linux_x86_64Manifest(LinuxManifest):
689 def construct(self): 698 def construct(self):
690 super(Linux_x86_64Manifest, self).construct() 699 super(Linux_x86_64Manifest, self).construct()
691 self.path("secondlife-stripped","bin/do-not-directly-run-secondlife-bin") 700 self.path("secondlife-stripped","bin/do-not-directly-run-secondlife-bin")
692# self.path("../linux_crash_logger/linux-crash-logger-stripped","linux-crash-logger.bin") 701 self.path("../linux_crash_logger/linux-crash-logger-stripped","linux-crash-logger.bin")
693 self.path("linux_tools/launch_url.sh","launch_url.sh") 702 self.path("linux_tools/launch_url.sh","launch_url.sh")
694 if self.prefix("res-sdl"): 703 if self.prefix("res-sdl"):
695 self.path("*") 704 self.path("*")