Projects/KDE on Solaris/Status

    From KDE TechBase
    Revision as of 18:49, 1 March 2010 by SunTzuTech (talk | contribs) (KDEkonversation notes)

    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. In the short term, we are going to use mysql-5.1 from webstack, until we decide whether we back port the mysql-5.1.37 which is in the opensolaris SFW tree. We are using this version because the 4.x version in Solaris is old, and only has the 32-bit libraries.

    Ruby18 is also part of Webstack, so we'll use that until we decide that we'll backport the ruby18 that is also in the opensolaris SFW tree.


    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.7 (upgrade from ncurses-5.6 ,working with updated stdcxx4, 1/16/2010)
    • freetype2-2.3.9 (upgraded from 2.3.6)
    • fontconfig-2.5.0 (upgrade to 2.7.0 caused build failures in KDEedu, so reverted, 1/15/2010)
    • 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.22.3 (Thanks MarkW, upgraded from 2.14.6 and 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.1 (automoc issue tracked down to issues with iconv, for now no gnu iconv)
    • libgphoto-2.4.2
    • sane-backends-1.0.20
    • libexif-0.6.19


    KDE-4.4.0 Module Changes

    • KDEwebdev - Added support for libtidy from Webstack 1.5
    • KDEbase-workspace - Modified startkde patch to include Webstack paths for S10
    • KDEmultimedia-kmix - Add 4Front's OpenSound System package as a dependency
    • KDEbindings - Added Webstack 1.5's ruby 1.8 to the path
    • KDEsdk - Added Webstack's 1.5 apache22 bin to the path for Apache Portable Runtime support
    • KDEplasma-addons - Add Webstack's 1.5 python2.6 to the path
    • KDEwebdev - Adjust packages for S10 since ruby 1.8 is in /opt/webstack
    • KDEwebdev - Added Webstack 1.5's ruby 1.8 to the path
    • KDEkonversation - Make sure to use S10's FOSSgettext tools instead of native.


    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.ccc 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.