From 2921e048d3f704154622847af3b09d80990ae323 Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Tue, 23 Mar 2010 09:14:04 -0400
Subject: [PATCH 1/2] Rework live-base and desktop minimization

First, strip the "minimization" parts out of fedora-live-base.ks,
and move them into fedora-live-minimization.ks.  All previous consumers
of fedora-live-base.ks are updated.

The old fedora-live-base.ks was conflating two entirely different
things:

* A live-based image which can be used to install
* Stripping some random bits to fit onto a CD

Next, rename fedora-livecd-desktop to fedora-live-desktop.ks, add -cd.ks

Split up these two concepts so that fedora-live-desktop is *THE*
desktop.  What we expect everyone to have as a base, and the
exact same set of packages should be installed by Standalone
Anaconda (DVD) as well.  Then, we have minimization hacks
in fedora-live-desktop-cd.ks.

Over time, we should be shrinking the default install and making
it more just-in-time, by e.g. having many more things use
the PackageKit library to pull in components as needed.
---
 fedora-live-base.ks         |   52 +++------------------
 fedora-live-desktop-cd.ks   |   58 +++++++++++++++++++++++
 fedora-live-desktop.ks      |   54 ++++++++++++++++++++++
 fedora-live-minimization.ks |   41 ++++++++++++++++
 fedora-livecd-desktop.ks    |  107 -------------------------------------------
 fedora-livecd-kde.ks        |    1 +
 fedora-livecd-lxde.ks       |    1 +
 fedora-livecd-security.ks   |    1 +
 fedora-livecd-xfce.ks       |    1 +
 9 files changed, 164 insertions(+), 152 deletions(-)
 create mode 100644 fedora-live-desktop-cd.ks
 create mode 100644 fedora-live-desktop.ks
 create mode 100644 fedora-live-minimization.ks
 delete mode 100644 fedora-livecd-desktop.ks

diff --git a/fedora-live-base.ks b/fedora-live-base.ks
index e46e15e..5760080 100644
--- a/fedora-live-base.ks
+++ b/fedora-live-base.ks
@@ -38,54 +38,16 @@ repo --name=released --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?re
 @dial-up
 @hardware-support
 @printing
+
+# Explicitly specified here:
+# <notting> walters: because otherwise dependency loops cause yum issues.
 kernel
+
+# This was added a while ago, I think it falls into the category of
+# "Diagnosis/recovery tool useful from a Live OS image".  Leaving this untouched
+# for now.
 memtest86+
 
-#firstaidkit-plugin-all
-
-# save some space
--specspo
--esc
--samba-client
--a2ps
--mpage
--redhat-lsb
--sox
--hplip
--hpijs
-sendmail
-#ssmtp
--numactl
--isdn4k-utils
--autofs
-# smartcards won't really work on the livecd.
--coolkey
--ccid
-# duplicate functionality
--pinfo
--vorbis-tools
--wget
-# lose the compat stuff
--compat*
-
-# qlogic firmwares
--ql2100-firmware
--ql2200-firmware
--ql23xx-firmware
--ql2400-firmware
-
-# scanning takes quite a bit of space :/
--xsane
--xsane-gimp
--sane-backends
-
-# livecd bits to set up the livecd and be able to install
-anaconda
-isomd5sum
-
-# commented out to avoid warning
-# # make sure debuginfo doesn't end up on the live image
-#-*debuginfo
 %end
 
 %post
