Solaris/Status
This page lists the status of KDE4 on Solaris; for KDE on Solaris instructions on getting KDE4 on Solaris see the other Techbase page.
Philosophy
While Solaris 10 is getting a bit dated, there is one nice thing about building current software on it. Almost nothing conflicts. If it does, then it's something that's done once, and it doesn't pop up again. Unlike SXCE/Nevada/OSOL, where the list of dependencies is changing bi-weekly. I find that just too annoying for words. Another reason, is that for the most part, stuff from Sun's JDS project or the Spec Files Extra project can be prototyped in very quickly, so the benefit of the initial port work is already done. Solaris 10U8 has 64-bit libraries for libssl and libcrypto, which has been a bit of a blocker, and with the addition of a 64-bit libusb library, there shouldn't be much that can't be built.
Dependencies TO-DO List
Due to a year of neglect, there are some new dependencies that are going to need to be done for Solaris 10. First, mysql-5.1. This is in the osol repo and should be an easy port. Solaris 10 only has mysql-4.x and only a 32-bit client which makes building qt on 64-bit rather problematic.
Second is ruby18, again which is in the osol repo, and again should be an easy port.
Dependencies
The following list is the growing set of dependencies that is being migrated from the old DUDE tarball structure, to complete spec files. Any upgraded spec files can be easily recompiled to the original by just changing the Version or src_ver variable. This is done to retain compatibility with the original 4.1.4 release that was done.
There are several sets of modules which require a circular dependency build to effect all the functionality. gettext requires libiconv, but libiconv requires gettext. So we build gettext, then libiconv, then remove gettext and rebuild it again with libiconv support, then rebuild libiconv support with the real gettext support.
- expat-2.0.1 (upgraded from 2.0.0)
- lcms-1.18a (upgraded from 1.17)
- libmng-1.0.10
- gettext-0.17, libiconv-1.11
- gettextwo (temp), libiconvwo (temp), gettext (real), libiconv (real)
- stdcxx-4.2.1 (Dude svn co r.3072, change -lstdcxx to -lstdcxx4)
- ncurses-5.6 (working with updated stdcxx4)
- freetype2-2.3.9 (upgraded from 2.3.6)
- fontconfg-2.7.0 (upgraded from 2.5.0)
- popt-1.15 (upgraded from 1.7)
- pkg-config-0.23 (new, to support glib2/gstreamer >= 0.10.22)
- libcddb 1.3.2(new, to support libcdio and vddimager, and others)
- libcdio 0.82 (upgraded from 0.78.2)
- vcdimager-0.7.23
- libcddbwo (temp), libcdiowo (temp), vcdimagerwo (temp), libcdio, vcdimager, libcddb (depends on libcdio...)
- pcre-7.4
- readline-5.2
- sqlite-3.6.20 (upgraded from 3.3.8)
- glib2-2.14.6 (upgraded from 2.12.12)
- libdvdcss-1.2.10 (upgraded from 1.2.9)
- libdvdread-4.1.3 (upgrade from 0.9.4)
- libdvdplay-1.0.1
- libdvdnav-4.1.3 (upgrade from 0.1.10)
- gstreamer-0.10.22 (upgrade from 0.10.17)
- libogg-1.1.4 (upgrade from 1.1.3)
- dbus-1.1.20
- libgcrypt-1.4.0
- lzo-2.02
- libtasn1-1.2
- libgpg-error-1.7 (upgrade from 1.5)
- opencdk-2.3.2
- libfstyp-1.0 (backport from opensolaris)
- endian-1.0 (port of glibc endian.h portability macros)
- texinfo-4.2
- gnutls-1.4.5
- tcpwrappers-7.6-IPV6.4
- gnupth-2.0.7
- mit-kerberos5-1.6.3, cyrus-sasl-2.1.21, openldap-2.3.2
- mit-kerberos (temp), cyrus-sasl (temp), openldap (temp), mit-kerberos5 (real), cyrus-sasl (real), openldap (real)
- a52dec-0.7.4
- amrnb-26104-610, amrwb-26204-700
- audiofile-0.2.6 (added extra patches from the F12 repo)
- sdl-1.2.11
- libsndfile-1.0.17
- faac-1.25
- faad-2.6.1
- nas-1.9.1
- flac-1.1.2
- libtheora-1.0
- fftw-3.1.2
- libassuan-1.0.4
- curl-7.15.5
- speex-1.1.2
- lidmad-0.15.1b
- libidn-0.6.8
- esound-0.2.38
- libvorbis-1.1.2
- capseo-0.3.0-158
- dbus-glib-0.74
- net-snmp-4.5.1
- libraw1394-1.2.0
- capseo-0.3.0-158
- libcaptury-0.3.0-158
- libdv-1.0
- chlib-0.39
- imlib2-1.4.0
- cups-1.4.2 (upgrade from 1.1.12)
- boost-1.36
- qt-4.6.0
- libgphoto-2.4.2
- sane-backends-1.0.20
- libexif-0.6.19
Informational
- If the system locale is C, then every Qt application will spit out an iconv warning on startup; this is annoying but harmless. Setting LANG to something else (e.g. LANG=646, even) will help. Long term solution: add encoding or system workaround.
Showstoppers
The intention of this showstopper list is to provide more detail and context for what we consider showstoppers for getting KDE4 on Solaris shipped. It doesn't correspond to the Release Team's list, at least not until we get a lot more Solaris mindshare. Each showstopper should have a name, a KDE Bugzilla entry and a long(er) description.
Konsole
no bugs.kde.org entry yet
In a konsole tab, you can break the link between the shell / session / tab output and konsole itself, so that nothing gets printed anymore. To reproduce this problem, you need to either hit ^C at an inopportune time (there's plenty of that) or produce an unusual output pattern. Here's a long-winded way of looking at the ^C issue:
- start konsole
- start a new tab for convenience
- check that the shell is working, for instance by running ls
- tail -f /var/log/messages
- hit ^C; notice that tail is interrupted and the shell returns
- ls again, to see the shell still works
- at the shell prompt itself, hit ^C; you would expect a new shell prompt to be printed, but it is not
- type "date > /tmp/foo ; exit" and it enter (without the quotes)
- notice that /tmp/foo now exists with the right time and that the shell / session / tab closes
Here is a way of breaking the link without ^C but by producing a not-very-special output pattern. You need to have the C compiler installed:
- start konsole
- start a new tab for convenience
cd /tmp
/usr/ucb/echo -n "#include <math.h>" > t.c
cc t.c
- notice how the shell prompt does not come back after the warnings printed by the C compiler
- type exit to close the shell / session / tab
You cannot keep typing indefinitely in a session that is not reading output; it seems like eventually the output from the shell hangs as well. Also, you can hang konsole completely by doing this.