Solaris/OpenSolaris/LiveCDHowTo

From KDE Community Wiki

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

Wait few hours and pickup the iso