This brings it into line with the Windows and Linux libraries.
This is a universal dylib with x86_64, i386 and ppc parts. However, even on a 64 bit Intel machine Mono can only P/INVOKE the i386 version right now. ppc is untested.
The configuration used to compile was
CFLAGS="-g -O2 -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -arch ppc" CXXFLAGS="-g -O2 -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -arch ppc" LDFLAGS="-arch i386 -arch x86_64 -arch ppc" ./configure --enable-old-trimesh --disable-asserts --enable-shared --disable-dependency-tracking --disable-demos --without-x
--disable-demos --without-x is required to build ODE on Mac OS X
CFLAGS, CXXFLAGS and --disable-dependency-tracking are necessary to build the universal dylib (some compilation lines use CFLAGS instead of CXXFLAGS)
The other settings are tweaks for using ODE with OpenSim
This means that Mac OS X users can now use the standard sqlite adaptor instead of the legacy one.
This is SQLite 3.7.5. I configured the build with the line
CFLAGS="-Os -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -arch ppc7400 -DSQLITE_ENABLE_COLUMN_METADATA" LDFLAGS="-arch i386 -arch x86_64 -arch ppc7400" ./configure --disable-dependency-tracking
The SQLITE_ENABLE_COLUMN_METADATA flag exports the metadata symbols that modern Mono SQLite adaptors need.
The -Os removes debugging symbols (as per the sqlite3 source pkg README)
The other parts are to cross compile for x86_64, i386 and ppc. On Mac OS X, Mono can actually only P/INVOKE 32-bit libraries even on 64 bit platforms so i386 is being used. The dylib has not been tested on ppc.
Apply the same change to both the 32-bit and 64-bit DLL target paths. This makes the previous addition to the instructions in the README for running on Linux unnecessary.
This version fixes a bug so that MySqlCommand.CommandTimeout = 0 now correctly sets an infinite command timeout. This might help with failures on long-running migrations.
The mysql.data.dll v2 is used from the mysql package (as opposed to v4). The v4 version (probably standing for NET 4.0) does not work under mono 2.6.7, which is still commonly used.
child agents in neighbor regions. This means you can extend
the view on a simulator beyond the default 3x3 regions.
This uses a region default draw distance and should be
replaced at some point by the avatar specified draw distance.
That will require more careful, dynamic recomputation of child
agents every time the draw distance changes.
WARNING: this is experimental and has known instabilities. specifically
all regions "within site" should be running the same default draw distance
or agents will not be closed correctly.
This matches the behaviour for other deletions and stops this operation failing on Windows .NET (though mono is fine with the duplication).
Probably a holdover from copying code from the older legacy adaptor.
Resolves http://opensimulator.org/mantis/view.php?id=5361
Made FireAndForgetWrapper a singleton class to allow us to drop
dependancy on the BclExtras35 library. BclExtras is broken in
Mono 2.8.2 and we used the library in only one function.
Frontend into a separate region module. Configuration
settings added to the defaults ini file. Others may find
this useful for pushing map tiles to a separate server.
Change the remote Grid region module so that it takes the network connector as a config variable. This allows the region plugin to be reused for both Robust and Simian network connectors.
Configuration option AssetService in section [GridService] must be set to enable this functionality.
Map tiles do currently not show for hyperlinks set in simulators that are connected to grids, see Mantis #5270.
the same thing was actually done for ode.dll a couple of commits ago but I got the commit msg wrong (should have been r1755, not r1754). Damn these fat fingers.
This revision dates from 02 Sep 2010 and has received some testing. This code will be updated in the opensim-libs repository
Updates for libode-x86_64, ode.dll and libode.dylib will follow
WARNING!!! This changes a default. The old default is to allow multiple
presences, the new default disables this. As the feature currently has no users,
this should not present any difficulty and will alleviate the presence
issues somewhat.
This will cause visual params to be persisted along with worn items. With
this, alpha and tattoo laters will be saved. Multiple layers MAY work, but
not tested because I don't use Viewer 2.
Setting this to true avoids a 500ms or so client freeze when the LLUDP server thread is taken up with processing a UseCircuitCode packet synchronously.
Extensive testing on Wright Plaza appeared to show no bad effects and this seems to reduce login lag considerably.
Of course, a lot of login lag is still coming from other sources.
Main reason for upgrade is to revert API change that was introduced in order to support headerless binary LLSD decoding needed for deserialization of the mesh assets, which turned out to be unnecessary as we can transparently decode both kinds.
Adding -logconfig to Robust.exe. will still process the
-logfile option, as before. No options given, the value
"Robust.log" will be written in the ./bin directory
allowing the decoded sculpt map cache path to be defined in
the configuration files.
Use DecodedSculpMapPath in the [Startup] section to set
the path. The default is still ./bin/j2kDecodeCache
* Removed StorageManager
* CONFIG CHANGE: There are no more database settings in OpenSim.ini. Check the config-include configuration files for region store and estate store database settings
Source code is included for reference. This can go away again once Prebuild is updated with a more general mechanism for cleaning up files.
The Prebuild source code here can be built with nant, or regnerated for other tools using the prebuild at {root}/bin/Prebuild.exe
Upgrading Prebuild.exe to correctly construct build solutions
for crossplatform tools such as xbuild, monodevelop and nant.
NOTE: Module prebuild files will need modification to work,
as the prebuild must correctly define the reference path for
all assemblies shipped in the OpenSimulator ./bin directory.
These include assemblies such as XMLRPC.dll, OpenMetaverse.dll,
Nini.dll, etc. . The entries should follow the form:
<Reference name="Nini" path="../../../bin/"/>
See the distributed prebuild.xml for further examples.
Crossplatform tools: xbuild and monodevelop use the
vs2008 OpenSim.sln and the .csproj files in each namespace.
Changes to the Prebuild.exe are against svn 322 and are included
in a patch attached to the mantis. And the dnpb source are
available@ svn co https://dnpb.svn.sourceforge.net/svnroot/dnpb dnpb
The patches are pending application by the dnpb team. After which,
the un-modified upstream Prebuild.exe will work as expected.
These are appropriately licensed and include plant, tree and miscellaneous textures (face target crosshairs, etc).
Many thanks to Nebadon for sourcing and packaging these.
DisableFacelights option to OpenSim.ini to finally kill those immersion-
breaking, silly vanity lights that destroy nighttime RP. Girls, you look
just fine without them. Guys, you too. Thank you. Melanie has left the building.
As far as I can determine, r3287 + r3294 patch was the previous update to the OpenMetaverse libraries
This change just adds r3378 to overcome problems storing media textures with certain permission combinations in inventory
This is a limited change in order to isolate moap from any other possible libomv update issues
An update to the forthcoming libomv 0.8.3 is expected in due course to replace this
This commit also deletes OpenMetaverse.Utilities.* as it's unused (on the advice of jhurliman).
refers to prim OWNERS. A new option set, Creators_, is added to allow
selection by script creator. For existing installs, this means no functional
change. The warning from my prior commit doesn't apply anymore.
This merges AlexRa's work on migration streamlining. This merge is experimental.
If it causes issues, feel free to back out.
Signed-off-by: Melanie <melanie@t-data.com>
This requires a special XMLRPC call, which has to supply the credentials of
a god user (User level >= 200). Disabled by default. Also Adds a configuration
option to set the initial permitted login level.
this seems the least evil way forward since mono 2.6 and later will see increasing usage, and this only works with what was SQLiteNG
MAC USERS WILL NEED TO CHANGE REFERENCES TO "OpenSim.Data.SQLite.dll" to "OpenSim.Data.SQLiteLegacy.dll" in OpenSim.ini and config-include/StandaloneCommon.ini (if using standalone)
See the OpenSim.ini.example and StandaloneCommon.ini.example files for more details
This commit also temporarily changes unsigned ParentEstateID values in the OpenSim.Data.Tests to signed temporarily, since the new plugin enforces creation of signed fields in the database (which is what the SQL actually specifies). And change data columns in sqlite is a pita.
I know this is tough on Mac OSX users (since SQLiteNG requires the export of the sqlite3_column_origin_name symbol and this isn't present for the Mac OSX sqlite3 system library)
Unfortunately, I need to shaft somebody (as it were)
Update information in StandaloneCommon.ini.example to reflect this
Remove ISharedRegionModule interfaces from all SimianGrid connector classes temporarily since this stopped standalone from working (due to absence of AssetURI settings, etc.).
Solution here may be to create separate region module connectors as done by local/grid/hypergrid so that loading can be controlled via include files
Or otherwise work out how to stop these modules from being loaded for all OpenSim invocations
Actually using the one built against Net 2.0 (labelled Newtonsoft.Json.Net20.dll) since the 3.5 build is not compatible with Mono 2.4 (though it is with Mono 2.6)
The root cause of this problem was that multiple ObjectUpdates were being sent on attachment which differed enough to confuse the client.
Sometimes these would eliminate each other and sometimes not, depending on whether the scheduler looked at the queued updates.
The solution here is to only schedule the ObjectUpdate once the attachment code has done all it needs to do.
* Added different ports (8002 and 8003) to the many services in OpenSim.Server.ini.example
* Added a separate OpenSim.Server.HG.ini.example to make it easier to run
* Handle logout properly. This needed an addition to IClientAPI, because of how the logout packet is currently being handled -- the agent is being removed from the scene before the different event handlers are executed, which is broken.
configurable. Previously, estate managers could enter god mode, but would
not have any powers. Now estate managers can enter god mode only if this
option is true, and then will have real god powers.
This merge was very conflicted. I think I got them all, but I can't be sure.
I had to merge to master or risk divergence to the point of unmergeability.
This switch allows scripts to pass messages to modules via the modSendCommand() function
Modules can then send messages back to scripts via the link_message LSL event through
invoking DispatchReply() on OpenSim.Region.Framework.Interfaces.IScriptModuleComms
* Added the RemoteSimulationConnectorModule, which is the replacement for RESTComms. Scenes is not using this yet, only (standalone) Login uses these region modules for now.
* Completed SimulationServiceConnector and corresponding handlers.
* Adds a configurable maximum object mass before the mass is clamped. Default is 10000.01. Configurable by changing maximum_mass_object in the [ODEPhysicsSettings] section.
* Clamping the mass is important for limiting the amount of CPU an object can consume in physics calculations. Too high, and the object overcomes restitution forces by gravity alone. This generates more collisions potentially leading to 'deep think'.
having this enabled results just in warning messages if no message service is actually available
haivng this disabled results in an unexpected failure if no message service is available
This appears to now give better ODE physics response (less sinking into the ground, etc.)
Please change it back if this is actually a bad idea for some reason
* Fixing a bug where the max burst rate for the state category was being set as unlimited, causing connections to child agents to saturate bandwidth
* Upped the example default drip rates to 1000 bytes/sec, the minimum granularity for the token buckets
* Hip offset should have been added not subtracted (it's a negative offset). This puts avatar feet closer to the ground
* Improved duplicate checking for terse updates. This should reduce bandwidth and walking through walls
* Added contacts_per_collision to the ODE config section. This allows you to reduce the maximum number of contact points ODE will generate per collision and reduce the size of the array that stores contact structures
* Commenting out the MySQL startup sequence that cleans out dropped attachments under the advice that it is no longer relevant. If anything, it could be brought back as a database cleanup console command
* Updated to the latest libomv 0.8.0-pre. UUID.TryParse() will no longer throw and catch exceptions for most failed UUID parses
* Added a new [Startup] config option called use_async_when_possible to signal how to run operations that could be either sync or async
* Changed Scene.ForEachClient to respect use_async_when_possible
* Fixing a potential deadlock in Parallel.ForEach by locking on a temporary object instead of the enumerator (which may be shared across multiple invocations on ForEach). Thank you diva
* Avoid allocating an Action<IClientAPI> object every round of the OutgoingPacketHandler
* Removed unnecessary semi-colon endings from OpenSim.ini.example [InterestManagement] section
* Only initialize Util's SmartThreadPool if it is actually being used
* No longer initializing Util's SmartThreadPool with a custom max stack size. From MSDN: "Avoid using this constructor overload. The default stack size used by the Thread(ThreadStart) constructor overload is the recommended stack size for threads."
* Changed Util.FireAndForget() to use any of five different methods set with async_call_method in the [Startup] section of OpenSim.ini. Look at the example config for possible values
* Replaced calls to ThreadPool.QueueUserWorkItem() with ThreadPool.UnsafeQueueUserWorkItem() since OpenSim does not use Code Access Security sandboxing
* OnQueueEmpty is still called async, but will not be called for a given category if the previous callback for that category is still running. This is the most balanced behavior I could find, and seems to work well
* Added support for the old [ClientStack.LindenUDP] settings (including setting the receive buffer size) and added the new token bucket and global throttle settings
* Added the AssetLoaderEnabled config variable to optionally disable loading assets from XML every startup. This gives a dramatic improvement in startup times for those who don't need the functionality every startup
* Moved all priority queue access to helper functions to improve reliability and readability
* New version of CSJ2K.dll (from libomv source tree) that fixes a JPEG2000 comment decoding bug
* Re-added openjpeg-dotnet files since they are used elsewhere in OpenSim * Updated prebuild.xml with a reference to CSJ2K
* Renamed IJ2KDecoder and J2KDecoder member names to follow standard naming conventions * Removed j2kDecodeCache cruft and replaced it with the OpenSim cache system * Rewrote the default layer boundary algorithm to use percentages instead of an exponent * Switched from an infinite in-memory cache to an expiring cache (10 minute timeout) * Slightly quieted logging errors for failed texture decodes
Replacing openjpeg-dotnet decoding with managed CSJ2K decoding. Should be much more reliable, faster, and use less memory
* Re-added openjpeg-dotnet files since they are used elsewhere in OpenSim * Updated prebuild.xml with a reference to CSJ2K
Http-in and makes the host name for URL generation configurable.
Applied with changes:
llGetSimulatorHostname was not changed, because the change breaks
existing behavior and carries a data exposure risk. That value needs
to be configurable, the proposed fixed change is not acceptable.
sweep every 10 minutes. If any texture data is older than 12 hours, it is
regenerated and the memory cache is refreshed. After each decode, the thread
delays for 5 seconds.
setting the path for it. This commit introduces NEW DEFAULT BEHAVIOR. To
retain the old behavior (eternal cache) you will need to change your OpenSim.ini
and set the timeout to 0.
Fixes cookie handling and header name casing in HttpServer
Currently, cookies are never being processed on incoming HTTP requests. This patch makes sure cookies are parsed and inserted into IHttpRequest.Cookies, and fixes incoming headers to always have lower-case names.
http://opensimulator.org/mantis/view.php?id=4052
Add ability to silence IRC relay of region joins and quits from certain users
This is useful for admins who wish to remain hidden, or service bots.
Thanks RemedyTomm
* Hopefully this allows older mono versions to still work.
* A couple of points of note:
* TimeZoneInfo.. replaced with DateTime.UtcNow - TimeSpan.FromHours(7);
* HashSet<uint> replaced with Dictionary<uint,object>
* Force use of the managed version of ReaderWriterLockSlim (don't use the pre-processor defs)
* If this doesn't melt the Http Server, this will significantly reduce the number of threads in use on regions with many users.
* Adds AddPollServiceHTTPHandler, and RemovePollServiceHTTPHandler to BaseHttpServer
* Generic enough to be used for many long poll services, not only the EventQueue.
* Made various changes to BaseHttpServer to accommodate the new interfaces.
* This version has been significantly re-architected and may fail in unusual and insidious ways.
* Please pay attention to any errors you get and post a Mantis if you can reproduce an issue with the HTTPServer. I'm including the pdb and having the http server compiled in debug for a few weeks so that when an error occurs, it'll print the pertenant data.
* Once again, this is the full C# WebServer, not the lite branch that is included in LibOMV (we need SSL!)
this commit finally adds the VivoxVoiceModule: it supports positional
as well as conference call type voice (currently only per region
server), region and parcel voice, speaker indication (LL client
family), direct avtar-to-avatar voice chat. NOTE: you need to obtain
an customer admin account from Vivox to be able to use this module ---
DON'T ask me about how to about an admin account, i've NO clue, we
just wrote this code.
Set av_capsule_tilted to false in opensim.ini. Default is true, so there is
no change in avatar behavior (and no breaking of existing content which
relies on the tilted capsule).
This commit straightens up the avatar capsule so it behaves consistently
(e.g. same collision behavior against prims regardless of which direction
the avatar is coming from; ability to fit through narrow doorways).
Please note this introduces other side effects which have not been fixed.
In particular:
* The avatar frequently falls through the terrain if it is not flat, though
the avatar behaves pretty well on flat terrain. This requires investigation
of the ode terrain collider.
* The apparent foot position of the avatar with respect to the ground
is changed. This requires investigation of the avatar height/capsule height.
Please consider this as work in progress.
option for LLUDPServer. On windows .NET the default socket receive
buffer size is 8192 bytes, on recent linux systems it's about
111K. both value can be a bit small for an OpenSim instance serving
many clients. The socket receive buffer size can be configured via
an OpenSim.ini config option
- adds a general catch clause to LLUDPServer.OnReceivedData() to
prevent it submerging when an unexpected Exception occurs.
This change moves texture send processing out of the main
packet processing loop and moves it to a timer based
processing cycle.
Texture packets are sent to the client consistently over
time. The timer is discontinued whenever there are no
textures to transmit.
The behavior of the texture sending mechanism is controlled
by three variables in the LLCLient section of the config
file:
[1] TextureRequestRate (mS) determines how many times per second
texture send processing will occur. The default is 100mS.
[2] TextureSendLimit determines how many different textures
will be considered on each cycle. Textures are selected
by priority. The old mechanism specified a value of 10 for
this parameter and this is the default
[3] TextureDataLimit determines how many packets will be sent for
each of the selected textures. The old mechanism specified a
value of 5, so this is the default.
So the net effect is that TextureSendLimit*TextureDataLimit
packets will be sent every TextureRequestRate mS.
Once we have gotten a reasonable feeling for how these parameters
affect overall processing, it would be nice to autonmically manage
these values using information about the current status of the
region and network.
Note that this also resolves the pathologcal problem that
previously existed which was that a seated avatar generated very
few in-bound packets (theoretically) and would therefore be the
least able to retrieve the images being displayed by a
projector script.
Several improvements in the connectors themselves.
Several improvements in configurations.
Needed to add a hack in IUserService and UserManagerBase, to be removed when that service is refactored.
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
exe for each function, rather each function is a connector and the server ini
loads them. If you like your multiple processes, use -inifile with the server.
Otherwise, you get one server process that serves all configured funcions, see
example .ini. The new exe is OpenSim.Server.exe. Clean your bin, loads of names
have changed!
We've encountered problems with textures never fully downloading and
objects not moving or being deleted (from the client's point of view)
even when the bandwidth settings on the client have been set very
low. This can happen over reasonably lossy links (eg you're on the
other side of the world from the server) as the server retries 3 times
and then gives up.
Whilst its possible to set ReliableIsImportant, this forces the server
to keep retrying no matter what which potentially could lead to
problems. This patch allows for the setting of MaxReliableResends
explicitly (is set to 3 normally) in OpenSim.ini so if you know you
will have clients connecting with poor connections you can set it a
bit higher (10-15 works quite well even for very poor connections).
This may break a lot of things, but it needs to go in. It was tested in standalone and the UCI grid, but it needs a lot more testing.
Known problems:
* HG asset transfers are borked for now
* missing texture is missing
* 3 unit tests commented out for now
default but can be enabled in OpenSim.ini. If enabled, things can be sold
for $0. Other amounts will cause the buyer to see a message and the transaction
will fail.
- AssetType isn't InventoryType. Those enums contain different numbers. Use AssetType for the asset type, InventoryType for the inventory type.
- The ToString method (or ToLower) of AssetType/InventoryType doesn't necessarily return the correct LLSD string.
- Replaced several magic numbers by their corresponding enum.
- Fixed the invType for gestures and animations in the library.
This should fix Mantis #3610 and the non-terminating inventory loading
Move json stats to non-published resource name
Remove well-known resource name for json stats,
creating dynamic uris with private keys and add
a user configurable resource name for region owner usage.
Different people using Hippo 0.5.1 report that trying
to send group instant messages crashes the viewer
(Hippo 0.5.1). This is the case even for empty groups
or if all group members are online.
Don't allow packets to be resent before they have actually been sent for the
first time. Switch from serializing a packet to get it's length to the LibOMV
provided Length property. Fix resend timing. Fix the use of dangling references
to Acked packets. Fix the packet handler to play nice with the packet pool.
Fix the packet pool. Add data block recycling to the packet pool. Packet pool
is now ENABLED by default. Add config option to disable packet and data block
reuse. Add ObjectUpdate and ImprovedTerseObjectUpdate to the packets being
recycled.
The attached patch provides the necessary infrastructure to support
security and authentication features of the xmlrpc server.
* Read/Write keys for accessing a Group's xmlrpc service.
* Requiring user session verification for write operations.
- Adds an admin_modify_region call to allow changing of parcel voice
settings and changing of public/private status
- add boolean "public" and boolean "enable_voice" to
admin_create_region XmlRpc call to allow specifying of
public/private status and to allow enabling voice for all parcels;
also added config variables to allow setting of defaults for those
- fixing cut-and-paste artefacts
* Refactors the xmlrpc calls to a single location to
make it easier to debug and include alternative
xmlrpc call mechanisms
* Includes an alternative xmlrpc call mechanism that
sets HTTP Keep-Alive to false which solves nearly all
System.Net exceptions on some windows environments
Added is a patch that adds a rough Groups implementation. This patch allows
the creation, adding and maintaining Groups, Roles and Members. Work has begun
on a very naive implementation of messaging, and minimal support for notifications
{no attachments yet}. Proposals are not yet supported, but are on the to-do list.
This implementation is not active by default, and must be configured in
OpenSim.ini to become active.
* Tweak the LLSetStatus results in the ODEPlugin. Hopefully it's a little less unstable.
* ODEPlugin is using experimental math for LLSetStatus, use with caution! :)
Fixes Mantis #3421
Change the agent/avatar events subscriptions to just OnNewClient. The data only needs to be sent once and keeping track of log ins/movements is not required. This will also send cloud data to child agents so that they can see clouds above neighbouring regions not just regions that they have visited.
- Change several classes to use the new plugin for handling of region-modules
(NOTE: No regionmodule is using this yet)
- Add necessary prebuild parts (don't forget to runprebuild)
Attention: Work in progress. This shouldn't break anything, but you never know...
* It's not ready to try. It doesn't do what you expect in many ways.
* It throws errors and prints jibberish on the console
* Test it out only if you're brave and you've backed up first.
* The opensim.ini line is physics = BulletDotNETPlugin
Added safemode config to Standalone Hypergrid, similar effect to AllowRegionAccessToInventory in Inventory Server. Everyone should have these vars set to their default values except me!
With some support from HomerH, this patch adds support for Wind
Model plugins via the mono.Addin framework.
* Adds console & OSSL access to Wind Parameters
* Adds plug-in support for custom wind models
* Provides two example Wind Model plug-ins
Documentation for the wind module is temporarily located at http://code.google.com/p/flotsam/wiki/CoreWindModule [^]
-- will move this documentation to http://opensimulator.org [^]
after the patch has been committed.
* Important: HttpServer.dll was changed to HttpServer_OpenSim.dll so that the HttpServer references do not conflict if you've copied the OpenMetaverse.Http.dll and requirements to the OpenSimulator bin folder.
This means that if you reference HttpServer.dll in any projects, you will need to change the reference to HttpServer_OpenSim.dll. It still uses the Same HttpServer namespace though.