<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dzonatas+Sol</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dzonatas+Sol"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Dzonatas_Sol"/>
	<updated>2026-07-28T05:50:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139527</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139527"/>
		<updated>2011-04-06T23:57:49Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Base 32 bit chroot setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;squeeze&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 squeeze /var/chroot/squeeze-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this in &amp;lt;code&amp;gt;/etc/schroot/schroot.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [squeeze]&lt;br /&gt;
 description=Debian squeeze (stable)&lt;br /&gt;
 location=/var/chroot/squeeze-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=stable,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c squeeze -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin make cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ schroot -c squeeze&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ hg clone http://hg.secondlife.com/viewer-development&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-development&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ autobuild build -c OpenSourceRelWithDebInfo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready in the &amp;lt;code&amp;gt;build-linux-i686/newview/packaged&amp;lt;/code&amp;gt; directory. You can zip, tar, copy, etc that directory as needed to run or package your viewer.&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139520</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139520"/>
		<updated>2011-04-06T23:15:07Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Step-by-Step 32bit Chroot Compile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;squeeze&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 squeeze /var/chroot/squeeze-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [squeeze]&lt;br /&gt;
 description=Debian squeeze (stable)&lt;br /&gt;
 location=/var/chroot/squeeze-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=stable,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c squeeze -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin make cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ schroot -c squeeze&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ hg clone http://hg.secondlife.com/viewer-development&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-development&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ autobuild build -c OpenSourceRelWithDebInfo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready in the &amp;lt;code&amp;gt;build-linux-i686/newview/packaged&amp;lt;/code&amp;gt; directory. You can zip, tar, copy, etc that directory as needed to run or package your viewer.&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139519</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139519"/>
		<updated>2011-04-06T23:13:08Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Run the Compile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;squeeze&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 squeeze /var/chroot/squeeze-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [squeeze]&lt;br /&gt;
 description=Debian squeeze (stable)&lt;br /&gt;
 location=/var/chroot/squeeze-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=stable,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c squeeze -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin make cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c squeeze&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ hg clone http://hg.secondlife.com/viewer-development&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-development&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ autobuild build -c OpenSourceRelWithDebInfo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready in the build-linux-i686/newview/packaged directory. You can zip, tar, copy, etc that directory as needed to run or package your viewer.&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139518</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139518"/>
		<updated>2011-04-06T22:54:57Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Sources Setup */ update from sid to squeeze (use mainstream for gcc 4.4 and avoid gcc 4.5 &amp;amp; glibcxx3.4.14 abi in sid for now)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;squeeze&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 squeeze /var/chroot/squeeze-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [squeeze]&lt;br /&gt;
 description=Debian squeeze (stable)&lt;br /&gt;
 location=/var/chroot/squeeze-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=stable,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c squeeze -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin make cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c squeeze&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ hg clone http://hg.secondlife.com/viewer-development&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-development&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ autobuild build -c OpenSourceRelWithDebInfo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139517</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139517"/>
		<updated>2011-04-06T22:53:10Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Snowglobe 32 bit Compatibility on Debian Lenny 64 */ section removed, assertion fix confirmed in repos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;squeeze&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 squeeze /var/chroot/squeeze-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [squeeze]&lt;br /&gt;
 description=Debian squeeze (stable)&lt;br /&gt;
 location=/var/chroot/squeeze-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=stable,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c squeeze -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin make cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c sid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ hg clone http://hg.secondlife.com/viewer-development&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-development&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ autobuild build -c OpenSourceRelWithDebInfo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139516</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139516"/>
		<updated>2011-04-06T22:52:14Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Base 32 bit chroot setup */ update from sid to squeeze (needed to proper c++ abi, avoid gcc 4.5 for now, use gcc 4.4)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;squeeze&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 squeeze /var/chroot/squeeze-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [squeeze]&lt;br /&gt;
 description=Debian squeeze (stable)&lt;br /&gt;
 location=/var/chroot/squeeze-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=stable,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c squeeze -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin make cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c sid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ hg clone http://hg.secondlife.com/viewer-development&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-development&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ autobuild build -c OpenSourceRelWithDebInfo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Snowglobe 32 bit Compatibility on Debian Lenny 64 ==&lt;br /&gt;
&lt;br /&gt;
To prevent assertion failures with the 32 bit pre-compiled libs included above, perform these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ mkdir /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-3_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libgdbm3_1.8.3-3_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libwrap0_7.6.q-16_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd YOURBUILTSNOWGLOBEDIR&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/usr/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the word YOURBUILTSNOWGLOBEDIR with your final installed/packaged directory (the one that looks like newview/packaged after a successful build and wherever you copied it to).&lt;br /&gt;
&lt;br /&gt;
32 bit Snowglobe 1.4+/2.0+ binaries then work on Debian Lenny 64&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139152</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139152"/>
		<updated>2011-04-04T03:30:42Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Base 32 bit chroot setup */ now have to install make also&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;sid&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 sid /var/chroot/sid-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [sid]&lt;br /&gt;
 description=Debian sid (unstable)&lt;br /&gt;
 location=/var/chroot/sid-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=unstable,default,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c sid -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin make cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c sid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ hg clone http://hg.secondlife.com/viewer-development&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-development&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ autobuild build -c OpenSourceRelWithDebInfo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Snowglobe 32 bit Compatibility on Debian Lenny 64 ==&lt;br /&gt;
&lt;br /&gt;
To prevent assertion failures with the 32 bit pre-compiled libs included above, perform these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ mkdir /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-3_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libgdbm3_1.8.3-3_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libwrap0_7.6.q-16_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd YOURBUILTSNOWGLOBEDIR&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/usr/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the word YOURBUILTSNOWGLOBEDIR with your final installed/packaged directory (the one that looks like newview/packaged after a successful build and wherever you copied it to).&lt;br /&gt;
&lt;br /&gt;
32 bit Snowglobe 1.4+/2.0+ binaries then work on Debian Lenny 64&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139151</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139151"/>
		<updated>2011-04-04T03:30:08Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Run the Compile */ updated for autobuild&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;sid&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 sid /var/chroot/sid-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [sid]&lt;br /&gt;
 description=Debian sid (unstable)&lt;br /&gt;
 location=/var/chroot/sid-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=unstable,default,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c sid -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c sid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ hg clone http://hg.secondlife.com/viewer-development&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-development&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ autobuild build -c OpenSourceRelWithDebInfo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Snowglobe 32 bit Compatibility on Debian Lenny 64 ==&lt;br /&gt;
&lt;br /&gt;
To prevent assertion failures with the 32 bit pre-compiled libs included above, perform these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ mkdir /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-3_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libgdbm3_1.8.3-3_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libwrap0_7.6.q-16_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd YOURBUILTSNOWGLOBEDIR&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/usr/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the word YOURBUILTSNOWGLOBEDIR with your final installed/packaged directory (the one that looks like newview/packaged after a successful build and wherever you copied it to).&lt;br /&gt;
&lt;br /&gt;
32 bit Snowglobe 1.4+/2.0+ binaries then work on Debian Lenny 64&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139150</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139150"/>
		<updated>2011-04-04T03:10:18Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Sources Setup */ updated from svn to hg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;sid&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 sid /var/chroot/sid-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [sid]&lt;br /&gt;
 description=Debian sid (unstable)&lt;br /&gt;
 location=/var/chroot/sid-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=unstable,default,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c sid -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c sid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ hg clone http://hg.secondlife.com/viewer-development&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd indra&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./develop.py&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-linux-i686-relwithdebinfo&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ make&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Snowglobe 32 bit Compatibility on Debian Lenny 64 ==&lt;br /&gt;
