summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2014-07-30 23:46:14 +0200
committerJonas Smedegaard <dr@jones.dk>2014-07-30 23:46:14 +0200
commitc1dc844a8f09b52bb4c22960115a1640f255a213 (patch)
treec36855d0d890515b1c6b01b0c73237269d149e93
parentbf22f5b0a420a961d032a0529079b8ca092788b7 (diff)
Major rewrite: Use reclass.
-rw-r--r--Makefile32
-rwxr-xr-xbin/pkglist2preseed83
-rw-r--r--profiles/README49
-rw-r--r--profiles/desktop11
-rw-r--r--profiles/desktop-email3
-rw-r--r--profiles/desktop-email-all2
-rw-r--r--profiles/desktop-email-eu3
-rw-r--r--profiles/desktop-media13
-rw-r--r--profiles/desktop-mobile5
-rw-r--r--profiles/desktop-office11
-rw-r--r--profiles/desktop-office-all3
-rw-r--r--profiles/desktop-office-eu3
-rw-r--r--profiles/desktop-scheduling3
-rw-r--r--profiles/desktop-web3
-rw-r--r--profiles/desktop-web-all2
-rw-r--r--profiles/desktop-web-eu3
-rw-r--r--profiles/desktop-z13
-rw-r--r--profiles/wheezy/classes/Admin/apt/auto/all.yml13
-rw-r--r--profiles/wheezy/classes/Admin/apt/auto/core.yml23
-rw-r--r--profiles/wheezy/classes/Admin/apt/auto/functions.yml49
-rw-r--r--profiles/wheezy/classes/Admin/auto.yml15
-rw-r--r--profiles/wheezy/classes/Admin/etc/functions.yml26
-rw-r--r--profiles/wheezy/classes/Admin/index.yml5
-rw-r--r--profiles/wheezy/classes/Blend/parl/desktop/ALL.yml5
-rw-r--r--profiles/wheezy/classes/Blend/parl/desktop/EU.yml5
-rw-r--r--profiles/wheezy/classes/Blend/parl/desktop/index.yml25
-rw-r--r--profiles/wheezy/classes/Console/index.yml5
-rw-r--r--profiles/wheezy/classes/Console/media/audio/alsa.yml9
-rw-r--r--profiles/wheezy/classes/Console/media/audio/pulseaudio.yml9
-rw-r--r--profiles/wheezy/classes/Console/media/gstreamer/avoid.yml14
-rw-r--r--profiles/wheezy/classes/Console/media/index.yml7
-rw-r--r--profiles/wheezy/classes/Console/media/midi/avoid.yml9
-rw-r--r--profiles/wheezy/classes/Console/mobile/index.yml7
-rw-r--r--profiles/wheezy/classes/Console/mobile/sync.yml10
-rw-r--r--profiles/wheezy/classes/Desktop/crypto.yml11
-rw-r--r--profiles/wheezy/classes/Desktop/email/crypto.yml9
-rw-r--r--profiles/wheezy/classes/Desktop/email/index.yml13
-rw-r--r--profiles/wheezy/classes/Desktop/email/l10n/ALL.yml9
-rw-r--r--profiles/wheezy/classes/Desktop/email/l10n/EU.yml30
-rw-r--r--profiles/wheezy/classes/Desktop/index.yml7
-rw-r--r--profiles/wheezy/classes/Desktop/media/audio/alsa.yml10
-rw-r--r--profiles/wheezy/classes/Desktop/media/audio/pulseaudio.yml10
-rw-r--r--profiles/wheezy/classes/Desktop/media/index.yml7
-rw-r--r--profiles/wheezy/classes/Desktop/media/video.yml11
-rw-r--r--profiles/wheezy/classes/Desktop/mobile/index.yml7
-rw-r--r--profiles/wheezy/classes/Desktop/mobile/photo.yml9
-rw-r--r--profiles/wheezy/classes/Desktop/mobile/sync.yml14
-rw-r--r--profiles/wheezy/classes/Desktop/office/gtk.yml15
-rw-r--r--profiles/wheezy/classes/Desktop/office/index.yml8
-rw-r--r--profiles/wheezy/classes/Desktop/office/l10n/ALL.yml75
-rw-r--r--profiles/wheezy/classes/Desktop/office/l10n/EU.yml32
-rw-r--r--profiles/wheezy/classes/Desktop/office/pdf/gtk.yml11
-rw-r--r--profiles/wheezy/classes/Desktop/office/presentation.yml10
-rw-r--r--profiles/wheezy/classes/Desktop/office/spreadsheet.yml9
-rw-r--r--profiles/wheezy/classes/Desktop/office/word-processor.yml12
-rw-r--r--profiles/wheezy/classes/Desktop/scheduling/index.yml12
-rw-r--r--profiles/wheezy/classes/Desktop/screensaver/unicode.yml9
-rw-r--r--profiles/wheezy/classes/Desktop/tools.yml11
-rw-r--r--profiles/wheezy/classes/Desktop/web/index.yml11
-rw-r--r--profiles/wheezy/classes/Desktop/web/l10n/ALL.yml9
-rw-r--r--profiles/wheezy/classes/Desktop/web/l10n/EU.yml31
-rw-r--r--profiles/wheezy/classes/Desktop/web/security.yml14
-rw-r--r--profiles/wheezy/classes/Desktop/xfce/index.yml37
-rw-r--r--profiles/wheezy/classes/Desktop/xfce/power.yml10
-rw-r--r--profiles/wheezy/classes/Hardware/bluetooth.yml11
-rw-r--r--profiles/wheezy/classes/Hardware/crypto.yml8
-rw-r--r--profiles/wheezy/classes/Hardware/gl.yml11
-rw-r--r--profiles/wheezy/classes/Hardware/index.yml5
-rw-r--r--profiles/wheezy/classes/Hardware/laptop.yml19
-rw-r--r--profiles/wheezy/classes/Hardware/net/pac/avoid.yml9
-rw-r--r--profiles/wheezy/classes/Hardware/power.yml11
-rw-r--r--profiles/wheezy/classes/hw/acpi/base.yml3
-rw-r--r--profiles/wheezy/classes/hw/acpi/full.yml7
-rw-r--r--profiles/wheezy/classes/hw/bluetooth.yml3
-rw-r--r--profiles/wheezy/classes/hw/crypto.yml3
-rw-r--r--profiles/wheezy/classes/hw/power.yml3
-rw-r--r--profiles/wheezy/classes/x11/index.yml3
-rw-r--r--profiles/wheezy/classes/x11/lightdm/gtk.yml5
-rw-r--r--profiles/wheezy/classes/x11/lightdm/index.yml7
-rw-r--r--profiles/wheezy/classes/x11/xdg/icons.yml5
-rw-r--r--profiles/wheezy/nodes/parl-desktop-all.yml5
-rw-r--r--profiles/wheezy/nodes/parl-desktop-eu.yml5
-rw-r--r--profiles/wheezy/nodes/parl-desktop.yml2
83 files changed, 939 insertions, 127 deletions
diff --git a/Makefile b/Makefile
index e443d08..d73e964 100644
--- a/Makefile
+++ b/Makefile
@@ -1,29 +1,17 @@
-maintopics = desktop
-desktoptopics = email media mobile office scheduling web
-lcdesktoptopics = email office web
-lcgroups = all eu
-desktoptopiclists = $(patsubst %,profiles/desktop-%,$(desktoptopics))
-desktoptopiclcgrouplists = $(foreach topic,$(lcdesktoptopics),\
- profiles/desktop-$(topic)-%)
-desktoptweaks = tweaks/base tweaks/desktop
-mainfiles = $(patsubst %,content/%/preseed.cfg,$(maintopics))
-mainlcgroupfiles = $(patsubst %,content/desktop/%/preseed.cfg,$(lcgroups))
-profiles-di = $(mainfiles) $(mainlcgroupfiles)
-profiles-script = $(patsubst %/preseed.cfg,%/script.sh,$(profiles-di))
-profiles = $(profiles-di) $(profiles-script)
+topics = desktop
+localegroups = all eu
+profiles = $(foreach topic,$(topics),\
+ content/$(topic))
+profiles += $(foreach topic,$(topics),$(foreach group,$(localegroups),\
+ content/$(topic)/$(group)))
signfiles = $(patsubst %,%.sig,$(profiles))
info = content/NEWS content/TODO
all: $(profiles) $(info)
sign: $(signfiles)
-$(mainfiles): content/%/preseed.cfg : skel/preseed.cfg.in profiles/% $(desktoptopiclists) profiles/%-z $(desktoptweaks)
- bin/pkglist2preseed $(filter skel/%,$^) $@ "$(filter profiles/%,$^)" "$(filter tweaks/%,$^)"
-
-$(mainlcgroupfiles): content/desktop/%/preseed.cfg : skel/preseed.cfg.in profiles/desktop $(desktoptopiclists) $(desktoptopiclcgrouplists) profiles/desktop-z $(desktoptweaks)
- bin/pkglist2preseed $(filter skel/%,$^) $@ "$(filter profiles/%,$^)" "$(filter tweaks/%,$^)"
-
-$(profiles-script): %script.sh : %preseed.cfg
+$(profiles):
+ bin/pkglist2preseed $(patsubst content-%,parl-%,$(subst /,-,$@)) $@
$(signfiles): %.sig: %
rm -f $@
@@ -34,4 +22,6 @@ $(info): content/% : %
cp -f $< $@
clean:
- rm -f $(profiles) $(info) $(signfiles)
+ rm -f $(profiles:=/preseed.cfg) $(profiles:=/script.sh)
+ rm -f $(info) $(signfiles)
+ find content -empty -delete
diff --git a/bin/pkglist2preseed b/bin/pkglist2preseed
index 8ebf711..1082111 100755
--- a/bin/pkglist2preseed
+++ b/bin/pkglist2preseed
@@ -4,41 +4,66 @@ use strict;
use warnings;
use autodie qw(:all);;
+use Capture::Tiny qw(capture_stdout);
use Path::Tiny;
+use YAML::XS;
+use Try::Tiny;
-my $infile = path($ARGV[0]);
-my $outfile = path($ARGV[1]);
-my @pkgfiles = split( ' ', $ARGV[2] );
-my @tweakfiles = split( ' ', $ARGV[3] );
+my $node = $ARGV[0];
+my $outdir = path($ARGV[1]);
-my $outdir = $outfile->parent;
-my $altinfile = path( $infile->parent, 'script.sh.in' );
+my $basedir = path('.');
+
+my $skeldir = path( $basedir, 'skel' );
+my $infile = path( $skeldir, 'preseed.cfg.in' );
+my $altinfile = path( $skeldir, 'script.sh.in' );
+
+my $data = Load( scalar( capture_stdout {
+ system(qw( reclass -b profiles/wheezy --inventory ));
+}));
+
+my $outfile = path( $outdir, 'preseed.cfg' );
my $altoutfile = path( $outdir, 'script.sh' );
-my (@pkglines, $pkgdesc, @pkg);
-foreach (@pkgfiles) {
- push @pkglines, path($_)->lines;
-};
-grep { chomp } @pkglines;
-grep { s/^[#]{1} (.*)/# * $1/ } @pkglines;
-grep { s/^[#]{2} (.*)/# $1/ } @pkglines;
-$pkgdesc = join "\n", grep { /^[#] / } @pkglines;
-@pkg = map { split } grep { /^[^#]/ } @pkglines;
-
-my (@tweaklines, $tweakdesc, $tweaklist);
-foreach (@tweakfiles) {
- push @tweaklines, path($_)->lines;
+my %desc;
+my %params = %{ $data->{'nodes'}{$node}{'parameters'} };
+
+#FIXME: sort by explicit list
+foreach my $key ( sort keys $params{doc} ) {
+ my $headline = $params{doc}{$key}{headline}[0] || $key;
+ if ( $params{pkg} and $params{doc}{$key}{pkg} ) {
+ push @{ $desc{pkg} }, "# $headline";
+ foreach ( @{ $params{doc}{$key}{pkg} } ) {
+ push @{ $desc{pkg} }, "# * $_";
+ };
+ };
+ if ( $params{tweak} and $params{doc}{$key}{tweak} ) {
+ push @{ $desc{tweak} }, "# $headline";
+ foreach ( @{ $params{doc}{$key}{tweak} } ) {
+ push @{ $desc{tweak} }, "# * $_";
+ };
+ };
};
-grep { chomp } @tweaklines;
-grep { s/^[#]{1} (.*)/# * $1/ } @tweaklines;
-grep { s/^[#]{2} (.*)/# $1/ } @tweaklines;
-grep { /^[^#]/ and s/(?<!;)$/ / } @tweaklines;
-$tweakdesc = join "\n", grep { /^[#] / } @tweaklines;
-$tweaklist = join "\\\n", grep { /^[^#]/ } @tweaklines;
-
-my $pkglist = join( ' ', sort grep { /[^-]$/ } @pkg );
+my $pkgdesc = defined( $desc{pkg} )
+ ? join( "\n", @{ $desc{pkg} } )
+ : '';
+my $tweakdesc = defined( $desc{tweak} )
+ ? join( "\n", @{ $desc{tweak} } )
+ : '';
+my @pkg = try { @{ $params{pkg} } }
+ catch { die "No packages resolved" };
+my @pkgauto = try { @{ $params{'pkg-auto'} } }
+ catch { die "No package auto-markings resolved" };
+my @pkgavoid = try { @{ $params{'pkg-avoid'} } }
+ catch { die "No package avoidance resolved" };
+my @tweak = try { @{ $params{tweak} } }
+ catch { die "No tweaks resolved" };
+my $pkglist = join( ' ', sort @pkg );
$pkglist .= " \\\n ";
-$pkglist .= join( ' ', sort grep { /-$/ } @pkg );
+$pkglist .= join( ' ', sort map { $_.'-' } @pkgavoid );
+my $pkgautolist = join( ' ', sort @pkgauto );
+grep {chomp} @tweak;
+my $tweaklist = join( ";\\\n ", 'set -e', @tweak );
$outdir->mkpath;
$_ = $altinfile->slurp;
@@ -46,6 +71,7 @@ s,__PKGDESC__,$pkgdesc,;
s,__PKGLIST__,$pkglist,;
s,__TWEAKDESC__,$tweakdesc,;
s,__TWEAKLIST__,$tweaklist,;
+s,__PKGAUTOLIST__,$pkgautolist,;
s,chroot\s+/target\s+,,g;
s,/target/,/,g;
$altoutfile->spew($_);
@@ -54,6 +80,7 @@ s,__PKGDESC__,$pkgdesc,;
s,__PKGLIST__,$pkglist,;
s,__TWEAKDESC__,$tweakdesc,;
s,__TWEAKLIST__,$tweaklist,;
+s,__PKGAUTOLIST__,$pkgautolist,;
$outfile->spew($_);
1;
diff --git a/profiles/README b/profiles/README
new file mode 100644
index 0000000..4126984
--- /dev/null
+++ b/profiles/README
@@ -0,0 +1,49 @@
+Class and node definitions
+==========================
+
+Classes and nodes are YAML files parsed by reclass.
+
+
+Classes
+-------
+
+Lowercase classes are reusable, (relatively) objective core classes.
+Never include documentation, and avoid pkg-auto or pkg-avoid items.
+
+Capital classes (first letter uppercase) and their subclasses are
+subjective high-level bundles. Always include documentation.
+
+
+Nodes
+-----
+
+Nodes should only use capital classes, to have all actions documented.
+
+
+Parameters
+----------
+
+doc: Documentation
+doc-headline: Headline for a group of classes
+doc-pkg: Description of purpose of pkg lists in this class
+doc-tweak: Description of purpose of tweak in this class
+
+pkg: Packages to install
+pkg-auto: Packages to mark auto-installed if installed
+pkg-avoid: Packages to remove
+
+tweak: Tweaks to apply after package actions
+
+
+Tweaks
+------
+
+Tweaks are code snippets executed by a POSIX shell.
+
+Avoid ${...} (reclass use it for parameter interpolation), e.g. by
+adding dummy quotes like this: "dpkg-query -Wf='$''{Depends}\n' foo".
+
+Write tweaks for use with debian-installer, using either of below which
+will be stripped when generating script target:
+ * "chroot /target "
+ * "/target/"
diff --git a/profiles/desktop b/profiles/desktop
deleted file mode 100644
index 318e996..0000000
--- a/profiles/desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-## desktop
-# install the lightweight Xfce desktop
-xfce4-session tango-icon-theme lightdm
-# include desktop helper tools
-mousepad usermode network-manager-gnome
-# include power management tools
-xfce4-power-manager xfce4-power-manager-plugins
-# include screensaver unicode-screensaver
-unicode-screensaver
-# exclude print support
-printer-driver-all- cups- bluez-cups- hplip- hpijs-
diff --git a/profiles/desktop-email b/profiles/desktop-email
deleted file mode 100644
index 3c6712c..0000000
--- a/profiles/desktop-email
+++ /dev/null
@@ -1,3 +0,0 @@
-## email
-# include Icedove email with PGP and sieve plugins
-icedove enigmail xul-ext-sieve
diff --git a/profiles/desktop-email-all b/profiles/desktop-email-all
deleted file mode 100644
index 06ea121..0000000
--- a/profiles/desktop-email-all
+++ /dev/null
@@ -1,2 +0,0 @@
-# include all Icedove locales
-icedove-l10n-all
diff --git a/profiles/desktop-email-eu b/profiles/desktop-email-eu
deleted file mode 100644
index aa45f5c..0000000
--- a/profiles/desktop-email-eu
+++ /dev/null
@@ -1,3 +0,0 @@
-# include Icedove locales for European Union (except Maltese or Croatian)
-#$(for lang in bg cs da nl en-gb et fi fr de el hu ga-ie it lt pl pt-pt ro sk sl es-es sv-se; do echo icedove-l10n-$lang; done)
-icedove-l10n-bg icedove-l10n-cs icedove-l10n-da icedove-l10n-nl icedove-l10n-en-gb icedove-l10n-et icedove-l10n-fi icedove-l10n-fr icedove-l10n-de icedove-l10n-el icedove-l10n-hu icedove-l10n-ga-ie icedove-l10n-it icedove-l10n-lt icedove-l10n-pl icedove-l10n-pt-pt icedove-l10n-ro icedove-l10n-sk icedove-l10n-sl icedove-l10n-es-es icedove-l10n-sv-se
diff --git a/profiles/desktop-media b/profiles/desktop-media
deleted file mode 100644
index c8826fd..0000000
--- a/profiles/desktop-media
+++ /dev/null
@@ -1,13 +0,0 @@
-## media
-# include core audio tools
-alsa-utils
-pulseaudio pavucontrol pulseaudio-esound-compat
-# include generic volume control Volti (and exclude Xfce volume daemon)
-volti xfce4-volumed-
-# include mplayer2, with desktop and web browser wrappers
-mplayer2 gecko-mediaplayer
-# exclude MIDI patches
-#Bug#612509
-freepats-
-# exclude GStreamer
-bluez-gstreamer- gstreamer0.10-plugins-bad- gstreamer0.10-plugins-base- gstreamer0.10-plugins-good- gstreamer0.10-pulseaudio- gstreamer0.10-ffmpeg-
diff --git a/profiles/desktop-mobile b/profiles/desktop-mobile
deleted file mode 100644
index 7d795f9..0000000
--- a/profiles/desktop-mobile
+++ /dev/null
@@ -1,5 +0,0 @@
-## mobile
-# include SyncEvolution with command-line interface and http service
-sync-ui syncevolution syncevolution-http
-# include photo manager Shotwell
-shotwell
diff --git a/profiles/desktop-office b/profiles/desktop-office
deleted file mode 100644
index 4dbdc15..0000000
--- a/profiles/desktop-office
+++ /dev/null
@@ -1,11 +0,0 @@
-## office
-# include LibreOffice core for GTK+ (excluding Galaxy theme)
-libreoffice-gtk libreoffice-style-tango libreoffice-style-galaxy-
-# exclude the full libreoffice or Java-dependent parts
-libreoffice- libreoffice-base- libreoffice-report-builder-bin-
-# include LibreOffice Calc and Writer (excluding Java support or email composer)
-libreoffice-calc libreoffice-writer libreoffice-java-common- libreoffice-emailmerge-
-# include LibreOffice Impress
-libreoffice-impress libreoffice-ogltrans
-# include Evince PDF reader (and exclude ePDFView)
-evince-gtk epdfview-
diff --git a/profiles/desktop-office-all b/profiles/desktop-office-all
deleted file mode 100644
index 2a7da47..0000000
--- a/profiles/desktop-office-all
+++ /dev/null
@@ -1,3 +0,0 @@
-# include all LibreOffice locales
-#$(for lang in ar ast be bg br bs ca cs cy 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-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
diff --git a/profiles/desktop-office-eu b/profiles/desktop-office-eu
deleted file mode 100644
index dd314e5..0000000
--- a/profiles/desktop-office-eu
+++ /dev/null
@@ -1,3 +0,0 @@
-# include LibreOffice locales for European Union (except Maltese)
-#$(for lang in bg hr cs da nl en-gb et fi fr de el hu ga it lv lt pl pt ro sk sl es sv; do echo libreoffice-l10n-$lang; done)
-libreoffice-l10n-bg libreoffice-l10n-hr libreoffice-l10n-cs libreoffice-l10n-da libreoffice-l10n-nl libreoffice-l10n-en-gb libreoffice-l10n-et libreoffice-l10n-fi libreoffice-l10n-fr libreoffice-l10n-de libreoffice-l10n-el libreoffice-l10n-hu libreoffice-l10n-ga libreoffice-l10n-it libreoffice-l10n-lv libreoffice-l10n-lt libreoffice-l10n-pl libreoffice-l10n-pt libreoffice-l10n-ro libreoffice-l10n-sk libreoffice-l10n-sl libreoffice-l10n-es libreoffice-l10n-sv
diff --git a/profiles/desktop-scheduling b/profiles/desktop-scheduling
deleted file mode 100644
index d3abca4..0000000
--- a/profiles/desktop-scheduling
+++ /dev/null
@@ -1,3 +0,0 @@
-## scheduling
-# include Icedove extension Iceowl
-iceowl-extension
diff --git a/profiles/desktop-web b/profiles/desktop-web
deleted file mode 100644
index 81e0866..0000000
--- a/profiles/desktop-web
+++ /dev/null
@@ -1,3 +0,0 @@
-## web
-# include Iceweasel web browser with security plugins
-iceweasel xul-ext-flashblock xul-ext-noscript xul-ext-cookie-monster xul-ext-certificatepatrol xul-ext-refcontrol xul-ext-requestpolicy
diff --git a/profiles/desktop-web-all b/profiles/desktop-web-all
deleted file mode 100644
index 0b95dbb..0000000
--- a/profiles/desktop-web-all
+++ /dev/null
@@ -1,2 +0,0 @@
-# include all Iceweasel locales
-iceweasel-l10n-all
diff --git a/profiles/desktop-web-eu b/profiles/desktop-web-eu
deleted file mode 100644
index 35eea36..0000000
--- a/profiles/desktop-web-eu
+++ /dev/null
@@ -1,3 +0,0 @@
-# include Iceweasel locales for European Union (except Maltese)
-#$(for lang in bg hr cs da nl en-gb et fi fr de el hu ga-ie it lt pl pt-pt ro sk sl es-es sv-se; do echo iceweasel-l10n-$lang; done)
-iceweasel-l10n-bg iceweasel-l10n-hr iceweasel-l10n-cs iceweasel-l10n-da iceweasel-l10n-nl iceweasel-l10n-en-gb iceweasel-l10n-et iceweasel-l10n-fi iceweasel-l10n-fr iceweasel-l10n-de iceweasel-l10n-el iceweasel-l10n-hu iceweasel-l10n-ga-ie iceweasel-l10n-it iceweasel-l10n-lt iceweasel-l10n-pl iceweasel-l10n-pt-pt iceweasel-l10n-ro iceweasel-l10n-sk iceweasel-l10n-sl iceweasel-l10n-es-es iceweasel-l10n-sv-se
diff --git a/profiles/desktop-z b/profiles/desktop-z
deleted file mode 100644
index 86a1b6f..0000000
--- a/profiles/desktop-z
+++ /dev/null
@@ -1,13 +0,0 @@
-## desktop finalizing
-# include crypto helper tools
-parcimonie haveged gnome-disk-utility
-# include CPU tools, firmware and automatic maintenance routines
-cpufrequtils unattended-upgrades ntp
-# fix include recommendations of other packages (uuid, bash)
-uuid-runtime bash-completion
-# include OpenGL hardware rasterizers (excluding software rasterizer)
-libgl1-mesa-dri libgl1-mesa-swx11-
-# exclude webkit library (used only for maybe-risky JavaScript Proxy parsing)
-libwebkitgtk-1.0-0-
-#TODO: include these only when upgrading
-evolution-data-server gvfs
diff --git a/profiles/wheezy/classes/Admin/apt/auto/all.yml b/profiles/wheezy/classes/Admin/apt/auto/all.yml
new file mode 100644
index 0000000..1e8a8ba
--- /dev/null
+++ b/profiles/wheezy/classes/Admin/apt/auto/all.yml
@@ -0,0 +1,13 @@
+classes:
+ - Admin.apt.auto.core
+parameters:
+ doc:
+ admin:
+ tweak:
+ - fix mark auto-installed misc. packages relevant only as dependencies
+ pkg-auto:
+ - vim-common
+ tweak:
+ - >
+ chroot /target apt-mark auto \
+ __PKGAUTOLIST__
diff --git a/profiles/wheezy/classes/Admin/apt/auto/core.yml b/profiles/wheezy/classes/Admin/apt/auto/core.yml
new file mode 100644
index 0000000..76d0827
--- /dev/null
+++ b/profiles/wheezy/classes/Admin/apt/auto/core.yml
@@ -0,0 +1,23 @@
+#TODO: Stop install bash-completion or uuid-runtime when bug fixed in stable
+#FIXME: File bugreport about bash-completion and uuid-runtime not installed
+classes:
+ - Admin.apt.auto.functions
+parameters:
+ doc:
+ admin:
+ tweak:
+ - fix mark auto-installed essential packages + dependencies (bug#742977)
+ pkg:
+ - bash-completion
+ - uuid-runtime
+ pkg-auto:
+ - aptitude-common
+ - bash-completion
+ - grub-common
+ - isc-dhcp-common
+ - tasksel-data
+ - uuid-runtime
+ tweak:
+ - >
+ chroot /target apt-mark auto \
+ $(_pkganddeepdeps $(_pkgessentials) apt linux-image-*)
diff --git a/profiles/wheezy/classes/Admin/apt/auto/functions.yml b/profiles/wheezy/classes/Admin/apt/auto/functions.yml
new file mode 100644
index 0000000..2f1a935
--- /dev/null
+++ b/profiles/wheezy/classes/Admin/apt/auto/functions.yml
@@ -0,0 +1,49 @@
+parameters:
+ doc:
+ admin:
+ tweak:
+ - define routines to resolve package dependencies
+ tweak:
+ - >
+ _pkgdeps(){ set -e;\
+ chroot /target dpkg-query \
+ -Wf=',$''{Pre-Depends},$''{Depends},$''{Recommends}\n' $* 2>/dev/null \
+ | sed -r \
+ -e 's/[,|] *([a-z0-9.+-]+)?(:\s+)?( *[^|,]*)?/\1\n/g' \
+ | sed '/^$/d'|sort -u; }
+ - >
+ _pkg2re(){ set -e;\
+ echo $* \
+ | sed -r \
+ -e 's/\s+/\|/g;' \
+ -e 's/^\|//;' \
+ -e 's/([.+-])/\\\1/g;' \
+ -e 's/\|$//'; }
+ - >
+ _pkgreal(){ set -e;\
+ chroot /target dpkg-query \
+ -Wf='$''{Package},$''{Provides},\n' \
+ | sed -r \
+ -e '/,,/d;' \
+ -e 's/^([a-z0-9.+-]+).*[,|] *('"$(_pkg2re $*)"')[ :,]/\1/;' \
+ -e '/,/d'; }
+ - >
+ _pkganddeepdeps(){ set -e;\
+ rest=$*;\
+ all=$rest;\
+ for i in 1 2 3 4 5; do \
+ deps=$(_pkgdeps $rest);\
+ rest="$deps $(_pkgreal $deps)";\
+ all="$all $rest";\
+ done;\
+ echo $all \
+ | sed -r \
+ -e 's/\s+/\n/g' \
+ | sort -u; }
+ - >
+ _pkgessentials(){ set -e;\
+ chroot /target dpkg-query \
+ -Wf='$''{Package}%$''{Essential}\n' \
+ | sed -r \
+ -e 's/(.*)%yes/\1/;' \
+ -e '/%/d'; }
diff --git a/profiles/wheezy/classes/Admin/auto.yml b/profiles/wheezy/classes/Admin/auto.yml
new file mode 100644
index 0000000..d69771e
--- /dev/null
+++ b/profiles/wheezy/classes/Admin/auto.yml
@@ -0,0 +1,15 @@
+classes:
+ - Admin.etc.functions
+ - Admin
+parameters:
+ doc:
+ admin:
+ pkg:
+ - include automated maintenance routines
+ tweak:
+ - auto-repair inconsistent filesystems during boot
+ pkg:
+ - unattended-upgrades
+ - ntp
+ tweak:
+ - _setvar /target/etc/default/rcS FSCKFIX yes
diff --git a/profiles/wheezy/classes/Admin/etc/functions.yml b/profiles/wheezy/classes/Admin/etc/functions.yml
new file mode 100644
index 0000000..5d86952
--- /dev/null
+++ b/profiles/wheezy/classes/Admin/etc/functions.yml
@@ -0,0 +1,26 @@
+classes:
+ - Admin
+parameters:
+ doc:
+ admin:
+ tweak:
+ - define routines to make backup of and help edit config files
+ tweak:
+ - >
+ _backup(){ set -e;\
+ if [ -e "$1.orig" ]; then \
+ :;\
+ elif [ -e "$1" ]; then \
+ cp -a "$1" "$1.orig";\
+ else \
+ touch "$1.orig";\
+ fi; }
+ - >
+ _clone(){ set -e;\
+ _backup "$2";\
+ cp -a "$1" "$2"; }
+ - >
+ _setvar(){ set -e;\
+ _backup "$1";\
+ sed -i -r \
+ -e "s,^#?($2)=.*,\\1=$3," "$1"; }
diff --git a/profiles/wheezy/classes/Admin/index.yml b/profiles/wheezy/classes/Admin/index.yml
new file mode 100644
index 0000000..939f450
--- /dev/null
+++ b/profiles/wheezy/classes/Admin/index.yml
@@ -0,0 +1,5 @@
+parameters:
+ doc:
+ admin:
+ headline:
+ - Administration
diff --git a/profiles/wheezy/classes/Blend/parl/desktop/ALL.yml b/profiles/wheezy/classes/Blend/parl/desktop/ALL.yml
new file mode 100644
index 0000000..5c9183d
--- /dev/null
+++ b/profiles/wheezy/classes/Blend/parl/desktop/ALL.yml
@@ -0,0 +1,5 @@
+classes:
+ - Blend.parl.desktop
+ - Desktop.email.l10n.ALL
+ - Desktop.office.l10n.ALL
+ - Desktop.web.l10n.ALL
diff --git a/profiles/wheezy/classes/Blend/parl/desktop/EU.yml b/profiles/wheezy/classes/Blend/parl/desktop/EU.yml
new file mode 100644
index 0000000..b2287ac
--- /dev/null
+++ b/profiles/wheezy/classes/Blend/parl/desktop/EU.yml
@@ -0,0 +1,5 @@
+classes:
+ - Blend.parl.desktop
+ - Desktop.email.l10n.EU
+ - Desktop.office.l10n.EU
+ - Desktop.web.l10n.EU
diff --git a/profiles/wheezy/classes/Blend/parl/desktop/index.yml b/profiles/wheezy/classes/Blend/parl/desktop/index.yml
new file mode 100644
index 0000000..c395a01
--- /dev/null
+++ b/profiles/wheezy/classes/Blend/parl/desktop/index.yml
@@ -0,0 +1,25 @@
+classes:
+ - Hardware.laptop
+ - Hardware.gl
+ - Hardware.net.pac.avoid
+ - Admin.apt.auto.all
+ - Admin.auto
+ - Console.media.audio.alsa
+ - Console.media.midi.avoid
+ - Console.media.gstreamer.avoid
+ - Desktop.xfce
+ - Desktop.xfce.power
+ - Desktop.screensaver.unicode
+ - Desktop.email.crypto
+ - Desktop.media.audio.alsa
+ - Desktop.media.video
+ - Desktop.mobile.sync
+ - Desktop.mobile.photo
+ - Desktop.crypto
+ - Desktop.office.gtk
+ - Desktop.office.word-processor
+ - Desktop.office.spreadsheet
+ - Desktop.office.presentation
+ - Desktop.office.pdf.gtk
+ - Desktop.scheduling
+ - Desktop.web.security
diff --git a/profiles/wheezy/classes/Console/index.yml b/profiles/wheezy/classes/Console/index.yml
new file mode 100644
index 0000000..018127e
--- /dev/null
+++ b/profiles/wheezy/classes/Console/index.yml
@@ -0,0 +1,5 @@
+parameters:
+ doc:
+ console:
+ headline:
+ - Console
diff --git a/profiles/wheezy/classes/Console/media/audio/alsa.yml b/profiles/wheezy/classes/Console/media/audio/alsa.yml
new file mode 100644
index 0000000..3bfa20e
--- /dev/null
+++ b/profiles/wheezy/classes/Console/media/audio/alsa.yml
@@ -0,0 +1,9 @@
+classes:
+ - Console.media
+parameters:
+ doc:
+ console-media:
+ pkg:
+ - include core ALSA audio tools
+ pkg:
+ - alsa-utils
diff --git a/profiles/wheezy/classes/Console/media/audio/pulseaudio.yml b/profiles/wheezy/classes/Console/media/audio/pulseaudio.yml
new file mode 100644
index 0000000..d55f214
--- /dev/null
+++ b/profiles/wheezy/classes/Console/media/audio/pulseaudio.yml
@@ -0,0 +1,9 @@
+classes:
+ - Console.media
+parameters:
+ doc:
+ console-media:
+ pkg:
+ - include PulseAudio audio daemon
+ pkg:
+ - pulseaudio
diff --git a/profiles/wheezy/classes/Console/media/gstreamer/avoid.yml b/profiles/wheezy/classes/Console/media/gstreamer/avoid.yml
new file mode 100644
index 0000000..16b0d6e
--- /dev/null
+++ b/profiles/wheezy/classes/Console/media/gstreamer/avoid.yml
@@ -0,0 +1,14 @@
+classes:
+ - Console.media
+parameters:
+ doc:
+ console-media:
+ pkg:
+ - exclude GStreamer
+ pkg-avoid:
+ - bluez-gstreamer
+ - gstreamer0.10-plugins-bad
+ - gstreamer0.10-plugins-base
+ - gstreamer0.10-plugins-good
+ - gstreamer0.10-pulseaudio
+ - gstreamer0.10-ffmpeg
diff --git a/profiles/wheezy/classes/Console/media/index.yml b/profiles/wheezy/classes/Console/media/index.yml
new file mode 100644
index 0000000..c56f554
--- /dev/null
+++ b/profiles/wheezy/classes/Console/media/index.yml
@@ -0,0 +1,7 @@
+classes:
+ - Console
+parameters:
+ doc:
+ console-media:
+ headline:
+ - Console media
diff --git a/profiles/wheezy/classes/Console/media/midi/avoid.yml b/profiles/wheezy/classes/Console/media/midi/avoid.yml
new file mode 100644
index 0000000..bb2c76e
--- /dev/null
+++ b/profiles/wheezy/classes/Console/media/midi/avoid.yml
@@ -0,0 +1,9 @@
+classes:
+ - Console.media
+parameters:
+ doc:
+ console-media:
+ pkg:
+ - exclude MIDI patches
+ pkg-avoid:
+ - freepats
diff --git a/profiles/wheezy/classes/Console/mobile/index.yml b/profiles/wheezy/classes/Console/mobile/index.yml
new file mode 100644
index 0000000..525c956
--- /dev/null
+++ b/profiles/wheezy/classes/Console/mobile/index.yml
@@ -0,0 +1,7 @@
+classes:
+ - Console
+parameters:
+ doc:
+ console-mobile:
+ headline:
+ - Console mobile
diff --git a/profiles/wheezy/classes/Console/mobile/sync.yml b/profiles/wheezy/classes/Console/mobile/sync.yml
new file mode 100644
index 0000000..4c16571
--- /dev/null
+++ b/profiles/wheezy/classes/Console/mobile/sync.yml
@@ -0,0 +1,10 @@
+classes:
+ - Console.mobile
+parameters:
+ doc:
+ console-mobile:
+ pkg:
+ - include SyncEvolution console tool and http service
+ pkg:
+ - syncevolution
+ - syncevolution-http
diff --git a/profiles/wheezy/classes/Desktop/crypto.yml b/profiles/wheezy/classes/Desktop/crypto.yml
new file mode 100644
index 0000000..e2475ee
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/crypto.yml
@@ -0,0 +1,11 @@
+classes:
+ - Hardware.crypto
+ - Desktop
+parameters:
+ doc:
+ desktop:
+ pkg:
+ - include desktop crypto helper tools
+ pkg:
+ - parcimonie
+ - gnome-disk-utility
diff --git a/profiles/wheezy/classes/Desktop/email/crypto.yml b/profiles/wheezy/classes/Desktop/email/crypto.yml
new file mode 100644
index 0000000..f103514
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/email/crypto.yml
@@ -0,0 +1,9 @@
+classes:
+ - Desktop.email
+parameters:
+ doc:
+ desktop-email:
+ pkg:
+ - include Icedove PGP plugin
+ pkg:
+ - enigmail
diff --git a/profiles/wheezy/classes/Desktop/email/index.yml b/profiles/wheezy/classes/Desktop/email/index.yml
new file mode 100644
index 0000000..068e7ff
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/email/index.yml
@@ -0,0 +1,13 @@
+classes:
+ - Desktop
+ - x11
+parameters:
+ doc:
+ desktop-email:
+ headline:
+ - Desktop email
+ pkg:
+ - include Icedove email with sieve plugin
+ pkg:
+ - icedove
+ - xul-ext-sieve
diff --git a/profiles/wheezy/classes/Desktop/email/l10n/ALL.yml b/profiles/wheezy/classes/Desktop/email/l10n/ALL.yml
new file mode 100644
index 0000000..b1aab4b
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/email/l10n/ALL.yml
@@ -0,0 +1,9 @@
+classes:
+ - Desktop.email
+parameters:
+ doc:
+ desktop-email:
+ pkg:
+ - include all Icedove locales
+ pkg:
+ - icedove-l10n-all
diff --git a/profiles/wheezy/classes/Desktop/email/l10n/EU.yml b/profiles/wheezy/classes/Desktop/email/l10n/EU.yml
new file mode 100644
index 0000000..6574d58
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/email/l10n/EU.yml
@@ -0,0 +1,30 @@
+# bg cs da nl en-gb et fi fr de el hu ga-ie it lt pl pt-pt ro sk sl es-es sv-se
+classes:
+ - Desktop.email
+parameters:
+ doc:
+ desktop-email:
+ pkg:
+ - include Icedove locales for European Union (except Maltese or Croatian)
+ pkg:
+ - icedove-l10n-bg
+ - icedove-l10n-cs
+ - icedove-l10n-da
+ - icedove-l10n-nl
+ - icedove-l10n-en-gb
+ - icedove-l10n-et
+ - icedove-l10n-fi
+ - icedove-l10n-fr
+ - icedove-l10n-de
+ - icedove-l10n-el
+ - icedove-l10n-hu
+ - icedove-l10n-ga-ie
+ - icedove-l10n-it
+ - icedove-l10n-lt
+ - icedove-l10n-pl
+ - icedove-l10n-pt-pt
+ - icedove-l10n-ro
+ - icedove-l10n-sk
+ - icedove-l10n-sl
+ - icedove-l10n-es-es
+ - icedove-l10n-sv-se
diff --git a/profiles/wheezy/classes/Desktop/index.yml b/profiles/wheezy/classes/Desktop/index.yml
new file mode 100644
index 0000000..bfcfbb5
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/index.yml
@@ -0,0 +1,7 @@
+classes:
+ - x11
+parameters:
+ doc:
+ desktop:
+ headline:
+ - Desktop
diff --git a/profiles/wheezy/classes/Desktop/media/audio/alsa.yml b/profiles/wheezy/classes/Desktop/media/audio/alsa.yml
new file mode 100644
index 0000000..a445e6b
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/media/audio/alsa.yml
@@ -0,0 +1,10 @@
+classes:
+ - Console.media.audio.alsa
+ - Desktop.media
+parameters:
+ doc:
+ desktop-media:
+ pkg:
+ - include simple ALSA volume control Volti
+ pkg:
+ - volti
diff --git a/profiles/wheezy/classes/Desktop/media/audio/pulseaudio.yml b/profiles/wheezy/classes/Desktop/media/audio/pulseaudio.yml
new file mode 100644
index 0000000..2c72d07
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/media/audio/pulseaudio.yml
@@ -0,0 +1,10 @@
+classes:
+ - Console.media.audio.pulseaudio
+ - Desktop.media
+parameters:
+ doc:
+ desktop-media:
+ pkg:
+ - include PulseAudio desktop volume control
+ pkg:
+ - pavucontrol
diff --git a/profiles/wheezy/classes/Desktop/media/index.yml b/profiles/wheezy/classes/Desktop/media/index.yml
new file mode 100644
index 0000000..735ac57
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/media/index.yml
@@ -0,0 +1,7 @@
+classes:
+ - Desktop
+parameters:
+ doc:
+ desktop-media:
+ headline:
+ - Desktop media
diff --git a/profiles/wheezy/classes/Desktop/media/video.yml b/profiles/wheezy/classes/Desktop/media/video.yml
new file mode 100644
index 0000000..f7883c2
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/media/video.yml
@@ -0,0 +1,11 @@
+classes:
+ - Desktop.media.audio.pulseaudio
+parameters:
+ doc:
+ desktop-media:
+ pkg:
+ - include mplayer2, with desktop and web browser wrappers
+ pkg:
+ - pulseaudio-esound-compat
+ - mplayer2
+ - gecko-mediaplayer
diff --git a/profiles/wheezy/classes/Desktop/mobile/index.yml b/profiles/wheezy/classes/Desktop/mobile/index.yml
new file mode 100644
index 0000000..38ab28a
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/mobile/index.yml
@@ -0,0 +1,7 @@
+classes:
+ - Desktop
+parameters:
+ doc:
+ desktop-mobile:
+ headline:
+ - Desktop mobile
diff --git a/profiles/wheezy/classes/Desktop/mobile/photo.yml b/profiles/wheezy/classes/Desktop/mobile/photo.yml
new file mode 100644
index 0000000..a896063
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/mobile/photo.yml
@@ -0,0 +1,9 @@
+classes:
+ - Desktop.mobile
+parameters:
+ doc:
+ desktop-mobile:
+ pkg:
+ - include photo manager Shotwell
+ pkg:
+ - shotwell
diff --git a/profiles/wheezy/classes/Desktop/mobile/sync.yml b/profiles/wheezy/classes/Desktop/mobile/sync.yml
new file mode 100644
index 0000000..a94d5d7
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/mobile/sync.yml
@@ -0,0 +1,14 @@
+#TODO: Stop listing evolution-data-server when DebianParl 1.0.5 is obsolete
+classes:
+ - Console.mobile.sync
+ - Desktop.media
+parameters:
+ doc:
+ desktop-mobile:
+ pkg:
+ - include SyncEvolution desktop tool
+ pkg:
+ - sync-ui
+ - evolution-data-server
+ pkg-auto:
+ - evolution-data-server
diff --git a/profiles/wheezy/classes/Desktop/office/gtk.yml b/profiles/wheezy/classes/Desktop/office/gtk.yml
new file mode 100644
index 0000000..339fae4
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/office/gtk.yml
@@ -0,0 +1,15 @@
+classes:
+ - Desktop.office
+parameters:
+ doc:
+ desktop-office:
+ pkg:
+ - include LibreOffice core for GTK+
+ pkg:
+ - libreoffice-gtk
+ - libreoffice-style-tango
+ pkg-avoid:
+ - libreoffice-style-galaxy
+ - libreoffice
+ - libreoffice-base
+ - libreoffice-report-builder-bin
diff --git a/profiles/wheezy/classes/Desktop/office/index.yml b/profiles/wheezy/classes/Desktop/office/index.yml
new file mode 100644
index 0000000..a001e30
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/office/index.yml
@@ -0,0 +1,8 @@
+classes:
+ - Desktop
+ - x11
+parameters:
+ doc:
+ desktop-office:
+ headline:
+ - Desktop office
diff --git a/profiles/wheezy/classes/Desktop/office/l10n/ALL.yml b/profiles/wheezy/classes/Desktop/office/l10n/ALL.yml
new file mode 100644
index 0000000..d6f311b
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/office/l10n/ALL.yml
@@ -0,0 +1,75 @@
+#ar ast be bg br bs ca cs cy 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
+classes:
+ - Desktop.office
+parameters:
+ doc:
+ desktop-office:
+ pkg:
+ - include all LibreOffice locales
+ pkg:
+ - 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-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
diff --git a/profiles/wheezy/classes/Desktop/office/l10n/EU.yml b/profiles/wheezy/classes/Desktop/office/l10n/EU.yml
new file mode 100644
index 0000000..e7ef2c0
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/office/l10n/EU.yml
@@ -0,0 +1,32 @@
+# bg hr cs da nl en-gb et fi fr de el hu ga it lv lt pl pt ro sk sl es sv
+classes:
+ - Desktop.office
+parameters:
+ doc:
+ desktop-office:
+ pkg:
+ - include LibreOffice locales for European Union (except Maltese)
+ pkg:
+ - libreoffice-l10n-bg
+ - libreoffice-l10n-hr
+ - libreoffice-l10n-cs
+ - libreoffice-l10n-da
+ - libreoffice-l10n-nl
+ - libreoffice-l10n-en-gb
+ - libreoffice-l10n-et
+ - libreoffice-l10n-fi
+ - libreoffice-l10n-fr
+ - libreoffice-l10n-de
+ - libreoffice-l10n-el
+ - libreoffice-l10n-hu
+ - libreoffice-l10n-ga
+ - libreoffice-l10n-it
+ - libreoffice-l10n-lv
+ - libreoffice-l10n-lt
+ - libreoffice-l10n-pl
+ - libreoffice-l10n-pt
+ - libreoffice-l10n-ro
+ - libreoffice-l10n-sk
+ - libreoffice-l10n-sl
+ - libreoffice-l10n-es
+ - libreoffice-l10n-sv
diff --git a/profiles/wheezy/classes/Desktop/office/pdf/gtk.yml b/profiles/wheezy/classes/Desktop/office/pdf/gtk.yml
new file mode 100644
index 0000000..eb6ce09
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/office/pdf/gtk.yml
@@ -0,0 +1,11 @@
+classes:
+ - Desktop.office
+parameters:
+ doc:
+ desktop-office:
+ pkg:
+ - include Evince PDF reader
+ pkg:
+ - evince-gtk
+ pkg-avoid:
+ - epdfview
diff --git a/profiles/wheezy/classes/Desktop/office/presentation.yml b/profiles/wheezy/classes/Desktop/office/presentation.yml
new file mode 100644
index 0000000..14ddd31
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/office/presentation.yml
@@ -0,0 +1,10 @@
+classes:
+ - Desktop.office
+parameters:
+ doc:
+ desktop-office:
+ pkg:
+ - include LibreOffice Impress
+ pkg:
+ - libreoffice-impress
+ - libreoffice-ogltrans
diff --git a/profiles/wheezy/classes/Desktop/office/spreadsheet.yml b/profiles/wheezy/classes/Desktop/office/spreadsheet.yml
new file mode 100644
index 0000000..3236db8
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/office/spreadsheet.yml
@@ -0,0 +1,9 @@
+classes:
+ - Desktop.office
+parameters:
+ doc:
+ desktop-office:
+ pkg:
+ - include LibreOffice Calc
+ pkg:
+ - libreoffice-calc
diff --git a/profiles/wheezy/classes/Desktop/office/word-processor.yml b/profiles/wheezy/classes/Desktop/office/word-processor.yml
new file mode 100644
index 0000000..5f0b6ac
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/office/word-processor.yml
@@ -0,0 +1,12 @@
+classes:
+ - Desktop.office
+parameters:
+ doc:
+ desktop-office:
+ pkg:
+ - include LibreOffice Writer
+ pkg:
+ - libreoffice-writer
+ pkg-avoid:
+ - libreoffice-java-common
+ - libreoffice-emailmerge
diff --git a/profiles/wheezy/classes/Desktop/scheduling/index.yml b/profiles/wheezy/classes/Desktop/scheduling/index.yml
new file mode 100644
index 0000000..6154e34
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/scheduling/index.yml
@@ -0,0 +1,12 @@
+classes:
+ - Desktop
+ - Desktop.email
+parameters:
+ doc:
+ desktop-scheduling:
+ headline:
+ - Desktop scheduling
+ pkg:
+ - include Icedove extension Iceowl
+ pkg:
+ - iceowl-extension
diff --git a/profiles/wheezy/classes/Desktop/screensaver/unicode.yml b/profiles/wheezy/classes/Desktop/screensaver/unicode.yml
new file mode 100644
index 0000000..63d27a5
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/screensaver/unicode.yml
@@ -0,0 +1,9 @@
+classes:
+ - Desktop
+parameters:
+ doc:
+ desktop:
+ pkg:
+ - include screensaver unicode-screensaver
+ pkg:
+ - unicode-screensaver
diff --git a/profiles/wheezy/classes/Desktop/tools.yml b/profiles/wheezy/classes/Desktop/tools.yml
new file mode 100644
index 0000000..ee4d3d2
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/tools.yml
@@ -0,0 +1,11 @@
+classes:
+ - Desktop
+parameters:
+ doc:
+ desktop:
+ pkg:
+ - include desktop helper tools
+ pkg:
+ - mousepad
+ - usermode
+ - network-manager-gnome
diff --git a/profiles/wheezy/classes/Desktop/web/index.yml b/profiles/wheezy/classes/Desktop/web/index.yml
new file mode 100644
index 0000000..ff52727
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/web/index.yml
@@ -0,0 +1,11 @@
+classes:
+ - Desktop
+parameters:
+ doc:
+ desktop-web:
+ headline:
+ - Desktop web
+ pkg:
+ - include Iceweasel web browser
+ pkg:
+ - iceweasel
diff --git a/profiles/wheezy/classes/Desktop/web/l10n/ALL.yml b/profiles/wheezy/classes/Desktop/web/l10n/ALL.yml
new file mode 100644
index 0000000..0932248
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/web/l10n/ALL.yml
@@ -0,0 +1,9 @@
+classes:
+ - Desktop.web
+parameters:
+ doc:
+ desktop-web:
+ pkg:
+ - include all Iceweasel locales
+ pkg:
+ - iceweasel-l10n-all
diff --git a/profiles/wheezy/classes/Desktop/web/l10n/EU.yml b/profiles/wheezy/classes/Desktop/web/l10n/EU.yml
new file mode 100644
index 0000000..fc4df8f
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/web/l10n/EU.yml
@@ -0,0 +1,31 @@
+# bg hr cs da nl en-gb et fi fr de el hu ga-ie it lt pl pt-pt ro sk sl es-es sv-se
+classes:
+ - Desktop.web
+parameters:
+ doc:
+ desktop-web:
+ pkg:
+ - include Iceweasel locales for European Union (except Maltese)
+ pkg:
+ - iceweasel-l10n-bg
+ - iceweasel-l10n-hr
+ - iceweasel-l10n-cs
+ - iceweasel-l10n-da
+ - iceweasel-l10n-nl
+ - iceweasel-l10n-en-gb
+ - iceweasel-l10n-et
+ - iceweasel-l10n-fi
+ - iceweasel-l10n-fr
+ - iceweasel-l10n-de
+ - iceweasel-l10n-el
+ - iceweasel-l10n-hu
+ - iceweasel-l10n-ga-ie
+ - iceweasel-l10n-it
+ - iceweasel-l10n-lt
+ - iceweasel-l10n-pl
+ - iceweasel-l10n-pt-pt
+ - iceweasel-l10n-ro
+ - iceweasel-l10n-sk
+ - iceweasel-l10n-sl
+ - iceweasel-l10n-es-es
+ - iceweasel-l10n-sv-se
diff --git a/profiles/wheezy/classes/Desktop/web/security.yml b/profiles/wheezy/classes/Desktop/web/security.yml
new file mode 100644
index 0000000..ae7b528
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/web/security.yml
@@ -0,0 +1,14 @@
+classes:
+ - Desktop.web
+parameters:
+ doc:
+ desktop-web:
+ pkg:
+ - include Iceweasel security plugins
+ pkg:
+ - xul-ext-flashblock
+ - xul-ext-noscript
+ - xul-ext-cookie-monster
+ - xul-ext-certificatepatrol
+ - xul-ext-refcontrol
+ - xul-ext-requestpolicy
diff --git a/profiles/wheezy/classes/Desktop/xfce/index.yml b/profiles/wheezy/classes/Desktop/xfce/index.yml
new file mode 100644
index 0000000..9453e26
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/xfce/index.yml
@@ -0,0 +1,37 @@
+#TODO: Stop listing gvfs when DebianParl 1.0.5 is obsolete
+#TODO: figure out why xfce4-session.xml backup tweak need sed indented
+classes:
+ - x11.xdg.icons
+ - x11.lightdm.gtk
+ - Desktop
+ - Desktop.tools
+parameters:
+ doc:
+ desktop:
+ pkg:
+ - include the lightweight Xfce desktop
+ tweak:
+ - silence confusing panel question at initial login
+ - replace appfinder with mail-reader in default panel
+ - disable storing session at logout by default
+ pkg:
+ - gvfs
+ - xfce4-session
+ pkg-auto:
+ - gvfs
+ pkg-avoid:
+ - xfce4-volumed
+ tweak:
+ - >
+ cd /target/etc/xdg/xfce4/xfconf/xfce-perchannel-xml
+ - >
+ _clone ../../panel/default.xml xfce4-panel.xml
+ - >
+ sed -i -r \
+ -e 's,xfce4-appfinder,exo-mail-reader,' \
+ xfce4-panel.xml
+ - >
+ _backup xfce4-session.xml;\
+ sed -i -r \
+ -e 's,(<property name="general"[^>]*>),\1\n <property name="SaveOnExit" type="bool" value="false"/>,' \
+ xfce4-session.xml
diff --git a/profiles/wheezy/classes/Desktop/xfce/power.yml b/profiles/wheezy/classes/Desktop/xfce/power.yml
new file mode 100644
index 0000000..12aea5b
--- /dev/null
+++ b/profiles/wheezy/classes/Desktop/xfce/power.yml
@@ -0,0 +1,10 @@
+classes:
+ - Desktop.xfce
+parameters:
+ doc:
+ desktop:
+ pkg:
+ - include Xfce power management tools
+ pkg:
+ - xfce4-power-manager
+ - xfce4-power-manager-plugins
diff --git a/profiles/wheezy/classes/Hardware/bluetooth.yml b/profiles/wheezy/classes/Hardware/bluetooth.yml
new file mode 100644
index 0000000..fe8eda1
--- /dev/null
+++ b/profiles/wheezy/classes/Hardware/bluetooth.yml
@@ -0,0 +1,11 @@
+classes:
+ - hw.acpi.full
+ - hw.bluetooth
+ - Hardware
+parameters:
+ doc:
+ hardware:
+ tweak:
+ - modernize logic of radio on/off button
+ tweak:
+ - _setvar /target/etc/default/acpi-support WIRELESS_BLUETOOTH_SYNC true
diff --git a/profiles/wheezy/classes/Hardware/crypto.yml b/profiles/wheezy/classes/Hardware/crypto.yml
new file mode 100644
index 0000000..58b5dff
--- /dev/null
+++ b/profiles/wheezy/classes/Hardware/crypto.yml
@@ -0,0 +1,8 @@
+classes:
+ - hw.crypto
+ - Hardware
+parameters:
+ doc:
+ hardware:
+ pkg:
+ - include low-level crypto tools
diff --git a/profiles/wheezy/classes/Hardware/gl.yml b/profiles/wheezy/classes/Hardware/gl.yml
new file mode 100644
index 0000000..1dcebf6
--- /dev/null
+++ b/profiles/wheezy/classes/Hardware/gl.yml
@@ -0,0 +1,11 @@
+classes:
+ - Hardware
+parameters:
+ doc:
+ hardware:
+ pkg:
+ - include OpenGL hardware rasterizers (excluding software rasterizer)
+ pkg:
+ - libgl1-mesa-dri
+ pkg-avoid:
+ - libgl1-mesa-swx11
diff --git a/profiles/wheezy/classes/Hardware/index.yml b/profiles/wheezy/classes/Hardware/index.yml
new file mode 100644
index 0000000..3d7e3fa
--- /dev/null
+++ b/profiles/wheezy/classes/Hardware/index.yml
@@ -0,0 +1,5 @@
+parameters:
+ doc:
+ hardware:
+ headline:
+ - Hardware
diff --git a/profiles/wheezy/classes/Hardware/laptop.yml b/profiles/wheezy/classes/Hardware/laptop.yml
new file mode 100644
index 0000000..d1d75b1
--- /dev/null
+++ b/profiles/wheezy/classes/Hardware/laptop.yml
@@ -0,0 +1,19 @@
+classes:
+ - Hardware.power
+ - Hardware.bluetooth
+parameters:
+ doc:
+ hardware:
+ pkg:
+ - include low-level laptop tools
+parameters:
+ pkg:
+ - task-laptop
+ pkg-auto:
+ - bluetooth
+ pkg-avoid:
+ - bluez-cups
+ - cups
+ - printer-driver-all
+ - hplip
+ - hpijs
diff --git a/profiles/wheezy/classes/Hardware/net/pac/avoid.yml b/profiles/wheezy/classes/Hardware/net/pac/avoid.yml
new file mode 100644
index 0000000..224ecfb
--- /dev/null
+++ b/profiles/wheezy/classes/Hardware/net/pac/avoid.yml
@@ -0,0 +1,9 @@
+classes:
+ - Hardware
+parameters:
+ doc:
+ hardware:
+ pkg:
+ - exclude webkit library (used only for maybe-risky PAC proxy parsing)
+ pkg-avoid:
+ - libwebkitgtk-1.0-0
diff --git a/profiles/wheezy/classes/Hardware/power.yml b/profiles/wheezy/classes/Hardware/power.yml
new file mode 100644
index 0000000..2147488
--- /dev/null
+++ b/profiles/wheezy/classes/Hardware/power.yml
@@ -0,0 +1,11 @@
+classes:
+ - hw.acpi.full
+ - hw.power
+ - Hardware
+parameters:
+ doc:
+ hardware:
+ tweak:
+ - sleep when lid is closed
+ tweak:
+ - _setvar /target/etc/default/acpi-support LID_SLEEP true
diff --git a/profiles/wheezy/classes/hw/acpi/base.yml b/profiles/wheezy/classes/hw/acpi/base.yml
new file mode 100644
index 0000000..c0a7399
--- /dev/null
+++ b/profiles/wheezy/classes/hw/acpi/base.yml
@@ -0,0 +1,3 @@
+parameters:
+ pkg:
+ - acpi-support-base
diff --git a/profiles/wheezy/classes/hw/acpi/full.yml b/profiles/wheezy/classes/hw/acpi/full.yml
new file mode 100644
index 0000000..9e20f34
--- /dev/null
+++ b/profiles/wheezy/classes/hw/acpi/full.yml
@@ -0,0 +1,7 @@
+classes:
+ - hw.acpi.base
+parameters:
+ pkg:
+ - acpi-support
+ pkg-auto:
+ - acpi-support-base
diff --git a/profiles/wheezy/classes/hw/bluetooth.yml b/profiles/wheezy/classes/hw/bluetooth.yml
new file mode 100644
index 0000000..1a6dd1e
--- /dev/null
+++ b/profiles/wheezy/classes/hw/bluetooth.yml
@@ -0,0 +1,3 @@
+parameters:
+ pkg:
+ - bluetooth
diff --git a/profiles/wheezy/classes/hw/crypto.yml b/profiles/wheezy/classes/hw/crypto.yml
new file mode 100644
index 0000000..d4815bf
--- /dev/null
+++ b/profiles/wheezy/classes/hw/crypto.yml
@@ -0,0 +1,3 @@
+parameters:
+ pkg:
+ - haveged
diff --git a/profiles/wheezy/classes/hw/power.yml b/profiles/wheezy/classes/hw/power.yml
new file mode 100644
index 0000000..0ff65ab
--- /dev/null
+++ b/profiles/wheezy/classes/hw/power.yml
@@ -0,0 +1,3 @@
+parameters:
+ pkg:
+ - cpufrequtils
diff --git a/profiles/wheezy/classes/x11/index.yml b/profiles/wheezy/classes/x11/index.yml
new file mode 100644
index 0000000..1ecb752
--- /dev/null
+++ b/profiles/wheezy/classes/x11/index.yml
@@ -0,0 +1,3 @@
+parameters:
+ pkg:
+ - xserver-xorg
diff --git a/profiles/wheezy/classes/x11/lightdm/gtk.yml b/profiles/wheezy/classes/x11/lightdm/gtk.yml
new file mode 100644
index 0000000..5ba5432
--- /dev/null
+++ b/profiles/wheezy/classes/x11/lightdm/gtk.yml
@@ -0,0 +1,5 @@
+classes:
+ - x11.lightdm
+parameters:
+ pkg-auto:
+ - lightdm-gtk-greeter
diff --git a/profiles/wheezy/classes/x11/lightdm/index.yml b/profiles/wheezy/classes/x11/lightdm/index.yml
new file mode 100644
index 0000000..4a47bd7
--- /dev/null
+++ b/profiles/wheezy/classes/x11/lightdm/index.yml
@@ -0,0 +1,7 @@
+classes:
+ - x11
+parameters:
+ pkg:
+ - lightdm
+ pkg-auto:
+ - xserver-xorg
diff --git a/profiles/wheezy/classes/x11/xdg/icons.yml b/profiles/wheezy/classes/x11/xdg/icons.yml
new file mode 100644
index 0000000..0b92df3
--- /dev/null
+++ b/profiles/wheezy/classes/x11/xdg/icons.yml
@@ -0,0 +1,5 @@
+classes:
+ - x11
+parameters:
+ pkg:
+ - tango-icon-theme
diff --git a/profiles/wheezy/nodes/parl-desktop-all.yml b/profiles/wheezy/nodes/parl-desktop-all.yml
new file mode 100644
index 0000000..5c9183d
--- /dev/null
+++ b/profiles/wheezy/nodes/parl-desktop-all.yml
@@ -0,0 +1,5 @@
+classes:
+ - Blend.parl.desktop
+ - Desktop.email.l10n.ALL
+ - Desktop.office.l10n.ALL
+ - Desktop.web.l10n.ALL
diff --git a/profiles/wheezy/nodes/parl-desktop-eu.yml b/profiles/wheezy/nodes/parl-desktop-eu.yml
new file mode 100644
index 0000000..b2287ac
--- /dev/null
+++ b/profiles/wheezy/nodes/parl-desktop-eu.yml
@@ -0,0 +1,5 @@
+classes:
+ - Blend.parl.desktop
+ - Desktop.email.l10n.EU
+ - Desktop.office.l10n.EU
+ - Desktop.web.l10n.EU
diff --git a/profiles/wheezy/nodes/parl-desktop.yml b/profiles/wheezy/nodes/parl-desktop.yml
new file mode 100644
index 0000000..3451b4f
--- /dev/null
+++ b/profiles/wheezy/nodes/parl-desktop.yml
@@ -0,0 +1,2 @@
+classes:
+ - Blend.parl.desktop