diff --git a/.hgignore b/.hgignore
index 297fafe50a..7cd24683e5 100644
--- a/.hgignore
+++ b/.hgignore
@@ -30,6 +30,7 @@ indra/lib/mono/indra/*.exe
indra/lib/mono/indra/*.pdb
indra/lib/python/eventlet/
indra/llwindow/glh/glh_linear.h
+indra/newview/app_settings/dictionaries
indra/newview/app_settings/mozilla
indra/newview/app_settings/mozilla-runtime-*
indra/newview/app_settings/mozilla_debug
diff --git a/.hgtags b/.hgtags
index bf77143bf1..53850097e2 100644
--- a/.hgtags
+++ b/.hgtags
@@ -282,6 +282,7 @@ c6175c955a19e9b9353d242889ec1779b5762522 3.2.5-release
16f8e2915f3f2e4d732fb3125daf229cb0fd1875 DRTVWR-114_3.2.8-beta1
37dd400ad721e2a89ee820ffc1e7e433c68f3ca2 3.2.9-start
16f8e2915f3f2e4d732fb3125daf229cb0fd1875 3.2.8-beta1
+089e5c84b2dece68f2b016c842ef9b5de4786842 DRTVWR-161
987425b1acf4752379b2e1eb20944b4b35d67a85 DRTVWR-115_3.2.8-beta2
987425b1acf4752379b2e1eb20944b4b35d67a85 3.2.8-beta2
51b2fd52e36aab8f670e0874e7e1472434ec4b4a DRTVWR-113_3.2.8-release
@@ -304,6 +305,9 @@ d5f263687f43f278107363365938f0a214920a4b 3.3.0-beta1
28b95a6a28dca3338d9a1f4f204b96678df9f6a5 viewer-beta-candidate
b43cd25be49e3984ff5361cefad020e069131d98 3.3.1-start
3e2fca4ed1a0dc9fe6d8a6664e71098bb035a367 DRTVWR-125
+dffd0457ee0745de65bf95f0642a5c9e46b8e2f0 viewer-beta-candidate
+3e2fca4ed1a0dc9fe6d8a6664e71098bb035a367 viewer-beta-candidate
+3e2fca4ed1a0dc9fe6d8a6664e71098bb035a367 viewer-beta-candidate
3e2fca4ed1a0dc9fe6d8a6664e71098bb035a367 3.3.1-start
28b95a6a28dca3338d9a1f4f204b96678df9f6a5 3.3.1-beta1
1dc545e44617975da2a4a32fe303386c687a6ca1 viewer-beta-candidate
@@ -318,7 +322,13 @@ c623bbc854b6f7ee1b33a3718f76715046aa2937 viewer-release-candidate
675668bd24d3bea570814f71762a2a806f7e1b8d viewer-release-candidate
675668bd24d3bea570814f71762a2a806f7e1b8d 3.3.2-release
675668bd24d3bea570814f71762a2a806f7e1b8d viewer-release-candidate
+050e48759337249130f684b4a21080b683f61732 DRTVWR-168
+b9d0170b62eb1c7c3adaa37a0b13a833e5e659f9 DRTVWR-171
+c08e2ac17a99973b2a94477659220b99b8847ae2 DRTVWR-163
600f3b3920d94de805ac6dc8bb6def9c069dd360 DRTVWR-162
+600f3b3920d94de805ac6dc8bb6def9c069dd360 DRTVWR-162
+9a78ac13f047056f788c4734dd91aebfe30970e3 DRTVWR-157
+a716684aa7c07c440b1de5815b8a1f3dd3fd8bfb DRTVWR-159
24a7281bef42bd4430ceb25db8b195449c2c7de3 DRTVWR-153
15e90b52dc0297921b022b90d10d797436b8a1bd viewer-release-candidate
6414ecdabc5d89515b08d1f872cf923ed3a5523a DRTVWR-148
@@ -335,3 +345,15 @@ fdcc08a4f20ae9bb060f4693c8980d216534efdf 3.3.3-beta2
af5f3e43e6e4424b1da19d9e16f6b853a7b822ed DRTVWR-169
4b3c68199a86cabaa5d9466d7b0f7e141e901d7a 3.3.3-beta3
6428242e124b523813bfaf4c45b3d422f0298c81 3.3.3-release
+57d221de3df94f90b55204313c2cef044a3c0ae2 DRTVWR-176
+09ef7fd1b0781f33b8a3a9af6236b7bcb4831910 DRTVWR-170
+f87bfbe0b62d26f451d02a47c80ebef6b9168fc2 3.3.4-beta1
+f87bfbe0b62d26f451d02a47c80ebef6b9168fc2 DRTVWR-158
+f87bfbe0b62d26f451d02a47c80ebef6b9168fc2 3.3.4-beta1
+cbea6356ce9cb0c313b6777f10c5c14783264fcc DRTVWR-174
+bce218b2b45b730b22cc51e4807aa8b571cadef3 DRTVWR-173
+f91d003091a61937a044652c4c674447f7dcbb7a 3.3.4-beta1
+82b5330bc8b17d0d4b598832e9c5a92e90075682 3.3.4-beta2
+eb539c65e6ee26eea2bf373af2d0f4b52dc91289 DRTVWR-177
+a8057e1b9a1246b434a27405be35e030f7d28b0c 3.3.4-beta3
+4281aa899fb2cedb7a9ca7ce91c5c29d4aa69594 DRTVWR-180
diff --git a/BuildParams b/BuildParams
index 6f1af583f0..3dd35c5863 100644
--- a/BuildParams
+++ b/BuildParams
@@ -112,6 +112,17 @@ viewer-mesh.login_channel = "Project Viewer - Mesh"
viewer-mesh.viewer_grid = aditi
viewer-mesh.email = shining@lists.lindenlab.com
+# ========================================
+# viewer-adult-check
+# ========================================
+
+viewer-adult-check.viewer_channel = "Project Viewer - AdultCheck"
+viewer-adult-check.login_channel = "Project Viewer - AdultCheck"
+viewer-adult-check.viewer_grid = agni
+viewer-adult-check.build_debug_release_separately = true
+viewer-adult-check.build_CYGWIN_Debug = false
+viewer-adult-check.build_viewer_update_version_manager = false
+
# ================
# oz
# ================
@@ -138,6 +149,10 @@ oz_viewer-beta-review.viewer_channel = "Second Life Beta Viewer"
oz_viewer-beta-review.login_channel = "Second Life Beta Viewer"
oz_viewer-beta-review.email = oz@lindenlab.com
+oz_project-7.build_debug_release_separately = true
+oz_project-7.codeticket_add_context = false
+oz_project-7.email = "sldev@catznip.com oz@lindenlab.com"
+
# =================================================================
# asset delivery 2010 projects
# =================================================================
diff --git a/autobuild.xml b/autobuild.xml
index 3a4c44a84a..74911f6b31 100755
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -407,6 +407,54 @@
+ dictionaries
+
elfio
license
@@ -1043,6 +1091,54 @@
+ libhunspell
+
+ license
+ libhunspell
+ license_file
+ LICENSES/hunspell.txt
+ name
+ libhunspell
+ platforms
+
+ darwin
+
+ archive
+
+ hash
+ 6f5db0ef258df6e5c93c843ec559db6d
+ url
+ http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-hunspell/rev/259874/arch/Darwin/installer/libhunspell-1.3.2-darwin-20120616.tar.bz2
+
+ name
+ darwin
+
+ linux
+
+ archive
+
+ hash
+ 0c432d2626aea2e91a56335879c92965
+ url
+ http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-hunspell/rev/259874/arch/Linux/installer/libhunspell-1.3.2-linux-20120616.tar.bz2
+
+ name
+ linux
+
+ windows
+
+ archive
+
+ hash
+ 6a140e5620826aa5e587b4157f57b389
+ url
+ http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-hunspell/rev/259874/arch/CYGWIN/installer/libhunspell-1.3.2-windows-20120616.tar.bz2
+
+ name
+ windows
+
+
+
libpng
license
@@ -1143,8 +1239,6 @@
license
havok
- license_file
- on_file
name
llconvexdecomposition
platforms
@@ -1854,8 +1948,12 @@
package_description
+ description
+ Spell checking dictionaries
+ license
+ various open
name
- viewer_development
+ dictionaries
platforms
common
@@ -3057,6 +3155,8 @@
windows
+ version
+ 1.0
type
autobuild
diff --git a/build.sh b/build.sh
index 8ca3208087..a95ca91d82 100755
--- a/build.sh
+++ b/build.sh
@@ -15,6 +15,12 @@
# * The basic convention is that the build name can be mapped onto a mercurial URL,
# which is also used as the "branch" name.
+check_for()
+{
+ if [ -e "$2" ]; then found_dict='FOUND'; else found_dict='MISSING'; fi
+ echo "$1 ${found_dict} '$2' " 1>&2
+}
+
build_dir_Darwin()
{
echo build-darwin-i386
@@ -59,6 +65,8 @@ pre_build()
&& [ -r "$master_message_template_checkout/message_template.msg" ] \
&& template_verifier_master_url="-DTEMPLATE_VERIFIER_MASTER_URL=file://$master_message_template_checkout/message_template.msg"
+ check_for "Before 'autobuild configure'" ${build_dir}/packages/dictionaries
+
"$AUTOBUILD" configure -c $variant -- \
-DPACKAGE:BOOL=ON \
-DRELEASE_CRASH_REPORTING:BOOL=ON \
@@ -67,7 +75,10 @@ pre_build()
-DGRID:STRING="\"$viewer_grid\"" \
-DLL_TESTS:BOOL="$run_tests" \
-DTEMPLATE_VERIFIER_OPTIONS:STRING="$template_verifier_options" $template_verifier_master_url
- end_section "Pre$variant"
+
+ check_for "After 'autobuild configure'" ${build_dir}/packages/dictionaries
+
+ end_section "Pre$variant"
}
build()
@@ -76,12 +87,17 @@ build()
if $build_viewer
then
begin_section "Viewer$variant"
+
+ check_for "Before 'autobuild build'" ${build_dir}/packages/dictionaries
+
if "$AUTOBUILD" build --no-configure -c $variant
then
echo true >"$build_dir"/build_ok
else
echo false >"$build_dir"/build_ok
fi
+ check_for "After 'autobuild configure'" ${build_dir}/packages/dictionaries
+
end_section "Viewer$variant"
fi
}
@@ -172,7 +188,10 @@ eval "$("$AUTOBUILD" source_environment)"
# dump environment variables for debugging
env|sort
+check_for "Before 'autobuild install'" ${build_dir}/packages/dictionaries
+
+check_for "After 'autobuild install'" ${build_dir}/packages/dictionaries
# Now run the build
succeeded=true
build_processes=
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 09c756bdb5..72f53455d2 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -297,6 +297,8 @@ Cherry Cheevers
ChickyBabes Zuzu
Christopher Organiser
Ciaran Laval
+Cinder Roxley
+ STORM-1703
Clara Young
Coaldust Numbers
VWR-1095
@@ -471,6 +473,7 @@ Hiro Sommambulist
VWR-143
Hitomi Tiponi
STORM-1741
+ STORM-1862
Holger Gilruth
Horatio Freund
Hoze Menges
@@ -623,12 +626,22 @@ Jonathan Yap
STORM-1799
STORM-1796
STORM-1807
+ STORM-1812
+ STORM-1820
+ STORM-1839
+ STORM-1842
STORM-1808
STORM-637
STORM-1822
STORM-1809
STORM-1793
STORM-1810
+ STORM-1860
+ STORM-1852
+ STORM-1870
+ STORM-1872
+ STORM-1858
+ STORM-1862
Kadah Coba
STORM-1060
Jondan Lundquist
@@ -725,6 +738,8 @@ Marc2 Sands
Marianne McCann
Marine Kelley
STORM-281
+MartinRJ Fayray
+ STORM-1845
Matthew Anthony
Matthew Dowd
VWR-1344
@@ -1052,6 +1067,8 @@ Simon Nolan
Sini Nubalo
Sitearm Madonna
SLB Wirefly
+Slee Mayo
+ SEC-1075
snowy Sidran
SpacedOut Frye
VWR-34
@@ -1287,6 +1304,7 @@ Zi Ree
VWR-24017
VWR-25588
STORM-1790
+ STORM-1842
Zipherius Turas
VWR-76
VWR-77
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 665d8d4165..8bab456c72 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -39,6 +39,7 @@ set(cmake_SOURCE_FILES
GooglePerfTools.cmake
Growl.cmake
HACD.cmake
+ Hunspell.cmake
JPEG.cmake
LLAddBuildTest.cmake
LLAudio.cmake
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 31fc4d3442..d48dfdc934 100755
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -45,6 +45,7 @@ if(WINDOWS)
libeay32.dll
libcollada14dom22-d.dll
glod.dll
+ libhunspell.dll
)
set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
@@ -59,6 +60,7 @@ if(WINDOWS)
libeay32.dll
libcollada14dom22.dll
glod.dll
+ libhunspell.dll
)
if(USE_GOOGLE_PERFTOOLS)
@@ -215,11 +217,12 @@ elseif(DARWIN)
libexpat.1.5.2.dylib
libexpat.dylib
libGLOD.dylib
- libllqtwebkit.dylib
- libminizip.a
+ libllqtwebkit.dylib
+ libminizip.a
libndofdev.dylib
+ libhunspell-1.3.0.dylib
libexception_handler.dylib
- libcollada14dom.dylib
+ libcollada14dom.dylib
#libgrowl.dylib # *TODO - test/fix/get mac growl working
)
@@ -261,14 +264,15 @@ elseif(LINUX)
libdb-5.1.so
libexpat.so
libexpat.so.1
- libglod.so
+ libglod.so
libgmock_main.so
libgmock.so.0
libgmodule-2.0.so
libgobject-2.0.so
libgtest_main.so
libgtest.so.0
- libminizip.so
+ libhunspell-1.3.so.0.0.0
+ libminizip.so
libopenal.so
libopenjpeg.so
libssl.so
diff --git a/indra/cmake/FindHUNSPELL.cmake b/indra/cmake/FindHUNSPELL.cmake
index d411bdb9e5..6faf22959c 100644
--- a/indra/cmake/FindHUNSPELL.cmake
+++ b/indra/cmake/FindHUNSPELL.cmake
@@ -10,7 +10,7 @@ find_path(HUNSPELL_INCLUDE_DIR hunspell.h
PATH_SUFFIXES hunspell
)
-set(HUNSPELL_NAMES ${HUNSPELL_NAMES} libhunspell-1.3 libhunspell)
+set(HUNSPELL_NAMES ${HUNSPELL_NAMES} libhunspell-1.3.0 libhunspell)
find_library(HUNSPELL_LIBRARY
NAMES ${HUNSPELL_NAMES}
)
diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake
new file mode 100644
index 0000000000..0c9cf93316
--- /dev/null
+++ b/indra/cmake/Hunspell.cmake
@@ -0,0 +1,22 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+set(HUNSPELL_FIND_QUIETLY ON)
+set(HUNSPELL_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindHUNSPELL)
+else (STANDALONE)
+ use_prebuilt_binary(libhunspell)
+ if (WINDOWS)
+ set(HUNSPELL_LIBRARY libhunspell)
+ elseif(DARWIN)
+ set(HUNSPELL_LIBRARY hunspell-1.3.0)
+ elseif(LINUX)
+ set(HUNSPELL_LIBRARY hunspell-1.3)
+ else()
+ message(FATAL_ERROR "Invalid platform")
+ endif()
+ set(HUNSPELL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/hunspell)
+ use_prebuilt_binary(dictionaries)
+endif (STANDALONE)
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 665348a2a4..06c9c72df8 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -3,6 +3,7 @@ include(Prebuilt)
if (NOT STANDALONE)
use_prebuilt_binary(nd_hacdConvexDecomposition)
+ use_prebuilt_binary(libhunspell)
use_prebuilt_binary(libuuid)
use_prebuilt_binary(slvoice)
use_prebuilt_binary(fontconfig)
diff --git a/indra/integration_tests/llui_libtest/CMakeLists.txt b/indra/integration_tests/llui_libtest/CMakeLists.txt
index 633ad84159..91c9f20c10 100644
--- a/indra/integration_tests/llui_libtest/CMakeLists.txt
+++ b/indra/integration_tests/llui_libtest/CMakeLists.txt
@@ -18,6 +18,7 @@ include(LLWindow)
include(LLUI)
include(LLVFS) # ugh, needed for LLDir
include(LLXML)
+include(Hunspell)
include(Linking)
# include(Tut)
@@ -31,6 +32,7 @@ include_directories(
${LLVFS_INCLUDE_DIRS}
${LLWINDOW_INCLUDE_DIRS}
${LLXML_INCLUDE_DIRS}
+ ${LIBS_PREBUILD_DIR}/include/hunspell
)
set(llui_libtest_SOURCE_FILES
@@ -78,6 +80,7 @@ target_link_libraries(llui_libtest
${LLIMAGEJ2COJ_LIBRARIES}
${OS_LIBRARIES}
${GOOGLE_PERFTOOLS_LIBRARIES}
+ ${HUNSPELL_LIBRARY}
)
if (WINDOWS)
diff --git a/indra/llcommon/llsd.cpp b/indra/llcommon/llsd.cpp
index e295e3c621..8276ec836a 100644
--- a/indra/llcommon/llsd.cpp
+++ b/indra/llcommon/llsd.cpp
@@ -269,6 +269,7 @@ namespace
virtual LLSD::UUID asUUID() const { return LLUUID(mValue); }
virtual LLSD::Date asDate() const { return LLDate(mValue); }
virtual LLSD::URI asURI() const { return LLURI(mValue); }
+ virtual int size() const { return mValue.size(); }
};
LLSD::Integer ImplString::asInteger() const
diff --git a/indra/llcommon/llstrider.h b/indra/llcommon/llstrider.h
index f4c43bac61..ed9284d2c5 100644
--- a/indra/llcommon/llstrider.h
+++ b/indra/llcommon/llstrider.h
@@ -44,6 +44,15 @@ public:
const LLStrider