&lt;br /&gt;
To prevent assertion failures with the 32 bit pre-compiled libs included above, perform these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ mkdir /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-3_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libgdbm3_1.8.3-3_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libwrap0_7.6.q-16_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd YOURBUILTSNOWGLOBEDIR&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/usr/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the word YOURBUILTSNOWGLOBEDIR with your final installed/packaged directory (the one that looks like newview/packaged after a successful build and wherever you copied it to).&lt;br /&gt;
&lt;br /&gt;
32 bit Snowglobe 1.4+/2.0+ binaries then work on Debian Lenny 64&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139149</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139149"/>
		<updated>2011-04-04T03:05:00Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Base 32 bit chroot setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;sid&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 sid /var/chroot/sid-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [sid]&lt;br /&gt;
 description=Debian sid (unstable)&lt;br /&gt;
 location=/var/chroot/sid-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=unstable,default,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c sid -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install [[Autobuild]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c sid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ svn export https://svn.secondlife.com/svn/linden/projects/2010/snowglobe/trunk snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./scripts/public_fetch_tarballs.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd indra&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./develop.py&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-linux-i686-relwithdebinfo&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ make&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Snowglobe 32 bit Compatibility on Debian Lenny 64 ==&lt;br /&gt;
&lt;br /&gt;
To prevent assertion failures with the 32 bit pre-compiled libs included above, perform these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ mkdir /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-3_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libgdbm3_1.8.3-3_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libwrap0_7.6.q-16_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd YOURBUILTSNOWGLOBEDIR&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/usr/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the word YOURBUILTSNOWGLOBEDIR with your final installed/packaged directory (the one that looks like newview/packaged after a successful build and wherever you copied it to).&lt;br /&gt;
&lt;br /&gt;
32 bit Snowglobe 1.4+/2.0+ binaries then work on Debian Lenny 64&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139148</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139148"/>
		<updated>2011-04-04T03:03:22Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Base 32 bit chroot setup */ added autobuild&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;sid&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 sid /var/chroot/sid-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [sid]&lt;br /&gt;
 description=Debian sid (unstable)&lt;br /&gt;
 location=/var/chroot/sid-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=unstable,default,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c sid -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install LL Autobuild:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp &amp;amp;&amp;amp; hg clone http://hg.secondlife.com/autobuild &amp;amp;&amp;amp; cd autobuild &amp;amp;&amp;amp; python setup.py install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c sid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ svn export https://svn.secondlife.com/svn/linden/projects/2010/snowglobe/trunk snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./scripts/public_fetch_tarballs.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd indra&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./develop.py&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-linux-i686-relwithdebinfo&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ make&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Snowglobe 32 bit Compatibility on Debian Lenny 64 ==&lt;br /&gt;
&lt;br /&gt;
To prevent assertion failures with the 32 bit pre-compiled libs included above, perform these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ mkdir /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-3_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libgdbm3_1.8.3-3_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libwrap0_7.6.q-16_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd YOURBUILTSNOWGLOBEDIR&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/usr/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the word YOURBUILTSNOWGLOBEDIR with your final installed/packaged directory (the one that looks like newview/packaged after a successful build and wherever you copied it to).&lt;br /&gt;
&lt;br /&gt;
32 bit Snowglobe 1.4+/2.0+ binaries then work on Debian Lenny 64&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139146</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139146"/>
		<updated>2011-04-04T02:16:45Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Base 32 bit chroot setup */  added git mercurial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;sid&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 sid /var/chroot/sid-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [sid]&lt;br /&gt;
 description=Debian sid (unstable)&lt;br /&gt;
 location=/var/chroot/sid-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=unstable,default,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c sid -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin cmake bison flex git mercurial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c sid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ svn export https://svn.secondlife.com/svn/linden/projects/2010/snowglobe/trunk snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./scripts/public_fetch_tarballs.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd indra&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./develop.py&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-linux-i686-relwithdebinfo&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ make&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Snowglobe 32 bit Compatibility on Debian Lenny 64 ==&lt;br /&gt;
&lt;br /&gt;
To prevent assertion failures with the 32 bit pre-compiled libs included above, perform these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ mkdir /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-3_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libgdbm3_1.8.3-3_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libwrap0_7.6.q-16_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd YOURBUILTSNOWGLOBEDIR&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/usr/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the word YOURBUILTSNOWGLOBEDIR with your final installed/packaged directory (the one that looks like newview/packaged after a successful build and wherever you copied it to).&lt;br /&gt;
&lt;br /&gt;
32 bit Snowglobe 1.4+/2.0+ binaries then work on Debian Lenny 64&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139145</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139145"/>
		<updated>2011-04-04T01:53:06Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Sources Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;sid&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 sid /var/chroot/sid-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [sid]&lt;br /&gt;
 description=Debian sid (unstable)&lt;br /&gt;
 location=/var/chroot/sid-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=unstable,default,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c sid -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin cmake bison flex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ &amp;lt;code&amp;gt;schroot -c sid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ svn export https://svn.secondlife.com/svn/linden/projects/2010/snowglobe/trunk snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./scripts/public_fetch_tarballs.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd indra&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./develop.py&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-linux-i686-relwithdebinfo&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ make&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Snowglobe 32 bit Compatibility on Debian Lenny 64 ==&lt;br /&gt;
&lt;br /&gt;
To prevent assertion failures with the 32 bit pre-compiled libs included above, perform these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ mkdir /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-3_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libgdbm3_1.8.3-3_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libwrap0_7.6.q-16_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd YOURBUILTSNOWGLOBEDIR&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/usr/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the word YOURBUILTSNOWGLOBEDIR with your final installed/packaged directory (the one that looks like newview/packaged after a successful build and wherever you copied it to).&lt;br /&gt;
&lt;br /&gt;
32 bit Snowglobe 1.4+/2.0+ binaries then work on Debian Lenny 64&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139144</id>
		<title>User:Dzonatas Sol/Snowglobe</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/Snowglobe&amp;diff=1139144"/>
		<updated>2011-04-04T01:52:11Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Base 32 bit chroot setup */ remove steps for lenny, combined others for sid&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Step-by-Step 32bit Chroot Compile ==&lt;br /&gt;
&lt;br /&gt;
=== Base 32 bit chroot setup ===&lt;br /&gt;
&lt;br /&gt;
Note: If you have a separate /var partition it will need to be greater than 3.7GB to complete the build.&lt;br /&gt;
&lt;br /&gt;
On Debian, bootstrap &amp;quot;sid&amp;quot; for your 32bit chroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo debootstrap --arch i386 sid /var/chroot/sid-ia32 http://ftp.debian.org/debian/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once done, make sure you have your schroot entry set properly, mine looks like this&lt;br /&gt;
&lt;br /&gt;
 [sid]&lt;br /&gt;
 description=Debian sid (unstable)&lt;br /&gt;
 location=/var/chroot/sid-ia32&lt;br /&gt;
 priority=3&lt;br /&gt;
 groups=dzonatas,root&lt;br /&gt;
 root-groups=root&lt;br /&gt;
 aliases=unstable,default,ia32&lt;br /&gt;
 personality=linux32&lt;br /&gt;
 type=plain&lt;br /&gt;
 run-setup-scripts=true&lt;br /&gt;
 run-exec-scripts=true&lt;br /&gt;
&lt;br /&gt;
Now you can log into your chroot as root to setup the base packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo linux32 schroot -c sid -u root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initialize the packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install these packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ apt-get install python g++ subversion unzip bzip2 libx11-dev libxrender-dev libgl1-mesa-dev libxft-dev libxrandr-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  libxcursor-dev libglu-dev libsdl-dev libgtk2.0-bin cmake bison flex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, you can log out of root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The packages are setup.&lt;br /&gt;
&lt;br /&gt;
=== Sources Setup ===&lt;br /&gt;
&lt;br /&gt;
Login to your chroot as a regular user:&lt;br /&gt;
&lt;br /&gt;
$ schroot -c lenny&lt;br /&gt;
&lt;br /&gt;
Or, for sid:&lt;br /&gt;
&lt;br /&gt;
$ schroot -c sid&lt;br /&gt;
&lt;br /&gt;
We can use the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory for this example, and download the sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd /tmp&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ svn export https://svn.secondlife.com/svn/linden/projects/2010/snowglobe/trunk snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd snowglobe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./scripts/public_fetch_tarballs.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run the Compile ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd indra&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./develop.py&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd viewer-linux-i686-relwithdebinfo&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ make&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that completes, you should have it all ready for a package in the &amp;lt;code&amp;gt;newview/packaged&amp;lt;/code&amp;gt; directory&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;. Copy that directory where you would normally want to execute it from (see YOURBUILTSNOWGLOBEDIR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; below).&lt;br /&gt;
&lt;br /&gt;
1. This is where you copy from for example: /var/chroot//squeeze-ia32/snowglobe/indra/viewer-linux-i686-relwithdebinfo/newview/packaged.&lt;br /&gt;
&lt;br /&gt;
2. This is where you copy to, the install directory for the 64 bit secondlife binary.&lt;br /&gt;
&lt;br /&gt;
[[User:Nicky Perian|Nicky Perian]]&lt;br /&gt;
&lt;br /&gt;
== Snowglobe 32 bit Compatibility on Debian Lenny 64 ==&lt;br /&gt;
&lt;br /&gt;
To prevent assertion failures with the 32 bit pre-compiled libs included above, perform these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ mkdir /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-3_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_i386.deb&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libgdbm3_1.8.3-3_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ dpkg -x libwrap0_7.6.q-16_i386.deb /tmp/extralibs&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cd YOURBUILTSNOWGLOBEDIR&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$ cp /tmp/extralibs/usr/lib/* lib&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the word YOURBUILTSNOWGLOBEDIR with your final installed/packaged directory (the one that looks like newview/packaged after a successful build and wherever you copied it to).&lt;br /&gt;
&lt;br /&gt;
32 bit Snowglobe 1.4+/2.0+ binaries then work on Debian Lenny 64&lt;br /&gt;
&lt;br /&gt;
== Standalone 64 bit Compile: Debian Lenny/Squeeze AMD 64 ==&lt;br /&gt;
&lt;br /&gt;
Here are my notes about the compilation experience:&lt;br /&gt;
&lt;br /&gt;
Lenny comes with cmake 2.6.0, but the experimental version is required:&lt;br /&gt;
 sudo apt-get install -t sid cmake&lt;br /&gt;
&lt;br /&gt;
Specific cmake builds wouldn&#039;t be needed if an universal binary was used, instead.&lt;br /&gt;
&lt;br /&gt;
Downloaded and unpacked Snowglobe source (1.2.4.3008). Not gonna worry about git/hg/svn matters for this annotation.&lt;br /&gt;
&lt;br /&gt;
Downloaded related files as specified in doc/asset_urls.txt: MD5, ART, LIBS_LINUXI386 (see above 32bit compile)&lt;br /&gt;
&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ ./develop.py --standalone -m64 configure&lt;br /&gt;
 $ cd viewer-linux-x86_64-relwithdebinfo&lt;br /&gt;
 $ make secondlife-bin&lt;br /&gt;
&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
* {{JIRA|SNOW-240}} At this time there is no jsoncpp debian package, so configure fails on this. Downloaded and compiled from sources noted in jira issue. Copied include files to /usr/local/include and libs to /usr/local/lib for temporary fix.&lt;br /&gt;
* {{JIRA|SNOW-285}} build error: llqtwebkit.h: No such file or directory -- Despite this being a dependency, it should have made the configure fail like above in {{JIRA|SNOW-240}}. The configure failure message could point to a wiki page to resolve the dependency (like an extra deb package for Debian).&lt;br /&gt;
* Somewhere in the attempts to build llqtwebkit, the /usr/lib/libGL.so file got deleted. I can pinpoint here because other programs worked (X, wine, monovida, etc) up until that moment. Very strange for that to happen, yet not totally unexpected (from other people&#039;s experience with qt-webkit). The older NVidia drivers that have Xgl support didn&#039;t have a deb package, so qt-webkit thought it could overwrite the GL files. Blind installs, like this issue, is exactly what the Debian-Way tries to avoid. I eventually avoided the llqtwebkit build entirely and just used the pre-built 32bit version for now. These plugins could be downloaded by a debian package separate from this build since it really isn&#039;t required to build and run secondlife-bin (thanks to LLMediaPlugin work).&lt;br /&gt;
* [[../NVidia 190.42|Upgrade to NVidia 190.42 drivers the Debian-Way]].&lt;br /&gt;
&lt;br /&gt;
With the above issues resolved, you can install the built files. Normally, a &amp;quot;make package&amp;quot; would package them for you, yet since this is a &amp;quot;standalone&amp;quot; version this means it is assumed some pieces that were normally put into the package are already installed somewhere else rather than being a static build with secondlife-bin. The &amp;quot;make package&amp;quot; works if you built the plugins.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=994332</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/AvatarTracker</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=994332"/>
		<updated>2010-08-03T14:46:53Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friends&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;friend }, ... ] ( ?? uuid &amp;lt;- &amp;amp;friend )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/FriendsChanged&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; [ { ID: uuid, Active: boolean, Online: boolean }, ... ] &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friends ==&lt;br /&gt;
&lt;br /&gt;
Response is the UUID list of the agent&#039;s friends and basic status of each&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains information for a specified friend UUID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/FriendsChanged ==&lt;br /&gt;
&lt;br /&gt;
Queried to update status. [ Deprecated ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== friend ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Online&lt;br /&gt;
| : bool&lt;br /&gt;
|-&lt;br /&gt;
| First&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Last&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=994322</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/AvatarTracker</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=994322"/>
		<updated>2010-08-03T14:45:36Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* /AvatarTracker/FriendsChanged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friends&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;friend }, ... ] ( ?? uuid &amp;lt;- &amp;amp;friend )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/FriendsChanged&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; [ { ID: uuid, Active: boolean, Online: boolean }, ... ] &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friends ==&lt;br /&gt;
&lt;br /&gt;
Response is the UUID list of the agent&#039;s friends and basic status of each&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains information for a specified friend UUID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/FriendsChanged ==&lt;br /&gt;
&lt;br /&gt;
Queried to update status. [ Deprecated ]&lt;br /&gt;
&lt;br /&gt;
== friend ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Online&lt;br /&gt;
| : bool&lt;br /&gt;
|-&lt;br /&gt;
| First&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Last&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Inventory&amp;diff=993952</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Inventory</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Inventory&amp;diff=993952"/>
		<updated>2010-08-03T05:00:39Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Asset(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;status }, ... ] ( ?? uuid &amp;lt;- &amp;amp;status )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Item(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;item }, ... ] ( ?? uuid &amp;lt;- &amp;amp;item )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Root&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- { ID: uuid }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Category(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;category }, ... ] ( ?? uuid &amp;lt;- &amp;amp;category )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Changed&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; [ { ID: uuid, AssetType: string }, ... ] &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Asset(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query used to localize assets. Asynchronously queries /Asset/Loaded as they become available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Item(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;category&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Root ==&lt;br /&gt;
&lt;br /&gt;
Response is root category uuid of agent&#039;s inventory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Category(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;category&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Changed ==&lt;br /&gt;
&lt;br /&gt;
Queried when an inventory item(s) changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== category ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Base&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Categories&lt;br /&gt;
| : [ uuid, ... ]&lt;br /&gt;
|-&lt;br /&gt;
| Items&lt;br /&gt;
| : [ uuid, ... ]&lt;br /&gt;
|-&lt;br /&gt;
| Data&lt;br /&gt;
| : llsd&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== item ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| *data*&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| (Active)&lt;br /&gt;
| : bool&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Map elements and data are implementation specific, yet currently uses same LLSD format as internal to Snowglobe. Active is optional map entry that appears for gestures.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=993942</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/AvatarTracker</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=993942"/>
		<updated>2010-08-03T04:49:58Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friends&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;friend }, ... ] ( ?? uuid &amp;lt;- &amp;amp;friend )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/FriendsChanged&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; [ { ID: uuid, Active: boolean, Online: boolean }, ... ] &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friends ==&lt;br /&gt;
&lt;br /&gt;
Response is the UUID list of the agent&#039;s friends and basic status of each&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains information for a specified friend UUID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/FriendsChanged ==&lt;br /&gt;
&lt;br /&gt;
Queried to update status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== friend ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Online&lt;br /&gt;
| : bool&lt;br /&gt;
|-&lt;br /&gt;
| First&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Last&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=993932</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/AvatarTracker</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=993932"/>
		<updated>2010-08-03T04:49:19Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friends&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;friend }, ... ] ( ?? uuid &amp;lt;- &amp;amp;friend )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/FriendsChanged&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; [ { ID: uuid, Active: boolean, Online: boolean }, ... ] &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friends ==&lt;br /&gt;
&lt;br /&gt;
Response is the UUID list of the agent&#039;s friends and basic status of each&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains information for a specified friend UUID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/FriendsChanged ==&lt;br /&gt;
&lt;br /&gt;
Queried to update status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== friend ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Online&lt;br /&gt;
| : bool&lt;br /&gt;
|-&lt;br /&gt;
| First&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Last&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=993922</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=993922"/>
		<updated>2010-08-03T04:43:01Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Connect&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;connect &amp;lt;- &amp;amp;result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/UI&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { UI: bool } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Status&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { Status: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Startup&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;empty &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Connect ==&lt;br /&gt;
&lt;br /&gt;
Note the roles here are in perspective of the initiator. They may switch automatically in bidirectional only connections. See [http://en.wikipedia.org/wiki/Flow_(psychology) Flow]. Fallback to unidirectional connections is optional (see VWRAP), yet that implies static initiation. A non-intrusive proxy in between a bidirectional connection and a unidirectional connection may appear ideal. The unidirectional connection between Snowglobe (client) and the Second Life (server) is ideal for a static initiation, which can be a backbone for various processes that create bidirectional connections (primarily within a firewalled, multi-headed client domain). Authentication levels and connection security schemes may vary upon implementation (highly demanded by VWRAP/IETF for such flexibility, possibly closed-augmented levels). Note that use-cases exist that request security and authentication without traditional textual user and password means.&lt;br /&gt;
&lt;br /&gt;
[&amp;quot;Feature Freeze&amp;quot;: Possible models yet to be demonstrated may include (or may never be implemented) resources for stationary and mobile environments. In this sense, mobile means where the presence of the avatar may authenticate from different clients. Stationary means that capabilities and their roles may have persistent values, like InterfaceStartupCapability below. [[User:Dzonatas_Sol/HttpCastRayLLSD|For example, ray-casting]] may allow to see without being able to change and no need to expose original data. There are some &amp;quot;obvious&amp;quot; applications for stationary roles.]&lt;br /&gt;
&lt;br /&gt;
=== Forward: ===&lt;br /&gt;
&lt;br /&gt;
Attempt to negotiate a connection. A reverse /Interface/Connect query is made by this forward interface (which is the Snowglobe Viewer when InterfaceStartupCapability is unset).&lt;br /&gt;
&lt;br /&gt;
An optional session cookie is set as an extra security measure to in order to lock-down a single client/server connection.&lt;br /&gt;
&lt;br /&gt;
=== Reverse: ===&lt;br /&gt;
&lt;br /&gt;
The application that requested the initial connection also listens for this query. On a successful query the Snowglobe&#039;s ControlGroup variable &amp;quot;InterfaceStartupCapability&amp;quot; is set to http://host:port/Interface/Connect, as detected by the forward interface. Note that Snowglobe Viewer may later use InterfaceStartupCapability to automatically connect by /Interface/Connect in a role switch.&lt;br /&gt;
&lt;br /&gt;
A bidirectional paradigm can be created here that is unlike traditional unidirectional client/server security models, yet this bidirectional paradigm assumes connections do not fallback to unidirectional capabilities. The bidirectional paradigm may also include the intention that unhandled capabilities or query transitions should be encapsulated by crash prevention rather than default to exceptional states. The implementation of the transport layer should not exceptionalize it abstraction, or further transitions become impossible. General rule is that original content cannot be made impossible, and the basis of this is reality itself: that&#039;s Life™.&lt;br /&gt;
&lt;br /&gt;
[It cannot be stressed enough that in the &amp;quot;flow&amp;quot; of the bidirectional paradigm that if a bug is found: 1) Don&#039;t immediately &amp;quot;fix&amp;quot; bug; 2) instead, ensure baby-safe style prevention; 3) then determine if self found buried treasure; 4) or, let it live and die another day. For every fire-wall, there is an ice-wall... is this not clear enough?]&lt;br /&gt;
&lt;br /&gt;
== /Interface/Status ==&lt;br /&gt;
&lt;br /&gt;
A message that describes the changed state of the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Startup ==&lt;br /&gt;
&lt;br /&gt;
This resource capability URI defaults to the value of InterfaceStartupCapability. [ See note above about role switch. ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== connect ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| (host)&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| port&lt;br /&gt;
| : integer&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Host is optional for remote sessions. Note that multi-headed clients may appear similar to remote.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== result ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Version string is only informational, as given or detected capabilities are more significant.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/FloaterChat&amp;diff=993912</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/FloaterChat</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/FloaterChat&amp;diff=993912"/>
		<updated>2010-08-03T04:27:59Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* chat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /FloaterChat/AddChat&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;chat &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /FloaterChat/AddChat ==&lt;br /&gt;
&lt;br /&gt;
Delivers &amp;amp;chat to local chat session. [ Resource should be renamed, maybe /ChatterBox/LocalChat ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== chat ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| text&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| from&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| from_id&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| source&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| audible&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| muted&lt;br /&gt;
| : boolean&lt;br /&gt;
|-&lt;br /&gt;
| time&lt;br /&gt;
| : real&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| : { X: real, Y: real, Z: real }&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/FloaterChat&amp;diff=993902</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/FloaterChat</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/FloaterChat&amp;diff=993902"/>
		<updated>2010-08-03T04:27:30Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: Created page with &amp;#039;__NOTOC__ {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; |- | Resource || Method || Description |-  |- | rowspan=&amp;quot;1&amp;quot; | /FloaterChat/AddChat | style=&amp;quot;text-align:right;&amp;quot; | POST | -&amp;gt;...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /FloaterChat/AddChat&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;chat &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /FloaterChat/AddChat ==&lt;br /&gt;
&lt;br /&gt;
Delivers &amp;amp;chat to local chat session. [ Resource should be renamed, maybe /ChatterBox/LocalChat ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== chat ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| text&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| from&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| from_id&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| source&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| audible&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| muted&lt;br /&gt;
| : boolean&lt;br /&gt;
|-&lt;br /&gt;
| time&lt;br /&gt;
| : real&lt;br /&gt;
|-&lt;br /&gt;
| position : { X: real, Y: real, Z: real }&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources&amp;diff=993892</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources&amp;diff=993892"/>
		<updated>2010-08-03T04:19:07Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This is a dictionary of all SNOW-375 resources.&lt;br /&gt;
&lt;br /&gt;
Please see the main [[User:Dzonatas_Sol/SNOW-375|SNOW-375]] page for overview and technical documentation.&lt;br /&gt;
&lt;br /&gt;
== SNOW-375 Resources ==&lt;br /&gt;
&lt;br /&gt;
Resources are grouped by major representations. These are still being developed, yet a basic set exists that enables communication and gesture activation.&lt;br /&gt;
&lt;br /&gt;
Resources may have more than one method. Each one is described as based on LLIDL. Parenthesized resources are denote complex queries, which may automatically transition simpler queries. Complex queries are usually used to group multiple queries together, and it includes each result code.&lt;br /&gt;
&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/ControlGroup|ControlGroup]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/Agent|Agent]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/Asset|Asset]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker|AvatarTracker]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox|ChatterBox]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/FloaterChat|FloaterChat]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/GestureManager|GestureManager]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/Inventory|Inventory]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/Interface|Interface]]&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Asset&amp;diff=993882</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Asset</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Asset&amp;diff=993882"/>
		<updated>2010-08-03T04:12:05Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Asset/Notecard(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;notecard }, ... ] ( ?? uuid &amp;lt;- &amp;amp;notecard )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Asset/Gesture(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;gesture }, ... ] ( ?? uuid &amp;lt;- &amp;amp;gesture )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Asset/Loaded&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { ID: uuid, Type: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Asset/Notecard(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;notecard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Asset/Gesture(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;gesture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Asset/Loaded ==&lt;br /&gt;
&lt;br /&gt;
Queried when asset is localized.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== notecard ==&lt;br /&gt;
&lt;br /&gt;
Asset in nested XML format (translated from &#039;linden notecard format&#039;). Embedded notecard inventory items are nested in &amp;lt;embed&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gesture ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Trigger&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| ReplaceText&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Key&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=993872</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/ChatterBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=993872"/>
		<updated>2010-08-03T04:05:11Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/Message&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { message: string, session: uuid, to: uuid, dialog: integer } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/AddMessage&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;chat &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/StartGroupSession&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { session: uuid } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/UpdateSessionID&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { session: uuid, temporary: uuid } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ChatterBox/Message ==&lt;br /&gt;
&lt;br /&gt;
Deliver a message to a group/IM channel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ChatterBox/AddMessage ==&lt;br /&gt;
&lt;br /&gt;
Deliver a message to session. [ Resource should be renamed to reverse /ChatterBox/Message ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  /ChatterBox/StartGroupSession ==&lt;br /&gt;
&lt;br /&gt;
Initiate a group chat session&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ChatterBox/UpdateSessionID ==&lt;br /&gt;
&lt;br /&gt;
Update temporary session to real session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;, consistently&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== chat ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| from&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| message&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| dialog&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| estate&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| region&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| link&lt;br /&gt;
| : boolean&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| : { X: real, Y: real, Z: real }&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=993862</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/ChatterBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=993862"/>
		<updated>2010-08-03T03:56:43Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/Message&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { message: string, session: uuid, to: uuid, dialog: integer } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/AddMessage&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;chat &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/StartGroupSession&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { session: uuid } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ChatterBox/Message ==&lt;br /&gt;
&lt;br /&gt;
Deliver a message to a group/IM channel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ChatterBox/AddMessage ==&lt;br /&gt;
&lt;br /&gt;
Deliver a message to session. [ Resource should be renamed to reverse /ChatterBox/Message ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  /ChatterBox/StartGroupSession ==&lt;br /&gt;
&lt;br /&gt;
Initiate a group chat session&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;, consistently&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== chat ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| from&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| message&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| dialog&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| estate&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| region&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| link&lt;br /&gt;
| : boolean&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| : { X: real, Y: real, Z: real }&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=993852</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/ChatterBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=993852"/>
		<updated>2010-08-03T03:56:11Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/Message&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { message: string, session: uuid, to: uuid, dialog: integer } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/Message&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;chat &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/StartGroupSession&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { session: uuid } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ChatterBox/Message ==&lt;br /&gt;
&lt;br /&gt;
Deliver a message to a group/IM channel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ChatterBox/AddMessage ==&lt;br /&gt;
&lt;br /&gt;
Deliver a message to session. [ Resource should be renamed to reverse /ChatterBox/Message ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  /ChatterBox/StartGroupSession ==&lt;br /&gt;
&lt;br /&gt;
Initiate a group chat session&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;, consistently&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== chat ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| from&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| message&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| dialog&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| estate&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| region&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| link&lt;br /&gt;
| : boolean&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| : { X: real, Y: real, Z: real }&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=993842</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=993842"/>
		<updated>2010-08-03T03:29:09Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* /Interface/Connect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Connect&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;connect &amp;lt;- &amp;amp;result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/UI&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { UI: bool } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Status&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { Status: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Connect ==&lt;br /&gt;
&lt;br /&gt;
Note the roles here are in perspective of the initiator. They may switch automatically in bidirectional only connections. See [http://en.wikipedia.org/wiki/Flow_(psychology) Flow]. Fallback to unidirectional connections is optional (see VWRAP), yet that implies static initiation. A non-intrusive proxy in between a bidirectional connection and a unidirectional connection may appear ideal. The unidirectional connection between Snowglobe (client) and the Second Life (server) is ideal for a static initiation, which can be a backbone for various processes that create bidirectional connections (primarily within a firewalled, multi-headed client domain). Authentication levels and connection security schemes may vary upon implementation (highly demanded by VWRAP/IETF for such flexibility, possibly closed-augmented levels). Note that use-cases exist that request security and authentication without traditional textual user and password means.&lt;br /&gt;
&lt;br /&gt;
[&amp;quot;Feature Freeze&amp;quot;: Possible models yet to be demonstrated may include (or may never be implemented) resources for stationary and mobile environments. In this sense, mobile means where the presence of the avatar may authenticate from different clients. Stationary means that capabilities and their roles may have persistent values, like InterfaceStartupCapability below. [[User:Dzonatas_Sol/HttpCastRayLLSD|For example, ray-casting]] may allow to see without being able to change and no need to expose original data. There are some &amp;quot;obvious&amp;quot; applications for stationary roles.]&lt;br /&gt;
&lt;br /&gt;
=== Forward: ===&lt;br /&gt;
&lt;br /&gt;
Attempt to negotiate a connection. A reverse /Interface/Connect query is made by this forward interface (which is the Snowglobe Viewer when InterfaceStartupCapability is unset).&lt;br /&gt;
&lt;br /&gt;
An optional session cookie is set as an extra security measure to in order to lock-down a single client/server connection.&lt;br /&gt;
&lt;br /&gt;
=== Reverse: ===&lt;br /&gt;
&lt;br /&gt;
The application that requested the initial connection also listens for this query. On a successful query the Snowglobe&#039;s ControlGroup variable &amp;quot;InterfaceStartupCapability&amp;quot; is set to http://host:port/Interface/Connect, as detected by the forward interface. Note that Snowglobe Viewer may later use InterfaceStartupCapability to automatically connect by /Interface/Connect in a role switch.&lt;br /&gt;
&lt;br /&gt;
A bidirectional paradigm can be created here that is unlike traditional unidirectional client/server security models, yet this bidirectional paradigm assumes connections do not fallback to unidirectional capabilities. The bidirectional paradigm may also include the intention that unhandled capabilities or query transitions should be encapsulated by crash prevention rather than default to exceptional states. The implementation of the transport layer should not exceptionalize it abstraction, or further transitions become impossible. General rule is that original content cannot be made impossible, and the basis of this is reality itself: that&#039;s Life™.&lt;br /&gt;
&lt;br /&gt;
[It cannot be stressed enough that in the &amp;quot;flow&amp;quot; of the bidirectional paradigm that if a bug is found: 1) Don&#039;t immediately &amp;quot;fix&amp;quot; bug; 2) instead, ensure baby-safe style prevention; 3) then determine if self found buried treasure; 4) or, let it live and die another day. For every fire-wall, there is an ice-wall... is this not clear enough?]&lt;br /&gt;
&lt;br /&gt;
== /Interface/Status ==&lt;br /&gt;
&lt;br /&gt;
A message that describes the changed state of the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== connect ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| (host)&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| port&lt;br /&gt;
| : integer&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Host is optional for remote sessions. Note that multi-headed clients may appear similar to remote.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== result ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Version string is only informational, as given or detected capabilities are more significant.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=993122</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=993122"/>
		<updated>2010-08-01T21:02:56Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* /Interface/Connect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Connect&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;connect &amp;lt;- &amp;amp;result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/UI&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { UI: bool } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Status&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { Status: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Connect ==&lt;br /&gt;
&lt;br /&gt;
Note the roles here are in perspective of the initiator. They may switch automatically in bidirectional only connections. See [[http://en.wikipedia.org/wiki/Flow_(psychology)|Flow_(psychology)]]. Fallback to unidirectional connections is optional (see VWRAP), yet that implies static initiation. A non-intrusive proxy in between a bidirectional connection and a unidirectional connection may appear ideal. The unidirectional connection between Snowglobe (client) and the Second Life (server) is ideal for a static initiation, which can be a backbone for various processes that create bidirectional connections (primarily within a firewalled, multi-headed client domain). Authentication levels and connection security schemes may vary upon implementation (highly demanded by VWRAP/IETF for such flexibility, possibly closed-augmented levels). Note that use-cases exist that request security and authentication without traditional textual user and password means.&lt;br /&gt;
&lt;br /&gt;
[&amp;quot;Feature Freeze&amp;quot;: Possible models yet to be demonstrated may include (or may never be implemented) resources for stationary and mobile environments. In this sense, mobile means where the presence of the avatar may authenticate from different clients. Stationary means that capabilities and their roles may have persistent values, like InterfaceStartupCapability below. [[User:Dzonatas_Sol/HttpCastRayLLSD|For example, ray-casting]] may allow to see without being able to change and no need to expose original data. There are some &amp;quot;obvious&amp;quot; applications for stationary roles.]&lt;br /&gt;
&lt;br /&gt;
=== Forward: ===&lt;br /&gt;
&lt;br /&gt;
Attempt to negotiate a connection. A reverse /Interface/Connect query is made by this forward interface (which is the Snowglobe Viewer when InterfaceStartupCapability is unset).&lt;br /&gt;
&lt;br /&gt;
An optional session cookie is set as an extra security measure to in order to lock-down a single client/server connection.&lt;br /&gt;
&lt;br /&gt;
=== Reverse: ===&lt;br /&gt;
&lt;br /&gt;
The application that requested the initial connection also listens for this query. On a successful query the Snowglobe&#039;s ControlGroup variable &amp;quot;InterfaceStartupCapability&amp;quot; is set to http://host:port/Interface/Connect, as detected by the forward interface. Note that Snowglobe Viewer may later use InterfaceStartupCapability to automatically connect by /Interface/Connect in a role switch.&lt;br /&gt;
&lt;br /&gt;
A bidirectional paradigm can be created here that is unlike traditional unidirectional client/server security models, yet this bidirectional paradigm assumes connections do not fallback to unidirectional capabilities. The bidirectional paradigm may also include the intention that unhandled capabilities or query transitions should be encapsulated by crash prevention rather than default to exceptional states. The implementation of the transport layer should not exceptionalize it abstraction, or further transitions become impossible. General rule is that original content cannot be made impossible, and the basis of this is reality itself: that&#039;s Life™.&lt;br /&gt;
&lt;br /&gt;
[It cannot be stressed enough that in the &amp;quot;flow&amp;quot; of the bidirectional paradigm that if a bug is found: 1) Don&#039;t immediately &amp;quot;fix&amp;quot; bug; 2) instead, ensure baby-safe style prevention; 3) then determine if self found buried treasure; 4) or, let it live and die another day. For every fire-wall, there is an ice-wall... is this not clear enough?]&lt;br /&gt;
&lt;br /&gt;
== /Interface/Status ==&lt;br /&gt;
&lt;br /&gt;
A message that describes the changed state of the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== connect ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| (host)&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| port&lt;br /&gt;
| : integer&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Host is optional for remote sessions. Note that multi-headed clients may appear similar to remote.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== result ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Version string is only informational, as given or detected capabilities are more significant.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/HttpCastRayLLSD&amp;diff=993112</id>
		<title>User:Dzonatas Sol/HttpCastRayLLSD</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/HttpCastRayLLSD&amp;diff=993112"/>
		<updated>2010-08-01T21:01:31Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This code does the very basic functionality to process casted rays by a query and to return the result as LLSD. This doesn&#039;t represent ideal functionality. It just allows us to research this basic functionality for potential optimization. It&#039;s not to be used to implement a full ray-tracer even if it is possible. It is meant to detect an object and use smart methods to not cast rays again through the area of that object. For now, we just use the bounding-box as the default area. Maybe if there was an extra filter to llCastRay that only returned static objects...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;Rebooted.&amp;quot;);&lt;br /&gt;
        llRequestURL();&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    http_request(key id, string method, string body)&lt;br /&gt;
    {&lt;br /&gt;
        if (method == URL_REQUEST_GRANTED)&lt;br /&gt;
        {&lt;br /&gt;
            llSay(0,&amp;quot;URL: &amp;quot; + body);&lt;br /&gt;
        }&lt;br /&gt;
        else if (method == URL_REQUEST_DENIED)&lt;br /&gt;
        {&lt;br /&gt;
            llSay(0, &amp;quot;Something went wrong, no url. &amp;quot; + body);&lt;br /&gt;
        }&lt;br /&gt;
        else if (method == &amp;quot;GET&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            string  query      = llGetHTTPHeader(id, &amp;quot;x-query-string&amp;quot;); &lt;br /&gt;
            list    qvar       = llParseString2List(query, [&amp;quot;filter=&amp;quot;, &amp;quot;&amp;amp;sx=&amp;quot;, &amp;quot;&amp;amp;sy=&amp;quot;,&amp;quot;&amp;amp;sz=&amp;quot;,&amp;quot;&amp;amp;ex=&amp;quot;, &amp;quot;&amp;amp;ey=&amp;quot;,&amp;quot;&amp;amp;ez=&amp;quot;], [&amp;quot;&amp;quot;]);&lt;br /&gt;
            integer filter     = (integer)llList2String(qvar, 0);&lt;br /&gt;
&lt;br /&gt;
            float   x          = (float)llList2String(qvar, 1);&lt;br /&gt;
            float   y          = (float)llList2String(qvar, 2);&lt;br /&gt;
            float   z          = (float)llList2String(qvar, 3);&lt;br /&gt;
            vector start       = &amp;lt;x,y,z&amp;gt; ;&lt;br /&gt;
&lt;br /&gt;
            x                  = (float)llList2String(qvar, 4);&lt;br /&gt;
            y                  = (float)llList2String(qvar, 5);&lt;br /&gt;
            z                  = (float)llList2String(qvar, 6);&lt;br /&gt;
            vector end         = &amp;lt;x,y,z&amp;gt; ;&lt;br /&gt;
            llSay(0, (string)start + &amp;quot; &amp;quot; + (string)end) ;&lt;br /&gt;
&lt;br /&gt;
            list     results = llCastRay( start, end, filter, 0 ) ;&lt;br /&gt;
            key      uuid    = llList2Key(results, 0);&lt;br /&gt;
            string   vec     = llList2String(results, 1);&lt;br /&gt;
&lt;br /&gt;
            list     box    = llGetBoundingBox(uuid);&lt;br /&gt;
            vector   center = (llList2Vector(box, 0) + llList2Vector(box, 1)) * 0.5;&lt;br /&gt;
            vector   size   = llList2Vector(box, 1) - llList2Vector(box, 0);&lt;br /&gt;
            &lt;br /&gt;
            string text ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;llsd&amp;gt;&amp;lt;map&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;key&amp;gt;ID&amp;lt;/key&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;string&amp;gt;&amp;quot; + (string)uuid  + &amp;quot;&amp;lt;string&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;key&amp;gt;Point&amp;lt;/key&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;string&amp;gt;&amp;quot; + (string)vec    + &amp;quot;&amp;lt;string&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;key&amp;gt;Center&amp;lt;/key&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;string&amp;gt;&amp;quot; + (string)center + &amp;quot;&amp;lt;string&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;key&amp;gt;Size&amp;lt;/key&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;string&amp;gt;&amp;quot; + (string)size   + &amp;quot;&amp;lt;string&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;/map&amp;gt;&amp;lt;/llsd&amp;gt;&amp;quot; ;&lt;br /&gt;
            llHTTPResponse(id,200, text );&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llHTTPResponse(id,405,&amp;quot;Unsupported Method&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992832</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992832"/>
		<updated>2010-08-01T18:29:35Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Reverse: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Connect&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;connect &amp;lt;- &amp;amp;result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/UI&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { UI: bool } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Status&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { Status: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Connect ==&lt;br /&gt;
&lt;br /&gt;
Note the roles here are in perspective of the initiator. They may switch automatically in bidirectional only connections. See [[http://en.wikipedia.org/wiki/Flow_(psychology)|Flow_(psychology)]]. Fallback to unidirectional connections is optional (see VWRAP), yet that implies static initiation. A non-intrusive proxy in between a bidirectional connection and a unidirectional connection may appear ideal. The unidirectional connection between Snowglobe (client) and the Second Life (server) is ideal for a static initiation, which can be a backbone for various processes that create bidirectional connections (primarily within a firewalled, multi-headed client domain). Authentication levels and connection security schemes may vary upon implementation (highly demanded by VWRAP/IETF for such flexibility, possibly closed-augmented levels). Note that use-cases exist that request security and authentication without traditional textual user and password means.&lt;br /&gt;
&lt;br /&gt;
[&amp;quot;Feature Freeze&amp;quot;: Possible models yet to be demonstrated may include (or may never be implemented) resources for stationary and mobile environments. In this sense, mobile means where the presence of the avatar may authenticate from different clients. Stationary means that capabilities and their roles may have persistent values, like InterfaceStartupCapability below. For example, ray-casting may allow to see without being able to change and no need to expose original data. There are some &amp;quot;obvious&amp;quot; applications for stationary roles.]&lt;br /&gt;
&lt;br /&gt;
=== Forward: ===&lt;br /&gt;
&lt;br /&gt;
Attempt to negotiate a connection. A reverse /Interface/Connect query is made by this forward interface (which is the Snowglobe Viewer when InterfaceStartupCapability is unset).&lt;br /&gt;
&lt;br /&gt;
An optional session cookie is set as an extra security measure to in order to lock-down a single client/server connection.&lt;br /&gt;
&lt;br /&gt;
=== Reverse: ===&lt;br /&gt;
&lt;br /&gt;
The application that requested the initial connection also listens for this query. On a successful query the Snowglobe&#039;s ControlGroup variable &amp;quot;InterfaceStartupCapability&amp;quot; is set to http://host:port/Interface/Connect, as detected by the forward interface. Note that Snowglobe Viewer may later use InterfaceStartupCapability to automatically connect by /Interface/Connect in a role switch.&lt;br /&gt;
&lt;br /&gt;
A bidirectional paradigm can be created here that is unlike traditional unidirectional client/server security models, yet this bidirectional paradigm assumes connections do not fallback to unidirectional capabilities. The bidirectional paradigm may also include the intention that unhandled capabilities or query transitions should be encapsulated by crash prevention rather than default to exceptional states. The implementation of the transport layer should not exceptionalize it abstraction, or further transitions become impossible. General rule is that original content cannot be made impossible, and the basis of this is reality itself: that&#039;s Life™.&lt;br /&gt;
&lt;br /&gt;
[It cannot be stressed enough that in the &amp;quot;flow&amp;quot; of the bidirectional paradigm that if a bug is found: 1) Don&#039;t immediately &amp;quot;fix&amp;quot; bug; 2) instead, ensure baby-safe style prevention; 3) then determine if self found buried treasure; 4) or, let it live and die another day. For every fire-wall, there is an ice-wall... is this not clear enough?]&lt;br /&gt;
&lt;br /&gt;
== /Interface/Status ==&lt;br /&gt;
&lt;br /&gt;
A message that describes the changed state of the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== connect ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| (host)&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| port&lt;br /&gt;
| : integer&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Host is optional for remote sessions. Note that multi-headed clients may appear similar to remote.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== result ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Version string is only informational, as given or detected capabilities are more significant.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992822</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992822"/>
		<updated>2010-08-01T18:28:42Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Reverse: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Connect&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;connect &amp;lt;- &amp;amp;result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/UI&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { UI: bool } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Status&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { Status: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Connect ==&lt;br /&gt;
&lt;br /&gt;
Note the roles here are in perspective of the initiator. They may switch automatically in bidirectional only connections. See [[http://en.wikipedia.org/wiki/Flow_(psychology)|Flow_(psychology)]]. Fallback to unidirectional connections is optional (see VWRAP), yet that implies static initiation. A non-intrusive proxy in between a bidirectional connection and a unidirectional connection may appear ideal. The unidirectional connection between Snowglobe (client) and the Second Life (server) is ideal for a static initiation, which can be a backbone for various processes that create bidirectional connections (primarily within a firewalled, multi-headed client domain). Authentication levels and connection security schemes may vary upon implementation (highly demanded by VWRAP/IETF for such flexibility, possibly closed-augmented levels). Note that use-cases exist that request security and authentication without traditional textual user and password means.&lt;br /&gt;
&lt;br /&gt;
[&amp;quot;Feature Freeze&amp;quot;: Possible models yet to be demonstrated may include (or may never be implemented) resources for stationary and mobile environments. In this sense, mobile means where the presence of the avatar may authenticate from different clients. Stationary means that capabilities and their roles may have persistent values, like InterfaceStartupCapability below. For example, ray-casting may allow to see without being able to change and no need to expose original data. There are some &amp;quot;obvious&amp;quot; applications for stationary roles.]&lt;br /&gt;
&lt;br /&gt;
=== Forward: ===&lt;br /&gt;
&lt;br /&gt;
Attempt to negotiate a connection. A reverse /Interface/Connect query is made by this forward interface (which is the Snowglobe Viewer when InterfaceStartupCapability is unset).&lt;br /&gt;
&lt;br /&gt;
An optional session cookie is set as an extra security measure to in order to lock-down a single client/server connection.&lt;br /&gt;
&lt;br /&gt;
=== Reverse: ===&lt;br /&gt;
&lt;br /&gt;
The application that requested the initial connection also listens for this query. On a successful query the Snowglobe&#039;s ControlGroup variable &amp;quot;InterfaceStartupCapability&amp;quot; is set to http://host:port/Interface/Connect, as detected by the forward interface. Note that Snowglobe Viewer may later use InterfaceStartupCapability to automatically connect by /Interface/Connect in a role switch.&lt;br /&gt;
&lt;br /&gt;
A bidirectional paradigm can be created here that is unlike traditional unidirectional client/server security models, yet this bidirectional paradigm assumes connections do not fallback to unidirectional capabilities. The bidirectional paradigm may also include the intention that unhandled capabilities or query transitions should be encapsulated by crash prevention rather than default to exceptional states. The implementation of the transport layer should not exceptionalize it abstraction, or further transitions become impossible. General rule is that original content cannot be made impossible, and the basis of this is reality itself: that&#039;s Life™.&lt;br /&gt;
&lt;br /&gt;
[It cannot be stressed enough that in the &amp;quot;flow&amp;quot; of the bidirectional paradigm that if a bug is found: 1) Don&#039;t immediately &amp;quot;fix&amp;quot; bug; 2) instead, ensure baby-safe style prevention; 3) then determine if self found buried treasure, or 4) let it live and die another day. For every fire-wall, there is an ice-wall... is this not clear enough?]&lt;br /&gt;
&lt;br /&gt;
== /Interface/Status ==&lt;br /&gt;
&lt;br /&gt;
A message that describes the changed state of the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== connect ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| (host)&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| port&lt;br /&gt;
| : integer&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Host is optional for remote sessions. Note that multi-headed clients may appear similar to remote.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== result ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Version string is only informational, as given or detected capabilities are more significant.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992812</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992812"/>
		<updated>2010-08-01T17:54:32Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* Forward: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Connect&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;connect &amp;lt;- &amp;amp;result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/UI&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { UI: bool } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Status&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { Status: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Connect ==&lt;br /&gt;
&lt;br /&gt;
Note the roles here are in perspective of the initiator. They may switch automatically in bidirectional only connections. See [[http://en.wikipedia.org/wiki/Flow_(psychology)|Flow_(psychology)]]. Fallback to unidirectional connections is optional (see VWRAP), yet that implies static initiation. A non-intrusive proxy in between a bidirectional connection and a unidirectional connection may appear ideal. The unidirectional connection between Snowglobe (client) and the Second Life (server) is ideal for a static initiation, which can be a backbone for various processes that create bidirectional connections (primarily within a firewalled, multi-headed client domain). Authentication levels and connection security schemes may vary upon implementation (highly demanded by VWRAP/IETF for such flexibility, possibly closed-augmented levels). Note that use-cases exist that request security and authentication without traditional textual user and password means.&lt;br /&gt;
&lt;br /&gt;
[&amp;quot;Feature Freeze&amp;quot;: Possible models yet to be demonstrated may include (or may never be implemented) resources for stationary and mobile environments. In this sense, mobile means where the presence of the avatar may authenticate from different clients. Stationary means that capabilities and their roles may have persistent values, like InterfaceStartupCapability below. For example, ray-casting may allow to see without being able to change and no need to expose original data. There are some &amp;quot;obvious&amp;quot; applications for stationary roles.]&lt;br /&gt;
&lt;br /&gt;
=== Forward: ===&lt;br /&gt;
&lt;br /&gt;
Attempt to negotiate a connection. A reverse /Interface/Connect query is made by this forward interface (which is the Snowglobe Viewer when InterfaceStartupCapability is unset).&lt;br /&gt;
&lt;br /&gt;
An optional session cookie is set as an extra security measure to in order to lock-down a single client/server connection.&lt;br /&gt;
&lt;br /&gt;
=== Reverse: ===&lt;br /&gt;
&lt;br /&gt;
The application that requested the initial connection also listens for this query. On a successful query the Snowglobe&#039;s ControlGroup variable &amp;quot;InterfaceStartupCapability&amp;quot; is set to http://host:port/Interface/Connect, as detected by the forward interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Status ==&lt;br /&gt;
&lt;br /&gt;
A message that describes the changed state of the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== connect ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| (host)&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| port&lt;br /&gt;
| : integer&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Host is optional for remote sessions. Note that multi-headed clients may appear similar to remote.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== result ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Version string is only informational, as given or detected capabilities are more significant.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992802</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992802"/>
		<updated>2010-08-01T17:39:40Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: Security &amp;amp; Authentication&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Connect&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;connect &amp;lt;- &amp;amp;result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/UI&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { UI: bool } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Status&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { Status: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Connect ==&lt;br /&gt;
&lt;br /&gt;
Note the roles here are in perspective of the initiator. They may switch automatically in bidirectional only connections. See [[http://en.wikipedia.org/wiki/Flow_(psychology)|Flow_(psychology)]]. Fallback to unidirectional connections is optional (see VWRAP), yet that implies static initiation. A non-intrusive proxy in between a bidirectional connection and a unidirectional connection may appear ideal. The unidirectional connection between Snowglobe (client) and the Second Life (server) is ideal for a static initiation, which can be a backbone for various processes that create bidirectional connections (primarily within a firewalled, multi-headed client domain). Authentication levels and connection security schemes may vary upon implementation (highly demanded by VWRAP/IETF for such flexibility, possibly closed-augmented levels). Note that use-cases exist that request security and authentication without traditional textual user and password means.&lt;br /&gt;
&lt;br /&gt;
[&amp;quot;Feature Freeze&amp;quot;: Possible models yet to be demonstrated may include (or may never be implemented) resources for stationary and mobile environments. In this sense, mobile means where the presence of the avatar may authenticate from different clients. Stationary means that capabilities and their roles may have persistent values, like InterfaceStartupCapability below. For example, ray-casting may allow to see without being able to change and no need to expose original data. There are some &amp;quot;obvious&amp;quot; applications for stationary roles.]&lt;br /&gt;
&lt;br /&gt;
=== Forward: ===&lt;br /&gt;
&lt;br /&gt;
Attempt to negotiate a connection. A reverse /Interface/Connect query is made by this forward interface, which is the Snowglobe Viewer.&lt;br /&gt;
&lt;br /&gt;
An optional session cookie is set as an extra security measure to in order to lock-down a single client/server connection.&lt;br /&gt;
&lt;br /&gt;
=== Reverse: ===&lt;br /&gt;
&lt;br /&gt;
The application that requested the initial connection also listens for this query. On a successful query the Snowglobe&#039;s ControlGroup variable &amp;quot;InterfaceStartupCapability&amp;quot; is set to http://host:port/Interface/Connect, as detected by the forward interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Status ==&lt;br /&gt;
&lt;br /&gt;
A message that describes the changed state of the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== connect ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| (host)&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| port&lt;br /&gt;
| : integer&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Host is optional for remote sessions. Note that multi-headed clients may appear similar to remote.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== result ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
Version string is only informational, as given or detected capabilities are more significant.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ControlGroup&amp;diff=992782</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/ControlGroup</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ControlGroup&amp;diff=992782"/>
		<updated>2010-08-01T14:34:05Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | [[#/ControlGroup|/ControlGroup]]&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ &amp;amp;[[#group|group]] , ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | [[#/ControlGroup/&amp;lt;group&amp;gt;|/ControlGroup/&amp;lt;group&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| ?? &amp;amp;[[#group|group]] &amp;lt;- [ &amp;amp;[[#defvar|defvar]], ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | [[#/ControlGroup/&amp;lt;group&amp;gt;/&amp;lt;identifier&amp;gt;|/ControlGroup/&amp;lt;group&amp;gt;/&amp;lt;identifier&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| ?? &amp;amp;[[#group|group]] ?? &amp;amp;[[#identifier|identifier]] &amp;lt;- &amp;amp;[[#curvar|curvar]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ControlGroup ==&lt;br /&gt;
&lt;br /&gt;
Response is a list of control &amp;amp;[[#group|group]]s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ControlGroup/&amp;lt;group&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Response is a list of valid variable &amp;amp;[[#identifier|identifier]]s in a controlgroup with default settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ControlGroup/&amp;lt;group&amp;gt;/&amp;lt;identifier&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Response is the current settings for the specific variable identified&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== group ==&lt;br /&gt;
&lt;br /&gt;
&amp;amp;group = string&lt;br /&gt;
&lt;br /&gt;
Name of the ControlGroup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== identifier ==&lt;br /&gt;
&lt;br /&gt;
&amp;amp;identifier = string&lt;br /&gt;
&lt;br /&gt;
Name of the ControlGroup variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== defvar ==&lt;br /&gt;
&lt;br /&gt;
&amp;amp;defvar =&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| identifier&lt;br /&gt;
| : &amp;amp;[[#identifier|identifier]],&lt;br /&gt;
|-&lt;br /&gt;
| persist&lt;br /&gt;
| : boolean,&lt;br /&gt;
|-&lt;br /&gt;
| comment&lt;br /&gt;
| : string,&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| : int,&lt;br /&gt;
|-&lt;br /&gt;
| value&lt;br /&gt;
| : llsd&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== curvar ==&lt;br /&gt;
&lt;br /&gt;
&amp;amp;curvar = llsd&lt;br /&gt;
&lt;br /&gt;
The current value of ControlGrounp variable as nested LLSD.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992642</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992642"/>
		<updated>2010-08-01T03:16:12Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Connect&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;connect &amp;lt;- &amp;amp;result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/UI&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { UI: bool } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Status&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { Status: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Connect ==&lt;br /&gt;
&lt;br /&gt;
=== Forward: ===&lt;br /&gt;
&lt;br /&gt;
Attempt to negotiate a connection. A reverse /Interface/Connect query is made by this forward interface, which is the Snowglobe Viewer.&lt;br /&gt;
&lt;br /&gt;
An optional session cookie is set as an extra security measure to in order to lock-down a single client/server connection.&lt;br /&gt;
&lt;br /&gt;
=== Reverse: ===&lt;br /&gt;
&lt;br /&gt;
The application that requested the initial connection also listens for this query. On a successful query the Snowglobe&#039;s ControlGroup variable &amp;quot;InterfaceStartupCapability&amp;quot; is set to http://host:port/Interface/Connect, as detected by the forward interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Status ==&lt;br /&gt;
&lt;br /&gt;
A message that describes the changed state of the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== connect ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| (host)&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| port&lt;br /&gt;
| : integer&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Host is optional for remote sessions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== result ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
|&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992632</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Interface&amp;diff=992632"/>
		<updated>2010-08-01T03:13:40Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Connect&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;connect &amp;lt;- &amp;amp;result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/UI&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { UI: bool } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Interface/Status&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { Status: string } &amp;lt;- { status: string }&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Connect ==&lt;br /&gt;
&lt;br /&gt;
=== Forward: ===&lt;br /&gt;
&lt;br /&gt;
Attempt to negotiate a connection. A reverse /Interface/Connect query is made by this forward interface, which is the Snowglobe Viewer.&lt;br /&gt;
&lt;br /&gt;
An optional session cookie is set as an extra security measure to in order to lock-down a single client/server connection.&lt;br /&gt;
&lt;br /&gt;
=== Reverse: ===&lt;br /&gt;
&lt;br /&gt;
The application that requested the initial connection also listens for this query. On a successful query the Snowglobe&#039;s ControlGroup variable &amp;quot;InterfaceStartupCapability&amp;quot; is set to http://host:port/Interface/Connect, as detected by the forward interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Interface/Status ==&lt;br /&gt;
&lt;br /&gt;
A message that describes the changed state of the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== connect ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| (host)&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| port&lt;br /&gt;
| : integer&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Host is optional for remote sessions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== result ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| session&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
|&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Inventory&amp;diff=992602</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Inventory</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Inventory&amp;diff=992602"/>
		<updated>2010-08-01T02:32:10Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Asset(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;status }, ... ] ( ?? uuid &amp;lt;- &amp;amp;status )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Item(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;item }, ... ] ( ?? uuid &amp;lt;- &amp;amp;item )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Root&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- { ID: uuid }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Category(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;category }, ... ] ( ?? uuid &amp;lt;- &amp;amp;category )&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Asset(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query used to localize assets. Asynchronously queries /Asset/Loaded as they become available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Item(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;category&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Root ==&lt;br /&gt;
&lt;br /&gt;
Response is root category uuid of agent&#039;s inventory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Category(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;category&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== category ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Base&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Categories&lt;br /&gt;
| : [ uuid, ... ]&lt;br /&gt;
|-&lt;br /&gt;
| Items&lt;br /&gt;
| : [ uuid, ... ]&lt;br /&gt;
|-&lt;br /&gt;
| Data&lt;br /&gt;
| : llsd&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== item ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| *data*&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| (Active)&lt;br /&gt;
| : bool&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Map elements and data are implementation specific, yet currently uses same LLSD format as internal to Snowglobe. Active is optional map entry that appears for gestures.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Inventory&amp;diff=992582</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Inventory</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Inventory&amp;diff=992582"/>
		<updated>2010-08-01T02:31:24Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Asset(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;status }, ... ] ( ?? uuid &amp;lt;- &amp;amp;status )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Item(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;item }, ... ] ( ?? uuid &amp;lt;- &amp;amp;item )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Root&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- { ID: uuid }&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Inventory/Category/&amp;lt;uuid&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET (POST)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;category }, ... ] ( ?? uuid &amp;lt;- &amp;amp;category )&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Asset(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query used to localize assets. Asynchronously queries /Asset/Loaded as they become available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Item(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;category&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Root ==&lt;br /&gt;
&lt;br /&gt;
Response is root category uuid of agent&#039;s inventory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Inventory/Category(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;category&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== category ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| : integer&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Base&lt;br /&gt;
| : uuid&lt;br /&gt;
|-&lt;br /&gt;
| Categories&lt;br /&gt;
| : [ uuid, ... ]&lt;br /&gt;
|-&lt;br /&gt;
| Items&lt;br /&gt;
| : [ uuid, ... ]&lt;br /&gt;
|-&lt;br /&gt;
| Data&lt;br /&gt;
| : llsd&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== item ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| *data*&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| (Active)&lt;br /&gt;
| : bool&lt;br /&gt;
|}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Map elements and data are implementation specific, yet currently uses same LLSD format as internal to Snowglobe. Active is optional map entry that appears for gestures.&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/GestureManager&amp;diff=992562</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/GestureManager</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/GestureManager&amp;diff=992562"/>
		<updated>2010-08-01T01:53:17Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /GestureManager/Items&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /GestureManager/Item/&amp;lt;uuid&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| (deprecated, use /Inventor/Item and /Asset/Gesture)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /GestureManager/PlayGesture/&amp;lt;uuid&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;empty &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /GestureManager/Items ==&lt;br /&gt;
&lt;br /&gt;
Response is a list of UUIDs of active gestures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /GestureManager/Item/&amp;lt;uuid&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
(deprecated, use /Inventor/Item and /Asset/Gesture)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /GestureManager/PlayGesture/&amp;lt;uuid&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Start a gesture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== empty ==&lt;br /&gt;
&lt;br /&gt;
Valid empty LLSD payload (i.e. &amp;quot;&amp;lt;llsd/&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;, consistently&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/GestureManager&amp;diff=992552</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/GestureManager</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/GestureManager&amp;diff=992552"/>
		<updated>2010-08-01T01:52:29Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /GestureManager/Items&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /GestureManager/Item/&amp;lt;uuid&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| (deprecated, use /Inventor/Item and /Asset/Gesture)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /GestureManager/PlayGesture/&amp;lt;uuid&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;empty &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /GestureManager/Items ==&lt;br /&gt;
&lt;br /&gt;
Response is a list of UUIDs of active gestures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /GestureManager/Item/&amp;lt;uuid&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
(deprecated, use /Inventor/Item and /Asset/Gesture)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== empty ==&lt;br /&gt;
&lt;br /&gt;
Valid empty LLSD payload (i.e. &amp;quot;&amp;lt;llsd/&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;, consistently &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /GestureManager/PlayGesture/&amp;lt;uuid&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Start a gesture&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/GestureManager&amp;diff=992542</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/GestureManager</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/GestureManager&amp;diff=992542"/>
		<updated>2010-08-01T01:52:00Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /GestureManager/Items&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /GestureManager/Item/&amp;lt;uuid&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| (deprecated, use /Inventor/Item and /Asset/Gesture)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /GestureManager/PlayGesture/&amp;lt;uuid&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; &amp;amp;empty &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /GestureManager/Items ==&lt;br /&gt;
&lt;br /&gt;
Response is a list of UUIDs of active gestures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /GestureManager/Item/&amp;lt;uuid&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
(deprecated, use /Inventor/Item and /Asset/Gesture)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== empty ==&lt;br /&gt;
&lt;br /&gt;
Valid empty LLSD payload (i.e. &amp;quot;&amp;lt;llsd/&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;, consistently &lt;br /&gt;
&lt;br /&gt;
== /GestureManager/PlayGesture/&amp;lt;uuid&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Start a gesture&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources&amp;diff=992532</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources&amp;diff=992532"/>
		<updated>2010-08-01T01:40:24Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* SNOW-375 Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This is a dictionary of all SNOW-375 resources.&lt;br /&gt;
&lt;br /&gt;
Please see the main [[User:Dzonatas_Sol/SNOW-375|SNOW-375]] page for overview and technical documentation.&lt;br /&gt;
&lt;br /&gt;
== SNOW-375 Resources ==&lt;br /&gt;
&lt;br /&gt;
Resources are grouped by major representations. These are still being developed, yet a basic set exists that enables communication and gesture activation.&lt;br /&gt;
&lt;br /&gt;
Resources may have more than one method. Each one is described as based on LLIDL. Parenthesized resources are denote complex queries, which may automatically transition simpler queries. Complex queries are usually used to group multiple queries together, and it includes each result code.&lt;br /&gt;
&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/ControlGroup|ControlGroup]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/Agent|Agent]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/Asset|Asset]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker|AvatarTracker]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox|ChatterBox]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/GestureManager|GestureManager]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/Inventory|Inventory]]&lt;br /&gt;
* [[User:Dzonatas_Sol/SNOW-375_Resources/Interface|Interface]]&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=992522</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/ChatterBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=992522"/>
		<updated>2010-08-01T01:29:05Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/Message&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { message: string, session: uuid, to: uuid, dialog: integer } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/StartGroupSession&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { session: uuid } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /ChatterBox/Message ==&lt;br /&gt;
&lt;br /&gt;
Deliver a message to a group/IM channel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  /ChatterBox/StartGroupSession ==&lt;br /&gt;
&lt;br /&gt;
Initiate a group chat session&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;, consistently&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=992512</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/ChatterBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/ChatterBox&amp;diff=992512"/>
		<updated>2010-08-01T01:27:56Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/Message&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { message: string, session: uuid, to: uuid, dialog: integer } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /ChatterBox/StartGroupSession&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST&lt;br /&gt;
| -&amp;gt; { session: uuid } &amp;lt;- &amp;amp;status&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== /ChatterBox/Message ==&lt;br /&gt;
&lt;br /&gt;
Deliver a message to a group/IM channel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  /ChatterBox/StartGroupSession ==&lt;br /&gt;
&lt;br /&gt;
Initiate a group chat session&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
&lt;br /&gt;
{ status: string }&lt;br /&gt;
&lt;br /&gt;
Value is &amp;quot;ok&amp;quot;, consistently&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=992492</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/AvatarTracker</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=992492"/>
		<updated>2010-08-01T01:19:38Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friends&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;friend }, ... ] ( ?? uuid &amp;lt;- &amp;amp;friend )&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friends ==&lt;br /&gt;
&lt;br /&gt;
Response is the UUID list of the agent&#039;s friends and basic status of each&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains information for a specified friend UUID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== friend ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Online&lt;br /&gt;
| : bool&lt;br /&gt;
|-&lt;br /&gt;
| First&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Last&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=992482</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/AvatarTracker</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=992482"/>
		<updated>2010-08-01T01:18:49Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: /* /AvatarTracker/Friend(/) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friends&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;friend }, ... ] ( ?? uuid &amp;lt;- &amp;amp;friend )&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friends ==&lt;br /&gt;
&lt;br /&gt;
Response is the UUID list of the agent&#039;s friends and basic status of each&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains information for a specified friend UUID&lt;br /&gt;
&lt;br /&gt;
== friend ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Online&lt;br /&gt;
| : bool&lt;br /&gt;
|-&lt;br /&gt;
| First&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Last&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=992472</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/AvatarTracker</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/AvatarTracker&amp;diff=992472"/>
		<updated>2010-08-01T01:15:49Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /AvatarTracker/Friends&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | GET&lt;br /&gt;
| &amp;lt;- [ uuid, ... ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;friend }, ... ] ( ?? uuid &amp;lt;- &amp;amp;friend )&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friends ==&lt;br /&gt;
&lt;br /&gt;
Response is the UUID list of the agent&#039;s friends and basic status of each&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /AvatarTracker/Friend(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Response is a detailed relationship information for a specified friend UUID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== friend ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Online&lt;br /&gt;
| : bool&lt;br /&gt;
|-&lt;br /&gt;
| First&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Last&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Asset&amp;diff=992462</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Asset</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Asset&amp;diff=992462"/>
		<updated>2010-08-01T00:58:25Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Asset/Notecard(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;notecard }, ... ] ( ?? uuid &amp;lt;- &amp;amp;notecard )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Asset/Gesture(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;gesture }, ... ] ( ?? uuid &amp;lt;- &amp;amp;gesture )&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Asset/Notecard(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;notecard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Asset/Gesture(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;gesture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== notecard ==&lt;br /&gt;
&lt;br /&gt;
Asset in nested XML format (translated from &#039;linden notecard format&#039;). Embedded notecard inventory items are nested in &amp;lt;embed&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gesture ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Trigger&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| ReplaceText&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Key&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Asset&amp;diff=992452</id>
		<title>User:Dzonatas Sol/SNOW-375 Resources/Asset</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/SNOW-375_Resources/Asset&amp;diff=992452"/>
		<updated>2010-08-01T00:56:49Z</updated>

		<summary type="html">&lt;p&gt;Dzonatas Sol: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Resource || Method || Description&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Asset/Notecard(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;notecard }, ... ] ( ?? uuid &amp;lt;- &amp;amp;notecard )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | /Asset/Gesture(/&amp;lt;uuid&amp;gt;)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | POST (GET)&lt;br /&gt;
| ?? &#039;s&#039; -&amp;gt; [ uuid , ... ] &amp;lt;- [ { ID: uuid, +&amp;amp;gesture }, ... ] ( ?? uuid &amp;lt;- &amp;amp;gesture )&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Description syntax is only based on LLIDL. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Asset/Notecard(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;notecard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== /Asset/Gesture(/&amp;lt;uuid&amp;gt;) ==&lt;br /&gt;
&lt;br /&gt;
Complex query contains &amp;amp;gesture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;amp;notecard ==&lt;br /&gt;
&lt;br /&gt;
Asset in nested XML format (translated from &#039;linden notecard format&#039;). Embedded notecard inventory items are nested in &amp;lt;embed&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;amp;gesture ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Name&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Trigger&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| ReplaceText&lt;br /&gt;
| : string&lt;br /&gt;
|-&lt;br /&gt;
| Key&lt;br /&gt;
| : string&lt;br /&gt;
|}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
</feed>