0.7.1 Release

=Release Notes=

Welcome to OpenSimulator 0.7.1. Despite being a point number upgrade, this is actually quite a major release, incorporating a large number of fixes and improvements made in the 8 months since the release of OpenSimulator 0.7.0.2. The major changes are listed in the sections below. In particular, this release incorporates support for media on a prim (moap) and meshes (though please note that this should be treated as STRICTLY EXPERIMENTAL since the Second Life mesh format is likely to be changed by Linden Lab soon, in such a way that old meshes cannot be seen by newer viewers). However, please be aware that there there are currently issues using Linden Lab's Viewer 2. The most serious issues are


 * 1) Default appearance cannot be changed. This is because we do not yet bundle the minimum body part/clothing set (eyes, shape, skin, hair, pants, shirt) to satisfy viewer 2. One workaround is to first create the minimum part/clothing set with viewer 1. Another workaround is to use a web interface that creates a default avatar before login.
 * 2) The world map does not show up properly. SimianGrid is currently able to supply the correct URLs for the map - this code will be incorporated into OpenSim's default ROBUST server infrastructure in due course.
 * 3) Over time, the current outfit folder may fill with an unmanageable number of inventory links that cannot be deleted. There is currently no workaround for this, though the number of links may be related to the number of times that the avatar changes outfits.

We hope to resolve these problems in subsequent releases.

As always, OpenSimulator is alpha software. It's likely but not guaranteed to work and various usage scenarios (standalone, grid, hypergrid, etc.) in combination with different dependencies (e.g. different versions of mono) can produce unexpected or unstable behaviour. If it breaks you get to keep both pieces.

If you are upgrading from a version prior to 0.7.x, make sure to read the 0.7 Release notes. There have been extensive changes in OpenSimulator from 0.6.x to 0.7. If you are upgrading from 0.7, please read the 0.7.0.1 Release and 0.7.0.2 Release notes.

As this is a wiki page, please feel free to update it with more information about migration or other issues as and when these come to light.

Requirements
OpenSimulator now requires


 * .NET Framework 3.5 when running under Windows.
 * At least Mono 2.4.3 when running under Mono. There are anecdotal reports that later versions of Mono (>= 2.10) may be less stable. The mono versions bundled with Linux distributions usually seem to be quite good. For instance, Mono 2.6.7 (as shipped with current Ubuntu) appears to be stable.
 * Installation of the Nant build tool if building from source. Alternatively, the source can also be built using Microsoft Visual C# 2008 Express Edition under Windows or the xbuild tool shipped with Mono.

Backwards Compatibility Notices

 * Due to a libomv bug fix, teleports in this release are incompatible with earlier OpenSimulator releases, including OpenSimulator 0.7.0.2. This affects primarily Hypergrid teleports, since simulators within the same grid tend to be all in the same version. But if grids have a mix of simulator versions in them, TPs will fail between 0.7.1 and earlier releases.

Archives Changes/Additions

 * Added -v|verbose option to save iar
 * Removed the restriction of having to be logged in when loading/saving iars
 * Allow OARs and IARs to save and load meshes. IARs can also save coalesced items. If an IAR contains a coalesced item then it might cause errors if reloaded on an older version of OpenSimulator that does not have support for coalescence.
 * Added the option of preserving creator information upon creating archives (OARs and IARs). This is done with a new -p|--profile= option present in save iar/oar. If this option is present, then avatar names are saved in the form . @ (e.g. Neal.Stephenson@metaverse.org). This option should be considered experimental, as are IARs in their entirety. IARs created using the --profile option will not be loadable on OpenSimulator 0.7.0.2 and earlier. IARs created without this option will be loadable (with the coalescence caveat above).

Scripting Changes/Additions

 * OSSL function names normalization. See OSSL Implemented
 * Added: osUnixTimeToTimestamp, osTeleportOwner, osSetProjectionParam to OSSL
 * Added: PARCEL_DETAILS_ID to LSL

Hypergrid Changes/Additions

 * Normalized Hypergrid addresses to always use standard URLs. So, for example: http://foo.com/hg/service.php is now a valid HG address. This allows for web-compliant implementations of the Hypergrid services.
 * link-region command syntax change: link-region x y URL [region name]. Example: link-region 9000 9000 http://hg.osgrid.org:80
 * Creator info is now preserved upon HG asset transfers. Complete creator info now shown for the corresponding objects via the viewer as first.last @ domain
 * Support for running the HG services behind proxies (XFF header processing)
 * Added an option for grid operators to prevent their grid's assets to be transferred to other grids even if the objects are copyable, while allowing foreign visitors to come in. See configuration changes.
 * Added checks against hyperlinking to the same grid

