Saturday 18 September 2010

Phoenix 1.5.1 failing the 'I have a dream' test

This is the first of several posts where I show how the current crop of viewers fail the "I have a dream" test (see earlier post) for the x86_64 architecture. I chose x86_64 because it's been around for seven years (since the AMD Opteron in 2003) and nearly every desktop system newer than about 5 years old supports it, including my current and last desktop systems.

The lucky viewer in question this time is Phoenix, everyone's favourite Emerald replacement. Yay! Let's see how it fares, shall we?

Step 1 (Install OS): Ubuntu 10.04 for x86_64

Step 2 (extra packages):

sudo apt-get install g++ binutils make cmake flex bison\
libc6-dev libstdc++6 libx11-dev libxrender-dev libgl1-mesa-dev\
libglu1-mesa-dev zlib1g-dev libssl-dev libogg-dev libpng12-dev\
libdbus-glib-1-dev libgtk2.0-dev\
libopenal-dev libvorbis-dev libalut-dev libapr1-dev\
libaprutil1-dev libboost-dev \
libc-ares-dev libxmlrpc-epi-dev libopenjpeg-dev libjpeg62-dev\
libgtk2.0-dev libsdl1.2-dev \
libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev\
libnotify-dev\
libboost-date-time-dev\
libboost-filesystem-dev\
libboost-iostreams-dev\
libboost-program-options-dev\
libboost-python-dev\
libboost-regex-dev\
libboost-signals-dev\
libboost-thread-dev\
libboost-wave-dev\
libcurl4-gnutls-dev\
libtut-dev\
subversion\
scons\
libhunspell-dev\
libqt4-dev


Step 3 (get viewer source): Cloned Mercurial repository at http://hg.phoenixviewer.com/phoenix-sg/ from tag "release-1.5.1"

Step 4 (compile): In the "indra" directory, run command "./develop.py -m64 --standalone". This fails like this:

CMake Error at cmake/FindJsonCpp.cmake:49 (MESSAGE):
Could not find JSONCpp library
Call Stack (most recent call first):
cmake/JsonCpp.cmake:9 (include)
newview/CMakeLists.txt:15 (include)


CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
LLQTWEBKIT_LIBRARY (ADVANCED)
linked by target "media_plugin_webkit" in directory /space/SecondLife/phoenix-1.5.1/indra/media_plugins/webkit

-- Configuring incomplete, errors occurred!
Cleaning 'viewer-linux-x86_64-release'
Error: the command 'cmake' exited with status 1


Alternatively, we can try building non-standalone. Command "./develop.py -m64" succeeds in configuring the build, the command "./develop.py -m64 build" (to build it) fails with the following error:

/space/SecondLife/phoenix-1.5.1/indra/cmake/cmake_dummy.cpp:1: error: CPU you selected does not support x86-64 instruction set
make[2]: *** [cmake/CMakeFiles/cmake.dir/cmake_dummy.cpp.o] Error 1
make[2]: Leaving directory `/space/SecondLife/phoenix-1.5.1/indra/viewer-linux-x86_64-release'
make[1]: *** [cmake/CMakeFiles/cmake.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....


Oh dear, poor Phoenix! The non-standalone build fails because one of the build files sets the build architecture to "i686", which is obviously wrong.

The standalone build is more interesting - it fails because it expects libjsoncpp and llqtwebkit to be installed as system packages. These two have to be done manually beforehand to even get Phoenix to compile, but this violates step 2 of the "I have a dream" test as the root user has to install non-system packages to the /usr/local directory.

My dream hasn't come true yet, but I know it will someday!

No comments:

Post a Comment