<?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=Balp+Allen</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=Balp+Allen"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Balp_Allen"/>
	<updated>2026-05-10T08:53:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Balp_Allen&amp;diff=485172</id>
		<title>User:Balp Allen</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Balp_Allen&amp;diff=485172"/>
		<updated>2009-09-09T20:18:52Z</updated>

		<summary type="html">&lt;p&gt;Balp Allen: Created page with &amp;#039;Hacking in Emerald GreenLife.  DJing at Carange and Blacklist.  {{Plurker}}&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hacking in Emerald GreenLife.&lt;br /&gt;
&lt;br /&gt;
DJing at Carange and Blacklist.&lt;br /&gt;
&lt;br /&gt;
{{Plurker}}&lt;/div&gt;</summary>
		<author><name>Balp Allen</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_Visual_Update&amp;diff=64239</id>
		<title>Talk:Viewer Visual Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_Visual_Update&amp;diff=64239"/>
		<updated>2008-04-18T13:29:57Z</updated>

		<summary type="html">&lt;p&gt;Balp Allen: /* Feedback and Ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thanx for the feedback thus far... ==&lt;br /&gt;
Hello and thanks for the comments! I&#039;m involved with this project, codename &amp;quot;Dazzle&amp;quot;, insofar as helping the Rx Team get the word out to our community. I haven&#039;t read all of these comments in close detail yet, but I appreciate not just the content, but the presentation too.&lt;br /&gt;
&lt;br /&gt;
LordJason Kiesler — thanks for embedding that graphic to communicate what you think of about the button gradients. If anyone else wants to contribute screenshot mockups, please, you&#039;re more than welcome. Since this is a &#039;&#039;visual&#039;&#039; update, those type of aids help.&lt;br /&gt;
&lt;br /&gt;
I also had [http://www.flickr.com/photos/torley/1801183618/ some nice comments on my Flickr photostream], and will be encouraging more... and responding in kind. Appreciatively yours! --[[User:Torley Linden|Torley Linden]] 16:28, 1 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
Great, [http://torley.com/introducing-second-lifes-dazzle-user-interface-update even more Dazzle feedback on my personal blog!] --[[User:Torley Linden|Torley Linden]] 08:04, 5 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
i love the new version :O is fantastic &amp;lt;br&amp;gt;&lt;br /&gt;
the near me bug is fixed exellent &amp;lt;br&amp;gt;&lt;br /&gt;
now i&#039;m bugfixing my purple version&amp;lt;br&amp;gt;&lt;br /&gt;
really a good job benjamin :D --[[User:Aliceinwire Bleac|Aliceinwire Bleac]] 04:56, 12 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Feedback and Ideas ==&lt;br /&gt;
*As far as I&#039;m concerned, one of the gold standard issues for interface usability in this or any other application is the ability to pull pop up menus off the interface. If one can&#039;t do that, it doesn&#039;t matter how pretty they look; they block content and make working in the interface overly difficult. Gotta be able to pull stuff off the interface or it&#039;s more of the same with new candy colors. [Professor Beliveau/5:18SL 10/30/07]&lt;br /&gt;
* In the Mac instructions, if you start with &#039;Make a copy of the Second Life application with &amp;quot;Duplicate&amp;quot; and rename it &amp;quot;Second Life Visual Update&amp;quot;...&#039; and move on from there then the &amp;quot;uninstall&amp;quot; step won&#039;t be needed, and people can more easily compare the two. -- [[User:Argent Stonecutter|Argent Stonecutter]] 06:14, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
* Great work on the graphics! Definitely shows off the potential for what can be done.&lt;br /&gt;
&lt;br /&gt;
Well how novel: ripping off the Mac OS X metallic buttons and giving them an Aqua feel... Well, don&#039;t stop there. Read Apple&#039;s Human Interface Guidelines and implement them. Then we&#039;ll not only have the feel too, but then the whole thing may work as standard instead of being buggy, bloated, roll your own code. We would have international settings and keyboards that worked, standard window behaviour, one menu bar not two, and text editing handling that worked properly, and properly transposed keyboard shorcuts. Get that stuff sorted first then you can think of moving on to skinning.&lt;br /&gt;
: I would like to point out, that SecondLife client is Cross-Platform. If they stuck to the Mac guidelines, then it wouldn&#039;t fit windows or linux. To be honest, as SecondLife is effectively a game, the interface has to be a roll your own (Read Apples guidelines, it actually says that somewhere) --[[User:Nik Woodget|Nik Woodget]] 02:37, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
* Just to introduce the conservative voice *8) while I greatly appreciate thought going into the viewer and all, I wouldn&#039;t say that making the colors prettier and the buttons and icons slicker-looking would be where I&#039;d focus efforts if it was me.  Give me back a tearoffable friends list, let me tear off and move around llDialog() / GroupNotice style dropdowns, make the viewer notice and tell me something useful when packets-in-per-second drops to zero, and other actual functional enhancements would do me a world more good than shinier-looking buttons... [[User:Dale Innis|Dale Innis]] 11:06, 13 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
* Great look, how ever the big problems in the gui layout are net even addressed in this preview. Friends and group was so much more easier to use before the voice release. I really like to get that in the 18.4 viewer nice Linux bug fixes but no working friends list yet in that version. Voice i guess that will come some ware around 2010 at best. I&#039;m not asking for much just two patches from nicholaz. (and probably a hard admittance from someone onside Linden  that new look with friends inside the IM window was a bad idea.) --[[User:Balp Allen|Balp Allen]] 00:36, 14 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
* I Like to add to what I said in November, When I said great look, I assumed that the bad contrast issues was going to get solved before going close to RC status, that this skinnable should be skinnable long before RC status. I took the look as an example on what it could look like not the main and only way. To bad the look today haven&#039;t fixed any of the major issues. Even if we got a friend  s list finally long be fore I hoped on it (and outside dazzle). I&#039;m afraid Dazzle will come and force many users to stay at 1.19 until the day 1.2x something becomes mandatory, many others just screaming and being irritated. There is a patch in the Nicholaz version that could be simply tuned to make all the dazzle, oldstyle look files come into two directories skins\dazzle, skins\oldstyle. To make users more happy I would suggest that LL looks at this issue and slows down on the release plan. 1.18.6 was backed away when it didn&#039;t work, It&#039;s no shame in makeing something ready before releasing and maybe Dazzle is ready by it&#039;s project goals, however phase one with only the new look is for most resident&#039;s only halfway. But now home to test VWR-4575 fix. --[[User:Balp Allen|Balp Allen]] 06:29, 18 April 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Feedback on the style itself ==&lt;br /&gt;
&lt;br /&gt;
*The problem I&#039;m having is with the fact that most of the text in search results is white on a bright blue/gray background, which makes it hard to read. Also, text in profiles and (non-editable) group descriptions is difficult to read for the same reason. I think that adding more contrast would definitely improve the usability (not to mention the accessibility) of this skin. -- ????&lt;br /&gt;
&lt;br /&gt;
The theme seems to be mostly based on one of a variety of &amp;quot;glossy&amp;quot; 3d themes that have become popular in UNIX/X11 environments. I would much rather see the glossiness eliminated and something less overpowering being used as inspiration.&lt;br /&gt;
&lt;br /&gt;
Specific points:&lt;br /&gt;
:* With a light background ALL the text needs to be dark.&lt;br /&gt;
:* The window close and minimize buttons look smaller in this style, even if they aren&#039;t, and I keep slowing down to hit them more precisely.&lt;br /&gt;
:* The translucent menu bar is an improvement. It needs to extend under the menus themselves, of course. The backdrop for the button bars on the bottom should be translucent as well, for symmetry... and with the new style I don&#039;t think the little &amp;quot;loops&amp;quot; over the buttons above the chat bar are really useful.&lt;br /&gt;
:* The glossiness of the buttons is a problem, and they also look more like tabs than buttons. A flatter more &amp;quot;matte&amp;quot; style would work better.&lt;br /&gt;
:* The slight border around the chat and nametags is VERY nice.&lt;br /&gt;
:* The 3d look of hover text is not so good, I think because it&#039;s light. The light colored pie menu is &#039;&#039;really&#039;&#039; a problem.&lt;br /&gt;
:* The inventory and appearance editor seem significantly less professional.&lt;br /&gt;
:At the moment I think the original style is preferrable. I would say that the dark color scheme works better, particularly for translucent windows... if the ghosted windows could turn dark (but with light text) that would work, but that&#039;s probably more than XUI can handle. -- [[User:Argent Stonecutter|Argent Stonecutter]] 06:25, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
*I&#039;m not a fan of square buttons.&lt;br /&gt;
*Like Argent I struggle with some of the light backgrounds&lt;br /&gt;
*Would it be possible to have an instruction page? This file does... for all the images. I know its possible to open them all, and I will, but pointers for how to tweak what be nice. I&#039;m going to try a nicer (for my eyes) skin with greens, similar to the theme I&#039;ve got on my mac menus, and hack some buttons, but it will take a while to get right because I&#039;m flying blind (particularly for .j2c&#039;s that don&#039;t automatically preview for me). --[[User:Eloise Pasteur|Eloise Pasteur]] 06:53, 22 October 2007 (PDT)&lt;br /&gt;
:* Good print, J2Cs aren&#039;t well supported in bitmap editors yet. -- [[User:Argent Stonecutter|Argent Stonecutter]] 09:14, 22 October 2007 (PDT)&lt;br /&gt;
:* In the textures folder is a textures.xml file.  This is the mapping {purpose}.tga -&amp;gt; UUID.{any extension} --[[User:Thraxis Epsilon|Thraxis Epsilon]] 11:51, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
I too struggle with the chat history and permission/worn status in inventory, as it&#039;s light text on a light background, but I hope you&#039;ll correct this by darkening the text. I like dark text on a light background very much... but OTOH I can understand how in a dark environment, you might want the opposite, sort of like the dashboard on your car... can it be made skinnable, so people can have what they prefer? (Changing with time of day or ambient lighting is probably a bit much to ask for, but would be very cool.) --[[User:Melissa Yeuxdoux|Melissa Yeuxdoux]] 16:23, 2 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
=== Similarity to Mac/Aqua ===&lt;br /&gt;
Well how novel: ripping off the Mac OS X metallic buttons and giving them an Aqua feel... Well, don&#039;t stop there. Read Apple&#039;s Human Interface Guidelines and implement them. Then we&#039;ll not only have the feel too, but then the whole thing may work as standard instead of being buggy, bloated, roll your own code. We would have international settings and keyboards that worked, standard window behaviour, one menu bar not two, and text editing handling that worked properly, and properly transposed keyboard shorcuts. Get that stuff sorted first then you can think of moving on to skinning.&lt;br /&gt;
: I would like to point out, that SecondLife client is Cross-Platform. If they stuck to the Mac guidelines, then it wouldn&#039;t fit windows or linux. To be honest, as SecondLife is effectively a game, the interface has to be a roll your own (Read Apples guidelines, it actually says that somewhere) --[[User:Nik Woodget|Nik Woodget]] 02:37, 22 October 2007 (PDT)&lt;br /&gt;
:: I don&#039;t think it looks Mac-like at all. In fact while Apple popularized the glossy look the &amp;quot;shiny metallic&amp;quot; look isn&#039;t really their schtick, and they have been moving away from the aggressive glossiness of the early OS X versions to a smoother and more professional look in Panther and Tiger.  -- [[User:Argent Stonecutter|Argent Stonecutter]] 18:02, 22 October 2007 (PDT)&lt;br /&gt;
:::I personally wouldn’t complain if they implemented as much of Apple’s HIG as possible. I wouldn’t expect them to get rid of the in-window menubar, but it would be nice if things like keyboard layouts worked properly. —[[User:Frungi Stastny|Frungi Stastny]] 06:53, 23 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
=== Icons ===&lt;br /&gt;
&lt;br /&gt;
The icons representing prims in the object builder are too small. It is quite difficult to distinguish between similar prims as, for example, the cone and the semicone.--[[User:Eadoin Welles|Eadoin Welles]] 10:22, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not loving it... Although I do like some of the icons but color wise and color balance theme are killing my eyes.  The whole &amp;quot;gloss jem&amp;quot; buttons from Window Vista and OS Mac got really really old so fast.  For me, I&#039;d like a dark theme.   Something more like this theme. [[http://www.wincustomize.com/zoom.aspx?skinid=4617&amp;amp;libid=1]] --[[User:Vincent Nacon|Vincent Nacon]] 12:32, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think the icons on the map or in other windows should be changed from the standard client unless absolutely necessary... and again I don&#039;t think that encapsulating the icons is really a good idea. -- [[User:Argent Stonecutter|Argent Stonecutter]] 18:06, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
I really like the new icons in the inventory, they look much nicer than the old ones, however, the icons on the map, and the new ones in the title bar are really hard to read. Even from 5 inches away I still can&#039;t tell what that thing in the classifieds icon is supposed to be. It looks like two bars and a clock or a lip. The title bar land for sale icon is also really hard to read since you can&#039;t really see the $ unless you get really close to the screen. And I think the telehub icon might have too much detail in it for being so small. When you zoom all the way out on the map and see them all it gets really messy. --[[User:Kevin Susenko|Kevin Susenko]] 08:42, 8 December 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
I have to say I am underwhelmed by the icon set. Have you considered the [http://en.wikipedia.org/wiki/Tango_Desktop_Project Tango Desktop Project]? The Tango Project seeks to create a consistent graphical user interface experience across applications and platforms. IMHO, the quality of their icon sets is very high. Have a look at the icon sets and [http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines style guidelines on their website]. &amp;amp;mdash; [[User:Yuu Nakamichi|Yuu Nakamichi]] 15:21, 2 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Additional suggestions ==&lt;br /&gt;
This section should be kept for suggestions that are really beyond the scope of a theme change.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Monitor Support ===&lt;br /&gt;
&lt;br /&gt;
Would like more than anything to see the UI windows capable of being moved onto a second monitor off the main viewer window. Now that would be very cool and make life a whole lot easier.&lt;br /&gt;
:This would also mean making that the second life viewer would have to use system controls. Again its a pain for cross-platform software. Though not impossible. --[[User:Nik Woodget|Nik Woodget]] 02:38, 22 October 2007 (PDT)&lt;br /&gt;
::Why would this require using system controls ?&lt;br /&gt;
::[[User:SignpostMarv Martin|SignpostMarv Martin]] 06:59, 22 October 2007 (PDT)&lt;br /&gt;
:::The UI in Second Life is part of the OpenGL rendering pipeline. In order for the controls to be seperated from the main window they would have to be contained in seperate OS controls. Maybe not system independent controls, perhaps custom controls rendered into borderless windows might work. --[[User:Nik Woodget|Nik Woodget]] 02:08, 28 November 2007 (PST)&lt;br /&gt;
:::: Aren&#039;t there free open-source cross platform systems already out there to do stuff like that?--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:32, 13 November 2007 (PST)&lt;br /&gt;
::::: Possibly, do you have any you can suggest? --[[User:Nik Woodget|Nik Woodget]] 02:08, 28 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Let me add my support for multiple monitors with one dedicated to menus and controls to keep the main view screen wide open. This would be huge. [[User:Ralph Doctorow|Ralph Doctorow]] 07:33, 25 January 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
:In addition to people with large or multiple monitors, people with slower computers would be able to comfortably run the main 3D viewer window at 640x480, and keep text-only windows off to the side for greater visibility.  Fancy &amp;quot;skin&amp;quot; effects aside, there&#039;s no need for most of the windows to be OpenGL-accelerated. [[User:Creem Pye|Creem Pye]] 11:26, 31 January 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
=== Mac Support ===&lt;br /&gt;
&lt;br /&gt;
For the Mac port, at least, the way that command and control are reversed is really hard to deal with. It would be nice if there was an option to reverse the command and control keys &#039;&#039;for XUI only&#039;&#039;. -- [[User:Argent Stonecutter|Argent Stonecutter]] 06:07, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
Whilst we&#039;re talking about this - can we add a request for a proper implementation of the Mac GUIs, without the irritating internal menus as well please. Swap the menu bar menus the way the GUI guidelines suggest. It&#039;s a different code base after all. I may have got used to this structure, but it&#039;s one bit of muscle memory I&#039;d be very happy to get rid of! --[[User:Eloise Pasteur|Eloise Pasteur]] 15:56, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
=== Widgets ===&lt;br /&gt;
&lt;br /&gt;
I like the new interface. It is surely better than the black one but, by the way, the real value would be to have a choice of skins which, in my understanding, is the main goal of this test. I think that another improvement might be to have the possibility to add gadgets. For example, I would like to have, close to the PDT time, also the local time, since most of events that I prepare are located in my country, and I prefer to use local time rather than useless PDT time. Rather than adding this feature, which may be of no interest to USA people and surely not at all to California people, you may give us the possibility to create gadgets, like in Google or Vista. So I could develop a small gadget to see time in various timezones, another one that automatically convert Linden dollars to various currencies, and so forth. By facilitating the development of user gadgets, you would dramatically improve the SL interface without having to develop them yourself. IMHO  Greetings from Rome, Italy --[[User:Eadoin Welles|Eadoin Welles]] 10:19, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
==== Vector Graphics Widgets ====&lt;br /&gt;
&lt;br /&gt;
Would like to see a flash layer, where flash widgets could communicate to the UI via an API and either replace or partially replace bits and pieces of it.  This could be a big market for companies wishing to have customized clients but still take advantage of Linden Labs robust source.&lt;br /&gt;
:I would actively NOT want to see a layer that can only be programmed with a closed system like flash. -- [[User:Argent Stonecutter|Argent Stonecutter]] 06:07, 22 October 2007 (PDT)&lt;br /&gt;
::SVG + Javascript would work- uBrowser would be the place to start with that.&lt;br /&gt;
::[[User:SignpostMarv Martin|SignpostMarv Martin]] 06:59, 22 October 2007 (PDT)&lt;br /&gt;
:::That&#039;s one approach. Javascript based controls are used in a number of programs: Firefox (XUL), Mac OS (Dashboard), Yahoo Widgets (for that matter Adobe&#039;s Actionscript has converged on Javascript). I&#039;m not sure that SVG is the way to go, but that&#039;s not an objection... I just don&#039;t know wnough about SVG. Another possibility is to use Tk, since that has bindings for several scripting languages already. All this is somewhat out of the scope of a theme change. -- [[User:Argent Stonecutter|Argent Stonecutter]] 08:47, 22 October 2007 (PDT)&lt;br /&gt;
::::SVG would provide an &amp;quot;open&amp;quot; system for vector graphics where flash provides a &amp;quot;closed&amp;quot; system.&lt;br /&gt;
::::[[User:SignpostMarv Martin|SignpostMarv Martin]] 12:41, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
=== Skin Support ===&lt;br /&gt;
I&#039;d like to suggest Hue changer for quick custom theme color for users.... However, for graphic artist like myself, I would like to able customize the skin with ease.   Just think more like WinAmp 5. --[[User:Vincent Nacon|Vincent Nacon]] 12:32, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
is also good to make a little program in php for the second life site or a executable for create new skin in more simple way &lt;br /&gt;
&lt;br /&gt;
this is my purple skin :)&lt;br /&gt;
[[Image:Dazzle_purple_version.JPG|thumb|300px|Purple Skin]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Aliceinwire Bleac|Aliceinwire Bleac]] 04:56, 7 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
* Purple skin made me smile a lot! Thanx for sharing that with Ben and I, Aliceinwire! /me open-secretly hopes for a green-and-pink skin. :D --[[User:Torley Linden|Torley Linden]] 11:26, 7 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
===Too Little===&lt;br /&gt;
Just looking at the pic...except for the icons, which are probably needed, I&#039;m underwhelmed.  It&#039;s the same old interface except for being white and shinier (IMO, too shiny), and the consensus among people I know tends torward the opinion that the UI needs to be reinvented, not just polished, and I&#039;d rather see development time being taken on that.  Take as an example the work being done by e-Sheep with their new custom client.  I&#039;m not saying they&#039;ve done things that I necescarily want to see but they&#039;ve got their goals in the right place.  I could list a number of UI suggestions and pet peeves but this isn&#039;t the place for it...some day I wil actualy get around to putting them on the JIRA.  That said, I agree with the people who mentioned skins and even just being able to set UI color preferences from the preferences menu; that by itself would address a lot of issues. [[User:Elle Pollack|Elle Pollack]] 15:00, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
===Enhancement?===&lt;br /&gt;
I would love  to beable to collect a Landmark while viewing another resident&#039;s profile picks.  --[[User:Sabina Stenvaag] , 1 nov 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Buttons. ==&lt;br /&gt;
&lt;br /&gt;
The gradient effect on the buttons need to weigh one way or the other. Having the &#039;line&#039; go right through the text with as much contrast as it has, is distracting, and hard on the eyes.&lt;br /&gt;
I would suggest more smoothing to it as well.&lt;br /&gt;
Here is a mock up of what I mean. The lower left button is the only one modified.&lt;br /&gt;
[[Image:NewViewer_button_mockup.jpg|mock up]]&lt;br /&gt;
&lt;br /&gt;
== what is wrong with light text on dark background? ==&lt;br /&gt;
&lt;br /&gt;
for me, light text on dark background is way more comfortable for my eyes, I find light backgrounds kinda too aggressive :/&lt;br /&gt;
&lt;br /&gt;
why not continue with the dark backgrounds? imitating rl paper on software is kinda lame on my opinion :\ --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 01:08, 13 November 2007 (PST)&lt;/div&gt;</summary>
		<author><name>Balp Allen</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_Visual_Update&amp;diff=40324</id>
		<title>Talk:Viewer Visual Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_Visual_Update&amp;diff=40324"/>
		<updated>2007-11-14T08:36:00Z</updated>

		<summary type="html">&lt;p&gt;Balp Allen: /* Feedback and Ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thanx for the feedback thus far... ==&lt;br /&gt;
Hello and thanks for the comments! I&#039;m involved with this project, codename &amp;quot;Dazzle&amp;quot;, insofar as helping the Rx Team get the word out to our community. I haven&#039;t read all of these comments in close detail yet, but I appreciate not just the content, but the presentation too.&lt;br /&gt;
&lt;br /&gt;
LordJason Kiesler — thanks for embedding that graphic to communicate what you think of about the button gradients. If anyone else wants to contribute screenshot mockups, please, you&#039;re more than welcome. Since this is a &#039;&#039;visual&#039;&#039; update, those type of aids help.&lt;br /&gt;
&lt;br /&gt;
I also had [http://www.flickr.com/photos/torley/1801183618/ some nice comments on my Flickr photostream], and will be encouraging more... and responding in kind. Appreciatively yours! --[[User:Torley Linden|Torley Linden]] 16:28, 1 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
Great, [http://torley.com/introducing-second-lifes-dazzle-user-interface-update even more Dazzle feedback on my personal blog!] --[[User:Torley Linden|Torley Linden]] 08:04, 5 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
i love the new version :O is fantastic &amp;lt;br&amp;gt;&lt;br /&gt;
the near me bug is fixed exellent &amp;lt;br&amp;gt;&lt;br /&gt;
now i&#039;m bugfixing my purple version&amp;lt;br&amp;gt;&lt;br /&gt;
really a good job benjamin :D --[[User:Aliceinwire Bleac|Aliceinwire Bleac]] 04:56, 12 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Feedback and Ideas ==&lt;br /&gt;
*As far as I&#039;m concerned, one of the gold standard issues for interface usability in this or any other application is the ability to pull pop up menus off the interface. If one can&#039;t do that, it doesn&#039;t matter how pretty they look; they block content and make working in the interface overly difficult. Gotta be able to pull stuff off the interface or it&#039;s more of the same with new candy colors. [Professor Beliveau/5:18SL 10/30/07]&lt;br /&gt;
* In the Mac instructions, if you start with &#039;Make a copy of the Second Life application with &amp;quot;Duplicate&amp;quot; and rename it &amp;quot;Second Life Visual Update&amp;quot;...&#039; and move on from there then the &amp;quot;uninstall&amp;quot; step won&#039;t be needed, and people can more easily compare the two. -- [[User:Argent Stonecutter|Argent Stonecutter]] 06:14, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
* Great work on the graphics! Definitely shows off the potential for what can be done.&lt;br /&gt;
&lt;br /&gt;
Well how novel: ripping off the Mac OS X metallic buttons and giving them an Aqua feel... Well, don&#039;t stop there. Read Apple&#039;s Human Interface Guidelines and implement them. Then we&#039;ll not only have the feel too, but then the whole thing may work as standard instead of being buggy, bloated, roll your own code. We would have international settings and keyboards that worked, standard window behaviour, one menu bar not two, and text editing handling that worked properly, and properly transposed keyboard shorcuts. Get that stuff sorted first then you can think of moving on to skinning.&lt;br /&gt;
: I would like to point out, that SecondLife client is Cross-Platform. If they stuck to the Mac guidelines, then it wouldn&#039;t fit windows or linux. To be honest, as SecondLife is effectively a game, the interface has to be a roll your own (Read Apples guidelines, it actually says that somewhere) --[[User:Nik Woodget|Nik Woodget]] 02:37, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
* Just to introduce the conservative voice *8) while I greatly appreciate thought going into the viewer and all, I wouldn&#039;t say that making the colors prettier and the buttons and icons slicker-looking would be where I&#039;d focus efforts if it was me.  Give me back a tearoffable friends list, let me tear off and move around llDialog() / GroupNotice style dropdowns, make the viewer notice and tell me something useful when packets-in-per-second drops to zero, and other actual functional enhancements would do me a world more good than shinier-looking buttons... [[User:Dale Innis|Dale Innis]] 11:06, 13 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
* Great look, how ever the big problems in the gui layout are net even addressed in this preview. Friends and group was so much more easier to use before the voice release. I really like to get that in the 18.4 viewer nice Linux bug fixes but no working friends list yet in that version. Voice i guess that will come some ware around 2010 at best. I&#039;m not asking for much just two patches from nicholaz. (and probably a hard admittance from someone onside Linden  that new look with friends inside the IM window was a bad idea.) --[[User:Balp Allen|Balp Allen]] 00:36, 14 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Feedback on the style itself ==&lt;br /&gt;
&lt;br /&gt;
*The problem I&#039;m having is with the fact that most of the text in search results is white on a bright blue/gray background, which makes it hard to read. Also, text in profiles and (non-editable) group descriptions is difficult to read for the same reason. I think that adding more contrast would definitely improve the usability (not to mention the accessibility) of this skin. -- ????&lt;br /&gt;
&lt;br /&gt;
The theme seems to be mostly based on one of a variety of &amp;quot;glossy&amp;quot; 3d themes that have become popular in UNIX/X11 environments. I would much rather see the glossiness eliminated and something less overpowering being used as inspiration.&lt;br /&gt;
&lt;br /&gt;
Specific points:&lt;br /&gt;
:* With a light background ALL the text needs to be dark.&lt;br /&gt;
:* The window close and minimize buttons look smaller in this style, even if they aren&#039;t, and I keep slowing down to hit them more precisely.&lt;br /&gt;
:* The translucent menu bar is an improvement. It needs to extend under the menus themselves, of course. The backdrop for the button bars on the bottom should be translucent as well, for symmetry... and with the new style I don&#039;t think the little &amp;quot;loops&amp;quot; over the buttons above the chat bar are really useful.&lt;br /&gt;
:* The glossiness of the buttons is a problem, and they also look more like tabs than buttons. A flatter more &amp;quot;matte&amp;quot; style would work better.&lt;br /&gt;
:* The slight border around the chat and nametags is VERY nice.&lt;br /&gt;
:* The 3d look of hover text is not so good, I think because it&#039;s light. The light colored pie menu is &#039;&#039;really&#039;&#039; a problem.&lt;br /&gt;
:* The inventory and appearance editor seem significantly less professional.&lt;br /&gt;
:At the moment I think the original style is preferrable. I would say that the dark color scheme works better, particularly for translucent windows... if the ghosted windows could turn dark (but with light text) that would work, but that&#039;s probably more than XUI can handle. -- [[User:Argent Stonecutter|Argent Stonecutter]] 06:25, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
*I&#039;m not a fan of square buttons.&lt;br /&gt;
*Like Argent I struggle with some of the light backgrounds&lt;br /&gt;
*Would it be possible to have an instruction page? This file does... for all the images. I know its possible to open them all, and I will, but pointers for how to tweak what be nice. I&#039;m going to try a nicer (for my eyes) skin with greens, similar to the theme I&#039;ve got on my mac menus, and hack some buttons, but it will take a while to get right because I&#039;m flying blind (particularly for .j2c&#039;s that don&#039;t automatically preview for me). --[[User:Eloise Pasteur|Eloise Pasteur]] 06:53, 22 October 2007 (PDT)&lt;br /&gt;
:* Good print, J2Cs aren&#039;t well supported in bitmap editors yet. -- [[User:Argent Stonecutter|Argent Stonecutter]] 09:14, 22 October 2007 (PDT)&lt;br /&gt;
:* In the textures folder is a textures.xml file.  This is the mapping {purpose}.tga -&amp;gt; UUID.{any extension} --[[User:Thraxis Epsilon|Thraxis Epsilon]] 11:51, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
I too struggle with the chat history and permission/worn status in inventory, as it&#039;s light text on a light background, but I hope you&#039;ll correct this by darkening the text. I like dark text on a light background very much... but OTOH I can understand how in a dark environment, you might want the opposite, sort of like the dashboard on your car... can it be made skinnable, so people can have what they prefer? (Changing with time of day or ambient lighting is probably a bit much to ask for, but would be very cool.) --[[User:Melissa Yeuxdoux|Melissa Yeuxdoux]] 16:23, 2 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
=== Similarity to Mac/Aqua ===&lt;br /&gt;
Well how novel: ripping off the Mac OS X metallic buttons and giving them an Aqua feel... Well, don&#039;t stop there. Read Apple&#039;s Human Interface Guidelines and implement them. Then we&#039;ll not only have the feel too, but then the whole thing may work as standard instead of being buggy, bloated, roll your own code. We would have international settings and keyboards that worked, standard window behaviour, one menu bar not two, and text editing handling that worked properly, and properly transposed keyboard shorcuts. Get that stuff sorted first then you can think of moving on to skinning.&lt;br /&gt;
: I would like to point out, that SecondLife client is Cross-Platform. If they stuck to the Mac guidelines, then it wouldn&#039;t fit windows or linux. To be honest, as SecondLife is effectively a game, the interface has to be a roll your own (Read Apples guidelines, it actually says that somewhere) --[[User:Nik Woodget|Nik Woodget]] 02:37, 22 October 2007 (PDT)&lt;br /&gt;
:: I don&#039;t think it looks Mac-like at all. In fact while Apple popularized the glossy look the &amp;quot;shiny metallic&amp;quot; look isn&#039;t really their schtick, and they have been moving away from the aggressive glossiness of the early OS X versions to a smoother and more professional look in Panther and Tiger.  -- [[User:Argent Stonecutter|Argent Stonecutter]] 18:02, 22 October 2007 (PDT)&lt;br /&gt;
:::I personally wouldn’t complain if they implemented as much of Apple’s HIG as possible. I wouldn’t expect them to get rid of the in-window menubar, but it would be nice if things like keyboard layouts worked properly. —[[User:Frungi Stastny|Frungi Stastny]] 06:53, 23 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
=== Icons ===&lt;br /&gt;
&lt;br /&gt;
The icons representing prims in the object builder are too small. It is quite difficult to distinguish between similar prims as, for example, the cone and the semicone.--[[User:Eadoin Welles|Eadoin Welles]] 10:22, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
I&#039;m not loving it... Although I do like some of the icons but color wise and color balance theme are killing my eyes.  The whole &amp;quot;gloss jem&amp;quot; buttons from Window Vista and OS Mac got really really old so fast.  For me, I&#039;d like a dark theme.   Something more like this theme. [[http://www.wincustomize.com/zoom.aspx?skinid=4617&amp;amp;libid=1]] --[[User:Vincent Nacon|Vincent Nacon]] 12:32, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think the icons on the map or in other windows should be changed from the standard client unless absolutely necessary... and again I don&#039;t think that encapsulating the icons is really a good idea. -- [[User:Argent Stonecutter|Argent Stonecutter]] 18:06, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have to say I am underwhelmed by the icon set. Have you considered the [http://en.wikipedia.org/wiki/Tango_Desktop_Project Tango Desktop Project]? The Tango Project seeks to create a consistent graphical user interface experience across applications and platforms. IMHO, the quality of their icon sets is very high. Have a look at the icon sets and [http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines style guidelines on their website]. &amp;amp;mdash; [[User:Yuu Nakamichi|Yuu Nakamichi]] 15:21, 2 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Additional suggestions ==&lt;br /&gt;
This section should be kept for suggestions that are really beyond the scope of a theme change.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Monitor Support ===&lt;br /&gt;
&lt;br /&gt;
Would like more than anything to see the UI windows capable of being moved onto a second monitor off the main viewer window. Now that would be very cool and make life a whole lot easier.&lt;br /&gt;
:This would also mean making that the second life viewer would have to use system controls. Again its a pain for cross-platform software. Though not impossible. --[[User:Nik Woodget|Nik Woodget]] 02:38, 22 October 2007 (PDT)&lt;br /&gt;
::Why would this require using system controls ?&lt;br /&gt;
::[[User:SignpostMarv Martin|SignpostMarv Martin]] 06:59, 22 October 2007 (PDT)&lt;br /&gt;
:::The UI in Second Life is part of the OpenGL rendering pipeline. In order for the controls to be seperated from the main window they would have to be contained in seperate OS controls. Maybe not system independent controls, perhaps custom controls rendered into borderless windows might work.&lt;br /&gt;
:::: Aren&#039;t there free open-source cross platform systems already out there to do stuff like that?--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:32, 13 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
=== Mac Support ===&lt;br /&gt;
&lt;br /&gt;
For the Mac port, at least, the way that command and control are reversed is really hard to deal with. It would be nice if there was an option to reverse the command and control keys &#039;&#039;for XUI only&#039;&#039;. -- [[User:Argent Stonecutter|Argent Stonecutter]] 06:07, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
Whilst we&#039;re talking about this - can we add a request for a proper implementation of the Mac GUIs, without the irritating internal menus as well please. Swap the menu bar menus the way the GUI guidelines suggest. It&#039;s a different code base after all. I may have got used to this structure, but it&#039;s one bit of muscle memory I&#039;d be very happy to get rid of! --[[User:Eloise Pasteur|Eloise Pasteur]] 15:56, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
=== Widgets ===&lt;br /&gt;
&lt;br /&gt;
I like the new interface. It is surely better than the black one but, by the way, the real value would be to have a choice of skins which, in my understanding, is the main goal of this test. I think that another improvement might be to have the possibility to add gadgets. For example, I would like to have, close to the PDT time, also the local time, since most of events that I prepare are located in my country, and I prefer to use local time rather than useless PDT time. Rather than adding this feature, which may be of no interest to USA people and surely not at all to California people, you may give us the possibility to create gadgets, like in Google or Vista. So I could develop a small gadget to see time in various timezones, another one that automatically convert Linden dollars to various currencies, and so forth. By facilitating the development of user gadgets, you would dramatically improve the SL interface without having to develop them yourself. IMHO  Greetings from Rome, Italy --[[User:Eadoin Welles|Eadoin Welles]] 10:19, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
==== Vector Graphics Widgets ====&lt;br /&gt;
&lt;br /&gt;
Would like to see a flash layer, where flash widgets could communicate to the UI via an API and either replace or partially replace bits and pieces of it.  This could be a big market for companies wishing to have customized clients but still take advantage of Linden Labs robust source.&lt;br /&gt;
:I would actively NOT want to see a layer that can only be programmed with a closed system like flash. -- [[User:Argent Stonecutter|Argent Stonecutter]] 06:07, 22 October 2007 (PDT)&lt;br /&gt;
::SVG + Javascript would work- uBrowser would be the place to start with that.&lt;br /&gt;
::[[User:SignpostMarv Martin|SignpostMarv Martin]] 06:59, 22 October 2007 (PDT)&lt;br /&gt;
:::That&#039;s one approach. Javascript based controls are used in a number of programs: Firefox (XUL), Mac OS (Dashboard), Yahoo Widgets (for that matter Adobe&#039;s Actionscript has converged on Javascript). I&#039;m not sure that SVG is the way to go, but that&#039;s not an objection... I just don&#039;t know wnough about SVG. Another possibility is to use Tk, since that has bindings for several scripting languages already. All this is somewhat out of the scope of a theme change. -- [[User:Argent Stonecutter|Argent Stonecutter]] 08:47, 22 October 2007 (PDT)&lt;br /&gt;
::::SVG would provide an &amp;quot;open&amp;quot; system for vector graphics where flash provides a &amp;quot;closed&amp;quot; system.&lt;br /&gt;
::::[[User:SignpostMarv Martin|SignpostMarv Martin]] 12:41, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
=== Skin Support ===&lt;br /&gt;
I&#039;d like to suggest Hue changer for quick custom theme color for users.... However, for graphic artist like myself, I would like to able customize the skin with ease.   Just think more like WinAmp 5. --[[User:Vincent Nacon|Vincent Nacon]] 12:32, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
is also good to make a little program in php for the second life site or a executable for create new skin in more simple way &lt;br /&gt;
&lt;br /&gt;
this is my purple skin :)&lt;br /&gt;
[[Image:Dazzle_purple_version.JPG|thumb|300px|Purple Skin]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Aliceinwire Bleac|Aliceinwire Bleac]] 04:56, 7 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
* Purple skin made me smile a lot! Thanx for sharing that with Ben and I, Aliceinwire! /me open-secretly hopes for a green-and-pink skin. :D --[[User:Torley Linden|Torley Linden]] 11:26, 7 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
===Too Little===&lt;br /&gt;
Just looking at the pic...except for the icons, which are probably needed, I&#039;m underwhelmed.  It&#039;s the same old interface except for being white and shinier (IMO, too shiny), and the consensus among people I know tends torward the opinion that the UI needs to be reinvented, not just polished, and I&#039;d rather see development time being taken on that.  Take as an example the work being done by e-Sheep with their new custom client.  I&#039;m not saying they&#039;ve done things that I necescarily want to see but they&#039;ve got their goals in the right place.  I could list a number of UI suggestions and pet peeves but this isn&#039;t the place for it...some day I wil actualy get around to putting them on the JIRA.  That said, I agree with the people who mentioned skins and even just being able to set UI color preferences from the preferences menu; that by itself would address a lot of issues. [[User:Elle Pollack|Elle Pollack]] 15:00, 22 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
===Enhancement?===&lt;br /&gt;
I would love  to beable to collect a Landmark while viewing another resident&#039;s profile picks.  --[[User:Sabina Stenvaag] , 1 nov 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Buttons. ==&lt;br /&gt;
&lt;br /&gt;
The gradient effect on the buttons need to weigh one way or the other. Having the &#039;line&#039; go right through the text with as much contrast as it has, is distracting, and hard on the eyes.&lt;br /&gt;
I would suggest more smoothing to it as well.&lt;br /&gt;
Here is a mock up of what I mean. The lower left button is the only one modified.&lt;br /&gt;
[[Image:NewViewer_button_mockup.jpg|mock up]]&lt;br /&gt;
&lt;br /&gt;
== what is wrong with light text on dark background? ==&lt;br /&gt;
&lt;br /&gt;
for me, light text on dark background is way more comfortable for my eyes, I find light backgrounds kinda too aggressive :/&lt;br /&gt;
&lt;br /&gt;
why not continue with the dark backgrounds? imitating rl paper on software is kinda lame on my opinion :\ --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 01:08, 13 November 2007 (PST)&lt;/div&gt;</summary>
		<author><name>Balp Allen</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_Authentication_Critique&amp;diff=33792</id>
		<title>Talk:Viewer Authentication Critique</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_Authentication_Critique&amp;diff=33792"/>
		<updated>2007-09-30T08:44:01Z</updated>

		<summary type="html">&lt;p&gt;Balp Allen: /* No balance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Talk}}&lt;br /&gt;
&lt;br /&gt;
== Process for editing the critique ==&lt;br /&gt;
&lt;br /&gt;
By virtue of jumping first, I think [[User:Matthew Dowd|Matthew Dowd]] should be the working group chair for editing this document.  What I think that means is this:&lt;br /&gt;
*  Anyone can still make no-brainer edits to the article&lt;br /&gt;
*  Matthew will be arbiter for dispute resolution, should that be necessary.&lt;br /&gt;
*  If there are points that Matthew is unclear about, he should delete them from the document, and move them to the talk page.&lt;br /&gt;
*  If there are points that others are unclear about, they should bring them up on the talk page, and then later delete them from the main page if a question/concern goes unanswered on the talk page (with &amp;quot;see talk page&amp;quot; in the comment of the edit).&lt;br /&gt;
*  If, for whatever reason, it becomes necessary to fork this document, it&#039;s best to move all critiques into the user space of the working group chair.  So, for example, Matthew&#039;s version would move to [[User:Matthew Dowd/Viewer Authentication Critique]], and other critiques could also be done the same way.  This page would become a list of critiques.&lt;br /&gt;
&lt;br /&gt;
Sound like a reasonable process?  I think this is lightweight enough that a pretty good document can evolve pretty quickly.  -- [[User:Rob Linden|Rob Linden]] 12:56, 29 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Third party viewers/code ==&lt;br /&gt;
&lt;br /&gt;
What&#039;s the substantive difference between these two points?&lt;br /&gt;
#  Viewer still involves running trusted code on the computer and could initiate other attacks e.g.&lt;br /&gt;
# Most of these attacks could be performed by any third-party software designed for use with SL &lt;br /&gt;
Both have many subpoints.  Could they be consolidated into a single point? -- [[User:Rob Linden|Rob Linden]] 20:10, 29 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
The first point is that keeping the client from seeing the password doesn&#039;t remove the danger of a modified client.&lt;br /&gt;
&lt;br /&gt;
The second point is that *any* ancillary software (such as animation editors, sculpt editors, sculpt texture plugins) could be used in an attack, even if they don&#039;t actually connect to SL, since they would be used by SL residents.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Argent Stonecutter|Argent Stonecutter]] 21:00, 29 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
Is this better, Rob? -- [[User:Argent Stonecutter|Argent Stonecutter]] 21:11, 29 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Yes, that is.  Thanks for the clarification! -- [[User:Rob Linden|Rob Linden]] 21:44, 29 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== No balance ==&lt;br /&gt;
&lt;br /&gt;
This article is pretty awful, its just an attack. For real critique you have to explore the alternatives and discuss the pros and cons for each.&lt;br /&gt;
Even if this form of log in has these disadvantages it could still be an improvement over what we currently have.&lt;br /&gt;
We need a common point of reference to discuss if this is an improvement and what alternatives exist.&lt;br /&gt;
&lt;br /&gt;
Having studied the original idea, each time and deeper I&#039;m now convinced there is 0 gain on the security point, I also see many many big security risks with it. I hope this will be the first issue in the last time that actually the Lindens start to listen to criticism about the proposal. I think not there have so far been one mail in favor of the idea on the developer list. All the other issues that just ignores the users, to that extent that i have put off all investment in SL. The day an alternative comes out, Lindens and in really danger for how they handle there users. So far they have a product that is one of a kind. But the completion gain all the time. The company that did everything they could to screw there user base will loose. &lt;br /&gt;
--[[User:Balp Allen|Balp Allen]] 01:44, 30 September 2007 (PDT)&lt;/div&gt;</summary>
		<author><name>Balp Allen</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Viewer_Authentication_Critique&amp;diff=33790</id>
		<title>Viewer Authentication Critique</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Viewer_Authentication_Critique&amp;diff=33790"/>
		<updated>2007-09-30T08:33:31Z</updated>

		<summary type="html">&lt;p&gt;Balp Allen: /* Signatories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a formal critique of [[Viewer Authentication]] that was [https://lists.secondlife.com/pipermail/sldev/2007-September/005403.html requested] by [[User:Rob Linden]] on the [[SLDev]] mailing list.&lt;br /&gt;
&lt;br /&gt;
For a branch of the discussion see [https://wiki.secondlife.com/wiki/Talk:Viewer_Authentication Talk page on the original proposal.]&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
&lt;br /&gt;
=== LL&#039;s Objectives ===&lt;br /&gt;
* To mitigate the danger of password capturing Trojans masquerading as third party viewers&lt;br /&gt;
* Improve trust in third party viewers by providing a means of assurance to the user that the third party viewer could not be a Trojan capturing usernames and passwords.&lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
* Viewer does not have to process (and &amp;quot;see&amp;quot;) username and password&lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
* The main risk of running a third party viewer (or any other application not provided by Linden Labs) is not stealing passwords, it&#039;s direct attacks through the client... and the &amp;quot;official&amp;quot; client is not really any protection against that.&lt;br /&gt;
** Viewer can still be used in direct and indirect attacks even if it never sees the password (for example: salami slicing through cutout accounts, acting as a cutout account or an in-world botnet, faking a failed connection while giving an attacker access).&lt;br /&gt;
** NON-viewer applications (such as editors, 3d tools) designed for use by SL residents could use a keystroke logger and macro to perform any of these attacks, or could inject code into the viewer to do the same thing. Look at &#039;cheating&#039; programs in combat MMORPGs for ideas.&lt;br /&gt;
* But this is still not a large risk, unless people get the client through a mechanism that makes the creator anonymous. Historically, attempts to disseminate boobytrapped versions of applications have only worked in environments where it&#039;s routine for people to download applications from anonymous sources (file areas in the BBS era, for example). It&#039;s too easy to trace down the originator of any compromised client when you&#039;re getting them from their own website.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Bottom line here is that third party viewers stealing passwords are a very small risk for the user: the bigger risk is from the web browser!&lt;br /&gt;
** Potential for phishing websites to entice users to enter username and password and then pass control to SL website and viewer.&lt;br /&gt;
*** This kind of attack is not theoretical, phishing websites are a criminal industry.&lt;br /&gt;
** Relies on browser security, and uses a mechanism often disabled or filtered due to security concerns&lt;br /&gt;
** Too reliant on browser/OS implementations (proxies, firewalls, used browsers, etc.)&lt;br /&gt;
* So using the browser to perform the authentication moves the authentication to a mechanism that has historically proven more likely to be compromised.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* And the mechanism itself is relatively inflexible.&lt;br /&gt;
** Links to secondlife:// can only point to one instance (version, e.g. homebrew, release candidate official) of the program&lt;br /&gt;
** Links to secondlife:// can not pass parameters to the program&lt;br /&gt;
*** In fact allowing that was a security flaw recently found and fixed in the SL client. :(&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Possibility some third party clients will retain the existing UI in order to make it easier for people with alts and multiple clients, and do appropriate GETs and POSTs on the SL to initiate a logon and get the token (thus defeating the original purpose)&lt;br /&gt;
** The issues raised in the next section would mean that people would have an incentive to use this kind of client.&lt;br /&gt;
&lt;br /&gt;
=== Alternatives ===&lt;br /&gt;
* One time passwords (for copy paste into a non-secure viewer or to print and take with you to friends, internet cafes, public terminals, etc.)&lt;br /&gt;
* lower perm passwords (pwds which put the account into a restricted state, disallowing &amp;quot;dangerous&amp;quot; transactions)&lt;br /&gt;
* separate passwords for website account and being inworld&lt;br /&gt;
* Account restrictions &lt;br /&gt;
* CRAM-MD5 or a similar challenge-response type &lt;br /&gt;
* Dictionary check to reject insecure passwords&lt;br /&gt;
=== Other Issues ===&lt;br /&gt;
* The main existing vulnerability involving the viewer and passwords is that the viewer does not use a cryptographically secure mechanism to pass the password to the server, &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; that the viewer may be stealing the password.&lt;br /&gt;
* In practice, trapdoored unofficial third party clients for applications have not historically been a major problem. This seems to be attacking an exposure that is primarily theoretical, and using a mechanism that has been known to be exploited to solve it.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flexibility ==&lt;br /&gt;
&lt;br /&gt;
=== LL&#039;s Objectives ===&lt;br /&gt;
* Single Sign On - allowing multiple web applications (forums, support, account, jira, wiki etc.) and viewers to use the same username and password through a single point without duplicating usernames and passwords into multiple systems&lt;br /&gt;
* Extension of this to allow non-LL applications and web sites to participate in this single sign on system.&lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
* Enables username/password authentication to work on third party sites without them having to &amp;quot;see&amp;quot; username and password&lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
* This is really an unrelated issue...&lt;br /&gt;
** The client doesn&#039;t need to depend on the website for this purpose, or this could be a command line option.&lt;br /&gt;
** The client could just as easily be the &#039;authentication source&#039; as the website.&lt;br /&gt;
*** Via a &amp;quot;go to website&amp;quot; link in the client that passed an equivalent token.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* As noted in section 1, this reduces flexibility for the *users*.&lt;br /&gt;
&lt;br /&gt;
=== Alternatives ===&lt;br /&gt;
* Use this mechanism for websites (including third party) only but not for viewers&lt;br /&gt;
* Identity Metasystem - [http://en.wikipedia.org/wiki/Identity_Metasystem]&lt;br /&gt;
** OpenID - [http://openid.net/]&lt;br /&gt;
** CardSpace - [http://msdn2.microsoft.com/en-us/netframework/aa663320.aspx]&lt;br /&gt;
** CAS - [http://www.ja-sig.org/products/cas/]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Persistence ==&lt;br /&gt;
&lt;br /&gt;
=== LL&#039;s Objectives ===&lt;br /&gt;
* To integrate the various LL&#039;s systems (forums, support, jira, account, etc.) so that by logging onto one, you are automatically logged onto the others.&lt;br /&gt;
&lt;br /&gt;
=== Pros ===&lt;br /&gt;
&lt;br /&gt;
=== Cons ===&lt;br /&gt;
* As in the previous section, LL&#039;s objectives could be met without the browser logging in via the same mechanism.&lt;br /&gt;
* Inconvenient for those with alts&lt;br /&gt;
** Cumbersome to change alts and logon with multiple alts&lt;br /&gt;
** Those with alts, often have a primary account which is used for forums and logged on permanently to forums even when the alt is online in SL&lt;br /&gt;
* Inconvenient for those with multiple clients&lt;br /&gt;
* Danger on public or multi-user machines that the user will log out of the client, but not log out of the website properly allowing the next user to access their account.&lt;br /&gt;
* Staying online on secondlife.com (which many people seem to do) automatically means anyone with access to the computer/browser (family) can log in with the account inworld&lt;br /&gt;
&lt;br /&gt;
=== Alternatives ===&lt;br /&gt;
* Is this really needed? &lt;br /&gt;
=== Other issues ===&lt;br /&gt;
* Is this kind of persistence desirable &#039;&#039;for the client&#039;&#039;? SL is not an extension of the web, it&#039;s a different kind of interface... one that has the potential of becoming a &amp;quot;3d web&amp;quot;. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
* this should be an option for those who have increased security needs, users should be able to make their own risk/convenience decisions&lt;br /&gt;
* the feature especially forces those into an extra login step, who use an official viewer (homebrews will most likely quickly implement a way around this for convenience)&lt;br /&gt;
* starting SL from the web browser on a regular basis will most likely result in the web browser lingering in memory in the background when running the viewer, which based on the heavy memory requirement may impair viewer performance.&lt;br /&gt;
* this would make things harder for independent grids to use the official client. Is this considered an advantage or a disadvantage by LL?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Signatories ==&lt;br /&gt;
&lt;br /&gt;
Please sign this below with &amp;quot;&amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;&amp;quot; if you agree with the version of this document you are reading.  The date will indicate which version of the document you read and agree with. &lt;br /&gt;
&lt;br /&gt;
* [[User:Matthew Dowd|Matthew Dowd]] 11:27, 29 September 2007 (PDT)&lt;br /&gt;
* [[User:Argent Stonecutter|Argent Stonecutter]] 13:53, 29 September 2007 (PDT)&lt;br /&gt;
* [[User:Dale Glass|Dale Glass]] 14:28, 29 September 2007 (PDT)&lt;br /&gt;
* [[User:Tillie Ariantho|Tillie Ariantho]] 14:53, 29 September 2007 (PDT)&lt;br /&gt;
* [[User:Nicholaz Beresford|Nicholaz]] 15:38, 29 September 2007 (PDT)&lt;br /&gt;
* [[User:Jesse Barnett|Jesse Barnett]] 20:59, 29 September 2007 (PDT)&lt;br /&gt;
* [[User:Winter Ventura|Winter Ventura]] 19:42, 29 September 2007 (PDT)&lt;br /&gt;
* [[User:Balp Allen|Balp Allen]] 01:33, 30 September 2007 (PDT)&lt;/div&gt;</summary>
		<author><name>Balp Allen</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Build_the_Viewer_on_Linux&amp;diff=27379</id>
		<title>Build the Viewer on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Build_the_Viewer_on_Linux&amp;diff=27379"/>
		<updated>2007-08-06T12:12:44Z</updated>

		<summary type="html">&lt;p&gt;Balp Allen: New download location, on the FMOD home page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CompileNav}}&lt;br /&gt;
&lt;br /&gt;
The following are instructions for building the Second Life viewer on linux. This process has been used on [http://www.debian.org/ debian] and debian based systems like [http://www.ubuntu.com/ ubuntu], and also on [http://www.fedoraproject.org/ Fedora]. For other platforms, see [[Get source and compile]].&lt;br /&gt;
&lt;br /&gt;
{{vital-info|How to compile [[Source_archive#2007-Feb-20|FL-1.13.3.58185]] and [[Source_archive#2007-Feb-24|FL-1.13.3.58390]] &#039;&#039;&#039;with&#039;&#039;&#039; llmozlib (see [[Talk:Compiling_the_viewer_%28Linux%29#llmozlib|discussion]])}}&lt;br /&gt;
&lt;br /&gt;
= Building the client =&lt;br /&gt;
To build the Second Life Viewer you will first need to install the required tools and libraries.&lt;br /&gt;
The following sections outline steps to build the client from source.  To simplify building,&lt;br /&gt;
Linden labs has been nice enough to prepackage some of the libraries and bundled them up in an&lt;br /&gt;
additional tar file.&lt;br /&gt;
&lt;br /&gt;
And while The Second Life Viewer is not a trivial build, and experience with building large&lt;br /&gt;
software packages will help you greatly - but don&#039;t be daunted, it should be simple once the&lt;br /&gt;
dependencies are in the right place.&lt;br /&gt;
&lt;br /&gt;
The tasks are:&lt;br /&gt;
# Install required tools.&lt;br /&gt;
# Unpack source and art tree&#039;s from Linden Labs.&lt;br /&gt;
# Install libraries not shiped by Linden Labs.&lt;br /&gt;
# Unpack or install the other required libraries and headers.&lt;br /&gt;
# Compile.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== Required tools ==&lt;br /&gt;
There are a number of tools that need to be installed first.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;SCons&amp;lt;/b&amp;gt; build tool [package: scons]&lt;br /&gt;
* &amp;lt;b&amp;gt;GCC 3.4&amp;lt;/b&amp;gt; C/C++ compiler&lt;br /&gt;
** [debian/ubuntu: g++-3.4]&lt;br /&gt;
** [fedora: compat-gcc-34-c++]&lt;br /&gt;
** other GCC versions are not well-tested; GCC 4.x will NOT currently build the viewer without a few simple code adjustments. {link to them pls}&lt;br /&gt;
* &amp;lt;b&amp;gt;yacc&amp;lt;/b&amp;gt; [suggest packages: bison]&lt;br /&gt;
* &amp;lt;b&amp;gt;lex&amp;lt;/b&amp;gt; [suggest packages: flex]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unpack the source tree ==&lt;br /&gt;
&lt;br /&gt;
You can get the source either from the source archives available at [[Source downloads]], or you can get it from [[Subversion]].&lt;br /&gt;
&lt;br /&gt;
Using a source archive is the easier option, but if you plan to do active development and want to make your own modifications, while merging LL&#039;s changes, subversion will probably be much more convenient on the long term.&lt;br /&gt;
&lt;br /&gt;
=== Getting the source from the source archives ===&lt;br /&gt;
Get the source from [[Source downloads]]. You will need all 3 archives: source, artwork and libraries.&lt;br /&gt;
&lt;br /&gt;
Choose a location and unpack the source tree and the art work.  They will be extracted into a&lt;br /&gt;
directory call &amp;lt;b&amp;gt;linden&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 % tar -xzf slviewer-src-&amp;lt;version&amp;gt;.tar.gz&lt;br /&gt;
 % tar -xzf slviewer-&amp;lt;os&amp;gt;-libs-&amp;lt;version&amp;gt;.tar.gz&lt;br /&gt;
 % unzip slviewer-artwork-&amp;lt;version&amp;gt;.zip&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Getting the source from Subversion ===&lt;br /&gt;
Select a source [[Source branches|branch]] to check out.&lt;br /&gt;
&lt;br /&gt;
Check it out with:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 % svn co http://svn.secondlife.com/svn/linden/&amp;lt;branch&amp;gt; [directory]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
If you don&#039;t specify the directory, it&#039;ll use the name of the branch as the default.&lt;br /&gt;
&lt;br /&gt;
Now you will have a directory with the source code. This only includes the source code itself, without the libraries or artwork. You will have to get them from the [[Source downloads]] and unpack them into the tree.&lt;br /&gt;
&lt;br /&gt;
If the directory SVN created is called &#039;linden&#039; then you can directly unzip and untar the archives on top of it. If it&#039;s called something else, create a symlink:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 % ln -sf &amp;lt;branch&amp;gt; linden&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now unpack the libraries and artwork:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 % tar -xzf slviewer-&amp;lt;os&amp;gt;-libs-&amp;lt;version&amp;gt;.tar.gz&lt;br /&gt;
 % unzip slviewer-artwork-&amp;lt;version&amp;gt;.zip&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing the required libraries (that Linden labs can not or does not provide)==&lt;br /&gt;
=== FMOD (audio) ===&lt;br /&gt;
* FMOD provides audio output, but (although &#039;free&#039; in some senses) is not itself open-source.  &amp;lt;b&amp;gt;If&amp;lt;/b&amp;gt; you wish to avoid FMOD, thus disabling audio, you may make these changes:&lt;br /&gt;
** Comment-out the libfmod line in indra/newview/viewer_manifest.py&lt;br /&gt;
** Add FMOD=no to your Scons build command when compiling the source.&lt;br /&gt;
* If you want to use FMOD, fetch and unpack &amp;lt;b&amp;gt;FMOD 3.75&amp;lt;/b&amp;gt; &amp;lt;http://www.fmod.org/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 % wget http://www.fmod.org/index.php/release/version/fmodapi375linux.tar.gz&lt;br /&gt;
 % tar -xzvf fmodapi375linux.tar.gz&lt;br /&gt;
 % cd fmodapi375linux/&lt;br /&gt;
 % cp api/inc/* ../linden/libraries/i686-linux/include/&lt;br /&gt;
 % cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing the required dependencies (prepackaged by Linden labs)==&lt;br /&gt;
&lt;br /&gt;
The Second Life Viewer has a number of compile/link dependencies on external libraries which&lt;br /&gt;
are needed - to help you, the source download page contains a link to a &amp;lt;i&amp;gt;slviewer-linux-libs&amp;lt;/i&amp;gt; package which you unpack over the source tree to fill most of the dependencies (and thus avoid most of the fiddly work described on this page).&lt;br /&gt;
&lt;br /&gt;
If you download the libs to the top folder, where the &amp;lt;i&amp;gt;linden&amp;lt;/i&amp;gt; folder is after getting and extracting the viewer source code tarball, the following command should unpack everything to the right spot. &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 tar xvfz slviewer-linux-libs-&amp;lt;version&amp;gt;.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you choose to use the provided libraries you can skip to &lt;br /&gt;
[[Compiling_the_viewer_%28Linux%29#Compiling|Compiling the client]].&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Doing yourself ===&lt;br /&gt;
If you are porting to a new architecture or wish to make a package tailored to your Linux distribution&#039;s own libraries.  You will have to install the following additional dependencies&lt;br /&gt;
listed below.  Paths and package names given here are based on Ubuntu 7.04 and may vary&lt;br /&gt;
according to your Linux distribution.&lt;br /&gt;
&lt;br /&gt;
==== List of libraries ====&lt;br /&gt;
* &amp;lt;b&amp;gt;apr-1&amp;lt;/b&amp;gt; [ubuntu: libapr1-dev, fedora: apr-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;aprutil-1&amp;lt;/b&amp;gt; [ubuntu: libaprutil1-dev, fedora: apr-util-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;boost&amp;lt;/b&amp;gt; [ubuntu: libboost-dev, fedora: boost-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;boost-regex&amp;lt;/b&amp;gt; [ubuntu: libboost-regex-dev]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;curl&amp;lt;/b&amp;gt; library at least version 7.15.4 is recommended, 7.16.x is ideal.&lt;br /&gt;
** [ubuntu: libcurl3-dev, fedora: curl-devel]&lt;br /&gt;
** If you are compiling your own version of &amp;lt;b&amp;gt;Curl&amp;lt;/b&amp;gt;, then you should consider configuring it to use the &amp;lt;b&amp;gt;c-ares&amp;lt;/b&amp;gt; library so that DNS lookups will be asynchronous.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;ELFIO&amp;lt;/b&amp;gt; &amp;lt;http://sourceforge.net/projects/elfio/&amp;gt;&lt;br /&gt;
** This wants to build a static library by default.  Afterwards, to create a dynamic libelfio.so&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 % cd ELFIO &amp;amp;&amp;amp; g++-3.4 -shared *.o -o libelfio.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;expat&amp;lt;/b&amp;gt; [ubuntu: libexpat1-dev, fedora: expat-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;google-perftools&amp;lt;/b&amp;gt; library for the tcmalloc and stacktrace libraries. (memory checking)&lt;br /&gt;
**[ubuntu: libgoogle-perftools-dev, fedora: google-perftools-devel.i386&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;GTK 2.x&amp;lt;/b&amp;gt; development headers [ubuntu: libgtk2.0-dev, fedora: gtk2-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;jpeglib&amp;lt;/b&amp;gt; [ubuntu: libjpeg62-dev, fedora: libjpeg-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;OpenGL&amp;lt;/b&amp;gt; development headers: gl.h, glext.h, glu.h&lt;br /&gt;
**[ubuntu: mesa-common-dev, libglu1-mesa-dev, fedora: mesa-libGL-devel, mesa-libGLU-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;OpenJPEG&amp;lt;/b&amp;gt; &amp;lt;http://www.openjpeg.org/&amp;gt;&lt;br /&gt;
** note: OpenJPEG 1.1.1 or greater is required which has the macro OPJ_PATH_LEN, if the header has MAX_PATH, then upgrade or it will crash with a divide by zero error as the structures would be two different sizes.&lt;br /&gt;
*** &#039;&#039;what does this mean?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;OpenSSL&amp;lt;/b&amp;gt; &amp;lt;http://www.openssl.org/&amp;gt; [ubuntu: libssl-dev, fedora: ?]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;SDL&amp;lt;/b&amp;gt; [ubuntu libsdl1.2-dev, fedora: SDL-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Vorbis&amp;lt;/b&amp;gt; [ubuntu: libvorbis-dev, fedora: libvorbis-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;X11&amp;lt;/b&amp;gt; development headers: Xlib.h, and Xutil.h&lt;br /&gt;
**[ubuntu: libx11-dev, fedora: libX11-devel]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;xmlrpc-epi 0.51&amp;lt;/b&amp;gt; &amp;lt;http://xmlrpc-epi.sourceforge.net/&amp;gt;&lt;br /&gt;
** note: not xmlrpc-c (xmlrpc-c has a library and headers with the same name but is not compatible)&lt;br /&gt;
** Apply patches from the instructions in [[patch xmlrpc-epi]]&lt;br /&gt;
*** &#039;&#039;does this still work?&#039;&#039;&lt;br /&gt;
** See also:&lt;br /&gt;
*** http://www.haxxed.com/rpms/secondlife/xmlrpc-epi-0.51-gcc4.1.patch&lt;br /&gt;
*** http://www.haxxed.com/rpms/secondlife/xmlrpc-epi-0.51-use-system-expat.patch&lt;br /&gt;
*** http://www.haxxed.com/rpms/secondlife/xmlrpc-epi-0.51-rename.patch&lt;br /&gt;
*** You have to regenerate autotools after applying the patches:&lt;br /&gt;
****libtoolize -c -f&lt;br /&gt;
****aclocal&lt;br /&gt;
****automake -c -a -f&lt;br /&gt;
****autoconf&lt;br /&gt;
*** The first patch fixes compiling on gcc 4. The second patch causes it to compile against the system expat, the version xmlrpc-epi comes with is broken and will not work. The last patch renames the library from xmlrpc to xmlrpc-epi, otherwise it conflicts with xmlrpc-c - which means the viewer then needs to be patched to link against xmlrpc-epi and not xmlrpc. These patches are from my Fedora package. On linux, I recommend these patches in favor of the Linden ones, as theirs seem to be for windows. (And mine actually work)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy headers and libraries into the source tree ====&lt;br /&gt;
&lt;br /&gt;
Here is a guide to the sequence of shell commands needed to copy the required headers and libraries into the Second Life Viewer source tree for building.  Actual paths to system headers may vary according to Linux distribution.&lt;br /&gt;
&lt;br /&gt;
If you are using the easy &amp;lt;i&amp;gt;slviewer-linux-libs&amp;lt;/i&amp;gt; bundle then you can skip the rest of this section, &amp;lt;b&amp;gt;otherwise&amp;lt;/b&amp;gt; you will also need to perform the following:&lt;br /&gt;
&lt;br /&gt;
* ${SLSRC} refers to the top-level directory of the Second Life Viewer source tree.&lt;br /&gt;
* ${OPENJPEG} refers to the top-level directory of your completed OpenJPEG build.&lt;br /&gt;
* ${ELFIO} refers to the top-level directory of your completed ELFIO build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cp -a /usr/include/atk-1.0 ${SLSRC}/libraries/i686-linux/include/&lt;br /&gt;
 cp -a /usr/include/gtk-2.0 ${SLSRC}/libraries/i686-linux/include/&lt;br /&gt;
 cp -a /usr/lib/gtk-2.0/include/* ${SLSRC}/libraries/i686-linux/include/gtk-2.0/&lt;br /&gt;
 cp -a /usr/include/glib-2.0 ${SLSRC}/libraries/i686-linux/include/&lt;br /&gt;
 cp -a /usr/lib/glib-2.0/include/* ${SLSRC}/libraries/i686-linux/include/glib-2.0/&lt;br /&gt;
 cp -a /usr/include/pango-1.0 ${SLSRC}/libraries/i686-linux/include/&lt;br /&gt;
&lt;br /&gt;
if your GTK is fairly recent and thus needs Cairo:&lt;br /&gt;
 cp -a /usr/include/cairo/* ${SLSRC}/libraries/i686-linux/include&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cp -a /usr/include/apr-1.0/ ${SLSRC}/libraries/i686-linux/include/apr-1&lt;br /&gt;
&lt;br /&gt;
 mkdir ${SLSRC}/libraries/i686-linux/include/expat&lt;br /&gt;
 cp -a /usr/include/expat*.h ${SLSRC}/libraries/i686-linux/include/expat/&lt;br /&gt;
&lt;br /&gt;
 mkdir ${SLSRC}/libraries/i686-linux/include/zlib&lt;br /&gt;
 cp -a /usr/include/zlib*.h ${SLSRC}/libraries/i686-linux/include/zlib/&lt;br /&gt;
&lt;br /&gt;
 mkdir ${SLSRC}/libraries/i686-linux/include/openjpeg&lt;br /&gt;
 cp ${OPENJPEG}/libopenjpeg/openjpeg.h ${SLSRC}/libraries/i686-linux/include/openjpeg/&lt;br /&gt;
 cp ${OPENJPEG}/libopenjpeg.a ${SLSRC}/libraries/i686-linux/lib_release_client/&lt;br /&gt;
&lt;br /&gt;
 mkdir ${SLSRC}/libraries/i686-linux/include/ELFIO&lt;br /&gt;
 cp ${ELFIO}/ELFIO/*.h ${SLSRC}/libraries/i686-linux/include/ELFIO/&lt;br /&gt;
 cp ${ELFIO}/ELFIO/libelfio.so ${SLSRC}/libraries/i686-linux/lib_release_client/&lt;br /&gt;
&lt;br /&gt;
 mkdir ${SLSRC}/libraries/i686-linux/include/jpeglib&lt;br /&gt;
 cp -a /usr/include/j*.h ${SLSRC}/libraries/i686-linux/include/jpeglib/&lt;br /&gt;
 touch ${SLSRC}/libraries/i686-linux/include/jpeglib/jinclude.h&lt;br /&gt;
&lt;br /&gt;
 mkdir ${SLSRC}/libraries/i686-linux/include/llfreetype2&lt;br /&gt;
 cp -a /usr/include/freetype2/freetype/ ${SLSRC}/libraries/i686-linux/include/llfreetype2/&lt;br /&gt;
 cp -a /usr/include/ft2build.h ${SLSRC}/libraries/i686-linux/include/llfreetype2/freetype/&lt;br /&gt;
&lt;br /&gt;
 mkdir ${SLSRC}/libraries/i686-linux/include/xmlrpc-epi&lt;br /&gt;
 cp -a /usr/include/xmlrpc*.h ${SLSRC}/libraries/i686-linux/include/xmlrpc-epi/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&lt;br /&gt;
=== Build Types ===&lt;br /&gt;
The &#039;&#039;BUILD&#039;&#039; parameter specifies the build type. For normal usage, use &#039;&#039;&#039;release&#039;&#039;&#039;. If you plan to work on the source, choose &#039;&#039;&#039;releasenoopt&#039;&#039;&#039; or &#039;&#039;&#039;debug&#039;&#039;&#039;, as these versions are unoptimized and much easier to debug.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;release&#039;&#039;&#039;: Optimized build for release.&lt;br /&gt;
* &#039;&#039;&#039;releasenoopt&#039;&#039;&#039;: Unoptimized build.&lt;br /&gt;
* &#039;&#039;&#039;debug&#039;&#039;&#039;: Debug build with assertions.&lt;br /&gt;
* &#039;&#039;&#039;releasefordownload&#039;&#039;&#039;: Optimized build for release, will create a .tar.gz with the files for distribution.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Building ===&lt;br /&gt;
=== Disable llMozLib ===&lt;br /&gt;
Add MOZLIB=no to your Scons build command when compiling the source.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ cd indra&lt;br /&gt;
 $ scons DISTCC=no BTARGET=client BUILD=release MOZLIB=no&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Expect a build time of a couple of hours.  The resulting unstripped Second Life Viewer binary is &amp;lt;b&amp;gt;newview/secondlife-i686-bin&amp;lt;/b&amp;gt;. Note that temporary object code is compiled into &amp;lt;b&amp;gt;/tmp/$USER&amp;lt;/b&amp;gt; by default (where $USER is your username) - this can be changed by prefixing the &amp;lt;b&amp;gt;scons&amp;lt;/b&amp;gt; command above with &amp;lt;b&amp;gt;TEMP_BUILD_DIR=&amp;quot;&amp;lt;i&amp;gt;[full directory path]&amp;lt;/i&amp;gt;&amp;quot;&amp;lt;/b&amp;gt;. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ TEMP_BUILD_DIR=&amp;quot;/home/fred/secondlife/temp-build&amp;quot; scons DISTCC=no BTARGET=client BUILD=release&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To build a release that has all of the shaders and optimizations enabled and resembles the official shipped Linux alpha client, use BUILD=releasefordownload&lt;br /&gt;
&lt;br /&gt;
Be sure to read the [[Common compilation problems]] page if you have problems - we&#039;ll try to keep the page up to date with known problems and solutions.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== Testing and packaging the client ==&lt;br /&gt;
&lt;br /&gt;
=== Testing the result from inside the tree ===&lt;br /&gt;
&lt;br /&gt;
You may find it simpler and less error-prone to follow the instructions in the [[Compiling_the_viewer_%28Linux%29#Packaging_the_client|Packaging the client]] section below to run the client under the same conditions as an end-user would.  Otherwise:&lt;br /&gt;
&lt;br /&gt;
* Preparing to run &#039;in-tree&#039;&lt;br /&gt;
** &amp;lt;i&amp;gt;ensure that you have indra/newview/app_settings/static_*.db2&amp;lt;/i&amp;gt; - if not, you&#039;ll find it in the &#039;slviewer-artwork&#039; download (a zip file).&lt;br /&gt;
** now, from the indra directory:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ cp ../scripts/messages/message_template.msg newview/app_settings/&lt;br /&gt;
 $ cp ../etc/message.xml newview/app_settings/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Starting from version 1.18.0, copying message.xml is also required. Missing it will cause group IMs to fail to work, although the viewer will run fine otherwise.&lt;br /&gt;
&lt;br /&gt;
* Running it: The LD_LIBRARY_PATH stuff ensures that the binary looks for its libraries in the right places.  From the indra directory:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ ( cd newview &amp;amp;&amp;amp; LD_LIBRARY_PATH=../../libraries/i686-linux/lib_release_client:${LD_LIBRARY_PATH}:/usr/local/lib  ./secondlife-i686-bin )&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==== The client seems kinda slow. ====&lt;br /&gt;
&lt;br /&gt;
By default, the open-source Second Life Viewer uses the open-source OpenJPEG library to decode the (many) JPEG-2000 texture images it receives from the servers.  This isn&#039;t quite of comparable speed to the proprietary third-party library which the Linden Lab viewer builds have traditionally used, for which we are not permitted to redistribute the source.&lt;br /&gt;
&lt;br /&gt;
However, the &amp;lt;i&amp;gt;slviewer-linux-libs&amp;lt;/i&amp;gt; package includes two pre-built libraries which facilitate the use of this slightly faster image decoding method: &amp;lt;b&amp;gt;libkdu_v42R.so&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;libllkdu.so&amp;lt;/b&amp;gt;.  These are provided for your testing; again, we are not permitted to grant you the right to re-distribute these libraries to downstream users, but the viewer will still work (albeit slightly slower) without them.&lt;br /&gt;
&lt;br /&gt;
To &amp;lt;b&amp;gt;use these faster image-decoding libraries&amp;lt;/b&amp;gt;, they simply need to be put into the right places relative to the viewer runtime directory - nothing needs to be reconfigured or recompiled.  If you&#039;re running the client from the source tree, the following will make the KDU libraries available:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cp &amp;quot;$SLSRC/libraries/i686-linux/lib_release_client/libllkdu.so&amp;quot; &amp;quot;$SLSRC/indra/newview/libllkdu.so&amp;quot;&lt;br /&gt;
 mkdir &amp;quot;$SLSRC/indra/lib&amp;quot;&lt;br /&gt;
 cp &amp;quot;$SLSRC/libraries/i686-linux/lib_release_client/libkdu_v42R.so&amp;quot; &amp;quot;$SLSRC/indra/lib/libkdu_v42R.so&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;b&amp;gt;indra/newview/viewer_manifest.py&amp;lt;/b&amp;gt; contains some commented-out entries describing where these libraries belong; if you uncomment the two lines corresponding to libllkdu and libkdu then they will be automatically copied into the right place in the runtime directory when you follow the &#039;Packaging the client&#039; instructions below.&lt;br /&gt;
&lt;br /&gt;
==== File Dialogs Don&#039;t Work on 64 bit system ====&lt;br /&gt;
&lt;br /&gt;
If you run a 64 bit system, and your file dialogs don&#039;t work, or they worked before and stopped after you installed an update, it may be due to a mismatch between the headers used to compile the viewer and the library it&#039;s using. The log will contain something like this:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 2007-06-21T01:28:35Z INFO: ll_try_gtk_init: Starting GTK Initialization.&lt;br /&gt;
 2007-06-21T01:28:36Z INFO: ll_try_gtk_init: GTK Initialized.&lt;br /&gt;
 2007-06-21T01:28:36Z INFO: ll_try_gtk_init: - Compiled against GTK version 2.10.11&lt;br /&gt;
 2007-06-21T01:28:36Z INFO: ll_try_gtk_init: - Running against GTK version 2.10.6&lt;br /&gt;
 2007-06-21T01:28:36Z WARNING: ll_try_gtk_init: - GTK COMPATIBILITY WARNING: Gtk+ version too old (micro mismatch)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What happens here is that your distribution includes 32 bit GTK libraries, but the package only includes the libraries themselves and not the headers. When building, the SL client will build against the headers included with the main 64 bit GTK package. This will work if the 64 bit version of the library is the same or older than the 32 bit one. However, if your 32 bit library is older, then the viewer will detect the mismatch (built with headers for a newer version of GTK than it&#039;s using) and turn GTK off.&lt;br /&gt;
&lt;br /&gt;
Possible solutions:&lt;br /&gt;
* Download the source for the version of the 32 bit GTK libraries your distribution comes with, and build your viewer against those headers.&lt;br /&gt;
* Upgrade your 32 bit GTK package so that it&#039;s the same or newer as the 64 bit one.&lt;br /&gt;
* Downgrade your 64 bit package (may not be a good idea).&lt;br /&gt;
&lt;br /&gt;
=== Packaging the client ===&lt;br /&gt;
&lt;br /&gt;
If you substitute &#039;BUILD=release&#039; with &#039;&amp;lt;b&amp;gt;BUILD=releasefordownload&amp;lt;/b&amp;gt;&#039; in the &#039;Compiling&#039; section above, then packaging the resulting code, libraries, data and documentation into a tarball for the end-user will be done automatically as the final stage of the build process; the pristine end-user client distribution has been assembled into the directory &amp;lt;b&amp;gt;indra/newview/SecondLife_i686_1_X_Y_Z/&amp;lt;/b&amp;gt; and has also been tarred into &amp;lt;b&amp;gt;indra/newview/SecondLife_i686_1_X_Y_Z.tar.bz2&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file which controls what (and where) files go into the end-user runtime viewer directory is &amp;lt;b&amp;gt;indra/newview/viewer_manifest.py&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Automated libraries and headers adjustments, compilation and packaging ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Here is a bash script that could save you a lot of time... It basically does all what is described above, and more, and entitles you to compile a SL client very easily:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# make-SL v1.70 (c)2007 Henri Beauchamp. Released under GPL license v2:&lt;br /&gt;
# http://www.gnu.org/licenses/gpl.txt&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
######## THIS IS QUICK&#039;N DIRTY ALPHA SOFTWARE. USE AT YOUR OWN RISKS ! ########&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
# BEWARE: this script is meant to compile a -personal- SL client. It is -NOT- #&lt;br /&gt;
#         suitable to build client versions meant for public release, because #&lt;br /&gt;
#         non-open source code is packaged by this script (e.g. libkdu).      #&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
# This bash script is aimed at easying up the build process of a SL client.&lt;br /&gt;
# It does not cover building it with custom/system openjpeg, elfio or fmodapi&lt;br /&gt;
# (we use the provided libraries).&lt;br /&gt;
# You may enable or disable the use of your system&#039;s library by editing&lt;br /&gt;
# the USE_SYSTEM_* variable (&amp;quot;yes&amp;quot; --&amp;gt; use the system library, &amp;quot;no&amp;quot; --&amp;gt; use&lt;br /&gt;
# LL&#039;s provided ones).&lt;br /&gt;
# The script also takes care of updating properly the viewer_manifest.py script&lt;br /&gt;
# accordingly, so that you (should) end up with a properly packaged client.&lt;br /&gt;
&lt;br /&gt;
# To use this script, simply make it executable (chmod +x make-SL) and&lt;br /&gt;
# put it into /usr/local/bin (or any other directory in your PATH).&lt;br /&gt;
# Then, download the slviewer-src-*.tar.gz, slviewer-linux-libs-*.tar.gz,&lt;br /&gt;
# slviewer-artwork-*.zip and fmodapi*.tar.gz archives, and finally, invoke&lt;br /&gt;
# make-SL as follow:&lt;br /&gt;
#   make-SL path_to_archives  (example: make-SL ~/downloads)&lt;br /&gt;
# or simply:&lt;br /&gt;
#   make-SL&lt;br /&gt;
# when invoking from the directory where the archives are.&lt;br /&gt;
# The sources will be installed into the PATH_TO_SOURCES directory,&lt;br /&gt;
# and the client will be built into the TEMP_BUILD_DIR directory.&lt;br /&gt;
# The packaged build will be moved to your home directory.&lt;br /&gt;
# If you want to retry a compilation after fixing something manually and&lt;br /&gt;
# don&#039;t want make-SL to start all over again, overwriting everything,&lt;br /&gt;
# you may invoke it with the --retry option, like this:&lt;br /&gt;
#   make-SL --retry&lt;br /&gt;
# This script has been tested by the author, on a (very customized)&lt;br /&gt;
# Mandrake 10.2 distro. Tested with SL v1.17 sources.&lt;br /&gt;
&lt;br /&gt;
# Where the sources of the client will be held (defaults to &amp;quot;./linden&amp;quot;):&lt;br /&gt;
PATH_TO_SOURCES=&amp;quot;/usr/src/SL&amp;quot;&lt;br /&gt;
# Where to build the client:&lt;br /&gt;
export TEMP_BUILD_DIR=&amp;quot;$PATH_TO_SOURCES/build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
USE_SYSTEM_GTK=&amp;quot;yes&amp;quot;&lt;br /&gt;
USE_SYSTEM_SDL=&amp;quot;yes&amp;quot;&lt;br /&gt;
USE_SYSTEM_SSL=&amp;quot;yes&amp;quot;&lt;br /&gt;
# Beware: libdb4 makes use of libapr... so you should keep USE_SYSTEM_APR&lt;br /&gt;
# and USE_SYSTEM_DB4 in sync.&lt;br /&gt;
USE_SYSTEM_APR=&amp;quot;no&amp;quot;&lt;br /&gt;
USE_SYSTEM_DB4=&amp;quot;no&amp;quot;&lt;br /&gt;
USE_SYSTEM_OGG=&amp;quot;yes&amp;quot;&lt;br /&gt;
USE_SYSTEM_ZLIB=&amp;quot;yes&amp;quot;&lt;br /&gt;
USE_SYSTEM_UUID=&amp;quot;yes&amp;quot;&lt;br /&gt;
USE_SYSTEM_CURL=&amp;quot;no&amp;quot;&lt;br /&gt;
USE_SYSTEM_EXPAT=&amp;quot;no&amp;quot;&lt;br /&gt;
USE_SYSTEM_VORBIS=&amp;quot;yes&amp;quot;&lt;br /&gt;
USE_SYSTEM_XMLRPC=&amp;quot;yes&amp;quot;&lt;br /&gt;
USE_SYSTEM_JPEGLIB=&amp;quot;yes&amp;quot;&lt;br /&gt;
# Enabling the system freetype2 prevents the client from using the SL fonts,&lt;br /&gt;
# or at least, this is what happens on my system (Mandrake 10.2 with PLF&lt;br /&gt;
# freetype2).&lt;br /&gt;
USE_SYSTEM_FREETYPE2=&amp;quot;no&amp;quot;&lt;br /&gt;
USE_SYSTEM_PERFTOOLS=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# You may add tune flags here, to optimize the code for your processor.&lt;br /&gt;
# Example, for an Athlon XP:&lt;br /&gt;
# TUNE_FLAGS=&amp;quot;-march=athlon-xp&amp;quot;&lt;br /&gt;
# BEWARE: because of a bug in the v1.17.2.0 SConstruct file, you MUST keep at&lt;br /&gt;
# least an -O2 flag in the TUNE_FLAGS, to avoid getting a very slooooow client...&lt;br /&gt;
# This problem was apparently fixed in v1.17.3.0.&lt;br /&gt;
TUNE_FLAGS=&amp;quot;-fomit-frame-pointer -frename-registers -fweb -fexpensive-optimizations&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Whether to build with the browser login screen or not:&lt;br /&gt;
WITH_MOZILLA=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function update_manifest() {&lt;br /&gt;
    grep -v $1 $PATH_TO_SOURCES/indra/newview/viewer_manifest.py &amp;gt;$TEMP_BUILD_DIR/viewer_manifest.py&lt;br /&gt;
    mv -f $TEMP_BUILD_DIR/viewer_manifest.py $PATH_TO_SOURCES/indra/newview/viewer_manifest.py&lt;br /&gt;
    chmod +x $PATH_TO_SOURCES/indra/newview/viewer_manifest.py&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function compile() {&lt;br /&gt;
    cd $PATH_TO_SOURCES/indra&lt;br /&gt;
    echo &amp;quot;Compiling the client into $TEMP_BUILD_DIR...&amp;quot;&lt;br /&gt;
    scons DISTCC=no BTARGET=client BUILD=releasefordownload MOZLIB=$WITH_MOZILLA&lt;br /&gt;
    if (($? == 0)) ; then&lt;br /&gt;
        mv $PATH_TO_SOURCES/indra/newview/SecondLife*.tar.bz2 $HOME/&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$TEMP_BUILD_DIR&amp;quot; == &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
    export TEMP_BUILD_DIR=/tmp/$USER/SL&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Check to see if we simply want to retry a compilation:&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; == &amp;quot;--retry&amp;quot; ] ; then&lt;br /&gt;
    compile&lt;br /&gt;
    exit $?&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Make sure we don&#039;t unpack over an old source tree:&lt;br /&gt;
if [ -d linden ] ; then&lt;br /&gt;
    rm -rf linden/&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d $PATH_TO_SOURCES ] &amp;amp;&amp;amp; [ &amp;quot;$PATH_TO_SOURCES&amp;quot; != &amp;quot;&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$PATH_TO_SOURCES&amp;quot; != &amp;quot;/&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$PATH_TO_SOURCES&amp;quot; != &amp;quot;.&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$PATH_TO_SOURCES&amp;quot; != &amp;quot;..&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$PATH_TO_SOURCES&amp;quot; != &amp;quot;$HOME&amp;quot; ] ; then&lt;br /&gt;
    rm -rf $PATH_TO_SOURCES/&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Use the parameter (if any) as the path to the archives:&lt;br /&gt;
&lt;br /&gt;
PATH_TO_ARCHIVES=&amp;quot;.&amp;quot;&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; != &amp;quot;&amp;quot; ]; then&lt;br /&gt;
    if [ -d $1 ] ; then&lt;br /&gt;
        PATH_TO_ARCHIVES=$1&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s first unpack everything:&lt;br /&gt;
if ! [ -f $PATH_TO_ARCHIVES/slviewer-src-*.tar.gz ] ; then&lt;br /&gt;
    echo &amp;quot;You need slviewer-src !&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
if ! [ -f $PATH_TO_ARCHIVES/slviewer-linux-libs-*.tar.gz ] ; then&lt;br /&gt;
    echo &amp;quot;You need slviewer-linux-libs !&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
if ! [ -f $PATH_TO_ARCHIVES/slviewer-artwork-*.zip ] ; then&lt;br /&gt;
    echo &amp;quot;You need slviewer-artwork !&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
if ! [ -f $PATH_TO_ARCHIVES/fmodapi*.tar.gz ] ; then&lt;br /&gt;
    echo &amp;quot;You need fmodapi !&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
echo &amp;quot;Extracting the files from the archives...&amp;quot;&lt;br /&gt;
tar xzf $PATH_TO_ARCHIVES/slviewer-src-*.tar.gz&lt;br /&gt;
tar xzf $PATH_TO_ARCHIVES/slviewer-linux-libs-*.tar.gz&lt;br /&gt;
unzip $PATH_TO_ARCHIVES/slviewer-artwork-*.zip &amp;gt;/dev/null&lt;br /&gt;
tar xzf $PATH_TO_ARCHIVES/fmodapi*.tar.gz&lt;br /&gt;
&lt;br /&gt;
# fmodapi:&lt;br /&gt;
echo &amp;quot;Copying fmodapi files...&amp;quot;&lt;br /&gt;
cp -a fmodapi*/api/inc/* linden/libraries/i686-linux/include/&lt;br /&gt;
cp fmodapi*/api/libfmod-*.so linden/libraries/i686-linux/lib_release_client/&lt;br /&gt;
rm -rf fmodapi*/&lt;br /&gt;
&lt;br /&gt;
# Move the sources to where we want to hold them:&lt;br /&gt;
if [ &amp;quot;$PATH_TO_SOURCES&amp;quot; != &amp;quot;linden&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$PATH_TO_SOURCES&amp;quot; != &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Moving the sources to $PATH_TO_SOURCES...&amp;quot;&lt;br /&gt;
    mv -f linden $PATH_TO_SOURCES&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s own the files:&lt;br /&gt;
chown -R $USER: $PATH_TO_SOURCES/&lt;br /&gt;
&lt;br /&gt;
# Check for patches to apply. The names of the patches must be in the form&lt;br /&gt;
# slviewer-*.patch* (Example: slviewer-v117-EmbbededNotecard.patch.bz2).&lt;br /&gt;
# They must be applicable from inside the source directory with the -p1&lt;br /&gt;
# option, i.e. they have been built from outside the source directory&lt;br /&gt;
# with a diff command such as:&lt;br /&gt;
# diff -urN linden/ linden-patched/ &amp;gt;slviewer-whatever.patch&lt;br /&gt;
# And they may be gzipped or bzipped.&lt;br /&gt;
PATCHES=`/bin/ls $PATH_TO_ARCHIVES/slviewer-*.patch* 2&amp;gt;/dev/null`&lt;br /&gt;
if [ &amp;quot;$PATCHES&amp;quot; != &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Applying patches...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES&lt;br /&gt;
    PATCHES=`/bin/ls $PATH_TO_ARCHIVES/slviewer-*.patch*`&lt;br /&gt;
    for i in $PATCHES; do&lt;br /&gt;
        echo &amp;quot;Patch: $i&amp;quot;&lt;br /&gt;
        if echo $i | grep &amp;quot;.gz&amp;quot; &amp;amp;&amp;gt;/dev/null ; then&lt;br /&gt;
            gunzip -c $i | patch -p1 -s&lt;br /&gt;
        elif echo $i | grep &amp;quot;.bz2&amp;quot; &amp;amp;&amp;gt;/dev/null ; then&lt;br /&gt;
            bzcat $i | patch -p1 -s&lt;br /&gt;
        else&lt;br /&gt;
            patch -p1 -s &amp;lt;$i&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Make a clean build:&lt;br /&gt;
if [ -d $TEMP_BUILD_DIR ] &amp;amp;&amp;amp; [ &amp;quot;$TEMP_BUILD_DIR&amp;quot; != &amp;quot;&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$TEMP_BUILD_DIR&amp;quot; != &amp;quot;/&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$TEMP_BUILD_DIR&amp;quot; != &amp;quot;.&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$TEMP_BUILD_DIR&amp;quot; != &amp;quot;..&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$TEMP_BUILD_DIR&amp;quot; != &amp;quot;$HOME&amp;quot; ] ; then&lt;br /&gt;
    rm -rf $TEMP_BUILD_DIR/&lt;br /&gt;
fi&lt;br /&gt;
mkdir -p $TEMP_BUILD_DIR&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system GTK+ if available:&lt;br /&gt;
if [ -d /usr/include/atk-1.0 ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_GTK&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system GTK+...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries/i686-linux/include&lt;br /&gt;
    rm -rf atk-1.0/ gtk-2.0/ glib-2.0/ pango-1.0/&lt;br /&gt;
    rm -f ../lib_release_client/libgtk*&lt;br /&gt;
    cp -a /usr/include/atk-1.0 .&lt;br /&gt;
    cp -a /usr/include/gtk-2.0 .&lt;br /&gt;
    cp -a /usr/lib/gtk-2.0/include/* gtk-2.0/&lt;br /&gt;
    cp -a /usr/include/glib-2.0 .&lt;br /&gt;
    cp -a /usr/lib/glib-2.0/include/* glib-2.0/&lt;br /&gt;
    cp -a /usr/include/pango-1.0 .&lt;br /&gt;
    if [ -d /usr/include/cairo ] ; then&lt;br /&gt;
        cp -a /usr/include/cairo/* .&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system freetype2 if available:&lt;br /&gt;
if [ -f /usr/include/ft2build.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_FREETYPE2&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system freetype2...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries&lt;br /&gt;
    rm -rf include/freetype/ i686-linux/include/llfreetype2/*&lt;br /&gt;
    rm -f include/ft2build.h i686-linux/lib_release_client/libfreetype.a&lt;br /&gt;
    cp -a /usr/include/freetype2/freetype/ i686-linux/include/llfreetype2/&lt;br /&gt;
    cp -a /usr/include/ft2build.h i686-linux/include/llfreetype2/freetype/&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system zlib if available:&lt;br /&gt;
if [ -f /usr/include/zlib.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_ZLIB&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system zlib...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries&lt;br /&gt;
    rm -rf include/zlib/&lt;br /&gt;
    mkdir -p i686-linux/include/zlib&lt;br /&gt;
    cp -a /usr/include/zlib*.h i686-linux/include/zlib/&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system jpeglib if available:&lt;br /&gt;
if [ -f /usr/include/jpeglib.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_JPEGLIB&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system jpeglib...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries&lt;br /&gt;
    rm -rf include/jpeglib/ i686-linux/lib_release_client/libjpeg.a&lt;br /&gt;
    mkdir -p i686-linux/include/jpeglib&lt;br /&gt;
    cp -a /usr/include/j*.h i686-linux/include/jpeglib/&lt;br /&gt;
    touch i686-linux/include/jpeglib/jinclude.h&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system xmlrpc-epi if available:&lt;br /&gt;
if [ -f /usr/include/xmlrpc.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_XMLRPC&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system xmlrpc-epi...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries&lt;br /&gt;
    rm -rf include/xmlrpc-epi/ i686-linux/lib_release_client/libxmlrpc.a&lt;br /&gt;
    mkdir -p i686-linux/include/xmlrpc-epi&lt;br /&gt;
    cp -a /usr/include/xmlrpc*.h i686-linux/include/xmlrpc-epi/&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system ogg if available:&lt;br /&gt;
if [ -f /usr/include/ogg/ogg.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_OGG&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system ogg...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries&lt;br /&gt;
    rm -rf include/ogg/ i686-linux/lib_release_client/libogg*&lt;br /&gt;
    update_manifest libogg&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system vorbis if available:&lt;br /&gt;
if [ -f /usr/include/vorbis/vorbisenc.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_VORBIS&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system vorbis...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries&lt;br /&gt;
    rm -rf include/vorbis/ i686-linux/lib_release_client/libvorbis*&lt;br /&gt;
    update_manifest libvorbis&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system SDL if available:&lt;br /&gt;
if [ -f /usr/include/SDL/SDL.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_SDL&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system SDL...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries/i686-linux&lt;br /&gt;
    rm -rf include/SDL/ lib_release_client/libSDL*&lt;br /&gt;
    update_manifest libSDL&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system openssl if available:&lt;br /&gt;
if [ -f /usr/lib/libssl.so.0.9.7 ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_SSL&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system openssl...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries/i686-linux/lib_release_client&lt;br /&gt;
    rm -f libssl.* libcrypto.*&lt;br /&gt;
    update_manifest libssl&lt;br /&gt;
    update_manifest libcrypto&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system apr if available:&lt;br /&gt;
if [ -f /usr/include/apr*/apr.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_APR&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system apr...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries/i686-linux&lt;br /&gt;
    rm -rf include/apr-1/*&lt;br /&gt;
    rm -f lib_release_client/libapr*&lt;br /&gt;
    cp -a /usr/include/apr*/* include/apr-1/&lt;br /&gt;
    update_manifest libapr&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system expat if available:&lt;br /&gt;
if [ -f /usr/include/expat.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_EXPAT&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system expat...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries&lt;br /&gt;
    rm -rf include/expat/&lt;br /&gt;
    rm -f i686-linux/lib_release_client/libexpat*&lt;br /&gt;
    mkdir -p i686-linux/include/expat&lt;br /&gt;
    cp -a /usr/include/expat*.h i686-linux/include/expat/&lt;br /&gt;
    update_manifest libexpat&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system curl if available:&lt;br /&gt;
if [ -f /usr/include/curl/curl.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_CURL&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system curl...&amp;quot;&lt;br /&gt;
    cd $PATH_TO_SOURCES/libraries&lt;br /&gt;
    rm -rf include/curl/&lt;br /&gt;
    rm -f i686-linux/lib_release_client/libcurl.*&lt;br /&gt;
    update_manifest libcurl&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system db4 if available:&lt;br /&gt;
if [ -f /usr/lib/libdb-4.2.so ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_DB4&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system db4...&amp;quot;&lt;br /&gt;
    rm -f $PATH_TO_SOURCES/libraries/i686-linux/lib_release_client/libdb*.so&lt;br /&gt;
    update_manifest libdb&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s use the system uuid if available:&lt;br /&gt;
if [ -f /lib/libuuid.so.1 ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_UUID&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
    echo &amp;quot;Using the system libuuid...&amp;quot;&lt;br /&gt;
    rm -f $PATH_TO_SOURCES/libraries/i686-linux/lib_release_client/libuuid.*&lt;br /&gt;
    update_manifest libuuid&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if grep tcmalloc $PATH_TO_SOURCES/indra/SConstruct &amp;amp;&amp;gt;/dev/null ; then&lt;br /&gt;
    if [ -f /usr/include/google/malloc_hook.h ] &amp;amp;&amp;amp; [ &amp;quot;$USE_SYSTEM_PERFTOOLS&amp;quot; == &amp;quot;yes&amp;quot; ] ; then&lt;br /&gt;
        echo &amp;quot;Using the system google-perftools...&amp;quot;&lt;br /&gt;
        cd $PATH_TO_SOURCES/libraries/i686-linux&lt;br /&gt;
        rm -f lib_release_client/libtcmalloc.* lib_release_client/libstacktrace.*&lt;br /&gt;
        rm -rf include/google/&lt;br /&gt;
        cp -a /usr/lib/libstacktrace.* /usr/lib/libtcmalloc.so* lib_release_client/&lt;br /&gt;
        cp -a /usr/include/google include/&lt;br /&gt;
        update_manifest tcmalloc&lt;br /&gt;
        update_manifest stacktrace&lt;br /&gt;
    else&lt;br /&gt;
        # Remove the google-perftools stuff if not present in the libraries package&lt;br /&gt;
        # (problem seen in SL v1.17):&lt;br /&gt;
        if ! [ -f $PATH_TO_SOURCES/libraries/i686-linux/lib_release_client/libtcmalloc.so ] ; then&lt;br /&gt;
            update_manifest tcmalloc&lt;br /&gt;
            update_manifest stacktrace&lt;br /&gt;
            # The following lines remove the&lt;br /&gt;
            #   &amp;quot;external_libs += [&#039;tcmalloc&#039;, &#039;stacktrace&#039;]&amp;quot;&lt;br /&gt;
            # line from SConstruct... and many other lines which renders SConstruct&lt;br /&gt;
            # unusable to build anything else than the client... this is a quick&#039;n&lt;br /&gt;
            # dirty patch. :-P&lt;br /&gt;
            grep -v tcmalloc $PATH_TO_SOURCES/indra/SConstruct &amp;gt;$TEMP_BUILD_DIR/SConstruct&lt;br /&gt;
            mv -f $TEMP_BUILD_DIR/SConstruct $PATH_TO_SOURCES/indra/SConstruct&lt;br /&gt;
        fi&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Fix a bug in v1.17.1 and later SConstruct file, where some libraries are&lt;br /&gt;
# compiled as shared instead of static, and are yet not packaged, and where&lt;br /&gt;
# fmod can&#039;t be enabled for OPENSOURCE:&lt;br /&gt;
sed -e &amp;quot;s/create_dynamic_module(module=module, module_libs=module_libs)/create_static_module(module)/&amp;quot; $PATH_TO_SOURCES/indra/SConstruct &amp;gt;$TEMP_BUILD_DIR/SConstruct&lt;br /&gt;
sed -e &amp;quot;s/enable_fmod = not opensource and/enable_fmod =/&amp;quot; $TEMP_BUILD_DIR/SConstruct &amp;gt;$PATH_TO_SOURCES/indra/SConstruct&lt;br /&gt;
rm -f $TEMP_BUILD_DIR/SConstruct&lt;br /&gt;
&lt;br /&gt;
# Add tune flags, if any:&lt;br /&gt;
if [ &amp;quot;$TUNE_FLAGS&amp;quot; != &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
    sed -e &amp;quot;s/-g -pipe/$TUNE_FLAGS -pipe/&amp;quot; $PATH_TO_SOURCES/indra/SConstruct &amp;gt;$TEMP_BUILD_DIR/SConstruct&lt;br /&gt;
    mv -f $TEMP_BUILD_DIR/SConstruct $PATH_TO_SOURCES/indra/SConstruct&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Update the manifest file and enable libkdu packaging. I&#039;m too lazy to use&lt;br /&gt;
# awk or perl, here, but that&#039;s indeed what should be done...&lt;br /&gt;
# The following (very dirty) code may break at some point, depending on what&lt;br /&gt;
# LL will put in comments in the manifest file...&lt;br /&gt;
# First, remove the lines with libstdc++.so.6 and the crash logger:&lt;br /&gt;
update_manifest libstdc&lt;br /&gt;
update_manifest crash_logger&lt;br /&gt;
# Now, any line with a &#039;#&#039; followed with several spaces _should_ be dealing&lt;br /&gt;
# with the libkdu stuff... So, we simply remove the &#039;#&amp;quot;...&lt;br /&gt;
sed -e &amp;quot;s/#        them/# them/&amp;quot; $PATH_TO_SOURCES/indra/newview/viewer_manifest.py &amp;gt;$TEMP_BUILD_DIR/viewer_manifest.py&lt;br /&gt;
sed -e &amp;quot;s/#   /   /&amp;quot; $TEMP_BUILD_DIR/viewer_manifest.py &amp;gt;$PATH_TO_SOURCES/indra/newview/viewer_manifest.py&lt;br /&gt;
#mv -f $TEMP_BUILD_DIR/viewer_manifest.py $PATH_TO_SOURCES/indra/newview/viewer_manifest.py&lt;br /&gt;
rm -f $TEMP_BUILD_DIR/viewer_manifest.py&lt;br /&gt;
chmod +x $PATH_TO_SOURCES/indra/newview/viewer_manifest.py&lt;br /&gt;
&lt;br /&gt;
# Comment out &amp;quot;export LL_GL_BASICEXT=x&amp;quot; in the wrapper script:&lt;br /&gt;
sed -e &amp;quot;s/export LL_GL_BASICEXT=x/#export LL_GL_BASICEXT=x/&amp;quot; $PATH_TO_SOURCES/indra/newview/linux_tools/wrapper.sh &amp;gt;$TEMP_BUILD_DIR/wrapper.sh&lt;br /&gt;
mv -f $TEMP_BUILD_DIR/wrapper.sh $PATH_TO_SOURCES/indra/newview/linux_tools/wrapper.sh&lt;br /&gt;
chmod +x $PATH_TO_SOURCES/indra/newview/linux_tools/wrapper.sh&lt;br /&gt;
&lt;br /&gt;
# Missing file... at least in v1.17.0.0&lt;br /&gt;
if grep &amp;quot;secondlife-i686.supp&amp;quot; $PATH_TO_SOURCES/indra/newview/viewer_manifest.py &amp;amp;&amp;gt;/dev/null ; then&lt;br /&gt;
    if ! [ -f $PATH_TO_SOURCES/indra/newview/secondlife-i686.supp ] ; then&lt;br /&gt;
        touch $PATH_TO_SOURCES/indra/newview/secondlife-i686.supp&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# LL makes the assumption that a certain unicode true type font is installed&lt;br /&gt;
# on all Linux systems... which is of course wrong !  Let&#039;s check, and when&lt;br /&gt;
# this font is absent, replace the broken soft link with an empty file: this&lt;br /&gt;
# at least will prevent the viewer to issue many warnings about not being able&lt;br /&gt;
# to load the unicode.ttf font.&lt;br /&gt;
if ! [ -r $PATH_TO_SOURCES/indra/newview/linux_tools/unicode.ttf ] ; then&lt;br /&gt;
    rm -f $PATH_TO_SOURCES/indra/newview/linux_tools/unicode.ttf&lt;br /&gt;
    touch $PATH_TO_SOURCES/indra/newview/linux_tools/unicode.ttf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
compile&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
A list of patches is given for [[Compiling the viewer (FreeBSD)]].&lt;br /&gt;
&lt;br /&gt;
= Submitting Patches =&lt;br /&gt;
This is probably far down the road, but if you make changes to the source and want to submit them, see the page about [[Submitting patches|submitting patches]].&lt;/div&gt;</summary>
		<author><name>Balp Allen</name></author>
	</entry>
</feed>