DB Migrations & Changes

 * regions: increased size of region name
 * inventoryitems: increased size of creatorID
 * prims, primitems: increased size of CreatorID
 * Avatars: Value field from VARCHAR(255) to TEXT
 * Avatar Presence: added LastSeen field

General Changes/Additions

 * Standard SQLite database plugin now works on Mac OSX and 64 bit Linux.
 * Now compatible with MySQL 5.5 databases and later.
 * Support for coalesced objects in inventory. A coalescence is taken when objects in different linksets are selected and taken simultaneously in the viewer.
 * Support for meshes and initial support for mesh physics. Please treat this as experimental since the Second Life approaches to meshes is apparently likely to change soon, and this will make old meshes unviewable in newer viewers.
 * New console commands: show pending-objects, show circuits, show http-handlers, show caps, land clear, land show, show throttles, region restart [options], etc.
 * Object serialization completely rewritten: moved away from automatic .NET serialization. For now the external representation is exactly the same as before, so everything is backwards compatible.
 * Updated ODE to post 11.1 (r1755).
 * Improved Linden UDP client stack implementation for better Second Life viewer responsiveness.
 * Added ability for GetTexture to serve multiple image formats, not just jp2k
 * Improved ban checks on TPs and crossings
 * Refactored the Freeswitch services so that they conform to the robust style. See Freeswitch
 * Added a bare bones shared and non-shared region modules that serve as examples
 * RemoteAdmin service can now bind to a private ip address
 * Add support for cross-domain (CORS) AJAX requests to REST console.
 * Fixed Flotsam groups adaptor.
 * Removed unimplemented stub Sirikata client stack
 * Added viewer's ip address, channel, mac, and id0 to agent circuit data, so that proxies can intervene on logins and HG TPs.
 * Changed to using a managed code SQLite library, CSharpSqlite. This makes SQlite work again across the board.
 * Refactored simulator data service and estate data service. See configuration changes.
 * Added support for loading a terrain tile for multiple regions with image files like tiff and jpeg. Previously this only worked for single regions.
 * “config show” command added as a synonym for the “config get” command, in order to bring it into line with other show commands. “config show” will print out the configuration of a region simulator as aggregated from all the loaded configuration files, which can be handy for debugging and fault finding.
 * Initial region and estate configuration improved.

Configuration Changes from 0.7.x

 * Simulator main configuration file (OpenSim.ini) has been split between two files: OpenSimDefaults.ini and OpenSim.ini[.example]. The former contains expert/less used configuration variables; the latter contains the configuration variables that most users should know about and change. Do not change variables in OpenSimDefaults.ini; instead, if/when you want to change their values, do it in your own OpenSim.ini by overriding the values.
 * New configuration sections: [SimulationDataStore] and [EstateDataStore]. These are system configs in non-writable .ini's. Users can set the connection strings for them in [DatabaseService] section. See .example.
 * New configuration variable in the simulator's [HGInventoryAccessModule] section: OutboundPermissions, which controls whether sim operators want to allow visitors to take assets into their grids. If set to False, no assets are sent outbound, even if the objects are copyable.
 * New configuration variable in the simulator's [GridService] section: NetworkConnector, so that it can take both robust and simian connectors. Affects grids only, not standalones
 * Removed obsolete configuration variables: PrimTerseUpdatesPerPacket, AvatarTerseUpdatesPerPacket, PrimFullUpdatesPerPacket. Added new one: PrimUpdatesPerCallback
 * New configuration variables in [Startup] section: DecodedSculptMapPath, UseMeshiesPhysicsMesh
 * (HG) New preferred syntax for service URLs in [LoginService] section: SRV_ . Old way still works, but it's obsolete. Please see .examples.
 * (HG) New config under [GridService] in the simulators side (GridCommon/StandaloneCommon): Gatekeeper. Please see .examples.

