OpenSolaris se poslední dobou hodně zlepšil, při instalaci už přestal ignorovat cizí oddíly a bez keců do grubu přidal položku Windows. Snad brzo dojde i na Linux a ostatní. Ve 2008.11 RC2 je skoro všechno co potřebuju, ale co mu chybí je KDE. Balíčky KDE3 se sice dají stáhnout z Blastwave, ale protože je to už mrtvý projekt, nemá cenu se tím zabývat. KDE4 se musí ručně zkompilovat. Když už zjistíte jak na to, není to nic těžkého:
To je asi nejbolavější místo. Použití gcc nebo Sun Studio Express (který je v opensolarisích repozitářích) vede k bizarním chybám, které ale lidi z kde-solaris projektu nezajímají, protože používají Sun Studio 12. Kdo chce s vlky býti ..., takže je nutno sehnat SS12. Aby to nebylo tak jednoduché, je bezpodmínečně nutné použít SS12 se všemi dostupnými patchi. Já jsem to vyřešil tak, že jsem si ve VirtualBoxu nainstaloval Solaris 10 10/08 a v něm potom Sun Studio 12 (pozor, je nutné použít "Download Package Installer", aby šly aplikovat patche).
Menu - Applications - Utilities - Update Manager
Je k tomu potřeba použít jméno a heslo - stačí to co bylo použito ke stažení Solarisu nebo SS.
Pak zmáčknout na Check for Updates a jít se projít.
Potom vybrat aktualizace a zmáčknout Install Updates a jít se projít.
(já jsem pro sichr zaktualizoval úplně všechno, takže jsem se šel projít dvakrát)
(dobrá sranda je, že okno pro registraci Update Managera se v rozlišení 1024x768 nevejde na obrazovku :-) Dá se to obejít tak, že si spodní panel přesunete na levou hranu obrazovky)
Jakmile bylo všechno hotovo, zataroval jsem celý adresář /opt/SUNWspro, přenesl jej do OpenSolarisu a tam zase rozbalil.
Dále uvedený postup je v podstatě uveden na stránce KDE on Solaris, kde by měly být vždycky uvedeny aktuální informace.
Nejprve stažení Common Build Environment, což je sada nástrojů, používaných při kompilaci GNOME a podobných molochů:
Na všechny otázky by měla stačit výchozí odpověď.
Potom je potřeba nainstalovat pár balíčků, které jsou při překladu nezbytné a bez nich to vyhučí s (často) poměrně záhadnými hláškami:
Pro překlad FOSSnas je díky chybě potřeba workaround:
Na PC s 1.5GB RAM a 512 MB swapu mi překlad některých balíčků vyhučel na nedostatku místa, takže jsem musel přidat swap. Na zfs se nedá použít swap do souboru, je potřeba změnit velikost svazku:
(originál návod zde)
Stažení spec souborů KDE4:
A sestavení:
Je třeba vytvořit soubor
FOSSlibcdiowo a FOSSlibcdio selžou, v logu se objeví "
Řešením je ručně upravit
FOSSxine-lib selže, v logu se objeví
Je nutno upravit
FOSSxine-lib selže i poté, ale trochu jinak. Tentokrát je v logu
PGX32 a PGX64 by měly být prehistorické grafické karty od Sunu, takže jsem dlouho nezkoumal, kde je problém a rovnou jsem ze souboru FOSSxine-libs.spec smazal řádky
FOSSboost selže, protože balíček s patchi pro solaris se jmenuje jinak než balíček se zdrojáky. Je potřeba jej přejmenovat:
Překladač:
To je asi nejbolavější místo. Použití gcc nebo Sun Studio Express (který je v opensolarisích repozitářích) vede k bizarním chybám, které ale lidi z kde-solaris projektu nezajímají, protože používají Sun Studio 12. Kdo chce s vlky býti ..., takže je nutno sehnat SS12. Aby to nebylo tak jednoduché, je bezpodmínečně nutné použít SS12 se všemi dostupnými patchi. Já jsem to vyřešil tak, že jsem si ve VirtualBoxu nainstaloval Solaris 10 10/08 a v něm potom Sun Studio 12 (pozor, je nutné použít "Download Package Installer", aby šly aplikovat patche).
Zazáplatování překladače:
Menu - Applications - Utilities - Update Manager
Je k tomu potřeba použít jméno a heslo - stačí to co bylo použito ke stažení Solarisu nebo SS.
Pak zmáčknout na Check for Updates a jít se projít.
Potom vybrat aktualizace a zmáčknout Install Updates a jít se projít.
(já jsem pro sichr zaktualizoval úplně všechno, takže jsem se šel projít dvakrát)
(dobrá sranda je, že okno pro registraci Update Managera se v rozlišení 1024x768 nevejde na obrazovku :-) Dá se to obejít tak, že si spodní panel přesunete na levou hranu obrazovky)
Jakmile bylo všechno hotovo, zataroval jsem celý adresář /opt/SUNWspro, přenesl jej do OpenSolarisu a tam zase rozbalil.
Dále uvedený postup je v podstatě uveden na stránce KDE on Solaris, kde by měly být vždycky uvedeny aktuální informace.
Nejprve stažení Common Build Environment, což je sada nástrojů, používaných při kompilaci GNOME a podobných molochů:
cd ~ ; mkdir CBE1.7 ; cd CBE1.7 wget http://dlc.sun.com/osol/jds/downloads/cbe/test/desktop-cbe-1.7.0-rc1-x86.tar.bz2 tar xjf desktop-cbe-1.7.0-rc1-x86.tar.bz2 desktop-cbe-1.7.0-rc1/cbe-install
Na všechny otázky by měla stačit výchozí odpověď.
Potom je potřeba nainstalovat pár balíčků, které jsou při překladu nezbytné a bez nich to vyhučí s (často) poměrně záhadnými hláškami:
pkg install SUNWarc
(kvůli podpoře -xc99=lib) pkg install SUNWj6dev
(kvůli FOSSberkeley-db)pkg install SUNWgnome-common-devel
(kvůli pkg-config)pkg install SUNWcups
(FOSScups se mi prostě nedařilo přeložit)pkg install SUNWmercurial
(abych mohl stáhnout zdrojáky)pkg install SUNWperl-xml-parser
(kvůli FOSSsharedmimeinfo)Pro překlad FOSSnas je díky chybě potřeba workaround:
/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/
Na PC s 1.5GB RAM a 512 MB swapu mi překlad některých balíčků vyhučel na nedostatku místa, takže jsem musel přidat swap. Na zfs se nedá použít swap do souboru, je potřeba změnit velikost svazku:
swap -d /dev/zvol/dsk/rpool/swap zfs set volsize=2G rpool/swap swap -a /dev/zvol/dsk/rpool/swap
(originál návod zde)
Stažení spec souborů KDE4:
cd ~ ; mkdir KDE4.X.x ; cd KDE4.X.x/ hg clone https://solaris.bionicmutton.org/hg/kde4-specs-dev cd kde4-specs-dev/specs
A sestavení:
. /opt/dtbld/bin/env.sh make
Přidání KDE do menu gdm:
Je třeba vytvořit soubor
/usr/share/xsessions/kde.desktop
, s následujícím obsahem:[Desktop Entry] Encoding=UTF-8 Name=KDE Comment[en]=This session logs you into KDE Exec=/opt/kde-4.1/bin/startkde Icon= Type=Application
Následující problémy budou doufám brzo opraveny:
FOSSlibcdiowo a FOSSlibcdio selžou, v logu se objeví "
ube: error: Illegal option to UBE: zla
"Řešením je ručně upravit
configure.sh
v ~/packages/SOURCES/Solaris-LIBCDIOWO-0.78.2.tar.gz
a ~/packages/SOURCES/Solaris-LIBCDIO-0.78.2.tar.gz
a odstranit nepodporovanou volbu zla
(zero length arrays):--- Solaris.orig/configure.sh 2008-11-29 10:41:16.819618183 +0100 +++ Solaris/configure.sh 2008-11-29 12:17:22.334741748 +0100 @@ -12,11 +12,6 @@ export CFLAGS="-xc99=%all ${CFLAGS}" fi -good_cflags=`echo ${CFLAGS} | grep -- "-Wu,-zla"` -if [ "x${good_cflags}" = "x" ] ; then - export CFLAGS="${CFLAGS} -Wu,-zla" -fi - good_cflags=`echo ${CFLAGS} | grep -- "-Xc"` if [ "x${good_cflags}" != "x" ] ; then export CFLAGS=`echo ${CFLAGS} | sed -e "s/-Xc//g"`
FOSSxine-lib selže, v logu se objeví
pkgbuild: "pp.c", line 26: error: cannot find include file: <postproc/postproces
s.h>
.Je nutno upravit
planar.61.diff
z ~/packages/SOURCES/Solaris-XINE-LIB-1.1.10.tar.gz
, aby vypadal takto:Index: src/post/planar/pp.c =================================================================== --- old/src/post/planar/pp.c (revision 2848) +++ new/src/post/planar/pp.c (working copy) @@ -23,7 +23,7 @@ #include "xine_internal.h" #include "post.h" #include "xineutils.h" -#include "postprocess.h" +#include <ffmpeg/postproc/postprocess.h> #include <pthread.h> #define PP_STRING_SIZE 256 /* size of pp mode string (including all options) */
FOSSxine-lib selže i poté, ale trochu jinak. Tentokrát je v logu
pkgbuild: pkgbuild: File not found by glob: /var/tmp/pkgbuild-kdebuild/FOSSxine-lib-1.1.10-build/opt/foss/lib/xine/plugins/1.1.10/xineplug_vo_out_pgx32.so pkgbuild: pkgbuild: File not found by glob: /var/tmp/pkgbuild-kdebuild/FOSSxine-lib-1.1.10-build/opt/foss/lib/xine/plugins/1.1.10/xineplug_vo_out_pgx64.so
PGX32 a PGX64 by měly být prehistorické grafické karty od Sunu, takže jsem dlouho nezkoumal, kde je problém a rovnou jsem ze souboru FOSSxine-libs.spec smazal řádky
%{_libdir}/xine/plugins/1.1.10/xineplug_vo_out_pgx32.so %{_libdir}/xine/plugins/1.1.10/xineplug_vo_out_pgx64.so
FOSSboost selže, protože balíček s patchi pro solaris se jmenuje jinak než balíček se zdrojáky. Je potřeba jej přejmenovat:
wget http://solaris.bionicmutton.org/SRC/Solaris-BOOST-1.36.0.tar.gz -O ~/packages/SOURCES/Solaris-BOOST-1_36_0.tar.gz