ルギア君の戯言

雑多な記事。

Trying to build KDE on OpenIndiana - Part 1

I just want to use KDE!

I searched, but I couldn't get information about this.

This is my memo to remeber what I did. So some details may be omitted.

I'm not good at English.

Environment

  • HARDWARE
    • Intel Core 2 Duo 2.53 GHz (I'm not sure how long takes to compile KDE.)
    • 4GB memory.
    • NVIDIA GeForce 7 (NVIDIA seems that they dropped the support of 304.xx driver for the newest Linux (3.10.xx or later), and the nouveau driver was useless for me*1.)
  • SOFTWARE
    • OpenIndiana 151.1.8 x86 (Build KDE as 64 bit application)
    • Solaris Studio 12.3 (Even GCC of recent version for OpenIndiana is in development. So I used stable compiler. I won't (re)distribute the executables of KDE.)

Build Qt-4.8.5

  1. Download source.
  2. Fix source.

    Line 899 in qt-everywhere-opensource-src-4.8.5/src/gui/dialogs/qfiledialog.cpp, getpwnum_r in OI151 is defined as conformed to POSIX, Qt detects as Solaris OS and _POSIX_C_SOURCE is not defined.

    err = getpwnam_r(userName.toLocal8Bit().constData(), &pw, buf, bufSize, &tmpPw);
    
  3. CC=cc CXX=CC CFLAGS="-xarch=sse3 -m64 -O5" CXXFLAGS="-xarch=sse3 -m64" LDFLAGS="-xarch=sse3 -m64" ./configure --prefix=/opt/kde
    
    • -O5 option seems ignored. Because they use -O2.
  4. gmake and pray for all.
  5. gmake install

Build CMake-2.8.12

  1. Download source.
  2. Fix source.

    CMake configure detects that OI have the function backtrace_symbols, but at the line 1383 in cmake-2.8.12/Source/kwsys/SystemInformation.cxx they use that function without including execinfo.h. Workaround fix is to add #include <execinfo.h> somewhere in global scope before that line.

  3.  CC=cc CXX=CC CFLAGS="-xarch=sse3 -m64 -O5" CXXFLAGS="-xarch=sse3 -m64" LDFLAGS="-xarch=sse3 -m64" ./configure --prefix=/opt/kde
    
  4. gmake and pray for all.
  5. gmake install

*2

*1:3D applications still does not work?

*2:PS: Solaris 11 seems to have KDE.