Bug#310065: requesting change to default path file/managing configuration sources with desktop-profiles

cobaco cobaco@linux.be, 310065@bugs.debian.org
Sat, 21 May 2005 13:55:57 +0200


--nextPart1953146.Cjf2YQhSff
Content-Type: multipart/mixed;
  boundary="Boundary-01=_NHyjCtnGRzjz/Kn"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--Boundary-01=_NHyjCtnGRzjz/Kn
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Package: gconf2
Severity: wishlist
Tags: patch
X-Debbugs-CC: pkg-gnome-maintainers@lists.alioth.debian.org
=20
I've made a package called desktop-profiles, that recently entered Debian.=
=20
The purpose of this package is to manage the conditional activation of=20
profiles for the different desktop environments in Debian. Where profiles=20
are sets of configuration and/or data files (i.e. configuration sets in=20
gconf terminology, or base-dirs in freedesktop terminology).

To make this work with gconf (and thus Gnome) the default system-wide path=
=20
file needs to be changed, I'll explain the reasoning and needed changes=20
below.


Why you would want to change the way configuration sources are managed:

Managing configuration sources with only the default path file makes it har=
d=20
to have different sets of configuration sources active under different=20
conditions (for differet sets of users).=20
Desktop profiles makes this easy (you only have to specify the conditions,=
=20
rest is done by desktop-profiles).
One example where this would come in handy is schools: you don't want to=20
clutter the environment of pupils with stuff only used by teachers, also=20
you probably want to enforce more/different settings for pupils then you=20
would for teachers (goes for any large organization with different sets of=
=20
users, using the available computers in different ways/for different=20
purposes).

The current way of managing them through the path-file is not cross-desktop=
,=20
managing them through desktop-profiles is.
As most people are at least using some apps of competing desktops this mean=
s=20
that an admin wanting to setup the whole environment needs to know and mess=
=20
with 3 (Gconf, KDE, and freedesktop standarized stuff, though the exact=20
number can be as high as 7 or low as 2)  different systems of managing=20
this.

The possibility to add/change DE-configuration in a standard way is=20
important for CDD's. They could each roll there own (debian-edu currently=20
does, desktop-profiles is a generalization of that approach), but that will=
=20
become messy when you combine several CDD's (e.g. debian-edu + demudi on a=
=20
music class computer)

=46or the freedesktop standarized stuff there's a real need to have a stand=
ard=20
way for the admin to control which profiles are activated (different=20
desktops will have the same config files for that, and will conflict unless=
=20
some mechanism exists to choose one over the other, see also bug 307098,=20
for one case where this already happened)


What changes are needed:

Desktop-profiles activates configuration sources based on 2 bits of=20
metadata: requirements (conditions for activation, mostly group membership=
=20
or non-membership), and precedence (used for ordering the profiles, so the=
=20
value of higher precedence profiles are used in case of conflicting=20
settingvalues ).
In the case of gconf any configuration source whose activation requirements=
=20
are met  on X-startup is added to one of two newly generated path-files.=20
everyone of those with higher precedence then the default user source is=20
added to the desktop-profiles path file with mandatory settings, any that=20
have lower priority are added to the desktop-profiles path file with=20
default settings.

The system wide path file would then need to do one of two things:
1) hand over the management of configuration sources to desktop-profiles=20
completely=20
    -> is the preferred option
    -> doesn't change what configuration sources will be activated by
        default (nor their respective order)
    -> systemwide path file should be replaced with the attached           =
      =20
        manage_all_sources_with_desktop-profiles.path
    -> needs gconf to depend on desktop profiles <=3D 1.4.6 (which is a tiny
        arch-all package, coming in at Installed-Size: 274, so that =20
        shouldn't add noticable overhead)
2) keep control over the management of the configuration sources currently=
=20
defined by the default system-wide path file, but add some directives so=20
profiles managed by desktop-profiles are found in the default situation.
    -> this is almost as good as the above option except that it doesn't
        allow the sysdamin to deactivate any of the default sources through=
