This patch builds on the previous one and uses the make_desktop_template function unchanged.
As this task is intended to be used for _existing_ images (x86 BC, netinst and DVD) there are no new DISKTYPE added in testingcds. Basically the cronjobs will need to use TASK=Debian-all instead of TASK=Debian for the relevant images.
Add support to create an 'all desktops' DVD diff --git a/easy-build.sh b/easy-build.sh index cbde593..0760044 100755 --- a/easy-build.sh +++ b/easy-build.sh @@ -6,7 +6,7 @@ set -e ## See also CONF.sh for the meaning of variables used here. show_usage() { - echo "Usage: $(basename $0) [-d kde|lxde|xfce|light] BC|NETINST|CD|DVD [<ARCH> ...]" + echo "Usage: $(basename $0) [-d kde|lxde|xfce|light|all] BC|NETINST|CD|DVD [<ARCH> ...]" } @@ -31,7 +31,7 @@ if [ "$1" = "-d" ]; then # Ignore (gnome is default) shift 2 ;; - kde|lxde|xfce|light) + kde|lxde|xfce|light|all) desktop=$2 shift 2 ;; diff --git a/tasks/lenny/Debian-all b/tasks/lenny/Debian-all new file mode 100644 index 0000000..39c4b51 --- /dev/null +++ b/tasks/lenny/Debian-all @@ -0,0 +1,17 @@ +/* + * This file will be used to build official complete sets of Lenny DVDs + * supporting all available desktop environments: GNOME (default), KDE, + * LXDE and Xfce + */ + +/* Packages that should really be on CD1 */ +#include <debian-installer+kernel> +#include <forcd1> +#include <task-essential-all> + +/* Other interesting packages */ +#include <task-full-all> +#include <interesting-fromcd23> + +/* The rest ordered by popularity */ +#include <popularity-contest> diff --git a/tasks/lenny/task.list.all b/tasks/lenny/task.list.all new file mode 100644 index 0000000..43f05aa --- /dev/null +++ b/tasks/lenny/task.list.all @@ -0,0 +1,15 @@ +# Main tasks +gnome-desktop +desktop +web-server +laptop +mail-server +print-server +database-server +dns-server +file-server + +# Alternative desktop environments +kde-desktop +xfce-desktop +lxde-desktop diff --git a/tools/boot/lenny/boot-x86 b/tools/boot/lenny/boot-x86 index d633145..57a6132 100644 --- a/tools/boot/lenny/boot-x86 +++ b/tools/boot/lenny/boot-x86 @@ -141,6 +141,10 @@ extra_image () { # If multiple desktops are to be supported, set the default one ORIG_DESKTOP= case "$DESKTOP" in + all) + ORIG_DESKTOP=$DESKTOP + DESKTOP= + ;; light) ORIG_DESKTOP=$DESKTOP DESKTOP=xfce @@ -322,6 +326,8 @@ EOF fi case "$ORIG_DESKTOP" in + all) + modify_for_all_desktop ;; light) modify_for_light_desktop ;; esac diff --git a/tools/boot/lenny/x86-desktop.sh b/tools/boot/lenny/x86-desktop.sh index 6f3ac35..2bfe19a 100644 --- a/tools/boot/lenny/x86-desktop.sh +++ b/tools/boot/lenny/x86-desktop.sh @@ -149,3 +149,85 @@ menu begin rescue menu end EOF } + +modify_for_all_desktop() { + make_desktop_template + + # Remove desktop option in root config files (for GNOME) + sed -i "s:desktop=[^ ]*::" boot$N/isolinux/*.cfg + + cp -r boot$N/isolinux/desktop boot$N/isolinux/kde + sed -i "s:%desktop%:kde:g" boot$N/isolinux/kde/*.cfg + sed -i "/Advanced options/ s:title:title KDE:" \ + boot$N/isolinux/kde/menu.cfg + + cp -r boot$N/isolinux/desktop boot$N/isolinux/xfce + sed -i "s:%desktop%:xfce:g" boot$N/isolinux/xfce/*.cfg + sed -i "/Advanced options/ s:title:title Xfce:" \ + boot$N/isolinux/xfce/menu.cfg + + cp -r boot$N/isolinux/desktop boot$N/isolinux/lxde + sed -i "s:%desktop%:lxde:g" boot$N/isolinux/lxde/*.cfg + sed -i "/Advanced options/ s:title:title LXDE:" \ + boot$N/isolinux/lxde/menu.cfg + + # Cleanup + rm -r boot$N/isolinux/desktop + + # Create desktop menu file + cat >boot$N/isolinux/dtmenu.cfg <<EOF +menu begin desktop + include stdmenu.cfg + menu hshift 13 + menu width 49 + menu label Alternative desktop environments + menu title Desktop environment menu + label mainmenu-kde + menu label ^Back.. + text help + Higher level options install the GNOME desktop environment + endtext + menu exit + menu begin kde-desktop + include stdmenu.cfg + menu label ^KDE + menu title KDE desktop boot menu + text help + Select the 'K Desktop Environment' for the Desktop task + endtext + label mainmenu-kde + menu label ^Back.. + menu exit + include kde/menu.cfg + menu end + menu begin lxde-desktop + include stdmenu.cfg + menu label ^LXDE + menu title LXDE desktop boot menu + text help + Select the 'Lightweight X11 Desktop Environment' for the Desktop task + endtext + label mainmenu-lxde + menu label ^Back.. + menu exit + include lxde/menu.cfg + menu end + menu begin xfce-desktop + include stdmenu.cfg + menu label ^Xfce + menu title Xfce desktop boot menu + text help + Select the 'Xfce lightweight desktop environment' for the Desktop task + endtext + label mainmenu-xfce + menu label ^Back.. + menu exit + include xfce/menu.cfg + menu end +menu end +EOF + + # Include desktop submenu in Advanced options submenu + sed -i "/menu end/ i\\\tinclude dtmenu.cfg" \ + boot$N/isolinux/menu.cfg +} diff --git a/tools/update_tasks b/tools/update_tasks index 8365a0e..dbecbf3 100755 --- a/tools/update_tasks +++ b/tools/update_tasks @@ -163,7 +163,7 @@ dpkg -x $TASKSEL_DEB $TDIR/tasksel [ -e task.languages ] || exit 1 grep -Ev "^(#.*)?[[:space:]]*$" task.languages > $TDIR/languages -for variant in "" kde lxde xfce light; do +for variant in "" kde lxde xfce light all; do if [ ! -e task.list${variant:+.$variant} ]; then echo "Warning: task.list${variant:+.$variant} does not exist; skipping" continue
signature.asc
Description: This is a digitally signed message part.