summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2014-03-02 21:06:00 +0100
committerJonas Smedegaard <dr@jones.dk>2014-03-02 21:06:00 +0100
commit91baeb0561c44cbdcf774220d1b40291c4be8045 (patch)
tree47955b98198a43df9e139bca77a6dcf07b2fc496
parent32b956ecd785a95d51bc47df6a549b77e707f4e5 (diff)
Restructure to generate preseed files from skeleton + packagelists.
-rw-r--r--Makefile17
-rwxr-xr-xbin/pkglist2preseed12
-rw-r--r--content/desktop/email/preseed.cfg60
-rw-r--r--content/desktop/office/preseed.cfg68
-rw-r--r--content/desktop/web/preseed.cfg60
-rw-r--r--profiles/desktop4
-rw-r--r--profiles/desktop-email3
-rw-r--r--profiles/desktop-office10
-rw-r--r--profiles/desktop-web2
-rw-r--r--profiles/desktop-z8
-rw-r--r--skel/preseed.cfg.in (renamed from content/desktop/base/preseed.cfg)17
11 files changed, 59 insertions, 202 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..c4a178c
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,17 @@
+profiles = desktop
+desktoptopics = email office web
+desktoptopiclists = $(patsubst %,profiles/desktop-%,$(desktoptopics))
+basefiles = $(patsubst %,content/%/base/preseed.cfg,$(profiles))
+topicfiles = $(patsubst %,content/desktop/%/preseed.cfg,$(desktoptopics))
+profilefiles = $(patsubst %,content/%/preseed.cfg,$(profiles))
+
+all: $(basefiles) $(topicfiles) $(profilefiles)
+
+$(basefiles): content/%/base/preseed.cfg : profiles/% profiles/%-z
+ bin/pkglist2preseed skel/preseed.cfg.in $^ > $@
+
+$(topicfiles): content/desktop/%/preseed.cfg : profiles/desktop profiles/desktop-% profiles/desktop-z
+ bin/pkglist2preseed skel/preseed.cfg.in $^ > $@
+
+$(profilefiles): content/%/preseed.cfg : profiles/% profiles/%-email $(desktoptopiclists) profiles/%-z
+ bin/pkglist2preseed skel/preseed.cfg.in $^ > $@
diff --git a/bin/pkglist2preseed b/bin/pkglist2preseed
new file mode 100755
index 0000000..1691f4e
--- /dev/null
+++ b/bin/pkglist2preseed
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -eu
+
+skelfile="$1"; shift
+
+pkgdesc=$(perl -nE '/^[#]{2} (.*)/ and say "# $1"; /^[#]{1} (.*)/ and say "# * $1"' "$@") #'
+pkglist=$(perl -ne 'chomp; /^[^#]+/ and print "$_ "' "$@")
+
+export pkgdesc pkglist
+
+perl -pe 's,__PKGDESC__,$ENV{"pkgdesc"},;s,__PKGLIST__,$ENV{"pkglist"},' < $skelfile
diff --git a/content/desktop/email/preseed.cfg b/content/desktop/email/preseed.cfg
deleted file mode 100644
index 490cb44..0000000
--- a/content/desktop/email/preseed.cfg
+++ /dev/null
@@ -1,60 +0,0 @@
-# install the lightweight Xfce desktop, and...
-# * include Icedove email with all locales and PGP plugin
-# * include crypto helper tools
-# * include CPU firmware and automatic maintenance routines
-# * fix include recommendations of other packages (uuid, bash)
-# * apply security updates immediately after install
-# * exclude support for print via Bluetooth
-tasksel tasksel/desktop multiselect xfce
-tasksel tasksel/first multiselect laptop
-#xfce4-session tango-icon-theme lightdm
-#icedove icedove-l10n-all enigmail
-#parcimonie haveged
-#firmware-linux unattended-upgrades
-#uuid-runtime bash-completion
-#-bluez-cups
-d-i pkgsel/include string xfce4-session tango-icon-theme lightdm icedove icedove-l10n-all enigmail parcimonie haveged firmware-linux unattended-upgrades uuid-runtime bash-completion -bluez-cups
-d-i pkgsel/upgrade select safe-upgrade
-
-# setup harddrive with full disk encryption
-# * overwrite any existing data without warning
-partman-auto partman-auto/method string crypto
-d-i partman-lvm/device_remove_lvm boolean true
-d-i partman-md/device_remove_md boolean true
-d-i partman-lvm/confirm boolean true
-d-i partman-lvm/confirm_nooverwrite boolean true
-d-i partman-auto/choose_recipe select multi
-d-i partman-partitioning/confirm_write_new_label boolean true
-d-i partman/choose_partition select finish
-d-i partman/confirm boolean true
-d-i partman/confirm_nooverwrite boolean true
-
-# silence misc. questions
-# * attempt to auto-detect hardware
-# * domain name irrelevant on desktop host without MTA
-# * use CDN for package updates
-# * disable direct root login (use sudo instead)
-# * report usage statistics back to Debian developers
-d-i netcfg/choose_interface select auto
-d-i netcfg/get_domain string unassigned-domain
-d-i mirror/country string manual
-d-i mirror/http/hostname string http.debian.net
-d-i mirror/http/directory string /debian
-d-i clock-setup/utc boolean true
-d-i clock-setup/ntp boolean true
-d-i apt-setup/services-select multiselect security, updates
-d-i apt-setup/security_host string security.debian.org
-d-i passwd/root-login boolean false
-popularity-contest popularity-contest/participate boolean true
-
-# tidy loose ends...
-# * fix mark auto-installed packages as such
-# * silence confusing panel question at initial XFCE login
-# * replace appfinder with mail-reader in default XFCE panel
-# * disable storing Xfce session at logout by default
-#chroot /target apt-mark auto $(chroot /target apt-mark showmanual | grep '^lib') acpi acpi-support-base acpid adduser apt apt-utils aptitude-common base-files base-passwd bash bash-completion bsdmainutils bsdutils busybox coreutils cpio cron dash debconf debconf-i18n debian-archive-keyring debianutils diffutils dmidecode dpkg e2fslibs e2fsprogs findutils fonts-freefont-ttf gcc-4.7-base gnupg gpgv grep groff-base grub-common gzip hostname ifupdown initramfs-tools initscripts insserv install-info iproute isc-dhcp-client isc-dhcp-common keyboard-configuration kmod laptop-detect linux-image-amd64 locales login logrotate lsb-base mawk mount multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-traditional passwd pciutils perl-base procps readline-common rsyslog sed sensible-utils sysv-rc sysvinit sysvinit-utils tar tasksel tasksel-data tzdata udev usbutils util-linux uuid-runtime vim-common xz-utils zlib1g
-#cd /target/etc/xdg/xfce4/xfconf/xfce-perchannel-xml
-#cp -a ../../panel/default.xml xfce4-panel.xml && touch xfce4-panel.xml.orig
-#cp -a xfce4-panel.xml xfce4-panel.xml.old && sed -i -r -e 's,xfce4-appfinder,exo-mail-reader,' xfce4-panel.xml
-#cp -a xfce4-session.xml xfce4-session.xml.orig && sed -i -r -e 's,(<property name="general"[^>]*>),\1\n <property name="SaveOnExit" type="bool" value="false"/>,' xfce4-session.xml
-d-i preseed/late_command string chroot /target apt-mark auto $(chroot /target apt-mark showmanual | grep '^lib') acpi acpi-support-base acpid adduser apt apt-utils aptitude-common base-files base-passwd bash bash-completion bsdmainutils bsdutils busybox coreutils cpio cron dash debconf debconf-i18n debian-archive-keyring debianutils diffutils dmidecode dpkg e2fslibs e2fsprogs findutils fonts-freefont-ttf gcc-4.7-base gnupg gpgv grep groff-base grub-common gzip hostname ifupdown initramfs-tools initscripts insserv install-info iproute isc-dhcp-client isc-dhcp-common keyboard-configuration kmod laptop-detect linux-image-amd64 locales login logrotate lsb-base mawk mount multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-traditional passwd pciutils perl-base procps readline-common rsyslog sed sensible-utils sysv-rc sysvinit sysvinit-utils tar tasksel tasksel-data tzdata udev usbutils util-linux uuid-runtime vim-common xz-utils zlib1g && cd /target/etc/xdg/xfce4/xfconf/xfce-perchannel-xml && cp -a ../../panel/default.xml xfce4-panel.xml && touch xfce4-panel.xml.orig && cp -a xfce4-panel.xml xfce4-panel.xml.old && sed -i -r -e 's,xfce4-appfinder,exo-mail-reader,' xfce4-panel.xml && cp -a xfce4-session.xml xfce4-session.xml.orig && sed -i -r -e 's,(<property name="general"[^>]*>),\1\n <property name="SaveOnExit" type="bool" value="false"/>,' xfce4-session.xml
diff --git a/content/desktop/office/preseed.cfg b/content/desktop/office/preseed.cfg
deleted file mode 100644
index 4077df0..0000000
--- a/content/desktop/office/preseed.cfg
+++ /dev/null
@@ -1,68 +0,0 @@
-# install the lightweight Xfce desktop, and...
-# * include LibreOffice core with all locales except Galaxy theme
-# * include LibreOffice Calc and Writer except Java support or email composer
-# * include LibreOffice Impress with OpenGL plugin
-# * include Evince PDF reader and exclude ePDFView
-# * include crypto helper tools
-# * include CPU firmware and automatic maintenance routines
-# * fix include recommendations of other packages (uuid, bash)
-# * apply security updates immediately after install
-# * exclude support for print via Bluetooth
-tasksel tasksel/desktop multiselect xfce
-tasksel tasksel/first multiselect laptop
-#xfce4-session tango-icon-theme lightdm
-#libreoffice-gtk -libreoffice-style-galaxy
-#$(for lang in ar ast be bg br bs ca cs cy da da de dz el en-gb eo es et eu fa fi fr ga gl he hr hu id in is it ja ka km ko ku lt lv mk mn nb ne nl nn oc om pl pt pt-br ro ru rw si sk sl sr sv tg th tr ug uk uz vi za zh-cn zh-tw; do echo libreoffice-l10n-$lang; done)
-#libreoffice-l10n-ar libreoffice-l10n-ast libreoffice-l10n-be libreoffice-l10n-bg libreoffice-l10n-br libreoffice-l10n-bs libreoffice-l10n-ca libreoffice-l10n-cs libreoffice-l10n-cy libreoffice-l10n-da libreoffice-l10n-da libreoffice-l10n-de libreoffice-l10n-dz libreoffice-l10n-el libreoffice-l10n-en-gb libreoffice-l10n-eo libreoffice-l10n-es libreoffice-l10n-et libreoffice-l10n-eu libreoffice-l10n-fa libreoffice-l10n-fi libreoffice-l10n-fr libreoffice-l10n-ga libreoffice-l10n-gl libreoffice-l10n-he libreoffice-l10n-hr libreoffice-l10n-hu libreoffice-l10n-id libreoffice-l10n-in libreoffice-l10n-is libreoffice-l10n-it libreoffice-l10n-ja libreoffice-l10n-ka libreoffice-l10n-km libreoffice-l10n-ko libreoffice-l10n-ku libreoffice-l10n-lt libreoffice-l10n-lv libreoffice-l10n-mk libreoffice-l10n-mn libreoffice-l10n-nb libreoffice-l10n-ne libreoffice-l10n-nl libreoffice-l10n-nn libreoffice-l10n-oc libreoffice-l10n-om libreoffice-l10n-pl libreoffice-l10n-pt libreoffice-l10n-pt-br libreoffice-l10n-ro libreoffice-l10n-ru libreoffice-l10n-rw libreoffice-l10n-si libreoffice-l10n-sk libreoffice-l10n-sl libreoffice-l10n-sr libreoffice-l10n-sv libreoffice-l10n-tg libreoffice-l10n-th libreoffice-l10n-tr libreoffice-l10n-ug libreoffice-l10n-uk libreoffice-l10n-uz libreoffice-l10n-vi libreoffice-l10n-za libreoffice-l10n-zh-cn libreoffice-l10n-zh-tw
-#libreoffice-calc libreoffice-writer -libreoffice-java-common -libreoffice-emailmerge
-#libreoffice-impress libreoffice-ogltrans
-#evince-gtk -epdfview
-#parcimonie haveged
-#firmware-linux unattended-upgrades
-#uuid-runtime bash-completion
-#-bluez-cups
-d-i pkgsel/include string xfce4-session tango-icon-theme lightdm libreoffice-gtk -libreoffice-style-galaxy libreoffice-l10n-ar libreoffice-l10n-ast libreoffice-l10n-be libreoffice-l10n-bg libreoffice-l10n-br libreoffice-l10n-bs libreoffice-l10n-ca libreoffice-l10n-cs libreoffice-l10n-cy libreoffice-l10n-da libreoffice-l10n-da libreoffice-l10n-de libreoffice-l10n-dz libreoffice-l10n-el libreoffice-l10n-en-gb libreoffice-l10n-eo libreoffice-l10n-es libreoffice-l10n-et libreoffice-l10n-eu libreoffice-l10n-fa libreoffice-l10n-fi libreoffice-l10n-fr libreoffice-l10n-ga libreoffice-l10n-gl libreoffice-l10n-he libreoffice-l10n-hr libreoffice-l10n-hu libreoffice-l10n-id libreoffice-l10n-in libreoffice-l10n-is libreoffice-l10n-it libreoffice-l10n-ja libreoffice-l10n-ka libreoffice-l10n-km libreoffice-l10n-ko libreoffice-l10n-ku libreoffice-l10n-lt libreoffice-l10n-lv libreoffice-l10n-mk libreoffice-l10n-mn libreoffice-l10n-nb libreoffice-l10n-ne libreoffice-l10n-nl libreoffice-l10n-nn libreoffice-l10n-oc libreoffice-l10n-om libreoffice-l10n-pl libreoffice-l10n-pt libreoffice-l10n-pt-br libreoffice-l10n-ro libreoffice-l10n-ru libreoffice-l10n-rw libreoffice-l10n-si libreoffice-l10n-sk libreoffice-l10n-sl libreoffice-l10n-sr libreoffice-l10n-sv libreoffice-l10n-tg libreoffice-l10n-th libreoffice-l10n-tr libreoffice-l10n-ug libreoffice-l10n-uk libreoffice-l10n-uz libreoffice-l10n-vi libreoffice-l10n-za libreoffice-l10n-zh-cn libreoffice-l10n-zh-tw libreoffice-calc libreoffice-writer -libreoffice-java-common -libreoffice-emailmerge libreoffice-impress libreoffice-ogltrans parcimonie haveged firmware-linux unattended-upgrades uuid-runtime bash-completion -bluez-cups
-d-i pkgsel/upgrade select safe-upgrade
-
-# setup harddrive with full disk encryption
-# * overwrite any existing data without warning
-partman-auto partman-auto/method string crypto
-d-i partman-lvm/device_remove_lvm boolean true
-d-i partman-md/device_remove_md boolean true
-d-i partman-lvm/confirm boolean true
-d-i partman-lvm/confirm_nooverwrite boolean true
-d-i partman-auto/choose_recipe select multi
-d-i partman-partitioning/confirm_write_new_label boolean true
-d-i partman/choose_partition select finish
-d-i partman/confirm boolean true
-d-i partman/confirm_nooverwrite boolean true
-
-# silence misc. questions
-# * attempt to auto-detect hardware
-# * domain name irrelevant on desktop host without MTA
-# * use CDN for package updates
-# * disable direct root login (use sudo instead)
-# * report usage statistics back to Debian developers
-d-i netcfg/choose_interface select auto
-d-i netcfg/get_domain string unassigned-domain
-d-i mirror/country string manual
-d-i mirror/http/hostname string http.debian.net
-d-i mirror/http/directory string /debian
-d-i clock-setup/utc boolean true
-d-i clock-setup/ntp boolean true
-d-i apt-setup/services-select multiselect security, updates
-d-i apt-setup/security_host string security.debian.org
-d-i passwd/root-login boolean false
-popularity-contest popularity-contest/participate boolean true
-
-# tidy loose ends...
-# * fix mark auto-installed packages as such
-# * silence confusing panel question at initial XFCE login
-# * replace appfinder with mail-reader in default XFCE panel
-# * disable storing Xfce session at logout by default
-#chroot /target apt-mark auto $(chroot /target apt-mark showmanual | grep '^lib') acpi acpi-support-base acpid adduser apt apt-utils aptitude-common base-files base-passwd bash bash-completion bsdmainutils bsdutils busybox coreutils cpio cron dash debconf debconf-i18n debian-archive-keyring debianutils diffutils dmidecode dpkg e2fslibs e2fsprogs findutils fonts-freefont-ttf gcc-4.7-base gnupg gpgv grep groff-base grub-common gzip hostname ifupdown initramfs-tools initscripts insserv install-info iproute isc-dhcp-client isc-dhcp-common keyboard-configuration kmod laptop-detect linux-image-amd64 locales login logrotate lsb-base mawk mount multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-traditional passwd pciutils perl-base procps readline-common rsyslog sed sensible-utils sysv-rc sysvinit sysvinit-utils tar tasksel tasksel-data tzdata udev usbutils util-linux uuid-runtime vim-common xz-utils zlib1g
-#cd /target/etc/xdg/xfce4/xfconf/xfce-perchannel-xml
-#cp -a ../../panel/default.xml xfce4-panel.xml && touch xfce4-panel.xml.orig
-#cp -a xfce4-panel.xml xfce4-panel.xml.old && sed -i -r -e 's,xfce4-appfinder,exo-mail-reader,' xfce4-panel.xml
-#cp -a xfce4-session.xml xfce4-session.xml.orig && sed -i -r -e 's,(<property name="general"[^>]*>),\1\n <property name="SaveOnExit" type="bool" value="false"/>,' xfce4-session.xml
-d-i preseed/late_command string chroot /target apt-mark auto $(chroot /target apt-mark showmanual | grep '^lib') acpi acpi-support-base acpid adduser apt apt-utils aptitude-common base-files base-passwd bash bash-completion bsdmainutils bsdutils busybox coreutils cpio cron dash debconf debconf-i18n debian-archive-keyring debianutils diffutils dmidecode dpkg e2fslibs e2fsprogs findutils fonts-freefont-ttf gcc-4.7-base gnupg gpgv grep groff-base grub-common gzip hostname ifupdown initramfs-tools initscripts insserv install-info iproute isc-dhcp-client isc-dhcp-common keyboard-configuration kmod laptop-detect linux-image-amd64 locales login logrotate lsb-base mawk mount multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-traditional passwd pciutils perl-base procps readline-common rsyslog sed sensible-utils sysv-rc sysvinit sysvinit-utils tar tasksel tasksel-data tzdata udev usbutils util-linux uuid-runtime vim-common xz-utils zlib1g && cd /target/etc/xdg/xfce4/xfconf/xfce-perchannel-xml && cp -a ../../panel/default.xml xfce4-panel.xml && touch xfce4-panel.xml.orig && cp -a xfce4-panel.xml xfce4-panel.xml.old && sed -i -r -e 's,xfce4-appfinder,exo-mail-reader,' xfce4-panel.xml && cp -a xfce4-session.xml xfce4-session.xml.orig && sed -i -r -e 's,(<property name="general"[^>]*>),\1\n <property name="SaveOnExit" type="bool" value="false"/>,' xfce4-session.xml
diff --git a/content/desktop/web/preseed.cfg b/content/desktop/web/preseed.cfg
deleted file mode 100644
index 37319b7..0000000
--- a/content/desktop/web/preseed.cfg
+++ /dev/null
@@ -1,60 +0,0 @@
-# install the lightweight Xfce desktop, and...
-# * include Iceweasel web browser with all locales and security plugins
-# * include crypto helper tools
-# * include CPU firmware and automatic maintenance routines
-# * fix include recommendations of other packages (uuid, bash)
-# * apply security updates immediately after install
-# * exclude support for print via Bluetooth
-tasksel tasksel/desktop multiselect xfce
-tasksel tasksel/first multiselect laptop
-#xfce4-session tango-icon-theme lightdm
-#iceweasel iceweasel-l10n-all xul-ext-noscript xul-ext-cookie-monster
-#parcimonie haveged
-#firmware-linux unattended-upgrades
-#uuid-runtime bash-completion
-#-bluez-cups
-d-i pkgsel/include string xfce4-session tango-icon-theme lightdm iceweasel iceweasel-l10n-all xul-ext-noscript xul-ext-cookie-monster parcimonie haveged firmware-linux unattended-upgrades uuid-runtime bash-completion -bluez-cups
-d-i pkgsel/upgrade select safe-upgrade
-
-# setup harddrive with full disk encryption
-# * overwrite any existing data without warning
-partman-auto partman-auto/method string crypto
-d-i partman-lvm/device_remove_lvm boolean true
-d-i partman-md/device_remove_md boolean true
-d-i partman-lvm/confirm boolean true
-d-i partman-lvm/confirm_nooverwrite boolean true
-d-i partman-auto/choose_recipe select multi
-d-i partman-partitioning/confirm_write_new_label boolean true
-d-i partman/choose_partition select finish
-d-i partman/confirm boolean true
-d-i partman/confirm_nooverwrite boolean true
-
-# silence misc. questions
-# * attempt to auto-detect hardware
-# * domain name irrelevant on desktop host without MTA
-# * use CDN for package updates
-# * disable direct root login (use sudo instead)
-# * report usage statistics back to Debian developers
-d-i netcfg/choose_interface select auto
-d-i netcfg/get_domain string unassigned-domain
-d-i mirror/country string manual
-d-i mirror/http/hostname string http.debian.net
-d-i mirror/http/directory string /debian
-d-i clock-setup/utc boolean true
-d-i clock-setup/ntp boolean true
-d-i apt-setup/services-select multiselect security, updates
-d-i apt-setup/security_host string security.debian.org
-d-i passwd/root-login boolean false
-popularity-contest popularity-contest/participate boolean true
-
-# tidy loose ends...
-# * fix mark auto-installed packages as such
-# * silence confusing panel question at initial XFCE login
-# * replace appfinder with mail-reader in default XFCE panel
-# * disable storing Xfce session at logout by default
-#chroot /target apt-mark auto $(chroot /target apt-mark showmanual | grep '^lib') acpi acpi-support-base acpid adduser apt apt-utils aptitude-common base-files base-passwd bash bash-completion bsdmainutils bsdutils busybox coreutils cpio cron dash debconf debconf-i18n debian-archive-keyring debianutils diffutils dmidecode dpkg e2fslibs e2fsprogs findutils fonts-freefont-ttf gcc-4.7-base gnupg gpgv grep groff-base grub-common gzip hostname ifupdown initramfs-tools initscripts insserv install-info iproute isc-dhcp-client isc-dhcp-common keyboard-configuration kmod laptop-detect linux-image-amd64 locales login logrotate lsb-base mawk mount multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-traditional passwd pciutils perl-base procps readline-common rsyslog sed sensible-utils sysv-rc sysvinit sysvinit-utils tar tasksel tasksel-data tzdata udev usbutils util-linux uuid-runtime vim-common xz-utils zlib1g
-#cd /target/etc/xdg/xfce4/xfconf/xfce-perchannel-xml
-#cp -a ../../panel/default.xml xfce4-panel.xml && touch xfce4-panel.xml.orig
-#cp -a xfce4-panel.xml xfce4-panel.xml.old && sed -i -r -e 's,xfce4-appfinder,exo-mail-reader,' xfce4-panel.xml
-#cp -a xfce4-session.xml xfce4-session.xml.orig && sed -i -r -e 's,(<property name="general"[^>]*>),\1\n <property name="SaveOnExit" type="bool" value="false"/>,' xfce4-session.xml
-d-i preseed/late_command string chroot /target apt-mark auto $(chroot /target apt-mark showmanual | grep '^lib') acpi acpi-support-base acpid adduser apt apt-utils aptitude-common base-files base-passwd bash bash-completion bsdmainutils bsdutils busybox coreutils cpio cron dash debconf debconf-i18n debian-archive-keyring debianutils diffutils dmidecode dpkg e2fslibs e2fsprogs findutils fonts-freefont-ttf gcc-4.7-base gnupg gpgv grep groff-base grub-common gzip hostname ifupdown initramfs-tools initscripts insserv install-info iproute isc-dhcp-client isc-dhcp-common keyboard-configuration kmod laptop-detect linux-image-amd64 locales login logrotate lsb-base mawk mount multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-traditional passwd pciutils perl-base procps readline-common rsyslog sed sensible-utils sysv-rc sysvinit sysvinit-utils tar tasksel tasksel-data tzdata udev usbutils util-linux uuid-runtime vim-common xz-utils zlib1g && cd /target/etc/xdg/xfce4/xfconf/xfce-perchannel-xml && cp -a ../../panel/default.xml xfce4-panel.xml && touch xfce4-panel.xml.orig && cp -a xfce4-panel.xml xfce4-panel.xml.old && sed -i -r -e 's,xfce4-appfinder,exo-mail-reader,' xfce4-panel.xml && cp -a xfce4-session.xml xfce4-session.xml.orig && sed -i -r -e 's,(<property name="general"[^>]*>),\1\n <property name="SaveOnExit" type="bool" value="false"/>,' xfce4-session.xml
diff --git a/profiles/desktop b/profiles/desktop
new file mode 100644
index 0000000..fe8ae0d
--- /dev/null
+++ b/profiles/desktop
@@ -0,0 +1,4 @@
+## install the lightweight Xfce desktop, and...
+xfce4-session tango-icon-theme lightdm
+# include desktop helper tools missing from Xfce
+usermode network-manager-gnome
diff --git a/profiles/desktop-email b/profiles/desktop-email
new file mode 100644
index 0000000..3fd2b30
--- /dev/null
+++ b/profiles/desktop-email
@@ -0,0 +1,3 @@
+## email
+# include Icedove email with all locales and PGP plugin
+icedove icedove-l10n-all enigmail
diff --git a/profiles/desktop-office b/profiles/desktop-office
new file mode 100644
index 0000000..4b9ca2c
--- /dev/null
+++ b/profiles/desktop-office
@@ -0,0 +1,10 @@
+# include LibreOffice core (except Galaxy theme) with all locales
+libreoffice-gtk -libreoffice-style-galaxy
+#$(for lang in ar ast be bg br bs ca cs cy da da de dz el en-gb eo es et eu fa fi fr ga gl he hr hu id in is it ja ka km ko ku lt lv mk mn nb ne nl nn oc om pl pt pt-br ro ru rw si sk sl sr sv tg th tr ug uk uz vi za zh-cn zh-tw; do echo libreoffice-l10n-$lang; done)
+libreoffice-l10n-ar libreoffice-l10n-ast libreoffice-l10n-be libreoffice-l10n-bg libreoffice-l10n-br libreoffice-l10n-bs libreoffice-l10n-ca libreoffice-l10n-cs libreoffice-l10n-cy libreoffice-l10n-da libreoffice-l10n-da libreoffice-l10n-de libreoffice-l10n-dz libreoffice-l10n-el libreoffice-l10n-en-gb libreoffice-l10n-eo libreoffice-l10n-es libreoffice-l10n-et libreoffice-l10n-eu libreoffice-l10n-fa libreoffice-l10n-fi libreoffice-l10n-fr libreoffice-l10n-ga libreoffice-l10n-gl libreoffice-l10n-he libreoffice-l10n-hr libreoffice-l10n-hu libreoffice-l10n-id libreoffice-l10n-in libreoffice-l10n-is libreoffice-l10n-it libreoffice-l10n-ja libreoffice-l10n-ka libreoffice-l10n-km libreoffice-l10n-ko libreoffice-l10n-ku libreoffice-l10n-lt libreoffice-l10n-lv libreoffice-l10n-mk libreoffice-l10n-mn libreoffice-l10n-nb libreoffice-l10n-ne libreoffice-l10n-nl libreoffice-l10n-nn libreoffice-l10n-oc libreoffice-l10n-om libreoffice-l10n-pl libreoffice-l10n-pt libreoffice-l10n-pt-br libreoffice-l10n-ro libreoffice-l10n-ru libreoffice-l10n-rw libreoffice-l10n-si libreoffice-l10n-sk libreoffice-l10n-sl libreoffice-l10n-sr libreoffice-l10n-sv libreoffice-l10n-tg libreoffice-l10n-th libreoffice-l10n-tr libreoffice-l10n-ug libreoffice-l10n-uk libreoffice-l10n-uz libreoffice-l10n-vi libreoffice-l10n-za libreoffice-l10n-zh-cn libreoffice-l10n-zh-tw
+# include LibreOffice Calc and Writer (except Java support or email composer)
+libreoffice-calc libreoffice-writer -libreoffice-java-common -libreoffice-emailmerge
+# include LibreOffice Impress with OpenGL plugin
+libreoffice-impress libreoffice-ogltrans
+# include Evince PDF reader (and exclude ePDFView)
+evince-gtk -epdfview
diff --git a/profiles/desktop-web b/profiles/desktop-web
new file mode 100644
index 0000000..e72f537
--- /dev/null
+++ b/profiles/desktop-web
@@ -0,0 +1,2 @@
+# include Iceweasel web browser with all locales and security plugins
+iceweasel iceweasel-l10n-all xul-ext-noscript xul-ext-cookie-monster
diff --git a/profiles/desktop-z b/profiles/desktop-z
new file mode 100644
index 0000000..993a21b
--- /dev/null
+++ b/profiles/desktop-z
@@ -0,0 +1,8 @@
+# include crypto helper tools
+parcimonie haveged
+# include CPU tools, firmware and automatic maintenance routines
+cpufrequtils firmware-linux unattended-upgrades
+# fix include recommendations of other packages (uuid, bash)
+uuid-runtime bash-completion
+# exclude support for print via Bluetooth
+-bluez-cups
diff --git a/content/desktop/base/preseed.cfg b/skel/preseed.cfg.in
index 94cddba..b210ae3 100644
--- a/content/desktop/base/preseed.cfg
+++ b/skel/preseed.cfg.in
@@ -1,19 +1,8 @@
-# install the lightweight Xfce desktop, and...
-# * include desktop helper tools missing from Xfce
-# * include crypto helper tools
-# * include CPU tools, firmware and automatic maintenance routines
-# * fix include recommendations of other packages (uuid, bash)
-# * apply security updates immediately after install
-# * exclude support for print via Bluetooth
+__PKGDESC__
tasksel tasksel/desktop multiselect xfce
tasksel tasksel/first multiselect laptop
-#xfce4-session tango-icon-theme lightdm
-#usermode network-manager-gnome
-#parcimonie haveged
-#cpufrequtils firmware-linux unattended-upgrades
-#uuid-runtime bash-completion
-#-bluez-cups
-d-i pkgsel/include string xfce4-session tango-icon-theme lightdm usermode network-manager-gnome parcimonie haveged cpufrequtils firmware-linux unattended-upgrades uuid-runtime bash-completion -bluez-cups
+d-i pkgsel/include string __PKGLIST__
+# apply security updates immediately after install
d-i pkgsel/upgrade select safe-upgrade
# setup harddrive with full disk encryption