Bug fixes

 * Fixed bug where "My estate" name was always used even if the user entered a different name on initial setup
 * Added estate name to show regions console command
 * Fixed negative dripAmount in TokenBucket which caused random login failures when scene_throttle is set (mantis #5365)
 * Improved handling of X-Forwarded-For (XFF) header
 * Improved output of show neighbours
 * Fixed leak in caps handlers deregistration
 * Fixed llSetTexture
 * Send object date to viewer in microsecs (mantis #3990)
 * Make UUID 3a367d1c-bef1-6d43-7595-e88c1e3aadb3 reference a full alpha texture.
 * Change UpdateAgent (for changes in agent position) to be sent once to each simulator rather than once to each region. This should help with some of the delays caused by multiple outstanding requests to a single service point.
 * Change SimianGroupsServicesConnectorModule.GetAgentGroupMembership so that it returns null if the user isn't a member of the group.
 * If a non-globbed included file from config cannot be found then warn the user
 * Display supported file extensions/formats in "terrain load help" (Mantis #5349)
 * Added loading and saving of terrain files using Terragen format (Mantis #1564)
 * Check estate bans for walking crossings
 * Fixed prim count display in cut regions.
 * Implemented SendPLacesReply
 * Fix OAR parcel loading so that old parcels are replaced by the new instead of merged.
 * Show local IDs in "land show" output.
 * Make "show info" and "show version" show the same version text
 * Force objectId to UUID.Zero for non-overridden animations in AvatarAnimation packet
 * Prevent activation and deactivation of gestures from clobbering the slam bits
 * Change gesture activation to not quash any other flags
 * Fix slam bits being lost when editing perms in prim inventory
 * Fix direct item give permissions
 * Deal with possibly un-initialized scripts in object transfers (mantis #5310)
 * Fix HG map tiles on map search
 * Bring back remote HG regions' map tiles
 * Fixed changing clothes moves avatar to various locations in the region (mantis #5198)
 * Fix prim inventory lock down
 * Fixed bug in Http server (mantis #5128)
 * Fix notecards that end with an embedded object causing an exception
 * Revamp the viewer -> banlist packet processing so fix a number of bugs. Remove the too coarse CanEditParcel method in favor of a CanEditParcelProperties method that takes a GroupPowers argument to specify what action is to be taken. Also, make the method to set parcel data much more granular. Permissions in a deeded setting should now work.
 * Fixed avie stuck in PREJUMP animation
 * Trigger event with flag CHANGED_LINK when agent sits on objects that have not a sit target defined (mantis #4692)
 * Fixed nudge movements
 * Fix the minimap sitting avatar location bug
 * Improved appearance representation and handling on TPs and crossings
 * Only force prim persistence before delete if the prim is the result of an unpersisted delink. This considerably improves delete performance for objects with large linksets
 * Stop LLUDPServer sending updates after object deletes by always queueing deletes
 * Amend GetLinkPrimitiveParams with implementations for PRIM_TEXGEN, PRIM_BUMP_SHINY, PRIM_FULLBRIGHT, and PRIM_GLOW
 * llUnsit position fix (mantis #4063)
 * Trigger changed events CHANGED_TELEPORT, CHANGED_SCALE, CHANGED_SHAPE, CHANGED_REGION_RESTART, CHANGED_REGION
 * Fix handling of landmarks for systems with culture settings other than en_US (mantis #5177)
 * Allow use of parameters without specifying a file path with command "save oar"
 * Fix joining land parcels not being stored correctly in SQLite (mantis #5230)
 * Only perform the take object permissions check if an object is being attached directly from the scene, not from existing inventory
 * Fix global region coordinates that are delivered by llRequestSimulatorData.
 * Fix gesture and viewer preview sounds not playing
 * Fix playing sound from HUDs
 * Fix attached sounds from HUDs erroneously being delivered to other avatars
 * Do not include hyperlinks in a random region search during a login
 * Fix: Write asset data into Asset.db when using SQLite
 * Add lsClearWindlightScene to the lightshare module to remove WL settings from a region and allow normal day cycles to be reestablished
 * Fixed wrong physical actor size
 * osSetDynamicTextureURL crashed region server (mantis #5165)
 * Prevent nullrefs in scene object deletion (mantis #5156)
 * Added PRIM_NAME, PRIM_DESC and PRIM_ROT_LOCAL
 * Fix llParcelMediaCommandList so that it applies commands only to the parcel that the script is in, not all parcels
 * Fixed a delay in llSetLinkPrimitiveParamsFast
 * Alphabetize results on region search by prefix matching
 * Fix autoreturn to not return zero objects
 * Upgraded Mono.Addins.dll to 0.5. This fixes a problem with region modules and mono 2.6.x+
 * Fixed CPU pinned high with HGAssetBroker (mantis #5057)
 * Improved CalculateMass
 * Prevent dropping someone else's attachments
 * Several fixes in SimianGrid connectors
 * Restrict top colliders / top scripts to estate managers
 * Prevent setting arbitrary groups on your objects
 * If you can't edit a prim's inventory, you don't need to see the asset ids. Prevents stealing IDs of animations, sounds and textures from prim inventories.
 * Restrict inventory items added in a transaction to folder belonging to the connected client.
 * Added delay for llSetPrimitiveParams and llSetLinkPrimitiveParams functions per the LSL wiki
 * Improve the explanative text of migration failures
 * Add LandServices to make landmarks work right in grids
 * Fixed length calculations for HTTP texture downloads (the end byte is inclusive in Range: headers)

Acknowledgements
Many, many thanks to all the developers, testers and community members who contributed to this release. Your hard work makes the free world possible :)