[Opensim-users] Mucking around with IAR asset UUIDs outside OpenSim: Will anything bad happen?

Chris mewtwo0641 at gmail.com
Sat Jun 30 00:33:37 UTC 2012


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?
>>>
>>
>>
>
>


-- 
OpenSim: 9 Region Standalone on 0.7.4 Dev
Physics: Open Dynamics Engine
OS: Windows 7 (x64)
CPU: AMD Phenom II X4 840 3.2 GHz
Memory: 11 GB DDR3
Database: MySQL 5.1.11




More information about the Opensim-users mailing list