diff --git a/fedora-live-desktop-cd.ks b/fedora-live-desktop-cd.ks
new file mode 100644
index 0000000..089fa9e
--- /dev/null
+++ b/fedora-live-desktop-cd.ks
@@ -0,0 +1,58 @@
+# Desktop with customizationst to fit in a CD sized image (package removals, etc.)
+# Maintained by the Fedora Desktop SIG:
+# http://fedoraproject.org/wiki/SIGs/Desktop
+# mailto:fedora-desktop-list@fedoraproject.org
+
+%include fedora-live-desktop.ks
+%include fedora-live-minimization.ks
+
+%packages
+# dictionaries are big
+-aspell-*
+-hunspell-*
+-man-pages*
+-words
+
+# save some space
+-gnome-user-docs
+-evolution-help
+-gnome-games-help
+-nss_db
+-isdn4k-utils
+-desktop-backgrounds-basic
+-constantine-backgrounds-extras
+
+# things we don't need here
+-seahorse
+-alacarte
+-krb5-auth-dialog
+-krb5-workstation
+-pam_krb5
+-quota
+-acpid
+-nano
+-smartmontools
+-minicom
+-dos2unix
+-finger
+-ftp
+-jwhois
+-mtr
+-pinfo
+-rsh
+-telnet
+-unix2dos
+-nfs-utils
+-ypbind
+-yp-tools
+-rpcbind
+
+# drop some system-config things
+-system-config-boot
+-system-config-language
+-system-config-lvm
+-system-config-network
+-system-config-rootpassword
+-system-config-services
+-policycoreutils-gui
+%end
diff --git a/fedora-live-desktop.ks b/fedora-live-desktop.ks
new file mode 100644
index 0000000..2e31f29
--- /dev/null
+++ b/fedora-live-desktop.ks
@@ -0,0 +1,54 @@
+# Maintained by the Fedora Desktop SIG:
+# http://fedoraproject.org/wiki/SIGs/Desktop
+# mailto:fedora-desktop-list@fedoraproject.org
+
+%include fedora-live-base.ks
+
+%packages
+@graphical-internet
+@sound-and-video
+@gnome-desktop
+@office
+
+# FIXME - these two need to go in comps
+nss-mdns
+# use the PackageKit helper for bash
+PackageKit-command-not-found
+
+# avoid weird case where we pull in more festival stuff than we need
+festival
+festvox-slt-arctic-hts
+
+%end
+
+%post
+cat >> /etc/rc.d/init.d/livesys << EOF
+# disable screensaver locking
+gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-screensaver/lock_enabled false >/dev/null
+gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /desktop/gnome/lockdown/disable_lock_screen true >/dev/null
+
+# set up timed auto-login for after 60 seconds
+cat >> /etc/gdm/custom.conf << FOE
+[daemon]
+TimedLoginEnable=true
+TimedLogin=liveuser
+TimedLoginDelay=60
+FOE
+
+# Show harddisk install on the desktop
+sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop
+mkdir /home/liveuser/Desktop
+cp /usr/share/applications/liveinst.desktop /home/liveuser/Desktop
+chown -R liveuser.liveuser /home/liveuser/Desktop
+chmod a+x /home/liveuser/Desktop/liveinst.desktop
+
+# But not trash and home
+gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/nautilus/desktop/trash_icon_visible false >/dev/null
+gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/nautilus/desktop/home_icon_visible false >/dev/null
+
+# Turn off PackageKit-command-not-found while uninstalled
+sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf
+
+EOF
+
+%end
diff --git a/fedora-live-minimization.ks b/fedora-live-minimization.ks
new file mode 100644
index 0000000..2717e8e
--- /dev/null
+++ b/fedora-live-minimization.ks
@@ -0,0 +1,41 @@
+# Common packages removed from comps
+# For F14, these removals should be moved to comps itself
+
+%packages
+
+# save some space
+-specspo
+-esc
+-samba-client
+-a2ps
+-mpage
+-redhat-lsb
+-sox
+-hplip
+-hpijs
+#ssmtp
+-numactl
+-isdn4k-utils
+-autofs
+# smartcards won't really work on the livecd.
+-coolkey
+-ccid
+# duplicate functionality
+-pinfo
+-vorbis-tools
+-wget
+# lose the compat stuff
+-compat*
+
+# qlogic firmwares
+-ql2100-firmware
+-ql2200-firmware
+-ql23xx-firmware
+-ql2400-firmware
+
+# scanning takes quite a bit of space :/
+-xsane
+-xsane-gimp
+-sane-backends
+
+%end
diff --git a/fedora-livecd-desktop.ks b/fedora-livecd-desktop.ks
deleted file mode 100644
index 9d78fc5..0000000
--- a/fedora-livecd-desktop.ks
+++ /dev/null
@@ -1,107 +0,0 @@
-# Maintained by the Fedora Desktop SIG:
-# http://fedoraproject.org/wiki/SIGs/Desktop
-# mailto:fedora-desktop-list@redhat.com
-
-## NOTE:
-# This file should in general be *subtraction* from the gnome-desktop
-# comps group to fit within a CD-sized image.  If you want to add
-# a package to the desktop, add them to the comps group.
-
-%include fedora-live-base.ks
-
-%packages
-@graphical-internet
-@sound-and-video
-@gnome-desktop
-@office
-nss-mdns
-
-# avoid weird case where we pull in more festival stuff than we need
-festival
-festvox-slt-arctic-hts
-
-# dictionaries are big
--aspell-*
--hunspell-*
--man-pages*
--words
-
-# save some space
--gnome-user-docs
--evolution-help
--gnome-games-help
--nss_db
--isdn4k-utils
--desktop-backgrounds-basic
--constantine-backgrounds-extras
-
-# things we don't need here
--seahorse
--alacarte
--krb5-auth-dialog
--krb5-workstation
--pam_krb5
--quota
--acpid
--nano
--smartmontools
--minicom
--dos2unix
--finger
--ftp
--jwhois
--mtr
--pinfo
--rsh
--telnet
--unix2dos
--nfs-utils
--ypbind
--yp-tools
--rpcbind
-
-# drop some system-config things
--system-config-boot
--system-config-language
--system-config-lvm
--system-config-network
--system-config-rootpassword
--system-config-services
--policycoreutils-gui
-
-# use the PackageKit helper for bash
-PackageKit-command-not-found
-
-%end
-
-%post
-cat >> /etc/rc.d/init.d/livesys << EOF
-# disable screensaver locking
-gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-screensaver/lock_enabled false >/dev/null
-gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /desktop/gnome/lockdown/disable_lock_screen true >/dev/null
-
-# set up timed auto-login for after 60 seconds
-cat >> /etc/gdm/custom.conf << FOE
-[daemon]
-TimedLoginEnable=true
-TimedLogin=liveuser
-TimedLoginDelay=60
-FOE
-
-# Show harddisk install on the desktop
-sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop
-mkdir /home/liveuser/Desktop
-cp /usr/share/applications/liveinst.desktop /home/liveuser/Desktop
-chown -R liveuser.liveuser /home/liveuser/Desktop
-chmod a+x /home/liveuser/Desktop/liveinst.desktop
-
-# But not trash and home
-gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/nautilus/desktop/trash_icon_visible false >/dev/null
-gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/nautilus/desktop/home_icon_visible false >/dev/null
-
-# Turn off PackageKit-command-not-found while uninstalled
-sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf
-
-EOF
-
-%end
diff --git a/fedora-livecd-kde.ks b/fedora-livecd-kde.ks
index bfb5e4d..9000750 100644
--- a/fedora-livecd-kde.ks
+++ b/fedora-livecd-kde.ks
@@ -8,6 +8,7 @@
 # - Fedora KDE SIG
 
 %include fedora-live-base.ks
