Hi all, I'm looking for a sponsor for my desktop-profiles package. As it's aim (explained below) is relevant to debian-desktop I'm asking here.
The idea for this package came while working on debian-edu. We needed a way
to customize the default setup of KDE. KDE makes this easy, all you need to
do is setup the KDEDIRS variable so it contains the root-dir of our custom
configuration, and /usr (rootdir of the systemwide configuration). As I
said easy enough, BUT ...
this approach works fine only as long as there's but one agent
(admin/package/CDD) modifying KDEDIRS. As soon as KDEDIRS is modified in
several places there's no easy way to figure out what the end-value of
KDEDIRS (and thus the resulting KDE setup) will be. You now need to track
down all places where KDEDIRS is modified, and in what order the
modifications end up being made.
In other words we lack a standard mechanism to control and activate
different customizations (profiles) of KDE. Furthermore this problem
also manifests when customizing the other desktop environments in Debian.
I started out to solve this, and after some thought I came up with the
following requirements:
1) different profiles need to co-exist on the same machine gracefully (as
otherwise 2 users from different needing different ones can't use the same
machine)
2) one should be able to combine different profiles (e.g. one is both a
debian-edu, and demudi user)
3) creating a desktop setup should not need changes to the GNOME/KDE/...
packages (nor mess with their conffiles)
4) this created mechanism should be cross-desktop, and should allow the
administrator to:
- determine which of the installed profiles should be used onder what
conditions/for what users
- determine which profiles values should be used in case of conflict
between 2 (or more) simultanously activated profiles
The desktop-profiles package I created meets the above requirements
supporting profiles for KDE, GNOME, XFCE (>=4.2), ROX, UDE,
GNUSTEP, and Freedesktop. (It's licensed under GPL and available at [1]).
Here's how it works:
1) Metadata about available profiles is stated in files dropped
into /etc/desktop-profiles. This metadata includes:
* profile name
* profile location,
* kind of profile (i.e. for which desktop),
* profile requirements (i.e. when the profile should be activated):
possible requirements include group membership/non-membership and the
succesfull completion of arbitrary shell commands (absence of
requirements means the profile is always used)
* profile precedence, used when two profiles are simultanously activated
to resolve conflicts (whatever the profile with the highest precedence
specifies, will be used)
* profile description
(The format of the dropped files is basically CSV with '#'-comments)
2) There's an Xsession.d script that parses the metadata files and sets up
the profiles whose activation requirements are met.
Aside from the above basic functionality the package provides some extras:
- There's a kommander script (i.e. kde gui) tool for managing the profile
metadata.
- There's a debhelper like script (dh_installlisting) to aid in installing
the metadata files in a standard way
- man page documenting everything (html-rendition of which is viewable at
[1])
I See this being used in various places:
- By the various CDD's/ sysadmins of (large) organizations to setup certain
things (including branding)
EXAMPLE: Debian-Edu currently has 2 profiles 'common' and 'networked'
The former is used on all debian-edu installations, the latter is
used only on debian-edu machines inside a debian-edu network (setting
up things like which proxy, and mailserver to use)
- To decouple the debian default setup from the KDE/GNOME/... packages.
Seems like a good thing because it would allow different approaches to be
tried easily (as you'd only need to upload a new version of a small
arch:all package), or even coexist/compete. Also this allows the package
maintainers to concentrate on getting the packaging right while another
group (say debian-desktop) concentrates on the usability problem of what
constitutes a good default setup.
So what do you think? Anybody willing to sponsoring this package?
(License: GPL, available at [1], description and package name see above :)
[1] http://developer.skolelinux.no/~cobaco/desktop-profiles
--
Cheers, cobaco (aka Bart Cornelis)
1. Encrypted mail preferred (GPG KeyID: 0x86624ABB)
2. Plain-text mail recommended since I move html and double
format mails to a low priority folder (they're mainly spam)
pgpFjjNTrCcEP.pgp
Description: PGP signature

