summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/contributions.txt1
-rw-r--r--indra/llcommon/llversionviewer.h2
-rwxr-xr-xindra/llcrashlogger/llcrashlogger.cpp22
-rw-r--r--indra/newview/English.lproj/InfoPlist.strings4
-rw-r--r--indra/newview/Info-SecondLife.plist2
-rw-r--r--indra/newview/llappviewer.cpp2
-rw-r--r--indra/newview/llfloaterland.cpp42
-rw-r--r--indra/newview/llfloaterland.h1
-rw-r--r--indra/newview/llpanellogin.cpp19
-rw-r--r--indra/newview/llstartup.cpp6
-rw-r--r--indra/newview/llviewermenu.cpp29
-rw-r--r--indra/newview/llviewermenu.h1
-rwxr-xr-xindra/newview/viewer_manifest.py15
13 files changed, 100 insertions, 46 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 74b316b3ec..9292d1ba40 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -265,6 +265,7 @@ Seg Baphomet
VWR-1585
VWR-1586
VWR-3206
+ VWR-2488
SignpostMarv Martin
VWR-153
VWR-154
diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index d051fa6043..c82a9b788b 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -35,7 +35,7 @@
const S32 LL_VERSION_MAJOR = 1;
const S32 LL_VERSION_MINOR = 18;
const S32 LL_VERSION_PATCH = 6;
-const S32 LL_VERSION_BUILD = 3;
+const S32 LL_VERSION_BUILD = 4;
const char * const LL_CHANNEL = "Second Life Release";
diff --git a/indra/llcrashlogger/llcrashlogger.cpp b/indra/llcrashlogger/llcrashlogger.cpp
index df446a7239..df939a9c99 100755
--- a/indra/llcrashlogger/llcrashlogger.cpp
+++ b/indra/llcrashlogger/llcrashlogger.cpp
@@ -1,4 +1,4 @@
-/**
+ /**
* @file llcrashlogger.cpp
* @brief Crash logger implementation
*
@@ -144,9 +144,18 @@ void LLCrashLogger::gatherFiles()
mCrashHost = "https://";
mCrashHost += mDebugLog["CurrentSimHost"].asString();
mCrashHost += ":12043/crash/report";
- mAltCrashHost = "https://";
- mAltCrashHost += mDebugLog["GridUtilHost"].asString();
- mAltCrashHost += ":12043/crash/report";
+ // Use login servers as the alternate, since they are already load balanced and have a known name
+ // First, check to see if we have a valid grid name. If not, use agni.
+ mAltCrashHost = "https://login.";
+ if(mDebugLog["GridName"].asString() != "")
+ {
+ mAltCrashHost += mDebugLog["GridName"].asString();
+ }
+ else
+ {
+ mAltCrashHost += "agni";
+ }
+ mAltCrashHost += ".lindenlab.com:12043/crash/report";
mCrashInfo["DebugLog"] = mDebugLog;
mFileMap["StatsLog"] = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stats.log");
@@ -230,9 +239,6 @@ bool LLCrashLogger::sendCrashLogs()
updateApplication("Sending logs...");
}
- //util.* servers no longer have a public interface, so there's no alternate server anymore.
- //leaving this in if we decide we need another alternate server for crash report receiving.
- /*
if(!gSent)
{
gBreak = false;
@@ -243,7 +249,7 @@ bool LLCrashLogger::sendCrashLogs()
updateApplication("Sending logs to Alternate Server...");
}
}
- */
+
mSentCrashLogs = gSent;
diff --git a/indra/newview/English.lproj/InfoPlist.strings b/indra/newview/English.lproj/InfoPlist.strings
index dff6ab4cbb..81d40ac484 100644
--- a/indra/newview/English.lproj/InfoPlist.strings
+++ b/indra/newview/English.lproj/InfoPlist.strings
@@ -1,5 +1,5 @@
/* Localized versions of Info.plist keys */
CFBundleName = "Second Life";
-CFBundleShortVersionString = "Second Life version 1.18.6.3";
-CFBundleGetInfoString = "Second Life version 1.18.6.3, Copyright 2004-2007 Linden Research, Inc.";
+CFBundleShortVersionString = "Second Life version 1.18.6.4";
+CFBundleGetInfoString = "Second Life version 1.18.6.4, Copyright 2004-2007 Linden Research, Inc.";
diff --git a/indra/newview/Info-SecondLife.plist b/indra/newview/Info-SecondLife.plist
index 73117e1e06..44e9a47438 100644
--- a/indra/newview/Info-SecondLife.plist
+++ b/indra/newview/Info-SecondLife.plist
@@ -32,7 +32,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
- <string>1.18.6.3</string>
+ <string>1.18.6.4</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 96d9670ac9..28496dc910 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2501,7 +2501,7 @@ void LLAppViewer::writeSystemInfo()
{
gDebugInfo["SLLog"] = LLError::logFileName();
- gDebugInfo["ClientInfo"]["Name"] = gSecondLife;
+ gDebugInfo["ClientInfo"]["Name"] = gChannelName;
gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH;
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index abde6ccfcb..2167e1f2ca 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -2536,7 +2536,7 @@ LLPanelLandAccess::LLPanelLandAccess(LLParcelSelectionHandle& parcel)
BOOL LLPanelLandAccess::postBuild()
{
- childSetCommitCallback("public_access", onCommitAny, this);
+ childSetCommitCallback("public_access", onCommitPublicAccess, this);
childSetCommitCallback("limit_payment", onCommitAny, this);
childSetCommitCallback("limit_age_verified", onCommitAny, this);
childSetCommitCallback("GroupCheck", onCommitAny, this);
@@ -2580,7 +2580,7 @@ void LLPanelLandAccess::refresh()
{
BOOL use_access_list = parcel->getParcelFlag(PF_USE_ACCESS_LIST);
BOOL use_group = parcel->getParcelFlag(PF_USE_ACCESS_GROUP);
- BOOL public_access = !use_access_list;
+ BOOL public_access = !use_access_list && !use_group;
childSetValue("public_access", public_access );
childSetValue("GroupCheck", use_group );
@@ -2767,6 +2767,7 @@ void LLPanelLandAccess::refresh_ui()
{
childSetToolTip("Only Allow", LLString());
}
+ childSetEnabled("GroupCheck", FALSE);
childSetEnabled("PassCheck", FALSE);
childSetEnabled("pass_combo", FALSE);
childSetEnabled("AccessList", FALSE);
@@ -2775,6 +2776,11 @@ void LLPanelLandAccess::refresh_ui()
{
childSetEnabled("limit_payment", FALSE);
childSetEnabled("limit_age_verified", FALSE);
+ char group_name[MAX_STRING]; /*Flawfinder: ignore*/
+ if (gCacheName->getGroupName(parcel->getGroupID(), group_name))
+ {
+ childSetEnabled("GroupCheck", can_manage_allowed);
+ }
BOOL group_access = childGetValue("GroupCheck").asBoolean();
BOOL sell_passes = childGetValue("PassCheck").asBoolean();
childSetEnabled("PassCheck", can_manage_allowed);
@@ -2785,13 +2791,6 @@ void LLPanelLandAccess::refresh_ui()
childSetEnabled("HoursSpin", can_manage_allowed);
}
}
-
- char group_name[MAX_STRING]; /*Flawfinder: ignore*/
- if (gCacheName->getGroupName(parcel->getGroupID(), group_name))
- {
- childSetEnabled("GroupCheck", can_manage_allowed);
- }
-
childSetEnabled("AccessList", can_manage_allowed);
S32 allowed_list_count = parcel->mAccessList.size();
childSetEnabled("add_allowed", can_manage_allowed && allowed_list_count < PARCEL_MAX_ACCESS_LIST);
@@ -2827,6 +2826,29 @@ void LLPanelLandAccess::draw()
LLPanel::draw();
}
+// static
+void LLPanelLandAccess::onCommitPublicAccess(LLUICtrl *ctrl, void *userdata)
+{
+ LLPanelLandAccess *self = (LLPanelLandAccess *)userdata;
+ LLParcel* parcel = self->mParcel->getParcel();
+ if (!parcel)
+ {
+ return;
+ }
+
+ // If we disabled public access, enable group access by default (if applicable)
+ BOOL public_access = self->childGetValue("public_access").asBoolean();
+ if (public_access == FALSE)
+ {
+ char group_name[MAX_STRING]; /*Flawfinder: ignore*/
+ if (gCacheName->getGroupName(parcel->getGroupID(), group_name))
+ {
+ self->childSetValue("GroupCheck", public_access ? FALSE : TRUE);
+ }
+ }
+
+ onCommitAny(ctrl, userdata);
+}
// static
void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)
@@ -2841,7 +2863,6 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)
// Extract data from UI
BOOL public_access = self->childGetValue("public_access").asBoolean();
-
BOOL use_access_group = self->childGetValue("GroupCheck").asBoolean();
if (use_access_group)
{
@@ -2859,6 +2880,7 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)
if (public_access)
{
use_access_list = FALSE;
+ use_access_group = FALSE;
limit_payment = self->childGetValue("limit_payment").asBoolean();
limit_age_verified = self->childGetValue("limit_age_verified").asBoolean();
}
diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h
index 4bb88aa127..4407e0b5b4 100644
--- a/indra/newview/llfloaterland.h
+++ b/indra/newview/llfloaterland.h
@@ -395,6 +395,7 @@ public:
void refreshNames();
virtual void draw();
+ static void onCommitPublicAccess(LLUICtrl* ctrl, void *userdata);
static void onCommitAny(LLUICtrl* ctrl, void *userdata);
static void onClickAddAccess(void*);
static void callbackAvatarCBAccess(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* userdata);
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 2cac860423..cf8fff8543 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -85,6 +85,25 @@ const S32 MAX_PASSWORD = 16;
LLPanelLogin *LLPanelLogin::sInstance = NULL;
+class LLLoginRefreshHandler : public LLCommandHandler
+{
+public:
+ LLLoginRefreshHandler() : LLCommandHandler("login_refresh") { }
+ bool handle(const LLSD& tokens, const LLSD& queryMap)
+ {
+#if LL_LIBXUL_ENABLED
+ if (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP)
+ {
+ LLPanelLogin::loadLoginPage();
+ }
+#endif
+ return true;
+ }
+};
+
+LLLoginRefreshHandler gLoginRefreshHandler;
+
+
//parses the input url and returns true if afterwards
//a web-login-key, firstname and lastname is set
bool LLLoginHandler::parseDirectLogin(std::string url)
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 96af7d2bd2..675a447dc4 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -777,9 +777,6 @@ BOOL idle_startup()
gSavedSettings.setString("FirstName", firstname);
gSavedSettings.setString("LastName", lastname);
-
-
-
llinfos << "Attempting login as: " << firstname << " " << lastname << llendl;
gDebugInfo["LoginName"] = firstname + " " + lastname;
}
@@ -899,7 +896,7 @@ BOOL idle_startup()
if(STATE_LOGIN_AUTH_INIT == LLStartUp::getStartupState())
{
//#define LL_MINIMIAL_REQUESTED_OPTIONS
- gDebugInfo["GridUtilHost"] = gGridInfo[gGridChoice].mName;
+ gDebugInfo["GridName"] = gGridInfo[gGridChoice].mLabel;
lldebugs << "STATE_LOGIN_AUTH_INIT" << llendl;
if (!gUserAuthp)
@@ -1486,6 +1483,7 @@ BOOL idle_startup()
// Finish agent initialization. (Requires gSavedSettings, builds camera)
gAgent.init();
+ set_underclothes_menu_options();
// Since we connected, save off the settings so the user doesn't have to
// type the name/password again if we crash.
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 4c7229b0d9..ab82fef6cc 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -607,6 +607,21 @@ void initialize_menus();
//
// Break up groups of more than 6 items with separators
//-----------------------------------------------------------------------------
+
+void set_underclothes_menu_options()
+{
+ if (gMenuHolder && gAgent.isTeen())
+ {
+ gMenuHolder->getChildByName("Self Underpants", TRUE)->setVisible(FALSE);
+ gMenuHolder->getChildByName("Self Undershirt", TRUE)->setVisible(FALSE);
+ }
+ if (gMenuBarView && gAgent.isTeen())
+ {
+ gMenuBarView->getChildByName("Menu Underpants", TRUE)->setVisible(FALSE);
+ gMenuBarView->getChildByName("Menu Undershirt", TRUE)->setVisible(FALSE);
+ }
+}
+
void init_menus()
{
S32 top = gViewerWindow->getRootView()->getRect().getHeight();
@@ -643,12 +658,6 @@ void init_menus()
gDetachScreenPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach HUD", true);
gDetachPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach", true);
- if (gAgent.isTeen())
- {
- gMenuHolder->getChildByName("Self Underpants", TRUE)->setVisible(FALSE);
- gMenuHolder->getChildByName("Self Undershirt", TRUE)->setVisible(FALSE);
- }
-
gPieAvatar = gUICtrlFactory->buildPieMenu("menu_pie_avatar.xml", gMenuHolder);
gPieObject = gUICtrlFactory->buildPieMenu("menu_pie_object.xml", gMenuHolder);
@@ -710,12 +719,6 @@ void init_menus()
gAttachSubMenu = gMenuBarView->getChildMenuByName("Attach Object", TRUE);
gDetachSubMenu = gMenuBarView->getChildMenuByName("Detach Object", TRUE);
- if (gAgent.isTeen())
- {
- gMenuBarView->getChildByName("Menu Underpants", TRUE)->setVisible(FALSE);
- gMenuBarView->getChildByName("Menu Undershirt", TRUE)->setVisible(FALSE);
- }
-
// TomY TODO convert these two
LLMenuGL*menu;
@@ -763,6 +766,8 @@ void init_menus()
}
+
+
void init_landmark_menu(LLMenuGL* menu)
{
if (!menu) return;
diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h
index 6814c31eb8..003e3efe42 100644
--- a/indra/newview/llviewermenu.h
+++ b/indra/newview/llviewermenu.h
@@ -93,6 +93,7 @@ BOOL enable_god_liaison(void* user_data);
BOOL enable_god_customer_service(void* user_data);
BOOL enable_god_basic(void* user_data);
void handle_show_newest_map(void*);
+void set_underclothes_menu_options();
void exchange_callingcard(const LLUUID& dest_id);
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index abd3b269f6..c7d2cb7318 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -409,7 +409,7 @@ class DarwinManifest(ViewerManifest):
# make sure we don't have stale files laying about
self.remove(sparsename, finalname)
- self.run_command('hdiutil create "%(sparse)s" -volname "%(channel)s" -fs HFS+ -type SPARSE -megabytes 300' % {
+ self.run_command('hdiutil create "%(sparse)s" -volname "%(channel)s" -fs HFS+ -type SPARSE -megabytes 300 -layout SPUD' % {
'sparse':sparsename,
'channel':channel_standin})
@@ -523,13 +523,14 @@ class Linux_x86_64Manifest(LinuxManifest):
super(Linux_x86_64Manifest, self).construct()
self.path("secondlife-x86_64-bin-stripped","bin/do-not-directly-run-secondlife-bin")
self.path("../linux_crash_logger/linux-crash-logger-x86_64-bin-stripped","linux-crash-logger.bin")
- # TODO: I get the sense that this isn't fully fleshed out
- if self.prefix("../../libraries/x86_64-linux/lib_release_client", "lib"):
- self.path("libkdu_v42R.so")
- self.path("libxmlrpc.so.0")
- # self.path("libllkdu.so", "../bin/libllkdu.so") # llkdu goes in bin for some reason
- self.end_prefix("lib")
+ self.path("linux_tools/launch_url.sh","launch_url.sh")
+ if self.prefix("res-sdl"):
+ self.path("*")
+ # recurse
+ self.end_prefix("res-sdl")
+ self.path("featuretable_linux.txt")
+ self.path("secondlife-i686.supp")
if __name__ == "__main__":
main(srctree=viewer_dir, dsttree=os.path.join(viewer_dir, "packaged"))