Projects/KDE on Solaris/OpenSolaris/LiveCDHowTo
Follow this guide to create an OpenSolaris live DVD with KDE desktop. It assumes that you already have the packages in a local repository.
Make sure you have enough space
you'll need at least 12 GB, I add a 16 GB disk to my VirtualBox machine.
$ pfexec zpool create -f dpool c7d1s0 $ pfexec zpool import $ zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT dpool 15.9G 74.5K 15.9G 0% ONLINE - rpool 15.9G 12.3G 3.53G 77% ONLINE -
Install the distribution constructor
$ pfexec pkg install SUNWdistro-const
Modify the supplied config file
so that the local repo is added and KDE packages are added
$ cp /usr/share/distro_const/slim_cd/all_lang_slim_cd_x86.xml . $ vi all_lang_slim_cd_x86.xml
a diff:
--- /usr/share/distro_const/slim_cd/all_lang_slim_cd_x86.xml 2009-08-08 16:57:07.500098872 +0200 +++ all_lang_slim_cd_x86.xml 2009-08-08 23:00:45.221631342 +0200 @@ -25,7 +25,7 @@ live CD iso and usb image --> -<distribution name="OpenSolaris"> +<distribution name="Korona 0.0.2"> <distro_constr_params> <distro_constr_flags> <!-- @@ -75,15 +75,12 @@ If you want to use one or more mirrors that are setup for the authority, specify the urls here. --> - <!-- - Uncomment before using. <pkg_repo_addl_authority> <main - url="" - authname=""/> + url="http://localhost:10000" + authname="local"/> <mirror url="" /> </pkg_repo_addl_authority> - --> <!-- The default preferred authority to be used by the system after it has been installed. @@ -125,7 +122,7 @@ is not a zfs dataset or mountpoint, checkpointing will not be enabled. --> - <build_area>rpool/dc</build_area> + <build_area>dpool/dc</build_area> <!-- list of packages used to form the installed image --> @@ -144,11 +141,88 @@ <pkg_name="[email protected]#/> --> - <pkg name="entire"/> <pkg name="SUNWcsd"/> <pkg name="SUNWcs"/> <pkg name="babel_install"/> <pkg name="SUNWslim-utils"/> +<pkg name="KDEl10n-ar"/> +<pkg name="KDEl10n-bg"/> +<pkg name="KDEl10n-bnIN"/> +<pkg name="KDEl10n-ca"/> +<pkg name="KDEl10n-cs"/> +<pkg name="KDEl10n-csb"/> +<pkg name="KDEl10n-da"/> +<pkg name="KDEl10n-de"/> +<pkg name="KDEl10n-el"/> +<pkg name="KDEl10n-enGB"/> +<pkg name="KDEl10n-es"/> +<pkg name="KDEl10n-et"/> +<pkg name="KDEl10n-eu"/> +<pkg name="KDEl10n-fi"/> +<pkg name="KDEl10n-fr"/> +<pkg name="KDEl10n-ga"/> +<pkg name="KDEl10n-gl"/> +<pkg name="KDEl10n-gu"/> +<pkg name="KDEl10n-he"/> +<pkg name="KDEl10n-hi"/> +<pkg name="KDEl10n-hne"/> +<pkg name="KDEl10n-hu"/> +<pkg name="KDEl10n-is"/> +<pkg name="KDEl10n-it"/> +<pkg name="KDEl10n-ja"/> +<pkg name="KDEl10n-kk"/> +<pkg name="KDEl10n-km"/> +<pkg name="KDEl10n-kn"/> +<pkg name="KDEl10n-ko"/> +<pkg name="KDEl10n-ku"/> +<pkg name="KDEl10n-lt"/> +<pkg name="KDEl10n-lv"/> +<pkg name="KDEl10n-mai"/> +<pkg name="KDEl10n-mk"/> +<pkg name="KDEl10n-ml"/> +<pkg name="KDEl10n-mr"/> +<pkg name="KDEl10n-nb"/> +<pkg name="KDEl10n-nds"/> +<pkg name="KDEl10n-nl"/> +<pkg name="KDEl10n-nn"/> +<pkg name="KDEl10n-pa"/> +<pkg name="KDEl10n-pl"/> +<pkg name="KDEl10n-pt"/> +<pkg name="KDEl10n-ptBR"/> +<pkg name="KDEl10n-ro"/> +<pkg name="KDEl10n-ru"/> +<pkg name="KDEl10n-sk"/> +<pkg name="KDEl10n-sl"/> +<pkg name="KDEl10n-sr"/> +<pkg name="KDEl10n-sv"/> +<pkg name="KDEl10n-tg"/> +<pkg name="KDEl10n-th"/> +<pkg name="KDEl10n-tr"/> +<pkg name="KDEl10n-uk"/> +<pkg name="KDEl10n-wa"/> +<pkg name="KDEl10n-zhCN"/> +<pkg name="KDEl10n-zhTW"/> +<pkg name="KDEaccessibility"/> +<pkg name="KDEadmin"/> +<pkg name="KDEartwork"/> +<pkg name="KDEbase-apps"/> +<pkg name="KDEbase-runtime"/> +<pkg name="KDEbase-workspace"/> +<pkg name="KDEedu"/> +<pkg name="KDEgames"/> +<pkg name="KDEgdm-integration"/> +<pkg name="KDEgraphics"/> +<pkg name="KDEkonversation"/> +<pkg name="KDElibs"/> +<pkg name="KDElibs-experimental"/> +<pkg name="KDEnetwork"/> +<pkg name="KDEoxygen-icons"/> +<pkg name="KDEpim"/> +<pkg name="KDEpimlibs"/> +<pkg name="KDEsdk"/> +<pkg name="KDEtoys"/> +<pkg name="KDEutils"/> +<pkg name="KDEwebdev"/> </packages> <!-- Items below this line are rarely configured @@ -182,10 +256,7 @@ the first line of /etc/release will be used as the title for the grub menu --> - <!-- - Uncomment before using - <title>Special Grub Title Text</title> - --> + <title>Korona 0.0.2</title> <entry> <title_suffix>Enable SSH</title_suffix> <line>kernel$ /platform/i86pc/kernel/$ISADIR/unix -B livessh=enable</line>
(I use this oneliner to get all the KDE packages installed on my build system:
pkginfo |grep ^KDE|sed s/^KDE4\ *//|grep -o ^KDE[^\ ]*|sed s/^/\<pkg\ name=\"/|sed s/\$/\"\\/\>/
Run the first phase, takes several hours
$ pfexec distro_const build -p 1 all_lang_slim_cd_x86.xml
Remove the step_im-mod snapshot
$ zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT dpool/dc/build_data@empty 0 - 23K - dpool/dc/[email protected]_im-pop 0 - 23K - dpool/dc/[email protected]_im-mod 6.54M - 5.05G - rpool/ROOT/opensolaris@install 150M - 2.82G - $ pfexec zfs destroy dpool/dc/[email protected]_im-mod
Add a .dmrc file for jack, so that kde is the default session
$ pfexec vi /dpool/dc/build_data/pkg_image/jack/.dmrc $ cat /dpool/dc/build_data/pkg_image/jack/.dmrc [Desktop] Session=kde $ pfexec chown --reference=/dpool/dc/build_data/pkg_image/jack /dpool/dc/build_data/pkg_image/jack/.dmrc
Add some desktop icons
$ scp [email protected]:/tmp/KDE* /dpool/dc/build_data/pkg_image/jack/Desktop/ $ scp [email protected]:/tmp/kde* /dpool/dc/build_data/pkg_image/jack/Desktop/ $ pfexec chown --reference=/dpool/dc/build_data/pkg_image/jack /dpool/dc/build_data/pkg_image/jack/Desktop/KDE-Solaris-forum.desktop $ pfexec chown --reference=/dpool/dc/build_data/pkg_image/jack /dpool/dc/build_data/pkg_image/jack/Desktop/kde-solaris.desktop
Create the step_im-mod snapshot again and proceed with the build
$ pfexec zfs snapshot dpool/dc/[email protected]_im-mod $ pfexec distro_const build -r 1 all_lang_slim_cd_x86.xml