+%include fedora-live-minimization.ks
 
 %packages
 
diff --git a/fedora-livecd-lxde.ks b/fedora-livecd-lxde.ks
index 708b12f..0d3bf1d 100644
--- a/fedora-livecd-lxde.ks
+++ b/fedora-livecd-lxde.ks
@@ -7,6 +7,7 @@
 # - Christoph Wickert <cwickert@fedoraproject.org>
 
 %include fedora-live-base.ks
+%include fedora-live-minimization.ks
 
 %packages
 # LXDE desktop
diff --git a/fedora-livecd-security.ks b/fedora-livecd-security.ks
index d5a63ff..fbf5dd7 100644
--- a/fedora-livecd-security.ks
+++ b/fedora-livecd-security.ks
@@ -13,6 +13,7 @@
 
 
 %include fedora-live-base.ks
+%include fedora-live-minimization.ks
 
 %packages
 security-menus
diff --git a/fedora-livecd-xfce.ks b/fedora-livecd-xfce.ks
index 055ab51..1b739b6 100644
--- a/fedora-livecd-xfce.ks
+++ b/fedora-livecd-xfce.ks
@@ -10,6 +10,7 @@
 # - Adam Miller       <maxamillion@gmail.com>
 
 %include fedora-live-base.ks
+%include fedora-live-minimization.ks
 
 %packages
 
-- 
1.6.6.1

