[Opensim-users] Mucking around with IAR asset UUIDs outside OpenSim: Will anything bad happen?
Justin Clark-Casey
jjustincc at googlemail.com
Sat Jun 30 00:44:43 UTC 2012
Well, I think in that case the asset service was not rewriting the asset anyway if the UUID already existed - that check
was made at the simulator end.
However,
(a) That's not necessarily true of all service implmentations
and
(b) It appears to be more efficient to check the asset metadata first rather than always bung asset data over to the
service and let it sort things out.
On 30/06/12 01:33, Chris wrote:
> Ahhh I see. I was referring to commit 5f7e39 made around the beginning of this year. I must've misunderstood what it
> meant =)
>
> On 6/29/2012 6:11 PM, Justin Clark-Casey wrote:
>> Edmund, doing what you describe should be absolutely fine. In fact, one of my design aims with laying out .oars/.iars
>> in this way was to allow them to be inspected/constructed/altered by external tools, though it can still be a pretty
>> tricky operation.
>>
>> Changing the UUID is necessary since if an asset already exists with that ID it will be reused. As long as you use a
>> random UUID and replace all the existing references as you're doing then you should be fine.
>>
>> Chris, this is the way it has been done for years. There's no real errors to police - either an asset uuid already
>> exists and so is reused or it does not and so is ignored.
>>
>> On 29/06/12 08:25, Chris wrote:
>>> I believe this is happening due to a semi-recent change to how IARs handle asset loading. The new way of doing it is to
>>> not overwrite existing assets if the asset to be loaded shares the same UUID with an asset that already exists in the
>>> database (please correct me on this if I am wrong).
>>>
>>> As for manually changing ID's in the IAR itself, I can't attest for the safeness of doing it that way. But I would
>>> imagine it would be relatively safe provided that the ID's are changed in all the spots that they are referenced since
>>> the IAR loader should be rejecting duplicate UUID load attempts if the situation should arise. Opensim devs, please
>>> correct me on this as well if I am incorrect =) I would be curious myself to know if this is a safe thing to do.
>>>
>>>
>>> On 6/29/2012 1:43 AM, Edmund Edgar wrote:
>>>> I have some situations where I want to export an object as an IAR,
>>>> faff with the LSL code, and reimport it.
>>>>
>>>> This is working fine, except that sometimes the UUIDs of the scripts
>>>> I've faffed with already exist in OpenSim, resulting in the new
>>>> version not being imported.
>>>> (I'm pretty sure that's what's happening - I've tried clearing the
>>>> viewer cache and deleting stuff under bin/ScriptEngines and so forth.)
>>>>
>>>> To avoid this, I want to change the UUIDs of the scripts I've faffed
>>>> with in my IAR every time I make a change to their content. I've tried
>>>> this and it seems to work, but I as I don't understand the internals
>>>> of this stuff I just wanted to check if there's some important thing
>>>> I'm overlooking that will cause death and devastation to rain down on
>>>> me and the unlucky people who use my IAR.
>>>>
>>>> Specifically what I do is:
>>>> 1) Export IAR, untar it.
>>>> 2) Faff with scripts.
>>>> 3) For each script that's changed, make a new UUID by taking the md5
>>>> sum of the contents, and sticking in some hyphens where they appear to
>>>> belong.
>>>> 4) Rename the <old UUID>_script.lsl under assets/ to use the new UUID.
>>>> 4) Run sed on anything called ".xml" in the archive to change any
>>>> reference to the old UUID to the new UUID.
>>>> 5) Retar the IAR.
>>>> 6) Reimport.
>>>>
>>>> This is the script I run to do it:
>>>> https://github.com/sloodle/sloodle_development_tools/blob/master/opensim_sync/fixuuid.sh
>>>>
>>>> This seems to be working OK, but can anyone think of anything bad
>>>> that's going to happen?
>>>>
>>>
>>>
>>
>>
>
>
--
Justin Clark-Casey (justincc)
http://justincc.org/blog
http://twitter.com/justincc
More information about the Opensim-users
mailing list