We updated Kitely today with a few improvements to Kitely Market. We also fixed a longstanding OpenSim bug and contributed the patch to OpenSim.
Changes to Kitely Market Permissions
We made a change to the way we set item permissions when a merchant adds an item to the market. This is a subtle change, so it won’t affect most products, and in fact you may choose to skip reading this section… The change has to do with folded permissions. What are folded permissions? Well, every object in an inventory has two sets of permissions. The main permissions are what you usually see and set: Modify/Copy/Transfer, for Everyone/Next Owner. The folded permissions are a combination of the main permissions and the permissions of the items inside the object (if any).
For example, suppose you create a box with permissions Copy and Transfer (CT), and put inside it a script with just Transfer (T) permission. In this case, the box’s main permissions are CT, and its folded permissions are T. (Since the script is No-Copy, the object is made No-Copy as well in order to prevent making copies of the script by copying the object that contains it.)
The problem we found is that sometimes OpenSim doesn’t set the folded permissions correctly. For example, we’ve seen cases where OpenSim had set the folded permissions for an object lower than the permissions of the items it contained, and this caused the entire object to have fewer permissions than it should.
We decided to fix this problem by calculating the folded permissions ourselves, ignoring whatever OpenSim has done. We can do this because we know which items are contained in each object, so we know what the folded permissions should be.
We chose to deal with this problem in Kitely Market and not in OpenSim for two reasons. First, the permissions calculations in OpenSim are extremely complicated and we’re not sure we could fix them without creating other bugs in the process. Second, by moving this responsibility to Kitely Market we gain a measure of protection against future bugs as well; not just currently-known bugs.
This change won’t affect most products because in most cases OpenSim does calculate the folded permissions correctly. In cases where it didn’t, this change might add permissions to the parent object. For example, suppose you had created a box with permissions MCT, that contains items that are also MCT, but OpenSim had mistakenly set the box’s folded permissions to MT instead of MCT. This caused the box itself to get MT permissions as well, i.e. it became No-Copy. Today’s update will change the folded permissions to MCT, and therefore the box itself will also change to MCT, i.e. it becomes Copyable (as it should be).
Other Changes to Kitely Market
We fixed a problem that prevented some users from trying out the demo versions of products.
To protect brand names, we don’t allow creating a store with the same name as an existing store.
Some users have told us that when they finish editing a product they sometimes forget to Accept the changes, so the product isn’t actually updated in the market. To help merchants remember to Accept the changes, we added the yellow “Accept changes” panel to the bottom of the edit page (in addition to the top of the page, where it’s always been).
Fixed a Coalesced Objects Bug
We fixed a longstanding bug in OpenSim: when rezzing a coalesced object from a prim’s inventory, only the first sub-object was rezzed. For example, if you had a coalesced object that contains three boxes, and you rezzed it from a prim, then only the first box was rezzed. We fixed this bug, and contributed it to OpenSim; let’s hope it makes it into OpenSim 0.7.6.
In case you encounter this bug on a grid outside Kitely, you can use the following workaround: copy the coalesced object into your avatar’s inventory, and rez it from there. Of course this workaround requires people to actually know about it, so it’s better to just fix the bug.