Projects/KDE on Solaris: Difference between revisions

From KDE TechBase
(update S10 and SS12 requirements)
(Describe shuttering of solaris.kde.org)
 
(32 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[http://www.sun.com/software/solaris/index.jsp Solaris] and [http://www.opensolaris.org/ OpenSolaris] are operating systems that are available for free. In addition, OpenSolaris is released under the CDDL, a FOSS license, by Sun Microsystems. Whilst Solaris has its roots in BSD, it is mostly SysV. Solaris 10 is certified UNIX [http://www.unix.org/single_unix_specification/ SUSv3]. KDE4 runs on this operating system.
{{warning|The KDE on Solaris project, also KDE on OpenSolaris, was active from around the year 2000 until nearly 2014, when the remaining team members ceased active development of the KDE packages. This page should be considered mostly of historical interest, although nothing stops anyone from trying to re-start KDE packaging on a descendant of Solaris such as IllumOS.}}
 
In the summer of 2015, the KDE on Solaris subdomain (solaris.kde.org) was shuttered and redirected to this page. The efforts to package KDE for Solaris and its derivatives have ceased as far as the KDE community knows.
 
== Contributors ==
 
The KDE Solaris Core Team in 2004:
 
Claudiu Costin,
Ken Mays,
Stefan Teleman,
Eva Brucherseifer,
Jaime Penalba,
Sergio Rodriguez de Guzman.
 
Contributors group in 2004:
 
Solaris x86 Engineering team,
The Blastwave.org maintainers,
Lars Tunkrans,
Dirk Mueller,
Roman Maeder,
Matthew Day,
Laurent Blume,
Thomas Bennett,
Adrian Murillo,
Rainald Lampl,
Torsten Kasch,
Mikael Dalsgard,
Guenter Feldmann,
Christopher Layne,
Dan Rawson,
Vladimir Anne,
Russell LeBar,
Nicolas Ternisien (website).
 
 
KDE OpenSolaris core team:
 
Adriaan de Groot,
Lukas Oboril,
Stefan Teleman,
Edward O'Callaghan,
Ben Taylor,
Mark Wright.
 
== Preamble ==
 
[http://www.oracle.com/technetwork/server-storage/solaris/overview/index.html Oracle Solaris 10] and [http://www.oracle.com/technetwork/server-storage/solaris11/overview/index.html Oracle Solaris 11 Express] are operating systems that are available for free. Read the [http://www.oracle.com/technetwork/licenses/solaris-cluster-express-license-167852.html Licensing Terms] for Oracle Solaris 10 and Oracle Solaris 11 Express.  IANAL, but the terms
 
    LICENSE RIGHTS
    Except for any included software package or file that is licensed to you by Oracle under different license
    terms, we grant you a perpetual (unless terminated as provided in this agreement), nonexclusive,
    nontransferable, limited License to use the Programs only for the purpose of developing, testing,
    prototyping and demonstrating your applications, and not for any other purpose.
 
would appear to allow contribution of an individual to the KDE4 project.
Make your own decision, or talk to your local Business legal representative...
 
In addition, [http://opensolaris.org OpenSolaris] was released under the CDDL, a FOSS license, by Sun Microsystems, but Oracle disbanded the open development of the project after acquiring Sun. Whilst Solaris has its roots in BSD, it is mostly SysV. Solaris 10 is certified UNIX [http://www.unix.org/single_unix_specification/ SUSv3]. KDE4 runs on this operating system.


The [http://www.opensolaris.org/os/project/kde/ KDE Project] on the OpenSolaris site is intended to be the definitive source of information, but this page on TechBase is intended to collect information, porting and compilation guides, etc. Since TechBase is a wiki, this is much easier than going through the OpenSolaris editing process.
The [http://www.opensolaris.org/os/project/kde/ KDE Project] on the OpenSolaris site is intended to be the definitive source of information, but this page on TechBase is intended to collect information, porting and compilation guides, etc. Since TechBase is a wiki, this is much easier than going through the OpenSolaris editing process.


'''Status:''' For an overview of the remaining issues, see [[Projects/KDE_on_Solaris/Status|the KDE4 on Solaris status page]]. It lists showstopper bugs and issues with dependencies.  
'''Status:''' For an overview of the new issues, see the '''[[Projects/KDE_on_Solaris/KDE4_on_Solaris10_Status|KDE4.6.3 on Solaris 10 status]]''' page ('''Updated 05/17/2011'''), which lists the current status. The older '''[[Projects/KDE_on_Solaris/Status|the KDE4.4.1 on Solaris 10 status]]''' page, ('''Updated 03/04/2011''') lists dependencies, showstopper bugs and issues with dependencies.  Not much has happened on the S10 KDE4 front for a while. Trying to resurrect it again....


'''OpenSolaris:''' Building on OpenSolaris is covered on the [[Projects/KDE_on_Solaris/OpenSolaris|OpenSolaris-specific page]].
'''Oracle Solaris 11 Express nee OpenSolaris:''' Building on Oracle Solaris 11 Express/OpenSolaris is covered on the [[Projects/KDE_on_Solaris/OpenSolaris|OpenSolaris-specific page]].


This page is concerned with instructions on how to build it all.
This page is concerned with instructions on how to build it all.


''' !!! This page is not outdated. There's not much movement in the repositories mentioned here, because of issues between Solaris 10 and KDE > 4.1.4, mostly around things like xcb which are not native to Solaris 10'''
''' KDE4 v4.6.0 should be able to be built on Solaris 10 with SS12.2, though there are known issues the SS12.2 and CXX Templates among other bugs '''


'' Solaris '' and '' OpenSolaris '' are trademarks of Sun Microsystems, Inc.
'' Solaris '' and '' OpenSolaris '' are trademarks of Oracle.


== Scope ==
== Scope ==


This page is about KDE4 (the KDE 4.1.4 branch; we are aiming for having KDE4.1.4 fully functional on Solaris) on Sun Solaris S10U5/U6 or Solaris Nevada (Express) B101, running on both amd64 or SPARCv9 hardware and compiled with Sun Studio 12.
This page is about KDE4 (the KDE 4.6.0 branch; we are aiming for having KDE4.6.0 fully functional) on Oracle Solaris S10U9 and Oracle Solaris 11 Express, running initially on x86 hardware, then supporting SPARC hardware and compiled with Sun Studio 12.2.


No other KDE releases, operating system versions, compiler version (ie, not Studio 11 or Sun Studio Express) or hardware platforms are the target of this project, simply because the core contributors to the project do not have them or the time to work on them.  
No other KDE releases, operating system versions, compiler version (ie, not Studio 11, 12 or Sun Studio Express) or hardware platforms are the target of this project, simply because the core contributors to the project do not have them or the time to work on them.  


That's not to say it will not necessarily work; people have and continue to contribute work for older hardware platforms (32-bit only like i386[P3/Athlon]). You can probably run the binaries produced by the project on other OpenSolaris releases, even OpenSolaris 2008.11 or 2009.06, but you're  
That's not to say it will not necessarily work; people have and continue to contribute work for older hardware platforms (32-bit only like i386[P3/Athlon]). You can probably run the binaries produced by the project on other OpenSolaris releases, even OpenSolaris 2008.11 or 2009.06, but you're  
Line 25: Line 84:
what needed doing and what was problematic somewhere below.
what needed doing and what was problematic somewhere below.


We are concentrating on 4.1.4 because of issues surrounding dependencies of
We are concentrating on 4.6.0. However since Oracle has not put xcb into the Xserver in Solaris 10 or Solaris 11 Express. (which is a minor addition to the X protocol, and minor functionality in KDE), there may be some problems related to this missing feature.
xcb in KDE 4.2, and it is highly unlikely that Solaris 10 will ever support
xcb because of the fundamental change in the OS that would have to take place
to support xcb.


The core team for KDE4 on Solaris is Adriaan de Groot, Lukas Oboril, Stefan Teleman. We'd like to thank Edward O'Callaghan, Ben Taylor and Mark Wright for their help in particular.
The core team for KDE4 on Solaris is Adriaan de Groot, Lukas Oboril, Stefan Teleman. We'd like to thank Edward O'Callaghan, Ben Taylor and Mark Wright for their help in particular.
Line 41: Line 97:
{{warning|The Techbase documentation gets out of date quite quickly. Do not follow it blindly; step into the IRC channel or on to the mailing list for more details or help with issues.}}
{{warning|The Techbase documentation gets out of date quite quickly. Do not follow it blindly; step into the IRC channel or on to the mailing list for more details or help with issues.}}


Getting KDE4 on your Solaris machine requires the following:  
Getting KDE4 on your Solaris machine requires the following:


* CBE (Common Build Environment) 1.7.0. - http://opensolaris.org/os/project/jds/contributing/building/
* Solaris 10U9 or patch to it. 64-bit libraries like openssl is important enough to get it there, and we have a 64-bit libusb available. Initially, to restart the S10 project, only 32-bit compiles will be done to get a proof of concept.
* A check out of the RPM-style SPEC files (they automagicly grab the sources for you). - I'll show you as we go.
* Sun Studio 12. - http://developers.sun.com/sunstudio/downloads/
* The latest patches for SS12 - http://developers.sun.com/sunstudio/downloads/patches/ss12_patches.jsp
* SXCE or Solaris 10u5+. - For SXCE see; http://www.opensolaris.org/os/downloads/sol_ex_dvd_1/
* If you're running Solaris 10 instead of SXCE, then you can grab the SUNWmercurial package from an SXCE media, since Sun/OpenSolaris removed the SUNWmercurial package from www.opensolaris.org.


==== Patching your System ====
* [http://opensolaris.org/os/project/jds/contributing/building/ CBE (Common Build Environment) 1.7.0] - tool chain to make pkgbuild work
* A check out of the RPM-style SPEC files (they automagically grab the sources for you). - I'll show you as we go.
* '''[http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.html Sun Studio 12]''' - Packages if you have a support contract, tarfile if you don't. '''SS12 is preferable''' over SS12.2 due to bugs in SS12.2


You can use either Solaris 10 update 5/6 (S10U5 or S10U6) or Solaris Express (Nevada build 101 or 110 -- these two versions run on our build machine and on at least one developer's desktop). Other versions of the operating system might work, but there are no guarantees and probably not much sympathy either; OpenSolaris 2008.5 is downright broken as a development platform.
*[http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/studio12-update1-136165.html Sun Studio 12.1] - Packages if you have a support contract, tarfile if you don't.  


'''Studio 12'''
* [http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.html Oracle Studio 12.2] - Packages if you have a support contract, tarfile if you don't. see '''[http://techbase.kde.org/Projects/KDE_on_Solaris/Studio12.2_hallofshame Oracle SS12.2 Bugs]''' which cause problems for the KDE4 Solaris Project.
There is a command line install and a GUIWith the GUI, you can choose
* [http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-136213.html The latest patches for SS12.2] - *if you have a support contract*.
not to patch immediately (select the Advanced Options tab when you get to the  
* S10TLSmercurial - pkg download to be provided soon.  Can also use an old SXCE SUNWmercurial since it's all python except for a couple of libraries.
install options, and un-select "Install Product Patches"). If not using the GUI, then use the batch installer as such (set -a <parm> as required):
* Solaris 10 [https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=Web-Stack-1.5-OTH-G-F@CDS-CDS_SMI Webstack 1.5]. Install mysql51 (for QT) and ruby18 (for KDEbindings) using the installer, as well as pfexec pkgadd -d sun-mysql51lib.pkg && pfexec pkgadd -d sun-apache22.  We need apache22 to get the Apache Portable Runtime until these may be ported into the FOSS infrastructure. Also, a late addition is Python2.6 (sun-python26) needed for KDEbindings and KDEsdk.
* Fix /usr/include/python2.4/pyport.h
* [http://www.opensound.com/download.cgi Open Sound System Drivers]
* pkgrm SUNWpixman (for S10U8, FOSSxstuff replaces it with a fixed version)
* ogl-select service needs to run for QT build ('svcadm enable ogl-select')


./batch_installer -d /opt/SUNWspro -a intel-S2 --copy-sysprep --accept-sla --no-prodpatch


The reason to not patch immediately, is that you're going to have patch Studio 12 after installing, and there's no sense carrying around an extra 400MB in saved patches because the Studio 12 distro already has some older patches included in the distribution.  Using [http://www.par.univie.ac.at/solaris/pca Patch Check Advanced (PCA)] works well on both S10 and SXCE to handle patches for Studio 12.
==== Patching your System ====


If you are running OSOL2008.11 or OSOL2008.05, then you will need to select
You can use Solaris 10 update 9 (S10U9)Unless you can get patches, it probably better just to start with S10U9, since anything else will be out of date by at least 18 months.
the download Studio 12 *tarball* from the Sun Download site.  The packages
will add on OpenSolaris, but patchadd *doesn't* work, so you will *not* be
able to update the packages for bug fixes on the compilerAn alternative
would be to rsync /opt/SUNWspro from a working Solaris 10 or Solaris express
system to the Open Solaris system. This may be easier in the long run if you
have this configuration, since you'll patch S10 or SXCE, and then just rsync
to the OSOL box.


'''Solaris 10 '''
Using [http://www.par.univie.ac.at/solaris/pca Patch Check Advanced (PCA)] works well on S10 to handle patches for Solaris and Studio 12.2.  If you have a contract, you can get current, otherwise just deal with stock Studio 12.2 since the free Studio patches died with Sun.  Don't even bother with Solaris Update Manager.
Install [http://developers.sun.com/sunstudio/downloads/ Sun Studio 12]. Patch Sun Studio 12 with at least the following (there's an [http://developers.sun.com/sunstudio/downloads/patches/ss12_patches.jsp up-to-date list]), assuming amd64; for SPARC, check that download page:


* 124864-16 (Sun Studio 12_x86: Patch for Sun C++ Compiler)
* 124868-10 (Sun Studio 12_x86: Patch for C 5.9 compiler)
* 124869-02 (Sun Studio 12_x86: Patch for Sun Performance Library)
* 124873-07 (Sun Studio 12_x86: Patch for dbx 7.6 Debugger)
* 124876-02 (Sun Studio 12_x86: Patch for Debugger GUI 3.0)
* 126496-04 (Sun Studio 12_x86: Patch for debuginfo handling)
* 126498-16 (Sun Studio 12_x86: Sun Compiler Common patch for x86 backend)
* 126504-01 (Sun Studio 12_x86: Patch for Sun Distributed Make 7.8)
* 126996-04 (Sun Studio 12_x86: Patch for Performance Analyzer Tools)
* 127002-10 (Sun Studio 12_x86: Patch for Fortran 95 8.3 Compiler)
* 127003-03 (Sun Studio 12_x86: Patch for  Fortran 95 8.3 Dynamic Libraries)
* 127144-03 (Sun Studio 12_x86: Patch for Fortran 95 8.3 Support Library)
* 127148-01 (Sun Studio 12_x86: Patch for update notification)
* 127153-01 (Sun Studio 12_x86: Patch for IDE)
* 127157-01 (Sun Studio 12_x86: Patch for install utilities.)
* 128226-01 (Sun Studio 12_x86: Patch for localization of Sun C C++ F77 F95)


Also patch your OS with (again, these are listed on the SS12 patches page):
'''Studio 12.2'''
This installer requires a GUI so better learn to use ssh -X if not on the localhost.  On Solaris 10, there are about 5 patches out for SS12.2, so if you have a support contract, go for it. There are still some serious bugs in SS12.2, and you can help by registering with bugs.sun.com and voting for bugs that affect the Studio12.2 compiler and KDE dependencies (eigen, boost, templates).  You can vote for 3 bugs at any time, so if one has a higher priority for you, remove the vote for another bug and vote the one you want.


* 119964-08
There is a GUI for the package installer.  With the GUI, there are no patch options unless there are Solaris patches required to make the compiler work. I prefer to select to remove the Japanese and Chinese locales, for obvious reasons.  It's probably easier to just load from the tarball.
* 120754-05
* 118677-03
* 119961-04
* 119255-57


You can check with CC -V if you are up-to-date for the 124864 patch and cc -V for the 124868. Those are the most important ones.
If you are running OSOL2008.11 or OSOL2008.05, then you will need to select
the download Studio 12.2 *tarball* from the Oracle Studio Download site.


==== Solaris 10U5 Python - Special info ====
'''Solaris 10 '''
Install [http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.html Sun Studio 12.2].


FOSSboost will fail as follows:
==== Solaris 10 Python - Special info ====


If you forget to fix /usr/include/python2.4/pyport.h, FOSSboost will fail as follows:
<syntaxhighlight lang="text">
vesta% tail /tmp/FOSSboost.log  
vesta% tail /tmp/FOSSboost.log  
pkgbuild: + chmod 755 Solaris/patch.sh
pkgbuild: + chmod 755 Solaris/patch.sh
Line 117: Line 150:
pkgbuild: + exit 1
pkgbuild: + exit 1
pkgbuild: Bad exit status from /var/tmp/pkgbuild-edwardoc/pkgbuild-tmp-1.8081 (%prep)
pkgbuild: Bad exit status from /var/tmp/pkgbuild-edwardoc/pkgbuild-tmp-1.8081 (%prep)
</syntaxhighlight>


{{warning|In /usr/include/python2.4/pyport.h , there's a gethostbyname prototype; it's wrong. Delete it entirely for building (simply commenting it out is not sufficient as the make system will check for its presence with a grep and if it is present even in comments the build will fail).
{{warning|In /usr/include/python2.4/pyport.h , there's a gethostbyname prototype; it's wrong. Commenting it out is sufficient as the make system will check for its presence with a bounded grep [ie, ^externt int gethostbyname]).
The line reads as:
The line reads as:
extern int gethostname(char *, int);}}
extern int gethostname(char *, int);}}
Line 175: Line 209:


Simply;
Simply;
cd ~ ; mkdir KDE4.X.x ; cd KDE4.X.x/
cd ~ ; mkdir KDE4 ; cd KDE4/


hg clone https://solaris.bionicmutton.org/hg/kde4-specs
hg clone https://solaris.bionicmutton.org/hg/kde4-specs
* If you don't like using mercurial at all, you can get the tarball here; http://solaris.bionicmutton.org/hg/kde4-specs/archive/tip.tar.gz
* If you don't like using mercurial at all, you can get the tarball here; http://solaris.bionicmutton.org/hg/kde4-specs/archive/tip.tar.gz


== Getting KDE4-SPEC's-Dev (Unstable Testing/Development) ==
== Getting KDE4-SPEC's-460 (Unstable Testing/Development) ==


Simply;
Simply;
Line 186: Line 220:
cd ~ ; mkdir KDE4.X.x ; cd KDE4.X.x/
cd ~ ; mkdir KDE4.X.x ; cd KDE4.X.x/


hg clone https://solaris.bionicmutton.org/hg/kde4-specs-dev
hg clone https://solaris.bionicmutton.org/hg/kde4-specs-460
* If you don't like using mercurial at all, you can get the tarball here; http://solaris.bionicmutton.org/hg/kde4-specs-460/archive/tip.tar.gz


N.B. The above is also for contributing back (which this mail message is all about). The *-specs-dev repo is public and writable (over https).
N.B. The above is also for contributing back (which this mail message is all about). The *-specs-dev repo is public and writable (over https).
Line 201: Line 236:
* Note: This command will start a subshell. Be careful, because environment variables (notably PATH) set in your shell startup files will override those set up by this command.
* Note: This command will start a subshell. Be careful, because environment variables (notably PATH) set in your shell startup files will override those set up by this command.


make rebuild-CBEcmake  
make rebuild-CBEcmake rebuild-CBEyasm
* This updates cmake from the CBE base because there are some Solaris/Studio 12 fixes there in the updated package.
* This updates cmake from the CBE base because there are some Solaris/Studio 12 fixes there in the updated package.


make
make build-KDEconsolidation


This will now go off and build KDE4 and enything else needed as SysV packages. Come back in about 24h depending on your hardware.
This will now go off and build KDE4 and anything else needed as SysV packages. Come back in about 24h depending on your hardware.


=== What to expect after a Clean Build ===
=== What to expect after a Clean Build ===
Line 241: Line 276:
As usual, the IRC channel is a good place to start, but you must be able to pastebin compilation errors in order to get any help.
As usual, the IRC channel is a good place to start, but you must be able to pastebin compilation errors in order to get any help.
The IRC channel is never too busy.
The IRC channel is never too busy.
<nowiki>#</nowiki>kde-solaris on irc.freenode.net . However, keep in mind that IRC is a live medium and it may not be the best place to ask questions. The mailing list kde-discuss at opensolaris.org is much more patient.
<nowiki>#</nowiki>kde-solaris4 on irc.freenode.net . However, keep in mind that IRC is a live medium and it may not be the best place to ask questions. The mailing list kde-discuss at opensolaris.org is much more patient.
 
Also, you are expected to do your homework. Compiling KDE4 on Solaris is not for the faint of heart and you '''really''' need to know your way around compiling stuff and dealing with system software installation.


Also, you are expected to do your homework. Compiling KDE4 on Solaris is not for the faint of heart and you '''really''' need to know your way around compiling stuff and dealing with system software installation; otherwise you will be quickly  ignored.


== Binary Packages ==
== Binary Packages ==


A basic install script has been provided to do as much validation
No binary packages for KDE4 for Solaris 10 currently
as can be done to make sure accounts, privileges, space requirements
are satisfied to install the binary packages for KDE4 for Solaris.
 
The install script has several options:
 
You must set SRC_DOWNLOAD to a location that has 3GB of free space, not including the requirements for 2GB on /opt.
 
There is an option to download, unroll, and remove the tarball and pkg dir
after install which minimizes the need for keeping it all local. This is done
by editing the following variables in the script as such:
 
* KEEP_TARBALL=NO
* KEEP_PKGDIRS=NO
 
The script was tested locally, and other than not downloading the tarballs to the local system, the script stands up a beautiful KDE4 install for Solaris 10.
You are expected to follow the instructions the script give you if you are
missing accounts or privilieges.
 
No warranties, implied or otherwise.  I'm doing this just because I'm hoping
other folks will help test KDE4 and be able to report bugs.  It does take
about a day to build KDE4 on a Quad core X64 box as I've packaged it, so the build is not trivial.
 
=== Solaris 10/X64 ===
 
This is KDE-4.1.3 for Solaris 10/X64.  (if you choose to load
it on SXCE or OSOL, comments about it's functionality or
things being borked will be ignored... )
 
Space requirements:
 
* Downloads: 700MB
* Uncompressed pkgs: 2GB
 
* /opt/foss 1.3GB
* /opt/kde-4.1 700MB
 
The install script is maintained and located (and will be updated) at
http://solaris.bionicmutton.org/PKGS/S10-x64/Install-s10-x64-kde4.sh
 
There are some local variables in the script, which will
allow you to change some of the behaviors, such as download
all, but don't install, or download each package, install it
and remove the downloaded package.

Latest revision as of 20:44, 28 July 2015

Warning
The KDE on Solaris project, also KDE on OpenSolaris, was active from around the year 2000 until nearly 2014, when the remaining team members ceased active development of the KDE packages. This page should be considered mostly of historical interest, although nothing stops anyone from trying to re-start KDE packaging on a descendant of Solaris such as IllumOS.


In the summer of 2015, the KDE on Solaris subdomain (solaris.kde.org) was shuttered and redirected to this page. The efforts to package KDE for Solaris and its derivatives have ceased as far as the KDE community knows.

Contributors

The KDE Solaris Core Team in 2004:

Claudiu Costin, Ken Mays, Stefan Teleman, Eva Brucherseifer, Jaime Penalba, Sergio Rodriguez de Guzman.

Contributors group in 2004:

Solaris x86 Engineering team, The Blastwave.org maintainers, Lars Tunkrans, Dirk Mueller, Roman Maeder, Matthew Day, Laurent Blume, Thomas Bennett, Adrian Murillo, Rainald Lampl, Torsten Kasch, Mikael Dalsgard, Guenter Feldmann, Christopher Layne, Dan Rawson, Vladimir Anne, Russell LeBar, Nicolas Ternisien (website).


KDE OpenSolaris core team:

Adriaan de Groot, Lukas Oboril, Stefan Teleman, Edward O'Callaghan, Ben Taylor, Mark Wright.

Preamble

Oracle Solaris 10 and Oracle Solaris 11 Express are operating systems that are available for free. Read the Licensing Terms for Oracle Solaris 10 and Oracle Solaris 11 Express. IANAL, but the terms

   LICENSE RIGHTS
   Except for any included software package or file that is licensed to you by Oracle under different license
   terms, we grant you a perpetual (unless terminated as provided in this agreement), nonexclusive, 
   nontransferable, limited License to use the Programs only for the purpose of developing, testing, 
   prototyping and demonstrating your applications, and not for any other purpose.

would appear to allow contribution of an individual to the KDE4 project. Make your own decision, or talk to your local Business legal representative...

In addition, OpenSolaris was released under the CDDL, a FOSS license, by Sun Microsystems, but Oracle disbanded the open development of the project after acquiring Sun. Whilst Solaris has its roots in BSD, it is mostly SysV. Solaris 10 is certified UNIX SUSv3. KDE4 runs on this operating system.

The KDE Project on the OpenSolaris site is intended to be the definitive source of information, but this page on TechBase is intended to collect information, porting and compilation guides, etc. Since TechBase is a wiki, this is much easier than going through the OpenSolaris editing process.

Status: For an overview of the new issues, see the KDE4.6.3 on Solaris 10 status page (Updated 05/17/2011), which lists the current status. The older the KDE4.4.1 on Solaris 10 status page, (Updated 03/04/2011) lists dependencies, showstopper bugs and issues with dependencies. Not much has happened on the S10 KDE4 front for a while. Trying to resurrect it again....

Oracle Solaris 11 Express nee OpenSolaris: Building on Oracle Solaris 11 Express/OpenSolaris is covered on the OpenSolaris-specific page.

This page is concerned with instructions on how to build it all.

KDE4 v4.6.0 should be able to be built on Solaris 10 with SS12.2, though there are known issues the SS12.2 and CXX Templates among other bugs

Solaris and OpenSolaris are trademarks of Oracle.

Scope

This page is about KDE4 (the KDE 4.6.0 branch; we are aiming for having KDE4.6.0 fully functional) on Oracle Solaris S10U9 and Oracle Solaris 11 Express, running initially on x86 hardware, then supporting SPARC hardware and compiled with Sun Studio 12.2.

No other KDE releases, operating system versions, compiler version (ie, not Studio 11, 12 or Sun Studio Express) or hardware platforms are the target of this project, simply because the core contributors to the project do not have them or the time to work on them.

That's not to say it will not necessarily work; people have and continue to contribute work for older hardware platforms (32-bit only like i386[P3/Athlon]). You can probably run the binaries produced by the project on other OpenSolaris releases, even OpenSolaris 2008.11 or 2009.06, but you're on your own.

On your own, that is, unless you register for Techbase and add your comments on what needed doing and what was problematic somewhere below.

We are concentrating on 4.6.0. However since Oracle has not put xcb into the Xserver in Solaris 10 or Solaris 11 Express. (which is a minor addition to the X protocol, and minor functionality in KDE), there may be some problems related to this missing feature.

The core team for KDE4 on Solaris is Adriaan de Groot, Lukas Oboril, Stefan Teleman. We'd like to thank Edward O'Callaghan, Ben Taylor and Mark Wright for their help in particular.

Standard Environment Setup

We don't have much in the way of documented KDE4 *use* on Solaris nor many reports of bugs found in daily use of the below KDE4 packages on http://bugs.kde.org/ . Thus we welcome any contributions though either bug reports, the repo or by email.

Prerequisites

Warning
The Techbase documentation gets out of date quite quickly. Do not follow it blindly; step into the IRC channel or on to the mailing list for more details or help with issues.


Getting KDE4 on your Solaris machine requires the following:

  • Solaris 10U9 or patch to it. 64-bit libraries like openssl is important enough to get it there, and we have a 64-bit libusb available. Initially, to restart the S10 project, only 32-bit compiles will be done to get a proof of concept.
  • CBE (Common Build Environment) 1.7.0 - tool chain to make pkgbuild work
  • A check out of the RPM-style SPEC files (they automagically grab the sources for you). - I'll show you as we go.
  • Sun Studio 12 - Packages if you have a support contract, tarfile if you don't. SS12 is preferable over SS12.2 due to bugs in SS12.2
  • Sun Studio 12.1 - Packages if you have a support contract, tarfile if you don't.
  • Oracle Studio 12.2 - Packages if you have a support contract, tarfile if you don't. see Oracle SS12.2 Bugs which cause problems for the KDE4 Solaris Project.
  • The latest patches for SS12.2 - *if you have a support contract*.
  • S10TLSmercurial - pkg download to be provided soon. Can also use an old SXCE SUNWmercurial since it's all python except for a couple of libraries.
  • Solaris 10 Webstack 1.5. Install mysql51 (for QT) and ruby18 (for KDEbindings) using the installer, as well as pfexec pkgadd -d sun-mysql51lib.pkg && pfexec pkgadd -d sun-apache22. We need apache22 to get the Apache Portable Runtime until these may be ported into the FOSS infrastructure. Also, a late addition is Python2.6 (sun-python26) needed for KDEbindings and KDEsdk.
  • Fix /usr/include/python2.4/pyport.h
  • Open Sound System Drivers
  • pkgrm SUNWpixman (for S10U8, FOSSxstuff replaces it with a fixed version)
  • ogl-select service needs to run for QT build ('svcadm enable ogl-select')


Patching your System

You can use Solaris 10 update 9 (S10U9). Unless you can get patches, it probably better just to start with S10U9, since anything else will be out of date by at least 18 months.

Using Patch Check Advanced (PCA) works well on S10 to handle patches for Solaris and Studio 12.2. If you have a contract, you can get current, otherwise just deal with stock Studio 12.2 since the free Studio patches died with Sun. Don't even bother with Solaris Update Manager.


Studio 12.2 This installer requires a GUI so better learn to use ssh -X if not on the localhost. On Solaris 10, there are about 5 patches out for SS12.2, so if you have a support contract, go for it. There are still some serious bugs in SS12.2, and you can help by registering with bugs.sun.com and voting for bugs that affect the Studio12.2 compiler and KDE dependencies (eigen, boost, templates). You can vote for 3 bugs at any time, so if one has a higher priority for you, remove the vote for another bug and vote the one you want.

There is a GUI for the package installer. With the GUI, there are no patch options unless there are Solaris patches required to make the compiler work. I prefer to select to remove the Japanese and Chinese locales, for obvious reasons. It's probably easier to just load from the tarball.

If you are running OSOL2008.11 or OSOL2008.05, then you will need to select the download Studio 12.2 *tarball* from the Oracle Studio Download site.

Solaris 10 Install Sun Studio 12.2.

Solaris 10 Python - Special info

If you forget to fix /usr/include/python2.4/pyport.h, FOSSboost will fail as follows:

vesta% tail /tmp/FOSSboost.log 
pkgbuild: + chmod 755 Solaris/patch.sh
pkgbuild: + bash -x ./Solaris/patch.sh boost
pkgbuild: + '[' '!' -f configure ']'
pkgbuild: + echo '# Checking if pyport.h is sane ... must not redeclare gethostname.'
pkgbuild: # Checking if pyport.h is sane ... must not redeclare gethostname.
pkgbuild: + test -f /usr/include/python2.4/pyport.h
pkgbuild: + grep '^extern int gethostname' /usr/include/python2.4/pyport.h
pkgbuild: extern int gethostname(char *, int);
pkgbuild: + exit 1
pkgbuild: Bad exit status from /var/tmp/pkgbuild-edwardoc/pkgbuild-tmp-1.8081 (%prep)
Warning
In /usr/include/python2.4/pyport.h , there's a gethostbyname prototype; it's wrong. Commenting it out is sufficient as the make system will check for its presence with a bounded grep [ie, ^externt int gethostbyname]).

The line reads as:

extern int gethostname(char *, int);


SNV_(97<->103) - Special info

Warning
If you would like to build FOSSnas as a dep, It will fail unless you copy the following files into /usr/X11/lib/X11/config/ More info here; cat /tmp/FOSSnas.log


* Fixed in SNV103: http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6763798
* Here is a workaround:

[edward@SXCE-Workstation]:/export/home/edward:~>uname -sv SunOS snv_99

If you don't do this step you will end up with the following error : "FOSSnas | FAILED | pkgbuild build failed"

/usr/sfw/bin/wget http://xorg.freedesktop.org/archive/individual/util/xorg-cf-files-1.0.2.tar.bz2

/usr/bin/bunzip2 -cd xorg-cf-files-1.0.2.tar.bz2 | tar -xvf -

cd xorg-cf-files-1.0.2

  • pfexec cp X11.rules /usr/X11/lib/X11/config/
  • pfexec cp X11.tmpl /usr/X11/lib/X11/config/
  • pfexec cp xorg.cf /usr/X11/lib/X11/config/
  • pfexec cp xorgsite.def /usr/X11/lib/X11/config/
  • pfexec cp xorgversion.def /usr/X11/lib/X11/config/
  • pfexec cp xf86.rules /usr/X11/lib/X11/config/
  • pfexec cp xfree86.cf /usr/X11/lib/X11/config/
  • pfexec touch /usr/X11/lib/X11/config/date.def
  • pfexec touch /usr/X11/lib/X11/config/host.def
  • pfexec cp Imake.tmpl /usr/X11/lib/X11/config/

Setting up CBE 1.7RC1

N.B. Please check if a later version is out in : http://dlc.sun.com/osol/jds/downloads/cbe/

cd ~ ; mkdir CBE1.7 ; cd CBE1.7

  • x86/x64:

/usr/sfw/bin/wget http://dlc.sun.com/osol/jds/downloads/cbe/test/desktop-cbe-1.7.0-rc1-x86.tar.bz2

/usr/bin/bunzip2 -cd desktop-cbe-1.7.0-rc1-x86.tar.bz2 | tar -xvf -

  • SPARC:

/usr/sfw/bin/wget http://dlc.sun.com/osol/jds/downloads/cbe/test/desktop-cbe-1.7.0-rc1-sparc.tar.bz2

/usr/bin/bunzip2 -cd desktop-cbe-1.7.0-rc1-sparc.tar.bz2 | tar -xvf -

`cd` in and follow the README/INSTALL file.

Warning
If you didn't tell CBE where you want to build the code, it will try to put it under /opt/dtbld. That really won't work because /opt/dtbld is owned by root. Modify ~/.pkgbuildmacros and fix %_topdir to some writable directory that you want to build the code in. Most folks use ~/packages. You can also route the BUILD logs to a directory specified by: ~/.pkgtoolrc and tell "logdir:" where to put it. (~/packages/BUILDLOGS seems reasonable)


Getting KDE4-SPEC's (Release)

Simply; cd ~ ; mkdir KDE4 ; cd KDE4/

hg clone https://solaris.bionicmutton.org/hg/kde4-specs

Getting KDE4-SPEC's-460 (Unstable Testing/Development)

Simply;

cd ~ ; mkdir KDE4.X.x ; cd KDE4.X.x/

hg clone https://solaris.bionicmutton.org/hg/kde4-specs-460

N.B. The above is also for contributing back (which this mail message is all about). The *-specs-dev repo is public and writable (over https). So we welcome you too can push fixes back on to it; A review will happen before things end up in *-specs.

KDE4 Compilation and Installation of (Stable)

cd kde4-specs/ ; hg up ; cd specs/

more README

  • Read though and take note of anything important you may need to know since this was last updated.

/opt/dtbld/bin/env.sh

  • Note: This command will start a subshell. Be careful, because environment variables (notably PATH) set in your shell startup files will override those set up by this command.

make rebuild-CBEcmake rebuild-CBEyasm

  • This updates cmake from the CBE base because there are some Solaris/Studio 12 fixes there in the updated package.

make build-KDEconsolidation

This will now go off and build KDE4 and anything else needed as SysV packages. Come back in about 24h depending on your hardware.

What to expect after a Clean Build

                        FOSSnas |      PASSED |
                    FOSSncurses |      PASSED |
                    FOSSopencdk |      PASSED |
                   FOSSopenldap |      PASSED |
                       FOSSpcre |      PASSED |
                     FOSSphonon |      PASSED |
                FOSSqimageblitz |      PASSED |
                         FOSSqt |      PASSED |
                   FOSSreadline |      PASSED |
                    FOSSsoprano |      PASSED |
                     FOSSsqlite |      PASSED |
                     FOSSstdcxx |      PASSED |
                     FOSSstrigi |      PASSED |
                      FOSSxprop |      PASSED |
                   KDEbase-apps |      PASSED |
                KDEbase-runtime |      PASSED |
              KDEbase-workspace |      PASSED |
              KDEdt-integration |      PASSED |
                        KDElibs |      PASSED |
                         KDEpim |      PASSED |
                     KDEpimlibs |      PASSED |
                         KDEsdk |      PASSED |
                 FOSSlibiconvwo |      PASSED |
                  FOSSgettextwo |      PASSED |
               FOSScyrus-saslwo |      PASSED |
            FOSSmit-kerberos5wo |      PASSED |
                 FOSSopenldapwo |      PASSED |

Getting help

As usual, the IRC channel is a good place to start, but you must be able to pastebin compilation errors in order to get any help. The IRC channel is never too busy. #kde-solaris4 on irc.freenode.net . However, keep in mind that IRC is a live medium and it may not be the best place to ask questions. The mailing list kde-discuss at opensolaris.org is much more patient.

Also, you are expected to do your homework. Compiling KDE4 on Solaris is not for the faint of heart and you really need to know your way around compiling stuff and dealing with system software installation.


Binary Packages

No binary packages for KDE4 for Solaris 10 currently