=20
        desktop-profiles, making him need to now both mechanisms AND how
        they interact for complete control
    -> systemwide path file should be replaced with the attached           =
      =20
        allow_desktop-profiles_to_add_sources.path=20
    -> allows gconf to work as it does now without having
         desktop-profiles installed
=2D-
Cheers, cobaco

/"\  ASCII Ribbon Campaign
\ /  No proprietary formats in attachments without request
 X   i.e. *NO* WORD, POWERPOINT or EXCEL documents
/ \  Respect Open Standards
      http://www.fsf.org/philosophy/no-word-attachments.html
      http://www.goldmark.org/netrants/no-word/attach.html







--Boundary-01=_NHyjCtnGRzjz/Kn
Content-Type: text/plain;
  charset="iso-8859-1";
  name="manage_all_sources_with_desktop-profiles.path"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="manage_all_sources_with_desktop-profiles.path"

#=20
# This gconf path file is meant to be used in conjunction with the
# desktop-profiles package,=20
#
# Default gconf behaviour using this path file with desktop-profiles instal=
led
# is identical to the behaviour using the default path file from the gconf2
# pacakge, but allowing activation of additional configuration sources thro=
ugh
# desktop-profiles
#
# See the desktop-profiles (7) man page for more information
###########################################################################=
####

# Look for mandatory "configuration sources" from desktop-profiles
include $(ENV_MANDATORY_PATH)

# Now see where users want us to look - basically the user can stick arbitr=
ary=20
# sources in a ~/.gconf.path file and they're inserted here
include "$(HOME)/.gconf.path"

# Give users a default storage location, ~/.gconf
xml:readwrite:$(HOME)/.gconf

# Look for default "configuration sources" from desktop-profiles
include $(ENV_DEFAULTS_PATH)

--Boundary-01=_NHyjCtnGRzjz/Kn
Content-Type: text/plain;
  charset="iso-8859-1";
  name="allow_desktop-profiles_to_add_sources.path"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="allow_desktop-profiles_to_add_sources.path"

# This file stores the addresses of config sources for GConf
# When a value is stored or requested, the sources are scanned from top to=
=20
# bottom, and the first one to have a value for the key (or the first one=20
# to be writeable) is used to load/store the data.

# See the GConf manual for details

# Look first at mandatory profiles managed by desktop-profiles
# see desktop-profiles(7) for details about how this works
include $(ENV_MANDATORY_PATH)

# Look first in systemwide mandatory settings directory
xml:readonly:/etc/gconf/gconf.xml.mandatory

# To read in any mandatory settings that the Sys Admin may have created
# prior to a desktop system upgrade. The SysAdmin can stick read-only system
# wide sources in this file.
include /etc/gconf/2/local-mandatory.path

# Now see where users want us to look - basically the user can stick arbitr=
ary=20
# sources in a ~/.gconf.path file and they're inserted here
include "$(HOME)/.gconf.path"

# Give users a default storage location, ~/.gconf
xml:readwrite:$(HOME)/.gconf

# Look for default "configuration sources" managed by desktop-profiles
# see desktop-profiles(7) for details about how this works
include $(ENV_DEFAULTS_PATH)

# To read in any defaults settings that the Sys Admin may have created
# prior to a desktop system upgrade. The SysAdmin can stick default values
# system-wide in this file.
include /etc/gconf/2/local-defaults.path

# Finally, look at the systemwide defaults
xml:readonly:/etc/gconf/gconf.xml.defaults



--Boundary-01=_NHyjCtnGRzjz/Kn--

--nextPart1953146.Cjf2YQhSff
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQBCjyHU5ihPJ4ZiSrsRAuipAJsGyNlt+dSx4rjFZspOYXMLeE6AzQCghd0/
auWkkYNSMjbKlh5MaQv22aY=
=Hi/y
-----END PGP SIGNATURE-----

--nextPart1953146.Cjf2YQhSff--