User:Signore Iredell

From Second Life Wiki
Jump to navigation Jump to search

Stuff




February 23, 2007

Compiling Second Life First Look 1.13.3.58018 on Ubuntu Edgy using BUILD=releasefordownload

We use the BUILD=releasefordownload scon option because we want to build a complete tarball for the end-user. See ‘Packaging the client’ instructions in Compiling the viewer (Linux). Get sources, linux-libs and artwork of the viewer, fmodapi375linux.tar.gz and unpack them.

Edit the first line of these scripts, changing #!/bin/sh to #!/bin/bash

  • linden/indra/newview/linux_tools/launch_url.sh
  • linden/indra/newview/linux_tools/launch_url.sh
  • linden/indra/newview/linux_tools/wrapper.sh
  • linden/indra/newview/linux_tools/package-client.sh
  • linden/libraries/include/boost/pool/detail/pool_construct_simple.sh
  • linden/libraries/include/boost/pool/detail/pool_construct.sh
  • linden/libraries/i686-linux/include/apr-1/arch/unix/apr_arch_threadproc.h

Workaround for llmozlib error:

  • comment lines 126-147 and 194-195 in linden/indra/SConstruct
  • change linden/indra/llcommon/llpreprocessor.h : at line 54, change #define LL_LIBXUL_ENABLED 1 to #define LL_LIBXUL_ENABLED 0

Then set up FMOD:

cd fmodapi375linux/
cp api/inc/* ../linden/libraries/i686-linux/include/
cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/

and other stuff:

export SLSRC=/your/path/to/linden/
cp -a /usr/include/atk-1.0 ${SLSRC}/libraries/i686-linux/include/
cp -a /usr/include/gtk-2.0 ${SLSRC}/libraries/i686-linux/include/
cp -a /usr/lib/gtk-2.0/include/* ${SLSRC}/libraries/i686-linux/include/gtk-2.0/
cp -a /usr/include/glib-2.0 ${SLSRC}/libraries/i686-linux/include/
cp -a /usr/lib/glib-2.0/include/* ${SLSRC}/libraries/i686-linux/include/glib-2.0/
cp -a /usr/include/pango-1.0 ${SLSRC}/libraries/i686-linux/include/
cp -a /usr/include/cairo/* ${SLSRC}/libraries/i686-linux/include/

Edit linden/indra/newview/linux_tools/client-manifest-i686 - look for the kdu string and uncomment the two lines (libllkdu and libkdu) so that libs get automatically copied into the right place in the runtime directory.

Then,

scons DISTCC=no BTARGET=client BUILD=releasefordownload

January 8, 2007

Compiling the Second Life Viewer source code on Ubuntu Edgy

unpacked:

tar xzf slviewer-src-20070108c.tar.gz
tar xzf slviewer-linux-libs-20070108c.tar.gz
tar xzf fmodapi375linux.tar.gz

copied required FMOD headers and libraries into the Second Life Viewer source tree:

cd into the FMOD directory
cp api/inc/* ../linden/libraries/i686-linux/include/
cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/

installed via Synaptic:

gcc-3.4 gcc-3.4-base g++-3.4 scons

Now, I am new to scons, and since I’m on Ubuntu Edgy -that uses gcc-4.1- I thought maybe I had to do something like this (not sure this is a good idea), but actually we don’t need it:

export CC=’/usr/bin/gcc-3.4′

after I learnt this in the Linux Client Users group chat (thanks you all guys!), I went to Maryport and enjoyed a compile’n'dance party while giving the magic command:

scons DISTCC=no BTARGET=client BUILD=release

Then I got some errors, asked help to Linux Client fellows, then I installed:

libglu1-mesa-dev libgl1-mesa-dev mesa-commons-dev
flex bison

I tried again running scons, and as described here, "compiler couldn't find gtk/gtk.h" So I edited the indra/SConstruct file removing the leading spaces from the 6 ‘ ../libraries/’ strings from around line 187 onwards.

A couple of hours later… …scons: done building targets. One step further!

Then I ran it:

 ( cd newview && LD_LIBRARY_PATH=../../libraries/i686-linux/lib_release_client:${LD_LIBRARY_PATH}:/usr/local/lib  ./secondlife-i686-bin )

And it started! But it is "unable to initialize communications": I’m running it from inside the tree but I forgot to do this from the indra directory:

  $ cp ../scripts/messages/message_template.msg newview/app_settings/

And then it works! I’m in world!


Next step: packaging the client, substituting ‘BUILD=release’ with ‘BUILD=releasefordownload’ in the ‘Compiling’ section, in order to use the faster libkdu_v42R.so and libllkdu.so libraries.