User:Cron Stardust

From Second Life Wiki
Jump to: navigation, search

Just another scripter about trying to make things better.

Compiling on Gentoo AMD64

Note, that the below tends to get stale rapidly... And I'm not all that great with keeping non-inline documentation up-to-date on my own... (Note that all this is now EXTREMELY stale, and won't work... I'm leaving it here for now though in case it might be handy later.)


Needed packages

Make sure the following packages are installed:

  • dev-libs/boost
  • >=media-libs/gstreamer-0.10
  • media-libs/gst-plugins-base
  • /dev-libs/expat (seems to link against both libexpat.so.1 AND the older libexpat.so.0... Had to create a symlink to an edition of libexpat.so.0 in /usr/lib/ from a copy I found floating in another package on my system...)

(More will be found when I study my world file, and maybe when I rebuild my system... If you know a package is needed, by all means append it to the list!)

Possibles:

  • ELFIO
  • atk-1.0
  • glib-2.0
  • gtk-2.0
  • llfreetype2
  • pango-1.0

No longer needed:

  • dev-util/scons - dependency removed near viewer version 1.21, or so I've heard...

Where I got some of the list of possibles was by following the advice of Morgaine Dinova as posted in both my discussion area, and on SLDEV. Namely running the following command from my linden directory:

   LD_LIBRARY_PATH="indra/viewer-linux-$(arch)-release/newview/packaged/lib" ldd indra/viewer-linux-$(arch)-release/newview/packaged/bin/do-not-directly-run-secondlife-bin | sed -r -e 's/(^[ \t]*)|( .*$)|(.*\/)//g' -e 's/\.so.*/\.so/' | xargs equery belongs -n

Other commands can be used to find out what libraries you are missing, when run from the packaged folder:

  ldd bin/do-not-directly-run-secondlife-bin | grep 'not found'
  LD_LIBRARY_PATH="lib" ldd bin/do-not-directly-run-secondlife-bin | grep 'not found'

If the above two commands do not return anything when run, then you have no missing packages.

Get source and "accessories"

If this reads like a script, it's because that's what I built for myself and this was taken from the process I use there.

  1. Make a directory to put all the stuff into...
    • mkdir SLDev64
    • cd SLDev64
  2. Get the source.
  3. Get the latest artwork.
    • file_url="$(grep -m 1 "^SLASSET_ART=" "linden/doc/asset_urls.txt" | cut -d= -f2)"
    • file_name="$(basename "$file_url")"
    • wget -nc "$file_url"
    • unzip -oq "$file_name"
  4. Get the libs
    • file_url="$(grep -m 1 "^SLASSET_LIBS_LINUXI386=" "linden/doc/asset_urls.txt" | cut -d= -f2)"
    • file_name="$(basename "$file_url")"
    • wget -nc "$file_url"
    • tar -xf "$file_name"
  5. Get glh_linear. For some reason it's not auto-included when building stand-alone! VWR-9005
    • file_url="$(xml select -t -c "//key[text()='glh_linear']/following-sibling::map[1]/key[text()='packages']/following-sibling::map[1]/key[text()='linux64']/following-sibling::map[1]/uri/text()" "linden/install.xml")"
    • file_name="$(basename "$file_url")"
    • wget -nc "$file_url"
    • cd "linden"
    • tar -xf "../$file_name"
    • cd ..
  6. Now for a library that is not included by default, but is needed, NDOF. VWR-5297, VWR-10579 and [1]
    • file_url="http://www.aaue.dk/~janoc/files/software/linux/spacenav/libndofdev-0.2.tar.gz"
    • file_name="$(basename "$file_url")"
    • wget -nc "$file_url"
    • tar -xf "$file_name"
    • cd "libndofdev"
    • make
    • cd ..
    • mkdir "linden/libraries/include/ndofdev/"
    • cp libndofdev/ndofdev_external.h "linden/libraries/include/ndofdev/"
    • cp libndofdev/libndofdev.a "linden/libraries/$(arch)-linux/lib_release_client/"
  7. Finally, apply any patches to the source you feel like...
    • For me this was needed: VWR-9499
    • Also this fixes an issue with using NVidia OpenGL headers: VWR-9557
    • And to fix CMake to handle the location for NDOFDEV: VWR-10579

Building the viewer

Also from a process worked out in a script...

  1. Configure the tree
    • cd "linden/indra"
    • ./develop.py --standalone -t Release -N cmake
  2. Compile the viewer
    • ./develop.py --standalone -t Release -N build
    • cd ../..

And you should have a new client. At least it worked for me against SVN revision 1619... yay!