[debian-edu-commits] r83473 - trunk/src/desktop-profiles
ccscanf-guest at alioth.debian.org
ccscanf-guest at alioth.debian.org
Wed Jun 11 16:57:47 UTC 2014
Author: ccscanf-guest
Date: 2014-06-11 16:57:47 +0000 (Wed, 11 Jun 2014)
New Revision: 83473
Removed:
trunk/src/desktop-profiles/20desktop-profiles_activateDesktopProfiles
trunk/src/desktop-profiles/LICENCE
trunk/src/desktop-profiles/Makefile
trunk/src/desktop-profiles/README
trunk/src/desktop-profiles/TODO
trunk/src/desktop-profiles/debian/
trunk/src/desktop-profiles/desktop-profiles
trunk/src/desktop-profiles/desktop-profiles.7
trunk/src/desktop-profiles/desktop-profiles.csh
trunk/src/desktop-profiles/desktop-profiles.fish
trunk/src/desktop-profiles/desktop-profiles_pshrc.pl
trunk/src/desktop-profiles/desktop-profiles_zoidrc.pl
trunk/src/desktop-profiles/dh_installlisting
trunk/src/desktop-profiles/dh_installlisting.1
trunk/src/desktop-profiles/get_desktop-profiles_variables
trunk/src/desktop-profiles/list-desktop-profiles
trunk/src/desktop-profiles/list-desktop-profiles.1
trunk/src/desktop-profiles/listingmodule
trunk/src/desktop-profiles/path
trunk/src/desktop-profiles/path2listing
trunk/src/desktop-profiles/path2listing.1
trunk/src/desktop-profiles/po/
trunk/src/desktop-profiles/postinst-desktop-profiles
trunk/src/desktop-profiles/profile-manager
trunk/src/desktop-profiles/profile-manager.1
trunk/src/desktop-profiles/profile-manager.kmdr
trunk/src/desktop-profiles/profile-snippet
trunk/src/desktop-profiles/tests/
trunk/src/desktop-profiles/update-profile-cache
trunk/src/desktop-profiles/update-profile-cache.1
trunk/src/desktop-profiles/zlogin-snippet
Log:
Migration to git.
Deleted: trunk/src/desktop-profiles/20desktop-profiles_activateDesktopProfiles
===================================================================
--- trunk/src/desktop-profiles/20desktop-profiles_activateDesktopProfiles 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/20desktop-profiles_activateDesktopProfiles 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,403 +0,0 @@
-#!/bin/sh
-#
-# Script to activate profiles (i.e. conditional extra stuff) for the various
-# desktop environments in Debian based on the data in the *.listing files in
-# the /etc/desktop-profiles directory. Sourced by /etc/X11/Xsession.
-#
-# See the desktop-profiles(7) man page for an overview of how this works
-#
-# Code in this file has a couple of debian-specific parts:
-# - use of tempfile from debian-utils
-# (at start of execution, and in sort_profiles & activate_gnome functions)
-# - hardcoded default values for the different GNUSTEP_*_ROOT env variables
-# (in activate_gnustep function below)
-#
-# (c) 2004-2005 Bart Cornelis <cobaco AT skolelinux no>
-###############################################################################
-
-########################################################
-# get utility functions for working with .listing files
-########################################################
-LIB=/usr/share/desktop-profiles/listingmodule;
-if (test -r $LIB); then
- . $LIB;
- INSTALLED=true;
-else
- # test for shell-library if absent then either:
- # - the package installation is corrupt
- # - the package is removed (this file is left as it's in /etc/ and
- # thus treated as a conffile
- # We'll assume the latter.
- echo "Shell library $LIB is missing -> assuming desktop-profiles is removed (but not purged)" >> $ERRFILE;
- INSTALLED=false
-fi;
-
-general_trap () {
- rm -f "$GCONF_FILE";
- exit;
-}
-
-sort_profiles_trap () {
- rm -f "$GCONF_FILE";
- rm -f "$PROFILES";
- exit;
-}
-
-#########################################################################
-# Sort all profiles that have their requirements met by kind
-# (result for each $KIND is saved in the corresponding env variable
-# except for gnome which is saved in $GNOME_FILE, which is a tempfile)
-#########################################################################
-sort_profiles(){
-
- #make sure we start with empty variables
- KDEDIRS_NEW='';XDG_CONFIG_DIRS_NEW='';XDG_DATA_DIRS_NEW='';CHOICESPATH_NEW='';GNUSTEP_PATHLIST_NEW='';UDEDIRS_NEW='';PROFILES_NEW='';
-
- # adjust trap to ensure we don't leave any tempfiles behind
- trap sort_profiles_trap HUP INT TERM;
-
- # get profiles that are have fulfilled requirements, and save result on file descriptor 3
- PROFILES=`tempfile`;
- exec 3<> $PROFILES;
- (#reset trap as we're now in a subshell
- trap sort_profiles_trap HUP INT TERM;
-
- # get profiles that are have fulfilled requirements
- cat $(list_listings) | grep -v -e "^[[:space:]]*#" -e "^[[:space:]]*$" | while read PROFILE; do
- if (test_profile_requirements "$PROFILE"); then
- echo $PROFILE;
- fi;
- done;
-
- #and sort them by preference
- ) | sort --reverse --general-numeric-sort --field-separator=";" --key 4 > $PROFILES;
-
- # read from file descriptor 3 (not using pipe, because then the variables being
- # changed are in a subshell, which means they're unchanged outside the while loop)
- while read PROFILE <&3; do
- # sort per profile kind
- KIND=`echo "$PROFILE" | cut --fields 2 --delimiter ";"`;
- if (test "$KIND" = "KDE"); then
- KDEDIRS_NEW="$KDEDIRS_NEW $(echo "$PROFILE" | cut --fields 3 --delimiter ";")";
- elif (test "$KIND" = "XDG_CONFIG"); then
- XDG_CONFIG_DIRS_NEW="$XDG_CONFIG_DIRS_NEW $(echo "$PROFILE" | cut --fields 3 --delimiter ";")";
- elif (test "$KIND" = "XDG_DATA"); then
- XDG_DATA_DIRS_NEW="$XDG_DATA_DIRS_NEW $(echo "$PROFILE" | cut --fields 3 --delimiter ";")";
- elif (test "$KIND" = "ROX"); then
- CHOICESPATH_NEW="$CHOICESPATH_NEW $(echo "$PROFILE" | cut --fields 3 --delimiter ";")";
- elif (test "$KIND" = "GNUSTEP"); then
- GNUSTEP_PATHLIST_NEW="$GNUSTEP_PATHLIST_NEW $(echo "$PROFILE" | cut --fields 3 --delimiter ";")";
- elif (test "$KIND" = "UDE"); then
- UDEDIRS_NEW="$UDEDIRS_NEW $(echo "$PROFILE" | cut --fields 3 --delimiter ";")";
- elif (test "$KIND" = "GCONF"); then
- echo "`echo "$PROFILE" | cut --fields 3 --delimiter ";"` " >> $GCONF_FILE;
- fi;
- done;
-
- # close filedescriptor, delete tempfile, readjust trap
- exec 3>&- ;
- rm -f $PROFILES;
- trap general_trap HUP INT TERM;
-}
-
-##########################################################
-# Functions for activating the different kinds of profile
-##########################################################
-activate_KDE () {
- KDEDIRS_NEW=`echo "$KDEDIRS_NEW" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g"`
- if (test "$KDEDIRS_NEW"x != x) &&
- (test "$KDEDIRS_NEW" != "$(cat $DEFAULT_LISTING | grep "^kde-prefix" | cut --fields 3 --delimiter ";" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g")"); then
- # set KDEDIRS, handle current value based on active personality
- if (test "$KDEDIRS"x = x); then
- KDEDIRS=$(sh -c "echo $KDEDIRS_NEW");# FORCE expansion of variables in KDEDIRS_NEW if any
- else # we need to check what to do with already set value
- case "$PERSONALITY" in
- autocrat) KDEDIRS=$(sh -c "echo $KDEDIRS_NEW") ;;
- rude) KDEDIRS=$(sh -c "echo $KDEDIRS_NEW"):$KDEDIRS ;;
- polite | *) KDEDIRS=$KDEDIRS:$(sh -c "echo $KDEDIRS_NEW") ;;
- esac;
- fi;
- export KDEDIRS;
- #desktop-profiles is not setting the variable so if we're autcratic enforce that view
- elif (test "$PERSONALITY" = autocrat); then
- unset KDEDIRS;
- fi;
-}
-
-activate_XDG_CONFIG () {
- XDG_CONFIG_DIRS_NEW=`echo "$XDG_CONFIG_DIRS_NEW" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g"`
- if (test "$XDG_CONFIG_DIRS_NEW"x != x) &&
- (test "$XDG_CONFIG_DIRS_NEW" != "$(cat $DEFAULT_LISTING | grep "^default-xdg_config_dirs" | cut --fields 3 --delimiter ";" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g")"); then
- # set XDG_CONFIG_DIRS, handle current value based on active personality
- if (test "$XDG_CONFIG_DIRS"x = x); then
- XDG_CONFIG_DIRS=$(sh -c "echo $XDG_CONFIG_DIRS_NEW");# FORCE expansion of variables in XDG_CONFIG_DIRS_NEW if any
- else
- case "$PERSONALITY" in
- autocrat) XDG_CONFIG_DIRS=$(sh -c "echo $XDG_CONFIG_DIRS_NEW") ;;
- rude) XDG_CONFIG_DIRS=$(sh -c "echo $XDG_CONFIG_DIRS_NEW"):$XDG_CONFIG_DIRS ;;
- polite | *) XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:$(sh -c "echo $XDG_CONFIG_DIRS_NEW") ;;
- esac;
- fi;
- export XDG_CONFIG_DIRS;
- #desktop-profiles is not setting the variable so if we're autcratic enforce that view
- elif (test "$PERSONALITY" = autocrat); then
- unset XDG_CONFIG_DIRS;
- fi;
-}
-
-activate_XDG_DATA () {
- XDG_DATA_DIRS_NEW=`echo "$XDG_DATA_DIRS_NEW" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g"`
- if (test "$XDG_DATA_DIRS_NEW"x != x) &&
- (test "$XDG_DATA_DIRS_NEW" != "$(cat $DEFAULT_LISTING | grep "^default-xdg_data_dirs" | cut --fields 3 --delimiter ";" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g")"); then
- # set XDG_DATA_DIRS, handle current value based on active personality
- if (test "$XDG_DATA_DIRS"x = x); then
- XDG_DATA_DIRS=$(sh -c "echo $XDG_DATA_DIRS_NEW");# FORCE expansion of variables in XDG_DATA_DIRS_NEW if any
- else
- case "$PERSONALITY" in
- autocrat) XDG_DATA_DIRS=$(sh -c "echo $XDG_DATA_DIRS_NEW") ;;
- rude) XDG_DATA_DIRS=$(sh -c "echo $XDG_DATA_DIRS_NEW"):$XDG_DATA_DIRS ;;
- polite | *) XDG_DATA_DIRS=$XDG_DATA_DIRS:$(sh -c "echo $XDG_DATA_DIRS_NEW") ;;
- esac;
- fi;
- export XDG_DATA_DIRS;
- #desktop-profiles is not setting the variable so if we're autcratic enforce that view
- elif (test "$PERSONALITY" = autocrat); then
- unset XDG_DATA_DIRS;
- fi;
-}
-
-activate_ROX () {
- CHOICESPATH_NEW=`echo "$CHOICESPATH_NEW" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g"`
- DEFAULT_CHOICES=$(cat $DEFAULT_LISTING | grep '^default-rox-system;' | cut --fields 3 --delimiter ";" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g")
- DEFAULT_CHOICES="$(cat $DEFAULT_LISTING | grep '^default-rox-user;' | cut --fields 3 --delimiter ";" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g"):$DEFAULT_CHOICES"
- if (test "$CHOICESPATH_NEW"x != x) &&
- (test "$CHOICESPATH_NEW" != "$DEFAULT_CHOICES"); then
- # set CHOICESPATH, handle current value based on active personality
- if (test "$CHOICESPATH"x = x); then
- CHOICESPATH=$(sh -c "echo $CHOICESPATH_NEW");# FORCE expansion of variables in CHOICESPATH_NEW if any
- else
- case "$PERSONALITY" in
- autocrat) CHOICESPATH=$(sh -c "echo $CHOICESPATH_NEW") ;;
- rude) CHOICESPATH=$(sh -c "echo $CHOICESPATH_NEW"):$CHOICESPATH ;;
- polite | *) CHOICESPATH=$CHOICESPATH:$(sh -c "echo $CHOICESPATH_NEW") ;;
- esac;
- fi;
- export CHOICESPATH;
- #desktop-profiles is not setting the variable so if we're autcratic enforce that view
- elif (test "$PERSONALITY" = autocrat); then
- unset CHOICESPATH;
- fi;
-}
-
-activate_UDE () {
- # don't s/ /:g/ in next line, UDE doesn't currently support combining profile dirs
- UDEDIRS_NEW=`echo "$UDEDIRS_NEW" | sed -e "s/^ *//" -e "s/ *$//"`
- if (test "$UDEDIRS_NEW"x != x) &&
- (test "$UDEDIRS_NEW" != "$(cat $DEFAULT_LISTING | grep "^ude-install-dir" | cut --fields 3 --delimiter ";")"); then
- # UDE currently only supports one dir, so we use the current setting unless
- # - we're in autocratic or rude mode or
- # - UDEdir wasn't set up yet and we're in polite mode
- if ( (test "$PERSONALITY" = autocrat) || (test "$PERSONALITY" = rude) || \
- ( (test "$PERSONALITY" = polite) && (test "$UDEdir"x = x) ) );then
- for dir in $UDEDIRS_NEW; do
- UDEdir=$dir;
- break;
- done;
- export UDEdir=$(sh -c "echo $UDEdir");# FORCE expansion of variables in UDEdir if any
- fi;
- #desktop-profiles is not setting the variable so if we're autcratic enforce that view
- elif (test "$PERSONALITY" = autocrat); then
- unset UDEdir;
- fi;
-}
-
-activate_GNUSTEP () {
- # default values as set in /usr/lib/GNUstep/System/Library/Makefiles/GNUstep.sh (On Debian)
- export GNUSTEP_USER_ROOT=${GNUSTEP_USER_ROOT:-`/usr/lib/GNUstep/System/Library/Makefiles/user_home user 2> /dev/null`};
- export GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT:-/usr/local/lib/GNUstep/Local};
- export GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT:-/usr/local/lib/GNUstep/Network};
- export GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT:-/usr/lib/GNUstep/System};
-
- #should be in GNUSTEP_PATHLIST_NEW (see /usr/lib/GNUstep/System/Library/Makefiles/GNUstep.sh)
- GNUSTEP_PATHLIST_NEW=`echo "$GNUSTEP_PATHLIST_NEW" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g"`
-
- # get default domains
- DEFAULT_DOMAINS=$(cat $DEFAULT_LISTING | grep "^gnustep-user-domain" | cut --fields 3 --delimiter ";" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g")
- DEFAULT_DOMAINS="$DEFAULT_DOMAINS:$(cat $DEFAULT_LISTING | grep "^gnustep-local-domain" | cut --fields 3 --delimiter ";" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g")"
- DEFAULT_DOMAINS="$DEFAULT_DOMAINS:$(cat $DEFAULT_LISTING | grep "^gnustep-network-domain" | cut --fields 3 --delimiter ";" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g")"
- DEFAULT_DOMAINS="$DEFAULT_DOMAINS:$(cat $DEFAULT_LISTING | grep "^gnustep-system-domain" | cut --fields 3 --delimiter ";" | sed -e "s/^ *//" -e "s/ *$//" -e "s/ /:/g")"
-
- if (test "$GNUSTEP_PATHLIST_NEW"x != x) &&
- (test "$GNUSTEP_PATHLIST_NEW" != "$DEFAULT_DOMAINS"); then
- # set GNUSTEP_PATHLIST, handle current value based on active personality
- if (test "$GNUSTEP_PATHLIST"x = x); then
- export GNUSTEP_PATHLIST=$(sh -c "echo $GNUSTEP_PATHLIST_NEW");# FORCE expansion of variables in GNUSTEP_PATHLIST_NEW if any
- else
- case "$PERSONALITY" in
- autocrat) export GNUSTEP_PATHLIST=$(sh -c "echo $GNUSTEP_PATHLIST_NEW") ;;
- rude) export GNUSTEP_PATHLIST=$(sh -c "echo $GNUSTEP_PATHLIST_NEW"):$GNUSTEP_PATHLIST ;;
- polite | *) export GNUSTEP_PATHLIST=$GNUSTEP_PATHLIST:$(sh -c "echo $GNUSTEP_PATHLIST_NEW") ;;
- esac;
- fi;
- else
- #desktop-profiles is not setting the variable so if we're autcratic enforce that view
- if (test "$PERSONALITY" = autocrat); then
- unset GNUSTEP_PATHLIST;
- fi;
- # if we're not setting things, then make sure we've not added to the environment
- if (test "$GNUSTEP_USER_ROOT" = "$(/usr/lib/GNUstep/System/Library/Makefiles/user_home user 2> /dev/null)"); then unset GNUSTEP_USER_ROOT; fi
- if (test "$GNUSTEP_LOCAL_ROOT" = "/usr/local/lib/GNUstep/Local"); then unset GNUSTEP_LOCAL_ROOT; fi
- if (test "$GNUSTEP_NETWORK_ROOT" = "/usr/local/lib/GNUstep/Network"); then unset GNUSTEP_NETWORK_ROOT; fi
- if (test "$GNUSTEP_SYSTEM_ROOT" = "/usr/lib/GNUstep/System"); then unset GNUSTEP_SYSTEM_ROOT; fi
- fi;
-}
-
-activate_GCONF () {
- # HACK WARNING:
- #
- # While GCONF allows multiple "configuration sources", there seems to be no clean way to
- # make the used "configuration sources" dependend on a condition (such as group membership).
- # One dirty way to get this ability is to generate a path file at login which will include
- # directives activating the profiles that have their requirements met.
- #
- # NOTE: this alone isn't enough, the system-wide path file (/etc/gconf/<gconf-version>/path)
- # needs to contain a include directive for this generated file. (preferably it should
- # contain _only_ that include directive setting everything else up through profiles)
-
- # $XDG_CACHE_HOME is not supposed to contain anything that can't be deleted
- # so we can savely do this to avoid leaving old generated files from
- # previous logins laying around
- XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache};
- rm -f $(grep -sl '^# Generated by desktop-profiles package$' $XDG_CACHE_HOME/* | cut --delimiter ':' --fields 1);
-
- # only generate path files for user if they will be included
- if (grep 'include *\$(ENV_MANDATORY_PATH)' /etc/gconf/2/path > /dev/null 2>&1 ) ||
- (grep 'include *\$(ENV_DEFAULTS_PATH)' /etc/gconf/2/path > /dev/null 2>&1 ) ||
- (grep 'include *\$(ENV_MANDATORY_PATH)' /etc/gconf/1/path > /dev/null 2>&1 ) ||
- (grep 'include *\$(ENV_DEFAULTS_PATH)' /etc/gconf/1/path > /dev/null 2>&1 ); then
-
- # used to keep track if we passed from mandatory to default configuration sources yet
- INCLUDED_HOME=false;
-
- # create tempfile, while ensuring that cachedir exists
- # We're using tempfile since it ensures we have a new file with
- # a random filename, which is necessary for security:
- # - if (generated) path file isn't there all is fine
- # - if (generated) path file is there and the permissions on it allow $USER to write all is fine
- # (as it's regenerated on login)
- # - if (generated) path file is there (possibly changed by attacker) and the permissions on it do
- # not allow $USER to write things are not fine (as regeneration fails, and configuration sources
- # by attacker will be used).
- # Attacker can be $USER hirself (to avoid mandatory settings from sysadmin), or if file is in a
- # directory that's writeable by someone else a third party
- mkdir -p $XDG_CACHE_HOME;
- export MANDATORY_PATH=$(tempfile --directory $XDG_CACHE_HOME);
- export DEFAULTS_PATH=$(tempfile --directory $XDG_CACHE_HOME);
-
- # add marker to generated files, both so we can find it again later, and to indicate origin
- echo "# Generated by desktop-profiles package" > "$MANDATORY_PATH";
- echo "# Generated by desktop-profiles package" > "$DEFAULTS_PATH";
-
- # see if there's actually anyting to add, if so create pathfiles and fill them
- cat $GCONF_FILE | while read LINE; do
- # user gconf source should be included by system-wide path already
- if (test "$LINE" != 'xml:readwrite:$(HOME)/.gconf'); then
- if (test $INCLUDED_HOME = false); then
- # add configuration source
- echo $LINE >> "$MANDATORY_PATH";
- else
- # add configuration source
- echo $LINE >> "$DEFAULTS_PATH";
- fi;
- else
- INCLUDED_HOME=true;
- fi
- done;
-
- # get rid of temp files and variables if we don't use them
- if (test "$(cat $MANDATORY_PATH | wc -l)" -eq 1); then
- rm -f $MANDATORY_PATH;
- unset MANDATORY_PATH;
- fi;
- if (test "$(cat $DEFAULTS_PATH | wc -l)" -eq 1); then
- rm -f $DEFAULTS_PATH;
- unset DEFAULTS_PATH;
- fi;
- fi; # end generated path files will be included
-
- # cleanup tempfile
- rm -f $GCONF_FILE;
-}
-
-#####################
-# Start of execution
-#####################
-
-# Check is needed, as this file is a conffile and thus left after package
-# deinstallation, yet it shouldn't do anything when the package is deinstalled
-if (test $INSTALLED = true); then
- #################################
- # Check if user set any defaults
- #################################
- if (test -r /etc/default/desktop-profiles); then
- . /etc/default/desktop-profiles;
- fi;
-
-
- # sheep don't form an opintion, they just follow along
- # so skip everything if personality is set to sheep
- if (test "$PERSONALITY" != sheep); then
-
- #################################################
- # Make sure the variables we need are initialized
- #################################################
- LISTINGS_DIRS=${LISTINGS_DIRS:-'/etc/desktop-profiles'}
- CACHE_DIR=${CACHE_DIR:-'/var/cache/desktop-profiles'}
- CACHE_FILE="$CACHE_DIR/activated_profiles"
- ACTIVE_PROFILE_KINDS=${ACTIVE_PROFILE_KINDS:-''}
- DEFAULT_LISTING=/etc/desktop-profiles/desktop-profiles.listing
- PROFILE_PATH_FILES_DIR=${PROFILE_PATH_FILES_DIR:-'/var/cache/desktop-profiles/'}
-
- ############################################################
- # Actual activation of profiles
- ############################################################
- # if we have a cache and it's up-to-date -> use it
- if (test -r "$CACHE_FILE") &&
- (test $(ls -t -1 /etc/desktop-profiles/*.listing \
- /etc/default/desktop-profiles \
- "$CACHE_FILE" 2> /dev/null | \
- head -1) = "$CACHE_FILE"); then
- # export the variable settings in the cache file after replacing
- # the placeholders for the current variable values with said values
- # (the location of placeholders is based on the active personalitytype)
- export $(cat "$CACHE_FILE" | sed -e "s|\\\$KDEDIRS|$KDEDIRS|" \
- -e "s|\\\$XDG_CONFIG_DIRS|$XDG_CONFIG_DIRS|" \
- -e "s|\\\$XDG_DATA_DIRS|$XDG_DATA_DIRS|" \
- -e "s|\\\$CHOICESPATH|$CHOICESPATH|" \
- -e "s|\\\$GNUSTEP_PATHLIST|$GNUSTEP_PATHLIST|" \
- -e "s|\\\$UDEdir|$UDEdir|" );
-
- # UDEdir only holds 1 dir, so drop every dir except the first nonempty one
- export UDEdir=$(echo $UDEdir | sed 's|^:||' | cut --fields 1 --delimiter ":");
- # else if we have any profile kinds we're interested in, then go
- # calculate the profile assignments
- elif (test "$ACTIVE_PROFILE_KINDS"x != "x"); then
- # add trap to ensure we don't leave any tempfiles behind
- trap general_trap HUP INT TERM;
- # get temp file
- GCONF_FILE=`tempfile`;
-
- # sort the profiles, whose requirements are met into:
- # - the appropriate environment variables
- # - $GCONF_FILE
- sort_profiles;
-
- # activate the profiles of the active kinds
- for KIND in $ACTIVE_PROFILE_KINDS; do
- # || true is to avoid hanging x-startup when trying a non-existing KIND
- # which can happen e.g. due to typo's in the config file.
- activate_$KIND || true;
- done;
- fi; # end dynamic profile assignment
- fi;# end !sheep
-fi;
Deleted: trunk/src/desktop-profiles/LICENCE
===================================================================
--- trunk/src/desktop-profiles/LICENCE 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/LICENCE 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
Deleted: trunk/src/desktop-profiles/Makefile
===================================================================
--- trunk/src/desktop-profiles/Makefile 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/Makefile 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,52 +0,0 @@
-#!/usr/bin/make -f
-
-DESTDIR =
-PREFIX = /usr
-
-build: documentation l10n check
-
-documentation: dh_installlisting.1
-dh_installlisting.1: dh_installlisting
- pod2man dh_installlisting > dh_installlisting.1
-
-pot: po/profile-manager.pot
- kmdr2po profile-manager.kmdr
- mkdir -p po/
- msgmerge po/profile-manager.pot profile-manager.po > po/profile-manager.pot.new
- mv po/profile-manager.pot.new po/profile-manager.pot && rm profile-manager.po
- # @i18n strings aren't picked up by kdmr2po at the moment
- echo >> po/profile-manager.pot
- echo 'msgid "Save Changes"' >> po/profile-manager.pot
- echo 'msgstr ""' >> po/profile-manager.pot
-
-# Add language-targets as they're added
-# install-l10n will be called from debian rules
-l10n: po/ca.mo po/cs.mo po/eu.mo po/fr.mo po/it.mo po/nl.mo po/pt.mo po/pt_BR.mo po/sv.mo po/vi.mo
-install-l10n: install-ca.mo install-cs.mo install-eu.mo install-fr.mo install-it.mo install-nl.mo install-pt.mo install-pt_BR.mo install-sv.mo install-vi.mo
-update-l10n: update-ca.mo update-cs.po update-eu.po update-fr.po update-it.po update-nl.po update-pt.po update-pt_BR.po update-sv.po update-vi.po
-
-po/%.mo: po/%.po update-%.po
- msgfmt -o $@ $<
-
-install-%.mo: po/%.mo
- install -d $(DESTDIR)${PREFIX}/share/locale/$*/LC_MESSAGES/
- install --mode 644 $< $(DESTDIR)${PREFIX}/share/locale/$*/LC_MESSAGES/profile-manager.mo
-
-update-%.po: po/%.po po/profile-manager.pot
- cd po && intltool-update -g profile-manager -d $*
-
-install: install-l10n
- ./dh_installlisting
-
-zip-tests:
- tar -cvzf tests.tgz tests
-
-check: zip-tests
-
-clean:
- if(ls po/*.mo 2> /dev/null > /dev/null); then rm po/*.mo; fi;
- if(test -e tests.tgz); then rm tests.tgz; fi
-
-distclean: clean
-realclean: distclean
- if(test -e dh_installlisting.1); then rm dh_installlisting.1; fi;
Deleted: trunk/src/desktop-profiles/README
===================================================================
--- trunk/src/desktop-profiles/README 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/README 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,121 +0,0 @@
-GENERAL DESCRIPTION
-=-=-=-=-=-=-=-=-=-=
-See the desktop-profiles(7) man page for a description of how this package
-works, and what it does.
-
-KNOWN BUGS
-=-=-=-=-=-=
-- The profile-manager.kmdr script (i.e. the gui for configuring the metadata
- files) doesn't work correctly if the profile description contains a single
- quote, it doesn't show the details, and will mess up the metadata file when
- changing it
-- 'ssh -X' bug (##344030):
- Profiles aren't set when logging in and running programs with 'ssh -X', this
- is because the Xsession.d script isn't run.
-
- A general shell-independ solution seems to be impossible (neither ssh itself
- nor PAM provides a way to source shell scripts, if you have any ideas please
- contact me).
- Shell-variant specific solutions are possible by having the system-wide
- on-logon script of each shell run the profile activation script when an
- 'ssh-X' login is detected.
- This package currently documents the necessary bits of code for the following
- shells: bash, dash, ksh, pdksh, mksh, csh, tcsh, zsh, zoidberg, fish and psh.
- Where possible the fix is applied automatically (this needs a modularized
- on-logon script), otherwise the admin needs to add the required code by hand.
-
- For bourne-compatible shells (bash, dash, ksh, pdksh, mksh, posh) the
- system-wide on-logon script is /etc/profile. The file
- /usr/share/doc/desktop-profiles/examples/profile-snippet contains the code
- that needs to be added to it in order to fix this bug.
-
- For the zsh shell the system-wide on-logon script is /etc/zsh/zlogin. The file
- /usr/share/doc/desktop-profiles/examples/zlogin-snippet contains the
- code-snippet that needs to be added to it in order to fix this bug.
-
- Users of the csh, fish, psh (>=1.8-6), and tcsh (>=6.14.00-5) and zoidberg
- (>= 0.96-1) shells don't need to do anything as the system-wide on-logon
- script of these shells is modularized, and thus the required code-snippet is
- dropped into place on package installation.
-
-PERFORMANCE
-=-=-=-=-=-=
-For those wondering about performance, I did some benchmarking of the Xsession.d
-script yielding the following results[NOTE]:
-
-- needed execution time of the script when dynamicaly checking which profiles
- should be activated is linear in respect to the number of profiles
- (i.e. O(n) with n = #profiles), tested up to a 100 profiles.
-
- * dynamic activation with /bin/sh pointing to dash (averaged over 10 runs)
- out-of-the-box 20 30 40 50 60
- pentium2 350 Mhz: 0.594 0.980 1.168 1.369 1.557 1.751
- celeron M 1.4 Ghz: 0.100 0.140 0.170 0.212 0.248 0.284
- centrino duo 1.83 GHz: 0.080 0.121 0.150 0.188 0.220 0.254
-
- * dynamic activation with /bin/sh pointing to bash (averaged over 10 runs)
- out-of-the-box 20 30 40 50 60
- pentium2 350 Mhz: 0.983 1.534 1.878 2.236 2.585 2.944
- celeron M 1.4 Ghz: 0.163 0.241 0.316 0.387 0.460 0.530
- centrino duo 1.83 GHz: 0.153 0.222 0.290 0.359 0.429 0.494
-
- -> performance when /bin/sh points to dash about is 40-45% faster as when it
- points to bash.
-
-- needed execution time in the simple case with an up-to-date cache is constant
- and so small as to be negligable even on old systems:
-
- * with up-to-date cache
- /bin/sh -> dash /bin/sh -> bash
- pentium2 350 Mhz: 0.010 0.092
- celeron M 1.4 Ghz: 0 (to small to measure) 0.010
- centrino duo 1.83 Ghz: 0 (to small to measure) 0.010
-
-- Here's some more info about the machines I ran the test on:
- pentium2 350 Mhz -> 128 MB RAM, Quantum Fireball Ex4.3A HD
- celeron 1.4 Ghz -> Acer Travelmate 2312LM, 256 MB RAM, HTS726060M9AT00 HD
- centrino duo 1.83 Ghz -> HP nx9420, 512 MB RAM, FUJITSU MHV2100B HD
-
-NOTE: For those that want to run the performance tests on their own systems
- the testscript and metadata-sets I used can be found in the tests.tgz file
- in /usr/share/doc/desktop-profiles. The test script in there needs to be
- run as a user with write priviliges to the directory /etc/desktop-profiles
- and will test performance with both dash (if present) and bash and up-to
- 100 profiles.
-
-GCONF PROFILES
-=-=-=-=-=-=-=-=
-The default gconf systemwide path file provided by the gconf2 package only
-includes the minimal changes necessary for using desktop-profiles. That is
-it will only add in the configuration sources managed by desktop-profiles,
-it won't put all configuration sources under desktop-profiles control.
-
-To facilitate those that want to manage all their gconf configuration sources
-with desktop-profiles this package provides a conversion script
-(/usr/sbin/path2listing) that will parse your current systemwide pathfile,
-generate the necessary metadata for all your currently used configuration
-sources (yes it will recurse into included path files), and change the
-systemwide gconf path file to reflect that all configuration sources will now
-be managed by desktop-profiles.
-
-Running the conversion script doesn't result in any user-visible changes (if it
-does there's a bug), still the script will make a backup of the current path
-file before changing it so you can always go back to not managing the gconf
-configuration sources with desktop-profiles by simply restoring the path file
-backup.
-
-GRAPHICAL TOOLS TO USE WHEN BUILDING PROFILES
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-- kiosktool (KDE):
- Point&Click tool for the creation of KDE-profiles (regardless of wether the
- kiosk, i.e. lockdown, features are used) . Available from the testing and
- unstable archives.
-
-- Pessulus (GNOME):
- Enables the system administrator to set mandatory settings in GConf, which
- apply to all users, restricting what they can do. Available from the testing
- and unstable archives.
-
-- Sabayon (GNOME):
- Point&Click tool for the creation of GNOME-profiles. Available from testing
- and unstable archives.
Deleted: trunk/src/desktop-profiles/TODO
===================================================================
--- trunk/src/desktop-profiles/TODO 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/TODO 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,2 +0,0 @@
-- further improve performance (cache in non-simple case?)
-- build usefull (example) profiles and point to them in docu (for accessibility?)
Deleted: trunk/src/desktop-profiles/desktop-profiles
===================================================================
--- trunk/src/desktop-profiles/desktop-profiles 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/desktop-profiles 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,93 +0,0 @@
-# Settings for the shell scripts of the desktop-profiles package
-# (those scripts wil source this file).
-#
-# Should only contain shell variables and comments
-###################################################################
-
-##################################################################
-# General settings (i.e. applying to all scripts in this package)
-##################################################################
-
-# Takes a (space separated) list of directories. Each of the dirs listed will
-# be searched for .listing files, all found .listing files will be used by
-# default.
-LISTINGS_DIRS="/etc/desktop-profiles"
-
-# Directory containing the cache of profile assignments
-# (cache is only generated when that makes sense)
-CACHE_DIR="/var/cache/desktop-profiles"
-
-# This determines how the desktop-profiles agent script deals with the
-# situation where the environment are already set by some other agent:
-# - autocrat: assume desktop-profiles is the only actor allowed to touch
-# the environment variables and ignore current setting of the
-# environment variables (this is also known as BOFH mode)
-# - rude : profiles activated by desktop-profiles take precedence over
-# those already set in the environment variables
-# - polite : profiles activated by desktop-profiles give precedence to those
-# already set in the environment variables
-# (allows user to override desktop-profiles)
-# - sheep : always follow the set environment variables
-# (i.e. don't do anything, essentially deactivates desktop-profiles)
-PERSONALITY=polite
-
-#################################
-# SETTINGS FOR xsession.d script
-#################################
-
-# The set [KDE, GCONF, XDG_CONFIG, XDG_DATA, ROX, UDE] defines the valid
-# profile kinds. The following variable contains the subset of profile kinds
-# for which you want to activate the profiles.
-#
-# Disabling profile kinds you don't need used to cause a noticable decrease
-# in the time needed to run this script. The problem that caused that has
-# been solved and the difference is no longer really noticable, hence it's
-# probably not worth the bother to mess with this.
-ACTIVE_PROFILE_KINDS="KDE XDG_CONFIG XDG_DATA GCONF GNUSTEP ROX UDE"
-
-##############################################
-# SETTINGS FOR list-desktop-profiles
-# (and by extension the kommander gui script)
-##############################################
-
-# which field do we sort on by default?
-# field 1 = profile name (default)
-# field 2 = profile kind
-# field 3 = profile location
-# field 4 = profile priority
-# field 5 = activation requirements
-# field 6 = profile description
-#SORT_KEY=
-
-# any extra arguments to be passed to sort when sorting
-# (this defaults to '--general-numeric-sort --reverse' when sorting precedence)
-#SORT_ARGS=
-
-# default regexp to be applied to the profiles' name field
-#NAME_FILTER=
-
-# default regexp to be applied to the profiles' location field
-#LOCATION_FILTER=
-
-# numerical test to be done on the profiles' precedence value
-# (e.g. '-gt 0', '-ge 0', or '-lt 50')
-# `test $PRECEDENCE $PRECEDENCE_FILTER` needs to be true
-#PRECEDENCE_FILTER=
-
-# default regexp to be applied to the profiles' requirements field
-#REQUIREMENT_FILTER=
-
-# default regexp to be applied to the profiles' kind field
-#KIND_FILTER=
-
-# default regexp to be applied to the profiles' description field
-#DESCRIPTION_FILTER=
-
-# Set the default profile formatstring
-# You may use the variables NAME, LOCATION, PRECEDENCE, REQUIREMENT, KIND,
-# DESCRIPTION, FILE variables. The first 6 refer to the respective fields off
-# the profile, while FILE refers to the .listing file the profile is in.
-#
-# Characters interpreted specially by the shell (such as ';') need escaping.
-#FORMAT='$NAME\;$KIND\;$DESCRIPTION\;$PRECEDENCE\;$REQUIREMENTS\;$DESCRIPTION'
-
Deleted: trunk/src/desktop-profiles/desktop-profiles.7
===================================================================
--- trunk/src/desktop-profiles/desktop-profiles.7 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/desktop-profiles.7 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,177 +0,0 @@
-.TH DESKTOP-PROFILES 7 "May 02, 2005" "desktop-profiles"
-
-.SH NAME
-desktop-profiles \- introduction and overview
-
-.SH DESCRIPTION
-Desktop-profiles offers a standard way of managing the conditional activation of installed profiles (sets of configuration and/or data files) for the various Desktop Environments in Debian.
-.PP
-It currently supports Freedesktop, KDE, Gconf (i.e Gnome), Xfce (>= 4.2), ROX, GNUSTEP and UDE.
-
-.SH HOW IT WORKS
-Each available profile has some metadata associated with it. On X startup an Xsession.d script is run that looks through the metadata for all profiles and activates profiles based on what it finds.
-.PP
-Specifically each profile is associated with a set of requirements, and a precedence value. On X startup the Xsession.d script will filter out those profiles whose requirements are not met, and then activate the remaining profiles in order of precedence.
-.PP
-Exactly how a profile is activated depends on the profile kind (you don't need to know this in order to use this package):
-.IP \(bu 3
-For KDE, Freedesktop, Xfce (>= 4.2), ROX, GNUSTEP and UDE activating profiles is done by setting environment variables: KDEDIRS for KDE, XDG_CONFIG_DIRS and XDG_DATA_DIRS for both Freedesktop and Xfce, CHOICESPATH for ROX, GNUSTEP_PATHLIST for GNUSTEP (usually initialized from the various GNUSTEP_*_ROOT variables) and UDEdir for UDE. With the exception of UDEdir, which takes a single directory, each of these variables takes a precedence ordered list of root-directories (of activated profiles).
-.IP \(bu 3
-For GConf profiles two user-specific path files are generated. One containing the activated mandatory "configuration sources", one containing the default "configuration sources" that are activated.
-.IP NOTE:
-Environment variables will only be set if their value is different from the default value, and user-specific path files are only generated if the systemwide gconf path file will include them. This to avoid unnecessary clutter.
-.IP NOTE:
-The above means that for Freedesktop, KDE, GNOME, Xfce (>= 4.2), GNUSTEP and ROX any number of profiles can be activated at the same time. Whereas UDE can only activate 1 profiles at the time.
-.IP NOTE:
-By default the Xsession.d script will assume the metadata files are authoritive, meaning it will ignore any values already assigned to the relevant environment variables.
-.IP NOTE:
-The default system-wide path contains a number of configuration sources not managed by desktop-profiles. In order to facilitate the management of all your configuration sources through desktop-profiles this package provides a script (/usr/sbin/path2listing) that looks at your current gconf configuration and adapts it so your configuration sources are all controlled by desktop-profiles (see the man page for path2listing or the /usr/share/doc/destkop-profiles/README for more information on this).
-
-.SH INTERACTION WITH OTHER AGENTS ACTIVATING PROFILES
-Since profiles are activated through environment variables one issue is how desktop-profiles deals with the situation where those environment variables have already been set up by other agents (such an agent could be another script, or the user). Desktop-profiles has a personality setting that determines how it handles such a situation:
-.IP \(bu 3
-autocrat: assume desktop-profiles is the only agent allowed to touch the environment variables, and consequently ignore the contents of already set environment variables.
-.IP \(bu 3
-rude: profiles added by desktop-profiles take precedence over profiles added by other agents.
-.IP \(bu 3
-polite: profiles added by other agents take precedence over profiles added by desktop-profiles.
-.IP \(bu 3
-sheep: just meekly follow along with what the other agents have set, don't change anything (this essentially deactivates desktop-profiles).
-.PP
-The default personality setting of desktop-profiles is polite.
-
-.SH WHERE TO FIND THE PROFILE METADATA
-The metadata is specified in .listing files that are placed in the /etc/desktop-profiles directory. The format of those files is specified in the 'FORMAT OF .listing FILES'-section below.
-.IP NOTE:
-In order to ensure that packages containing .listing files don't run in to each other, packages should install such files as <packagename>.listing, or <packagename>_<something>.listing (there's a debhelper script provided to help with that :)
-
-.SH FORMAT OF .listing FILES
-Each non-empty line in a .listing file is either a comment line, or line containing profile metadata.
-.PP
-Comment lines start with \'#\' and are purely for human consumption, like empty lines they are ingored completely by the Xsession.d script.
-.PP
-Lines containing profile metadata are made up of 6 fields separated by a semi-colon (\';\'). Where the meaning of the fields is as follows:
-.IP \(bu 3
-.B 1st field
-: Name of the profile, arbitrary, must be unique within each file, and may (but probably should not) be empty.
-.IP \(bu 3
-.B 2nd field
-: The kind of profile, must be set, must be one of: KDE, XDG_CONFIG, XDG_DATA, GCONF, ROX, GNUSTEP, or UDE.
-.IP \(bu 3
-.B 3th field:
-.IP
-Location of the root of the profile directory tree, may contain more then 1 directory (in which case directories should be separated with spaces). Environment variables may be used when specifying root directories (e.g. $HOME/.extra_config).
-.IP
-Except for Gconf profiles, which use the this field to contain exactly one directive to be included in the generated path file (directives are either \'xml:(readonly|readwrite):<profile-root>\', or \'include <some-path-file>' ).
-.IP \(bu 3
-.B 4th field
-: A Numeric precedence value for the profile, may be empty (which is treated as lowest possible precedence).
-.IP
-When 2 (or more) active profiles define a setup for the same thing, the value specified by the profile with the highest precedence value is used (UDE will onlyuse values from the highest ranked profile).
-.IP \(bu 3
-.B 5th field
-: Space separated list of conditions that need to be met to activate the profiles (if more then 1 condition is specified all conditions need to be met to activate the profile).
-.IP
-There are 3 different kinds of requirements:
-.IP
-1) <group> = user needs to be a member of <group>
-.IP
-2) !<group> = user mustn't be a member of <group>
-.IP
- (Note: '!' deactivates the profile completely)
-.IP
-3) $(<command>) = <command> needs to exit succesfully ($?=0)
-.IP
- (Where <command> is an arbitrary shell command)
-.IP \(bu 3
-.B 6th field
-: A description of what the profile is/does, may be empty.
-.IP
-Note that this basically boils down to a CSV-file using \';\' as separator and allowing shell-style comments.
-
-.SH CREATING PROFILES
-.IP \(bu 3
-.B KDE
-(through KDEDIRS):
-.IP
-Each profile directory is layed out according to the KDE file system hierarchy (see http://techbase.kde.org/KDE_System_Administration#File_System)
-.IP
-Config files in the different profiles are merged (in case of conflicting keys, the value of the highest precedence profile is used). For other files the highest precedence profile that contains the file supplies it.
-.IP
-Starting with kde 3.3. the kiosk framework can be used to lock settings down in the profiles, for all unlocked settings user-specified values are always used when available. (see http://techbase.kde.org/KDE_System_Administration for more info on the kiosk-framework, and the format of the kde config files).
-.IP \(bu 3
-.B Freedesktop
-(using XDG_CONFIG_DIRS and XDG_DATA_DIRS)
-.IP
-The 'Desktop base directory specification' defines the basic framework for using profiles (see http://freedesktop.org/wiki/Specifications/basedir-spec).
-.IP
-The actual contents of the profiles is filled in by things conforming to other freedesktop standards (e.g. the 'menu specification'). A list of freedesktop standards (that are being worked on) can be found at http://freedesktop.org/wiki/Specifications. Most of these standards are still under development and not (yet) widely supported. Eventually you can probably suspect support of at least KDE, GNOME, ROX, and Xfce.
-.IP
-Xfce (>=4.2) specific settings can also be found in Freedesktop profile dirs (see the next section for details).
-.IP \(bu 3
-.B Xfce
-(using XDG_CONFIG_DIRS and XDG_DATA_DIRS)
-.IP
-Starting from Xfce version 4.2. Xfce will completely adopt the freedesktop 'Desktop Base Directory Specification'. Placing any Xfce-only settings in an 'xfce4' subdirectory of the freedesktop profile directories (with the exception of xfce4-session, which will use an 'xfce4-session' subdirectory). A more complete description can be found at http://foo-projects.org/~benny/xfce/file-locations.html.
-.IP
-If two profiles contain the same config file, the one from the profile with the highest precedence is used.
-.IP
-Xfce versions prior to 4.2. don't support multiple config sets.
-.IP \(bu 3
-.B ROX
-(through CHOICESPATH):
-.IP
-Each profile directory has one subdirectory for each app for which it provides settings. When a configuration value is needed the profile directories are searched in order, first profile that contains the file supplies it.
-.IP NOTE:
-Programs _may_ merge the files the different profiles. If the merging encounters conflicting values the one from the highest order profile is used.
-.IP
-See http://rox.sourceforge.net/choices.html for a more detailed description.
-.IP \(bu 3
-.B GNUSTEP
-(through GNUSTEP_PATHLIST)
-.IP
-Profiles in GNUSTEP parlance are called domains, and by default GNUSTEP will look in 4 domains (the location of which is indicated by the GNUSTEP_USER_ROOT, GNUSTEP_LOCAL_ROOT, GNUSTEP_NETWORK_ROOT, and GNUSTEP_SYSTEM_ROOT variables). Though it is possible to specify extra domains to use through the GNUSTEP_PATHLIST variable, it isn't often done as configuration files are currently only searched for in the user domain.
-.IP
-For more information on GNUSTEP domains see
-http://www.gnustep.org/resources/documentation/User/GNUstep/filesystem.html
-.IP \(bu 3
-.B UDE
-(through UDEdir):
-.IP
-UDE searches for configuration files in the following directories (first find is used):
-.IP
-1. $HOME/.ude/config
-.IP
-2. $UDEdir/config (or in absence of $UDEdir in the install dir which is /usr/share/ude on debian)
-.IP
-3. If the configuration file is still not found, UWM takes the filename as it is (usually dereferencing any environment variables first)
-.IP \(bu 3
-.B GNOME
-(using GConf 'Configuration Sources'):
-.IP
-Two gconf path files are generated for each user on login: one with all the sources from activated profiles that have a higher precedence then the gconf-user profile (which is in default.listing), and one containing the sources from activated profiles with a lower precedence then the gconf-user profiles. Generated path files are put in /var/cache/desktop-profiles.
-.IP
-Each configuration source is structured like a simple hierarchical file system as follows:
-.IP
-- Directories correspond to applications that use the GConf repository, except for the ' schemas' directory which contains files describing all of the preference keys.
-.IP
-- Subdirectories correspond to categories of preferences.
-.IP
-- Files list the preference keys in the directory, and contain information about the keys.
-.IP
-- Configuration Sources are searched in order for each value, first source that has the value (or is writeable in case of storing values) is used.
-.IP
--> See the GNOME administration manual for a detailed explanation
-
-.SH FILES
-/etc/desktop-profiles/desktop-profiles.listing - Details the default settings for the various environments. By default the system-wide settings provided by the packager are given no precedence, which means they will be loaded after all profiles with a precedence specified (which should be true for all profiles you create).
-.PP
-/etc/X11/Xsession.d/20desktop-profiles_activateDesktopProfiles - Xsesssion.d script that activates the profiles
-.PP
-/etc/default/desktop-profiles - File containing default settings for the scripts in this package.
-
-.SH AUTHOR
-This manual page was written by Bart Cornelis <cobaco at skolelinux.no>.
-
-.SH SEE ALSO
-list-desktop-profiles(1), update-profile-cache(1), profile-manager(1), dh_installlisting(1), path2listing(1)
Deleted: trunk/src/desktop-profiles/desktop-profiles.csh
===================================================================
--- trunk/src/desktop-profiles/desktop-profiles.csh 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/desktop-profiles.csh 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,22 +0,0 @@
-#!/bin/csh
-
-# This fixes the desktop-profiles corner-case where a graphical client is
-# started through an ssh -X session (in which the Xsession.d scripts aren't
-# run, so we need to make sure the profiles are activated according to the
-# specified settings at login).
-set DESKTOP_PROFILES_SNIPPET="/usr/share/desktop-profiles/get_desktop-profiles_variables"
-if (-e $DESKTOP_PROFILES_SNIPPET) then
- # initialization
- set TEMP_FILE=`tempfile`
-
- # use bash to write the required environment settings to a tempfile
- # this file has a VARIABLE=VALUE format
- bash $DESKTOP_PROFILES_SNIPPET $TEMP_FILE
-
- # convert to csh format and source to set the required environment variables
- sed -i 's/^\(.*\)=\(.*\)$/setenv \1 \2/' $TEMP_FILE
- source $TEMP_FILE
-
- # cleanup
- rm $TEMP_FILE
-endif
Deleted: trunk/src/desktop-profiles/desktop-profiles.fish
===================================================================
--- trunk/src/desktop-profiles/desktop-profiles.fish 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/desktop-profiles.fish 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,21 +0,0 @@
-#!/usr/bin/fish
-
-# This fixes the desktop-profiles corner-case where a graphical client is
-# started through an ssh -X session (in which the Xsession.d scripts aren't
-# run, so we need to make sure the profiles are activated according to the
-# specified settings at login).
-set -l DESKTOP_PROFILES_SNIPPET "/usr/share/desktop-profiles/get_desktop-profiles_variables"
-if test -f $DESKTOP_PROFILES_SNIPPET
- set -l TEMP_FILE (tempfile)
-
- # use bash to write the required environment settings to a tempfile
- # this file has a 'VARIABLE=VALUE' format
- bash $DESKTOP_PROFILES_SNIPPET $TEMP_FILE
-
- # convert to fish format and source to set the required environment variables
- sed -i 's/^\(.*\)=\(.*\)$/set -g -x \1 \2/' $TEMP_FILE
- . $TEMP_FILE
-
- # cleanup
- rm $TEMP_FILE
-end
Deleted: trunk/src/desktop-profiles/desktop-profiles_pshrc.pl
===================================================================
--- trunk/src/desktop-profiles/desktop-profiles_pshrc.pl 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/desktop-profiles_pshrc.pl 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,32 +0,0 @@
-#!/usr/bin/perl
-
-# This fixes the desktop-profiles corner-case where a graphical client is
-# started through an 'ssh -X' session in which the Xsession.d scripts are
-# not run, so we need to make sure the profiles are activated according to
-# the specified settings at login).
-$DESKTOP_PROFILES_SNIPPET = '/usr/share/desktop-profiles/get_desktop-profiles_variables';
-
-if ( -e $DESKTOP_PROFILES_SNIPPET ) {
- $TEMP_FILE = `tempfile`;
-
- # get rid of extranous newline, which messed things up later
- { $TEMP_FILE =~ s/\n// }
-
- # use bash to write the required environment settings to a tempfile
- # this file has a 'VARIABLE=VALUE' format
- `bash $DESKTOP_PROFILES_SNIPPET $TEMP_FILE`;
-
- # source to set the required environment variables
- # needs to become: $ENV{'VARIABLE'} = 'VALUE';
- {
- open(input, $TEMP_FILE);
- while($env_var = <input>) {
- # needs to become: $ENV{'VARIABLE'} = 'VALUE';
- $env_var =~ s/^(.*)=(.*)$/\\\\$ENV{'\1'} = '\2'/ ;
- eval $env_var;
- }
- }
-
- # cleanup
- `rm $TEMP_FILE`;
-}
Deleted: trunk/src/desktop-profiles/desktop-profiles_zoidrc.pl
===================================================================
--- trunk/src/desktop-profiles/desktop-profiles_zoidrc.pl 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/desktop-profiles_zoidrc.pl 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,26 +0,0 @@
-#!/usr/bin/perl
-
-# This fixes the desktop-profiles corner-case where a graphical client is
-# started through an ssh -X session (in which the Xsession.d scripts aren't
-# run, so we need to make sure the profiles are activated according to the
-# specified settings at login).
-$DESKTOP_PROFILES_SNIPPET = '/usr/share/desktop-profiles/get_desktop-profiles_variables';
-
-if ( -e $DESKTOP_PROFILES_SNIPPET ) {
- $TEMP_FILE = `tempfile`;
-
- # use bash to write the required environment settings to a tempfile
- # this file has a 'VARIABLE=VALUE' format
- `bash $DESKTOP_PROFILES_SNIPPET $TEMP_FILE`;
-
- # source to set the required environment variables
- open(input, $TEMP_FILE);
- while($env_var = <input>) {
- # needs to become: $ENV{'VARIABLE'} = 'VALUE';
- $env_var =~ s/^(.*)=(.*)$/\$ENV{'\1'} = '\2'/;
- eval $env_var;
- }
-
- # cleanup
- `rm $TEMP_FILE`;
-}
Deleted: trunk/src/desktop-profiles/dh_installlisting
===================================================================
--- trunk/src/desktop-profiles/dh_installlisting 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/dh_installlisting 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,94 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-dh_installlisting - install .listing files to be used by desktop-profiles package
-
-=cut
-
-use strict;
-use Debian::Debhelper::Dh_Lib;
-
-=head1 SYNOPSIS
-
-B<dh_installlisting> [S<B<debhelper options>>] [S<B<filename(s)>>]
-
-=head1 DESCRIPTION
-
-dh_installlisting is a debhelper program that handles installing listing files
-used by the desktop-profiles package into the correct location in package
-builddirectories (NOTE: this command is provided by the desktop-profiles
-package, so don't forget to build-depends on it). It also updates the cache
-of profile assignments (when it exists) to reflect the added metadata.
-
-If a file named debian/package.listing exists (or debian/listing in case of the
-main package) it is installed in etc/desktop-profiles. In addition any files
-given as argument will be installed in etc/desktop-profiles as
-package_file.listing. The format of .listing files is described in
-L<desktop-profiles(7)>.
-
-A dependancy on desktop-profiles will be added to misc:Depends by using this
-script.
-
-=cut
-
-init();
-
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
-
- # Add the debian/listing (or debian/$package.listing) if present
- my $debDirListing=pkgfile($package,"listing");
- my @listings=$debDirListing;
- my $containsGNUSTEP='false';
-
- # Add further listing files given as arguments if present
- if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
- push @listings, @ARGV;
- }
-
- # if we have listings to install
- if ("@listings" ne '') {
- # make sure the directory we need exists
- if (! -d "$tmp/etc/desktop-profiles") {
- doit("install","-d","$tmp/etc/desktop-profiles");
- }
-
- # install each listing file
- # (making sure not to double '.listing' nor the packagename)
- foreach my $file (@listings) {
- my $installName=basename($file);
- $installName=~s/(.*)\.listing$/$1/;
- if ( ("$installName" ne 'listing') && ("$installName" ne "$package") ){
- $installName=~s/^/_/;
- doit("install","-p","-m644",$file,"$tmp/etc/desktop-profiles/$package$installName.listing");
- } else {
- doit("install","-p","-m644",$file,"$tmp/etc/desktop-profiles/$package.listing");
- }
-
- }
- # if we're not installing desktop-profiles itself, the autoscript isn't yet present
- if ( "$package" ne "desktop-profiles") {
- # Make sure the postinst regenerates runs /usr/bin/update-profile-cache
- # to ensure en up-to-date cache of profile assignments
- autoscript("$package","postinst","postinst-desktop-profiles");
- }
- }
-
- # Add desktop-profiles to the dependencies if necesary
- if ($package ne 'desktop-profiles') {
- addsubstvar($package, "misc:Depends", "desktop-profiles (>= 1.4)");
- }
-}
-
-=head1 SEE ALSO
-
-L<debhelper(7)>
-L<desktop-profiles(7)>
-L<update-profile-cache(1)>
-
-=head1 AUTHOR
-
-Bart Cornelis (cobaco) <cobaco at skolelinux.no>
-
-=cut
Deleted: trunk/src/desktop-profiles/dh_installlisting.1
===================================================================
--- trunk/src/desktop-profiles/dh_installlisting.1 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/dh_installlisting.1 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,160 +0,0 @@
-.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.el \{\
-. de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "DH_INSTALLLISTING 1"
-.TH DH_INSTALLLISTING 1 "2006-12-13" "perl v5.14.2" "User Contributed Perl Documentation"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-dh_installlisting \- install .listing files to be used by desktop\-profiles package
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-\&\fBdh_installlisting\fR [\fBdebhelper\ options\fR] [\fBfilename(s)\fR]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-dh_installlisting is a debhelper program that handles installing listing files
-used by the desktop-profiles package into the correct location in package
-builddirectories (\s-1NOTE:\s0 this command is provided by the desktop-profiles
-package, so don't forget to build-depends on it). It also updates the cache
-of profile assignments (when it exists) to reflect the added metadata.
-.PP
-If a file named debian/package.listing exists (or debian/listing in case of the
-main package) it is installed in etc/desktop\-profiles. In addition any files
-given as argument will be installed in etc/desktop\-profiles as
-package_file.listing. The format of .listing files is described in
-\&\fIdesktop\-profiles\fR\|(7).
-.PP
-A dependancy on desktop-profiles will be added to misc:Depends by using this
-script.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIdebhelper\fR\|(7)
-\&\fIdesktop\-profiles\fR\|(7)
-\&\fIupdate\-profile\-cache\fR\|(1)
-.SH "AUTHOR"
-.IX Header "AUTHOR"
-Bart Cornelis (cobaco) <cobaco at skolelinux.no>
Deleted: trunk/src/desktop-profiles/get_desktop-profiles_variables
===================================================================
--- trunk/src/desktop-profiles/get_desktop-profiles_variables 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/get_desktop-profiles_variables 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,26 +0,0 @@
-#!/bin/bash
-#
-# This script is used by desktop-profiles to solve the corner-case of starting X
-# programs over an ssh connection with non-bourne compatible bugs. It's not meant
-# to be executed directly.
-#
-# it writes the necessary environment variables in VARIABLE=VALUE format to a
-# file that can then be sourced by non-bourne-compatible shells.
-#
-# $1 = file to write environment variable settings to
-###############################################################################
-
-# testing SSH_CLIENT as the woody ssh doesn't set SSH_CONNECTION
-# also testing SSH_CONNECTION as the current ssh manpage no longer mentions
-# SSH_CLIENT, so it appears that variable is being phased out.
-if ( ( (test -n "${SSH_CLIENT}") || (test -n "${SSH_CONNECTION}") ) && \
- (test -n "${DISPLAY}") || true); then
- # get the variables
- . /etc/X11/Xsession.d/20desktop-profiles_activateDesktopProfiles;
-
- # write them to a file
- env | grep 'KDEDIRS\|XDG_CONFIG_DIRS\|XDG_DATA_DIRS\|CHOICESPATH\|UDEdir\|GNUSTEP_PATHLIST\|MANDATORY_PATH\|DEFAULTS_PATH' > "$1";
-else
- # make sure the file is there
- touch "$1"
-fi;
Deleted: trunk/src/desktop-profiles/list-desktop-profiles
===================================================================
--- trunk/src/desktop-profiles/list-desktop-profiles 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/list-desktop-profiles 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,148 +0,0 @@
-#!/bin/sh
-#
-# This script implements a tool to filter the profiles listed in .listing files
-# used by the desktop-profiles package. Output format kan be specified using a
-# format string.
-#
-# See desktop-profiles (7) for more information about using profiles through
-# desktop-profiles and the format of the .listing files
-#
-# (c) 2004 Bart Cornelis <cobaco AT skolelinux no>
-###############################################################################
-
-print_help () {
-cat <<EOF
-Usage: list-desktop-profiles [OPTIONS]
- As the number of .listing files grows, trying to find out which profiles are
- present/meet certain criteria becomes increasingly unpleasant. This script
- remedies that, allowing you to just list your criteria, and outputting all
- profiles meeting those criteria.
-
-Options controlling the used .listing files:
- -d | --directory: directory where to look for .listing files
- (default=/etc/desktop-profiles)
-
-Options for filtering the shown profiles:
- -c, --comment | --description:
- profile description matches the regexp that is the next argument
- -k, --kind:
- profile kind matches the regexp that is the next argument
- (profile kind is in [KDE, GCONF, XDG_DATA, XDG_CONFIG, GNUSTEP, ROX, UDE])
- -l, --location:
- profile location matches the regexp that is the next argument
- -n, --name:
- profile name matches the regexp that is the next argument
- -p, --precedence:
- next argument gives the comparison to be done with the profiles precedence
- value. Use 'gt' for 'greater then', 'lt' for 'less then', 'ge' for
- 'greater then or equal to', 'le' for 'less then or equal to', 'eq' for
- 'equal to', and 'ne' for 'not equal to' (e.g. -p 'ge 0')
- -r, --requirement:
- profile requirements field matches the regexp that is the next argument
- -u, --user:
- profile requirements are met for the user given in the next argument
-
-Other Options:
- -e. --entry-format: format string for list entries,
- May use the variables NAME, LOCATION, PRECEDENCE,KIND,
- REQUIREMENTS, DESCRIPTION, and FILE. First 6 of which refer
- to the respective field for that profile, while FILE refers
- to the .listing file the profile is in.
- Parentheses, &, and characters interpreted specially by the
- shell should be escaped.
- (by default it just outputs the profile line)
- -h, --help : display this helpmessage
- -s, --sort-key: fieldname of the profile field to sort on, one of
- [name, location, precedence, requirements, kind, description]
- this defaults to 'name'
- (Note: you may also use upper case if you want :)
-
-EOF
-}
-
-#################################
-# Check if user set any defaults
-#################################
-if test -r /etc/default/desktop-profiles; then
- . /etc/default/desktop-profiles
-fi;
-
-####################
-# Parse Commandline
-####################
-while test $# -ge 1; do
- # if not help, there should be at least one more argument
- if (test "$1" = "-h") || (test "$1" = "--help") || (test $# -lt 2); then
- print_help;
- exit;
- fi;
-
- case $1 in
- -d | --directory) LISTINGS_DIRS="$2 $LISTINGS_DIRS" ;;
-
- -c | --comment | --description) DESCRIPTION_FILTER="$2" ;;
-
- -k | --kind) KIND_FILTER="$2" ;;
-
- -l | --location) LOCATION_FILTER="$2" ;;
-
- -n | --name) NAME_FILTER="$2" ;;
-
- -p | --precedence)
- #validate expression
- if (echo "$2" | grep -E '^(gt|lt|ge|le|ne|eq) -?[0-9]+$' > /dev/null); then
- PRECEDENCE_FILTER="-$2";
- else
- print_help;
- exit;
- fi;
- ;;
-
- -r | --requirement) REQUIREMENT_FILTER="$2" ;;
-
- -u | --user) OUR_USER="$2" ;;
-
- -s | --sort-key)
- case $2 in
- NAME | name | 1) SORT_KEY=1 ;;
- KIND | kind | 2) SORT_KEY=2 ;;
- LOCATION | location | 3) SORT_KEY=3 ;;
- PRECEDENCE| precedence | 4)
- SORT_KEY=4
- SORT_ARGS='--general-numeric-sort --reverse';
- ;;
- REQUIREMENTS | requirements | 5) SORT_KEY=5 ;;
- DESCRIPTION | description | 6) SORT_KEY=6 ;;
-
- *)
- print_help;
- exit;
- ;;
- esac;
- ;;
-
- -e | --entry-format) FORMAT="$2" ;;
-
- *)
- print_help;
- exit;
- ;;
- esac;
-
- # All options take an argument so we should always shift twice
- # except help, but then we don't get here
- shift 2;
-done;
-
-# get utility functions for working with .listing files
-LIB=/usr/share/desktop-profiles/listingmodule;
-if (test -r $LIB); then
- . $LIB;
-else
- echo "Shell library $LIB is missing! Aborting.";
- exit 1;
-fi;
-
-# use utility function to give user what he wants (we set up the environment
-# variables to control the function output in the commandline parsing)
-filter_listings;
Deleted: trunk/src/desktop-profiles/list-desktop-profiles.1
===================================================================
--- trunk/src/desktop-profiles/list-desktop-profiles.1 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/list-desktop-profiles.1 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,122 +0,0 @@
-.TH LIST-DESKTOP-PROFILES 1 "November 11, 2004" "desktop-profiles"
-
-.SH NAME
-list-desktop-profiles \- list known profiles that meet given criteria
-
-.SH SYNOPSIS
-list-desktop-profiles [OPTION]
-
-.SH DESCRIPTION
-As the number of .listing files holding metadata grows, trying to find out which profiles are present/meet certain criteria becomes increasingly unpleasant. This script remedies that allowing you to just list your criteria, and outputting all profiles meeting those criteria.
-.PP
-By default it will just output the lines from the .listing files for each (matching) profile, but you can specifying a formatstring to fancy up the output.
-.PP
-
-.SH OPTIONS
-.PP
-\-n <regexp>, \-\-name <regexp>
-.IP
-Limit shown profiles to those for which the name (1st) field of the profile description needs matches the given regular expression.
-
-.PP
-\-k <regexp>, \-\-kind <regexp>
-.IP
-Limit shown profiles to those for which the kind (2nd) field of the profile description needs matches the given regular expression.
-
-.PP
-\-l <regexp>, \-\-location <regexp>
-.IP
-Limit shown profiles to those for which the location (3th) field of the profile description needs matches the given regular expression.
-
-.PP
-\-p <comparison>, \-\-precedence <comparison>
-.IP
-Limit shown profiles to those for which the precedence (4th) field of the profile description succeeds the given comparison. In the comparison you can Use 'gt' for 'greater then', 'lt' for 'less then', 'ge' for 'greater then or equal to', 'le' for 'less then or equal to', 'eq' for 'equal to', and 'ne' for 'not equal to'. (NOTE: empty precedence-field, is lowest possible precedence)
-
-.PP
-\-r <regexp>, \-\-requirement <regexp>
-.IP
-Limit shown profiles to those for which the requirements (5th) field of the profile description needs matches the given regular expression.
-
-.PP
-\-c <regexp>, \-\-comment <regexp>, \-\-description <regexp>
-.IP
-Limit shown profiles to those for which the comment (6th) field of the profile description needs matches the given regular expression.
-
-.PP
-\-u <username>, \-\-user <username>
-.IP
-Limit shown profiles to those for which the given user meets the requirements. (NOTE: doesn't always give correct results! Results might be wrong when using shell command requirements that depend on the users environment. Or when 'group $USER' gives a different result as 'group' executed as $USER, which can happen when adding groups through pam_group).
-
-.PP
-\-d <dir>, \-\-directory <dir>
-.IP
-Also use .listing files found in the given directory. This option can be used multiple times to add more then 1 additional directory
-
-.PP
-\-e <formatstring>, \-\-entry-format <formatstring>
-.IP
-Show profile information according to the specified format spring (instead of just echoing the profile-line). The format string may use the following variables: NAME, LOCATION, PRECEDENCE, REQUIREMENTS, KIND, DESCRIPTION, FILE; the first 6 of these refer to the corresponding field, the last refers to the .listing file the profile is in. (e.g. '$FILE_$NAME - $DESCRIPTION'). Any characters that are interpreted specially by the shell should be escaped.
-
-.PP
-\-s <fieldname>|<fieldnumber>, \-\-sort-key <fieldname>|fieldnumber
-.IP
-Sort output on the requested field (fieldname is one of name, kind, location, precedence, requirements, or description; fieldnumbers run from 1-6).
-
-.SH EXAMPLES
-.PP
-list-desktop-profiles \-k KDE \-s precedence \-u user1
-.IP
-List all kde-profiles that will be activated for user1 in order of precedence.
-
-.PP
-list-desktop-profiles \-k 'KDE\\|GCONF'
-.IP
-List all kde and gnome profiles.
-.PP
-list-desktop-profiles \-p 'gt 50'
-.IP
-List all profiles with a precedence value greater then 50.
-
-.SH ENVIRONMENT
-.PP
-NAME_FILTER, LOCATION_FILTER, PRECEDENCE_FILTER, REQUIREMENT_FILTER, KIND_FILTER, DESCRIPTION_FILTER
-.IP
-Can be used to specify the default regular expressions and comparisons. Default to empty.
-
-.PP
-OUR_USER
-.IP
-Set the user for which the requirements need to be met. Defaults to unset.
-
-.PP
-EXTRA_LISTINGS
-.IP
-Can be used to specify a (space separated) list of extra .listing files to include. Defaults to empty
-
-.PP
-FORMAT
-.IP
-Can be used to specify the default format string. By default it will output the profile-line from the .listing file.
-
-.PP
-SORT_KEY
-.IP
-Can be used to specify the default sort-key (= field number). Defaults to 1
-
-.SH FILES
-/etc/desktop-profiles/*.listing - Files containing the metadata about installed profiles
-.PP
-/etc/default/desktop-profiles - File containing default settings for this script (by way of the environment variables above)
-
-.SH BUGS
-The '\-u <username>' is not guaranteed to work correctly for shell command requirements. Particulary this will give incorrect results if the shell command depends on some state of the user environment.
-.PP
-
-.SH AUTHOR
-This manual page was written by Bart Cornelis <cobaco at skolelinux.no>.
-.PP
-
-.SH SEE ALSO
-desktop-profiles(7), update-profile-cache(1), profiles-manager(1)
-
Deleted: trunk/src/desktop-profiles/listingmodule
===================================================================
--- trunk/src/desktop-profiles/listingmodule 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/listingmodule 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,267 +0,0 @@
-#!/bin/sh
-#
-# This is a shell library containing utility functions the scripts in the
-# desktop-profiles package. This library currently contains the following
-# functions (see the comments with each function for more info):
-# - test_requirement: takes a requirement and (optionally) a username,
-# exit code indicates wether the requirement is met
-# - test_profile_requirements: takes a profile's line (from the .listing
-# file), and (optionally) a username, exit
-# code indicates wether the requirements are
-# met
-# - for_each_requirement: first argument is a list of requirements, second
-# argument is a command to be executed once for
-# each requirement (with requirement as argument)
-# - list_listings: returns a space separated list of all .listing files
-# found in the directories contained in $LISTINGS_DIRS
-# - filter_listings: returns matching profiles from the available listing
-# files (output influenced by a number of environment
-# variables, see below for a list)
-#
-# See desktop-profiles (7) for more information about using profiles through
-# desktop-profiles and the format of the .listing files
-#
-# (c) 2004 Bart Cornelis <cobaco AT skolelinux no>
-###############################################################################
-
-###############################################################################
-# test_requirement () - test wether the given requirement is fulfilled for a
-# given user
-#
-# Note: won't work for not-current-user when command-requirments depend on
-# the user's environment settings.
-#
-# $1 = requirement
-# $2 = username (defaults to current user if absent)
-#
-# Each requirement is of one of the following forms:
-# requirement | meaning
-# --------------------------
-# <group> | $USER is a member of <group>
-# !<group> | $USER must not be member of group
-# ! | always false (i.e. deactivate profile)
-# $(command) | (shell) command exits succesfully
-#
-# returns succesfully ($?=0) if requirement is met
-# returns 1 otherwise
-###############################################################################
-test_requirement(){
- # if no requirement (given) -> then it's met
- if (test "$1"x = x); then
- exit;
- fi;
-
- # initialize needed variables. Do not give argument to groups when looking up the current
- # user, to avoid expensive lookup with LDAP NSS.
- if (test "$2"x = x) || (test "$USER" = "$2") ; then
- OUR_USER="$USER"
- OUR_GROUPS="`id -Gn`"
- else
- OUR_USER="$2"
- OUR_GROUPS="`id -Gn -- $OUR_USER`"
- fi
-
- # !... requirement
- if (echo "$1" | grep '^!' > /dev/null) ; then
- GROUP=`echo "$1" | sed 's/^!//'`;
-
- # deactivated profile
- if (test "$GROUP"x = x); then
- exit 1;
- fi;
-
- # user is not a member of given group
- if (echo $OUR_GROUPS | grep -v $GROUP > /dev/null); then
- exit;# success
- fi;
-
- # given command must exit succesfully
- elif (echo "$1" | grep '^\$(.*)' > /dev/null); then
- COMMAND="`echo "$1" | sed -e 's/^\$(//' -e 's/)$//'`";
-
- sh -c "$COMMAND" > /dev/null;
- exit $?;
-
- # user is a member of given group
- else
- if (echo $OUR_GROUPS | grep $1 > /dev/null); then
- exit;# success
- fi;
- fi;
-
- # if we get here the requirement was not met
- exit 1;
-}
-
-################################################################
-# $1 = list of requirements
-# $2 = '$2 $REQUIREMENT' will be executed for each REQUIREMENT
-# $3- ... = extra arguments to pass to each $2 call
-################################################################
-for_each_requirement(){
- PROFILE_REQUIREMENTS="$1";shift
- COMMAND="$1";shift
- EXTRA_ARGS="$@";
-
- # requirements -> check one by one
- while (test "$PROFILE_REQUIREMENTS"x != x); do
- # attempt to get first (remaining) REQUIREMENT
- C=1;
- REQUIREMENT=`echo "$PROFILE_REQUIREMENTS" | cut --fields 1 --delimiter " "`;
-
- # if command requirement
- if (echo "$REQUIREMENT" | grep "^\$(" > /dev/null); then
- #make sure we have the whole command (with params)
- while (echo "$REQUIREMENT" | grep -v ')$' > /dev/null); do
- C=`expr $C + 1`;
- REQUIREMENT=`echo $PROFILE_REQUIREMENTS | cut --fields -$C --delimiter " "`;
- done;
-
- # prepare loop for next iteration
- C=`expr $C + 1`;
- PROFILE_REQUIREMENTS=`echo $PROFILE_REQUIREMENTS | cut --fields $C- --delimiter " " `;
- else
- # prepare loop for next iteration
- PROFILE_REQUIREMENTS=`echo $PROFILE_REQUIREMENTS | sed -e "s/^$REQUIREMENT//" -e "s/^ *//"`;
- fi;
-
- "$COMMAND" "$REQUIREMENT" "$EXTRA_ARGS"
- done;
-}
-
-###############################################################################
-# test_profile_requirements() - test wether the given profile's requirements
-# are met for a given user.
-#
-# Note: won't work for not-current-user when command-requirments depend on
-# the user's environment settings.
-#
-# $1 = the profile line from the listing file
-# $2 = username (defaults to current user if absent)
-#
-# returns succesfully ($?=0) if requirement is met
-# returns 1 otherwise
-###############################################################################
-test_profile_requirements() {
- PROFILE_REQUIREMENTS="$(echo $@ | cut --fields 5 --delimiter ";")";
-
- # no requirements -> met
- if (test "$PROFILE_REQUIREMENTS"x = x); then
- exit;
- fi;
-
- # requirements -> check one by one
- for_each_requirement "$PROFILE_REQUIREMENTS" test_requirement $2;
-
- # all requirements are met (or we wouldn't get here)
- exit;
-}
-
-################################################################################
-# outputs a space separated list of all .listing files found in the directories
-# contained in $LISTINGS_DIRS
-################################################################################
-list_listings () {
- # Make sure the variable we need are initialized
- LISTINGS_DIRS=${LISTINGS_DIRS:-'/etc/desktop-profiles'}
-
- for DIR in $LISTINGS_DIRS; do
- echo -n $(ls -1 $DIR/*.listing);
- echo -n " ";
- done;
-
- echo;
-}
-
-###############################################################################
-# filter_listings() - filters the profiles in the .listing files
-# (criteria and output-format are set through a number of
-# environment variables, as listed below)
-#
-# The following environment variables _may_ be used:
-# - NAME_FILTER, LOCATION_FILTER, REQUIREMENT_FILTER,
-# KIND_FILTER, and DESCRIPTION_FILTER: contain the regexp filter to be used
-# on the corresponding field of the profile-line
-# - PRECEDENCE_FILTER contains the second half of an expression to be passed to
-# the test program (e.g. '-gt 0', '-ge 0', or '-lt 50')
-# - OUR_USER: requirements need to be met for this user
-# - FORMAT: don't just echo the profile-line from the .listing file, but use
-# the specified format (may use the variables NAME, LOCATION, PRECEDENCE,
-# REQUIREMENT, KIND, DESCRIPTION, FILE variables. First 6 refer to the
-# the respective fields for that profile, FILE refers to the file the profile
-# is listed in.
-# NOTE: characters interpreted specially by the shell (such as ';') need
-# to be escaped.
-# - SORT_KEY: sort on field (NOTE: numeric)
-# - SORT_ARGS: extra arguments to be given to the sort command (e.g. when
-# sorting on the precedence field (3) you probably want to set this to
-# '--general-numeric-sort --reverse')
-# - LISTINGS_DIRS: the directory containing the .listing files to include
-# (defaults to '/etc/desktop-profiles', probably shouldn't be changed ever)
-#
-# In absence of any set variables it will just output all available profiles
-# sorted by name.
-#
-# The list-desktop-profile script from the desktop-profiles package offers an
-# example of how to use this function.
-###############################################################################
-filter_listings () {
- # Make sure the variable we need are initialized
-
- SORT_KEY=${SORT_KEY:-1}
- SORT_ARGS=${SORT_ARGS:-''}
-
- NAME_FILTER=${NAME_FILTER:-''}
- LOCATION_FILTER=${LOCATION_FILTER:-''}
- PRECEDENCE_FILTER=${PRECEDENCE_FILTER:-''}
- REQUIREMENT_FILTER=${REQUIREMENT_FILTER:-''}
- KIND_FILTER=${KIND_FILTER:-''}
- DESCRIPTION_FILTER=${DESCRIPTION_FILTER:-''}
-
- OUR_USER=${OUR_USER:-''}
-
- FORMAT=${FORMAT:-'$NAME\;$KIND\;$LOCATION\;$PRECEDENCE\;$REQUIREMENTS\;$DESCRIPTION'};
-
- LISTINGS_LIST=$(list_listings)
-
- # do the filtering
- cat $LISTINGS_LIST | grep -v -e "^[[:space:]]*#" -e "^[[:space:]]*$" | sort $SORT_ARGS --key="$SORT_KEY" --field-separator=';' | \
- while read PROFILE; do
- # split fields
- export NAME="`echo $PROFILE | cut --delimiter ';' --fields 1`";
- export KIND="`echo $PROFILE | cut --delimiter ';' --fields 2`";
- export LOCATION="`echo $PROFILE | cut --delimiter ';' --fields 3`";
- export PRECEDENCE="`echo $PROFILE | cut --delimiter ';' --fields 4`";
- export REQUIREMENTS="`echo $PROFILE | cut --delimiter ';' --fields 5`";
- export DESCRIPTION="`echo $PROFILE | cut --delimiter ';' --fields 6`";
-
- export FILE=`grep -l "^$NAME;" $LISTINGS_LIST`;
-
- if (test "$PRECEDENCE"x = x); then
- #unset = lower then anything, so set to insanely low value
- NORM_PRECEDENCE='-999999999999999999';
- else
- NORM_PRECEDENCE=$PRECEDENCE;
- fi;
-
- # if filters don't match -> go to next profile
- if ( (test "${NAME_FILTER:-''}" != '') && (echo "$NAME" | grep -v "$NAME_FILTER" > /dev/null) ) ||
- ( (test "${LOCATION_FILTER:-''}" != '') && (echo "$LOCATION" | grep -v "$LOCATION_FILTER" > /dev/null) ) ||
- ( (test "${PRECEDENCE_FILTER:-''}" != '') && !(test "$NORM_PRECEDENCE" $PRECEDENCE_FILTER) ) ||
- ( (test "${REQUIREMENT_FILTER:-''}" != '') && (echo "$REQUIREMENTS" | grep -v "$REQUIREMENT_FILTER" > /dev/null) ) ||
- ( (test "${KIND_FILTER:-''}" != '') && (echo "$KIND" | grep -v "$KIND_FILTER" > /dev/null) ) ||
- ( (test "${DESCRIPTION_FILTER:-''}" != '') && (echo "$DESCRIPTION" | grep -v "$DESCRIPTION_FILTER" > /dev/null) ); then
- continue;
- fi;
-
- # if we have a username to match for, and requirements are not met
- if (test "$OUR_USER" != '') &&
- !(test_profile_requirements "$PROFILE" "$OUR_USER"); then
- # -> go to next profile
- continue;
- fi;
-
- # if we get here output the profile's information in the requested format
- echo $(sh -c "echo $FORMAT");
- done;
-}
Deleted: trunk/src/desktop-profiles/path
===================================================================
--- trunk/src/desktop-profiles/path 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/path 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,22 +0,0 @@
-#
-# This gconf path file is meant to be used in conjunction with the
-# desktop-profiles package,
-#
-# Default gconf behaviour using this path file with desktop-profiles installed
-# is identical to the behaviour using the default path file from the gconf2
-# pacakge, but allowing activation of additional configuration sources through
-# desktop-profiles
-#
-# See the desktop-profiles (7) man page for more information
-###############################################################################
-
-# Look first at mandatory 'configuration sources' managed by desktop-profiles
-# (those with higher precedence then the user source)
-include $(ENV_MANDATORY_PATH)
-
-# Give users a default storage location, ~/.gconf
-xml:readwrite:$(HOME)/.gconf
-
-# Look for default 'configuration sources' managed by desktop-profiles
-# (those with lower precedence then the user source
-include $(ENV_DEFAULTS_PATH)
Deleted: trunk/src/desktop-profiles/path2listing
===================================================================
--- trunk/src/desktop-profiles/path2listing 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/path2listing 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,267 +0,0 @@
-#!/bin/sh
-# This script is ment to allow you to setup gconf to manage confiuration
-# sources through desktop-profiles.
-#
-# It will read your a path file (the global gconf one by default) and will:
-# - generate the necessary metadata to manage all profiles through
-# desktop-profiles
-# - adapt the global path file to manage all configuration sources with
-# desktop-profiles (unless told not to)
-#
-# (c) 2005 Bart Cornelis <cobaco AT skolelinux no>
-#########################################################################
-
-ROOT_PATH_FILE=/etc/gconf/2/path
-CUSTOM_LISTINGS=/etc/desktop-profiles/desktop-profiles_path2listing.listing
-DEFAULT_LISTINGS=/etc/desktop-profiles/desktop-profiles.listing
-
-# default distance to leave between 2 successive priority sources
-# we're leaving some distance to allow the easy insertion of later profiles
-SOURCE_DISTANCE=50;
-
-# we're processing the global path file by default
-# -> so unless asked not to we'll want to replace it
-GLOBAL_PATH_FILE=true;
-REPLACE_PATH_FILE=true;
-
-print_help () {
-cat <<EOF
-Usage: path2listing [OPTIONS]
- This script facilitates the conversion from:
- - managing gconf configuration sources directly through path files,
- - to managing them with the desktop-profiles package
- and will thus generaly be run only once directly after installing
- desktop-profiles
-
- It will generate the metadata (listing file) needed by desktop-profiles to
- manage the configuration sources that are activated directly or indirectly
- (i.e. through included path files) by the path file it is run on.
-
- After the generation of the metadata the converted path file will be
- replaced by one assuming that desktop-profiles manages activation of
- configuration sources (unless you tell it not to).
-
-Options:
- -d, --distance : precedence distance between different configuration
- sources (defaults to $SOURCE_DISTANCE),
- The idea is to leave some space between precedences so you
- can easily insert other configuration sources later on.
- -f, --file : path file to start conversion from
- (defaults to $ROOT_PATH_FILE)
- -o, --output-file: file to put the generated metadata in (defaults to
- $CUSTOM_LISTINGS)
- --no-replace-file: don't replace path file from which we start the conversion
- with one that manages everything through desktop-profiles
- -h, --help : display this helpmessage
-EOF
-}
-
-# $1 is the path file to look at
-# output is the reverse-priority ordered list of configuration sources that $1
-# contains (directly, or indirectly through nested include directives). The
-# output will ignore the hooks for desktop-profiles if present (as we don't
-# need to generate any metadata for them).
-#
-# Note: not recursing down includes referring to environment variables as we
-# can't be sure they'll resolve the same way when converting, and when
-# running as $random_user, keep them as includes
-# Note: also don't recurse down includes referring to $(HOME) or $(USER), as
-# those are likely user-controlled, keeping as includes
-#############################################################################
-list_sources_in_path_file () {
- # if it's an existing file, process it, otherwise ignore it
- if (test -r "$1"); then
- # strip out comments & empty lines, leave only config sources and includes
- tac "$1" | sed -e "s/^[[:space:]]*//g" -e "s/[[:space:]]*$//g" | \
- grep -v "^#.*\|^$" | while read CONFIG_SOURCE; do
- # ignore desktop-profiles hooks (both the pre and post 1.4.6 versions)
- # because we don't want metadata for them to be generated
- if ( (test "$CONFIG_SOURCE" = 'include $(ENV_MANDATORY_PATH)') ||
- (test "$CONFIG_SOURCE" = 'include *\$(ENV_DEFAULTS_PATH)') ||
- (test "$CONFIG_SOURCE" = 'include /var/cache/desktop-profiles/\$(USER)_mandatory.path') ||
- (test "$CONFIG_SOURCE" = 'include /var/cache/desktop-profiles/\$(USER)_defaults.path') ); then
- true;
- # process nested path files
- elif (echo "$CONFIG_SOURCE" | grep "^include[[:space:]]*" > /dev/null); then
- # check if recursing makes sense (don't recurse when user-controlled or
- # dependend on current environment (which might be influenced by user)
- if (echo "$CONFIG_SOURCE" | grep -e "\$(HOME)" -e "\$(USER)" -e "\$(ENV_.*)" > /dev/null); then
- echo "$CONFIG_SOURCE";
- else
- list_sources_in_path_file $(echo "$CONFIG_SOURCE" | sed "s/^include[[:space:]]*//");
- fi;
- # process regular config sources
- else
- echo $CONFIG_SOURCE;
- fi;
- done;
- fi;
-}
-
-# $1 is the confiuration source that makes up the new profile
-# $2 is the precedence value
-# $3 is the file where it should be added into
-add_as_profile () {
- if (test -r "$3"); then
- mandatory_number="$(expr $(cat "$3" | grep '^mandatory' | wc -l) + 1)";
- default_number="$(expr $(cat "$3" | grep '^default' | wc -l) + 1)";
- else
- mandatory_number=1;
- default_number=1;
- fi;
-
- if (test 0 -lt "$2"); then
- echo "mandatory_$mandatory_number;GCONF;$1;$2;;" >> "$3";
- elif (test 0 -gt "$2");then
- echo "default_$default_number;GCONF;$1;$2;;" >> "$3";
- else
- echo "gconf-user-settings;GCONF;$1;$2;;Default location of user settings" >> $3;
- fi;
-}
-
-# $1 is the file to backup
-# $2 is the reason
-make_backup_of () {
- if (test -e "$1"); then
- # tell user what we're doing
- echo "$1 already exists, and this script wil $2 it."
- echo "-> a backup of named $1.$(date --iso-8601=seconds) will be created."
- echo ;
-
- # make backup of current version
- mv "$1" "$1.$(date --iso-8601=seconds)";
- fi;
-}
-
-#####################
-# Parse command line
-#####################
-while test $# -ge 1; do
- case $1 in
- -d | --distance)
- # takes positive integer as distance (between configuration sources)
- if (test $# -lt 2) || !(echo "$2" | grep -E '^[0-9]+$' > /dev/null); then
- print_help;
- exit;
- else # valid distance -> set it
- SOURCE_DISTANCE="$2";
- fi;
- shift 2;
- ;;
-
- # takes path file to be converted as argument
- -f | --file)
- #validate argument, should be a readable path file
- if (test $# -lt 2) || !(test -r $2); then
- print_help;
- exit;
- else #valid filename -> add to list of files to convert
- ROOT_PATH_FILE="$2";
- if (test "$ROOT_PATH_FILE" != /etc/gconf/2/path) || \
- (test "$ROOT_PATH_FILE" != /etc/gconf/1/path); then
- GLOBAL_PATH_FILE=false;
- fi;
- fi;
- shift 2;
- ;;
-
- # takes name of file that will contain the metada for the
- # converted configuration sources
- -o | --output-file)
- #check for argument
- if (test $# -lt 2); then
- print_help;
- exit;
- else #Change name of metadata file accordingly
- CUSTOM_LISTINGS="$2";
- fi;
- shift 2;
- ;;
-
- # takes boolean value
- --no-replace-file)
- REPLACE_PATH_FILE=false;
- shift;
- ;;
-
- -h| --help | *)
- print_help;
- exit;
- ;;
- esac;
-done;
-
-######################################
-# Check if we need to do anything,
-# and communicate that with the admin
-######################################
- # Check if ROOT_PATH_FILE is equal to ideal path file state
- if (diff $ROOT_PATH_FILE /usr/share/desktop-profiles/path 2>&1 > /dev/null); then
- #equal -> nothing to do
- echo "$ROOT_PATH_FILE file is already converted to desktop-profiles:";
- echo " -> nothing to do";
- echo " -> exiting";
- exit;
- # check for precense of current desktop-profiles hooks
- # if so warn that the precedence might not be correct
- # they're different -> so we need to convert
- elif
- (grep 'include *\$(ENV_MANDATORY_PATH)' "$ROOT_PATH_FILE" 2>&1 > /dev/null) ||
- (grep 'include *\$(ENV_DEFAULTS_PATH)' "$ROOT_PATH_FILE" 2>&1 > /dev/null); then
- true;#FIXME;
- # check for precense of old desktop-profiles hooks
- # if so warn that the precedence might not be correct
- # they're different -> so we need to convert
- elif
- (grep 'include /var/cache/desktop-profiles/\$(USER)_mandatory.path' "$ROOT_PATH_FILE" 2>&1 > /dev/null) ||
- (grep 'include /var/cache/desktop-profiles/\$(USER)_defaults.path' "$ROOT_PATH_FILE" 2>&1 > /dev/null); then
- true;#FIXME;
- else
- echo "Metadata for all configuration sources contained in $ROOT_PATH_FILE";
- echo "(wether contained directly, or indirectly through includes) will be"
- echo "generated and put in $CUSTOM_LISTINGS."
- echo;
- fi;
-
-################################
-# Deal with generating metadata
-################################
- USER_SOURCE_RANK=$(list_sources_in_path_file $ROOT_PATH_FILE | nl | \
- grep 'xml:readwrite:\$(HOME)/.gconf' | sed "s/^[[:space:]]*//g" | cut --fields 1);
-
- # check if file, we'll be messing with already exists, if so create backup
- make_backup_of "$CUSTOM_LISTINGS" regenerate
-
- # iterate over all configuration sources, listed directly or indirectly by the
- # $ROOT_PATH_FILE (by default = /etc/gconf/2/path)
- list_sources_in_path_file $ROOT_PATH_FILE | nl | sed "s/^[[:space:]]*//g" | \
- while read ITEM; do
- # the '- USER_SOURCE_RANK * SOURCE_DISTANCE' at the end is to ensure that
- # the user-source ends up with precedence 0, yielding all mandatory sources
- # with a positive precedence, and all default sources with a negative one
- PRECEDENCE="$(expr $(echo "$ITEM" | cut --fields 1) \* $SOURCE_DISTANCE - $USER_SOURCE_RANK \* $SOURCE_DISTANCE)";
- CONFIG_SOURCE="$(echo "$ITEM" | cut --fields 2)";
-
- # add a profile-metadata entry for this configuration source
- add_as_profile "$CONFIG_SOURCE" "$PRECEDENCE" "$CUSTOM_LISTINGS";
- done;
-
-######################################
-# Deal with changing global path file
-######################################
-if (test $REPLACE_PATH_FILE = true); then
- # make backup-copy of $ROOT_PATH_FILE, before changing it
- if (test -e "$ROOT_PATH_FILE"); then
- # tell user what we're doing
- echo "The global path file will now be replaced with one assuming all "
- echo "configuration sources are managed by desktop-profiles."
- echo "-> a backup named $ROOT_PATH_FILE.$(date --iso-8601=seconds) will be created."
- echo ;
-
- # make backup of current version
- mv "$ROOT_PATH_FILE" "$ROOT_PATH_FILE.$(date --iso-8601=seconds)";
- fi;
-
- # actually replace global path file
- cp /usr/share/desktop-profiles/path "$ROOT_PATH_FILE";
-fi;
Deleted: trunk/src/desktop-profiles/path2listing.1
===================================================================
--- trunk/src/desktop-profiles/path2listing.1 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/path2listing.1 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,53 +0,0 @@
-.TH PATH2LISTING 1 "May 07, 2005" "desktop-profiles"
-
-.SH NAME
-path2listing \- script facilitating the conversion to managing gconf configuration sources with desktop-profiles
-
-.SH SYNOPSIS
-path2listing [options]
-
-.SH DESCRIPTION
-This script takes a single gconf path file (the systemwide one, i.e. /etc/gconf/2/path, when not told otherwise) and reads through it in order to create an ordered list of known configuration sources (it will recurse into included path files when necessary). Using that ordered list it will then create a desktop-profiles_path2listing.listing file containing metadata for all known configuration sources, assigning a precedence value to each encountered configuration source so that:
-.IP
-a) the order of sources is the same
-.IP
-b) there is space between the precedence values of the various sources to allow for inclusion of additional profiles in the future.
-.IP
-c) all mandatory sources have a positive precedence value, and all non-mandatory sources have a negative precedence value
-.PP
-In addition to generating the desktop-profiles_path2listing.listing file, this script will also replace the converted path file by one that assumes that desktop-profiles manages all configuration sources (NOTE: a backup copy of all changed files is made, so you can always go back to the previous situation).
-
-.SH OPTIONS
-.PP
-\-d,\-\-distance
-.IP
-distance between the precedence values of each successive pair of configuration sources (defaults to 50), the idea being that you leave some space to insert future sources.
-.PP
-\-f, \-\-file
-.IP
-path file to convert (defaults to /etc/gconf/2/path)
-.PP
-\-h, \-\-help
-.IP
-display the help message
-.PP
-\-o, \-\-output-file
-.IP
-file to put the generated metadata in (defaults to /etc/desktop-profiles/desktop-profiles_path2listing.listing). If this file exists a backup copy will be made prior to overwriting it.
-.PP
-\-\-no-replace-file
-.IP
-don't replace the path file we're converted with one assuming desktop-profiles manages activation
-
-.SH FILES
-/etc/gconf/2/path - systemwide gconf path file, default path file to convert
-.PP
-/etc/desktop-profiles/desktop-profiles_path2listing.listing - default name for the file containing the generated metadata
-
-
-.SH AUTHOR
-This manual page was written by Bart Cornelis <cobaco at skolelinux.no>.
-.PP
-
-.SH SEE ALSO
-desktop-profiles(7)
Deleted: trunk/src/desktop-profiles/postinst-desktop-profiles
===================================================================
--- trunk/src/desktop-profiles/postinst-desktop-profiles 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/postinst-desktop-profiles 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,4 +0,0 @@
-if( ( test "$1" = "configure" ) &&
- ( test -x "$(which update-profile-cache 2>/dev/null)" ) ); then
- update-profile-cache;
-fi;
Deleted: trunk/src/desktop-profiles/profile-manager
===================================================================
--- trunk/src/desktop-profiles/profile-manager 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/profile-manager 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,46 +0,0 @@
-#!/bin/sh
-# Convenience script to start kommander gui-script from the commandline
-#
-# (c) 2005 Bart Cornelis <cobaco AT skolelinux no>
-###############################################################################
-
-display_message() {
- # if we're in a GUI environment, and kdialog is available pop up an error box
- if (test x != "$DISPLAY"x) && (test -x `which kdialog`) && (which kdialog > /dev/null); then
- kdialog --error "$1";
- # else just output warning
- else
- echo "$1";
- fi;
-}
-
-# test if interpreter for gui-script is available
-if ! (which kmdr-executor > /dev/null); then
- display_message "No kmdr-executor present in path -> exiting\n.";
- exit;
-else
- kmdrBinary=`which kmdr-executor`;
-fi;
-
-
-# check if interpreter is executable
-if !(test -x $kmdrBinary); then
- display_message "$kmdrBinary is not executable -> exiting":
- exit;
-else
- kmdrVersion="`$kmdrBinary --version | grep "^Kommander Executor:" | sed "s/^.*: *\(.*\)/\1/"`";
-fi;
-
-# check if profile-manager kommander script is readable
-if !(test -r /usr/share/desktop-profiles/kommander-scripts/profile-manager.kmdr); then
- display_message "/usr/share/desktop-profiles/kommander-sripts/profile-manager.kmdr is missing or unreadable! -> exiting";
- exit;
-fi;
-
-# Check version and run
-#if (test $kmdrVersion = 1.0) || (echo $kmdrVersion | grep "^0."); then
- $kmdrBinary /usr/share/desktop-profiles/kommander-scripts/profile-manager.kmdr;
-# kommander with new parser -> known not to work with current script
-#else
-# display_message "This script does not yet work with the version of kommander you have installed.\nYou want to try kmdr-executor version 1.0 (kommander packager 1:3.3.2)";
-#fi;
Deleted: trunk/src/desktop-profiles/profile-manager.1
===================================================================
--- trunk/src/desktop-profiles/profile-manager.1 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/profile-manager.1 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,29 +0,0 @@
-.TH PROFILE-MANAGER 1 "May 07, 2005" "desktop-profiles"
-
-.SH NAME
-profile-manager \- starts the gui for configuring the metadata used by desktop-profiles
-
-.SH SYNOPSIS
-profile-manager
-
-.SH DESCRIPTION
-The desktop profiles package needs metadata about the available profiles in order to decide when to activate which profiles. This metadata is contained in the .listing files placed in the /etc/desktop-profiles directory. This convenience script will start a graphical interface for configuring that metadata.
-.PP
-The gui is a kommander script, so you need to have the kommander package installed for the gui to work (the script will check if the necessary prerequisites are present, and tell you what's missing if necessary).
-
-.SH OPTIONS
-.PP
-There are no options
-
-.SH FILES
-/etc/desktop-profiles/*.listing - Files containing the metadata about installed profiles
-
-.SH BUGS
-The gui currently barks at profile metadata containing a single quote in the description.
-
-.SH AUTHOR
-This manual page was written by Bart Cornelis <cobaco at skolelinux.no>.
-.PP
-
-.SH SEE ALSO
-desktop-profiles(7), list-desktop-profiles(1), update-profile-cache(1)
Deleted: trunk/src/desktop-profiles/profile-manager.kmdr
===================================================================
--- trunk/src/desktop-profiles/profile-manager.kmdr 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/profile-manager.kmdr 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,2229 +0,0 @@
-<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
-<class>listDesktopProfilesGUI</class>
-<comment>This script provides a GUI for managing profiles as used by the desktop-profiles package.
-
-© 2004-2005 Bart Cornelis <cobaco AT skolelinux no></comment>
-<author>Bart Cornelis <cobaco AT skolelinux no></author>
-<widget class="Dialog">
- <property name="name">
- <cstring>listDesktopProfilesGUI</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>791</width>
- <height>722</height>
- </rect>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>32767</height>
- </size>
- </property>
- <property name="baseSize">
- <size>
- <width>800</width>
- <height>600</height>
- </size>
- </property>
- <property name="caption">
- <string>Desktop-Profile Manager</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- <string></string>
- <string></string>
- </stringlist>
- </property>
- <property name="useInternalParser">
- <bool>false</bool>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>11</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="ScriptObject" row="0" column="0">
- <property name="name">
- <cstring>refreshList</cstring>
- </property>
- <property name="populationText">
- <string></string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@setGlobal(tmp, at exec(tempfile))
- at exec(list-desktop-profiles --entry-format '$FILE\;$NAME\;$KIND\;$LOCATION\;$PRECEDENCE\;$REQUIREMENTS\;$DESCRIPTION' @filters > @global(tmp))
-
- at profilesAll.setText(@exec(cat @global(tmp)))
- at profiles.setText(@exec("cat @global(tmp) | cut --fields 2,7 --delimiter ';' | sed 's/;/ - /' "));
-
- at exec(rm @global(tmp))</string>
- </stringlist>
- </property>
- </widget>
- <widget class="ListBox" row="0" column="0">
- <property name="name">
- <cstring>profilesAll</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>2</hsizetype>
- <vsizetype>2</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>NoFocus</enum>
- </property>
- <property name="populationText">
- <string>@null</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- </stringlist>
- </property>
- </widget>
- <widget class="QSplitter" row="0" column="0">
- <property name="name">
- <cstring>Splitter2</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="orientation">
- <enum>Vertical</enum>
- </property>
- <property name="toolTip" stdset="0">
- <string>Drag vertically to hide/unhide the filter section</string>
- </property>
- <widget class="ButtonGroup">
- <property name="name">
- <cstring>filters</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="title">
- <string>Only show profiles when:</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@kindFilter @requirementFilter @precedenceFilter @nameFilter @descriptionFilter @locationFilter @userFilter @sortFilter</string>
- <string>@null</string>
- </stringlist>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>11</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLayoutWidget" row="0" column="0">
- <property name="name">
- <cstring>Layout55</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout54</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout53</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout42</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="CheckBox">
- <property name="name">
- <cstring>kindFilter</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>TabFocus</enum>
- </property>
- <property name="text">
- <string>&kind matches</string>
- </property>
- <property name="checked">
- <bool>false</bool>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@null</string>
- <string></string>
- <string>--kind '@kindRegexp'</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>When checked only profiles whose 2nd (=kind) field matches the given regular expression are shown</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>Spacer2</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Preferred</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>45</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- <widget class="CheckBox">
- <property name="name">
- <cstring>requirementFilter</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>TabFocus</enum>
- </property>
- <property name="text">
- <string>re&quirement matches</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@null</string>
- <string></string>
- <string>--requirement '@requirementRegexp'</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>When checked only profiles whose 5th (=requirements) field matches the given regular expression are shown</string>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout39</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="CheckBox">
- <property name="name">
- <cstring>precedenceFilter</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>TabFocus</enum>
- </property>
- <property name="text">
- <string>&precedence</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@null</string>
- <string></string>
- <string>@execBegin
-
-if test "" = '@precedenceRegexp'; then
- echo "@null";
-elif test "@test" = '>'; then
- echo "--precedence 'gt @precedenceRegexp'";
-elif test "@test" = '>='; then
- echo "--precedence 'ge @precedenceRegexp'";
-elif test "@test" = '<'; then
- echo "--precedence 'lt @precedenceRegexp'";
-elif test "@test" = '<='; then
- echo "--precedence 'le @precedenceRegexp'";
-elif test "@test" = '='; then
- echo "--precedence 'eq @precedenceRegexp'";
-elif test "@test" = '<>'; then
- echo "--precedence 'ne @precedenceRegexp'";
-fi
-
- at execEnd</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>When checked only profiles whose precedence value satifies the given comparison are shown</string>
- </property>
- </widget>
- <widget class="ComboBox">
- <item>
- <property name="text">
- <string>></string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>>=</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string><</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string><=</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string><></string>
- </property>
- </item>
- <property name="name">
- <cstring>test</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="currentItem">
- <number>0</number>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout52</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="LineEdit">
- <property name="name">
- <cstring>kindRegexp</cstring>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Takes a regular expression</string>
- </property>
- </widget>
- <widget class="LineEdit">
- <property name="name">
- <cstring>requirementRegexp</cstring>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Takes a regular expression</string>
- </property>
- </widget>
- <widget class="LineEdit">
- <property name="name">
- <cstring>precedenceRegexp</cstring>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Takes a numerical value (may be negative)</string>
- </property>
- </widget>
- </vbox>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout10</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="CheckBox">
- <property name="name">
- <cstring>userFilter</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>TabFocus</enum>
- </property>
- <property name="text">
- <string>req&uirements are met for</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@null</string>
- <string></string>
- <string>--user '@userList'</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>When checked only profiles whose requirements are met for the selected user are shown</string>
- </property>
- </widget>
- <widget class="ComboBox">
- <property name="name">
- <cstring>userList</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="populationText">
- <string>@exec(cat /etc/passwd | cut --fields 1 --delimiter ':' | sort)</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>list of user accounts on this system</string>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
- </widget>
- <widget class="QLayoutWidget" row="0" column="1">
- <property name="name">
- <cstring>Layout28</cstring>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLayoutWidget" row="0" column="1">
- <property name="name">
- <cstring>Layout49</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="LineEdit">
- <property name="name">
- <cstring>nameRegexp</cstring>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Takes a regular expression</string>
- </property>
- </widget>
- <widget class="LineEdit">
- <property name="name">
- <cstring>descriptionRegexp</cstring>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Takes a regular expression</string>
- </property>
- </widget>
- <widget class="LineEdit">
- <property name="name">
- <cstring>locationRegexp</cstring>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Takes a regular expression</string>
- </property>
- </widget>
- </vbox>
- </widget>
- <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>Layout22</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="Label">
- <property name="name">
- <cstring>sortFilter</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>NoFocus</enum>
- </property>
- <property name="text">
- <string>Sort profile list on</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>--sort-key @sortField</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Shown profiles are sorted on the contents of the selected field</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>Spacer6</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Fixed</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>35</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="ComboBox">
- <item>
- <property name="text">
- <string>name</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>kind</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>location</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>precedence</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>requirements</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>description</string>
- </property>
- </item>
- <property name="name">
- <cstring>sortField</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="currentItem">
- <number>3</number>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@expr(@sortField.currentItem+1)</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Shown profiles are sorted on the contents of the selected field</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget" row="0" column="0">
- <property name="name">
- <cstring>Layout50</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout45</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="CheckBox">
- <property name="name">
- <cstring>nameFilter</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>TabFocus</enum>
- </property>
- <property name="text">
- <string>&name matches</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@null</string>
- <string></string>
- <string>--name '@nameRegexp'</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>When checked only profiles whose 1st (=name) field matches the given regular expression are shown</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>Spacer4</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Preferred</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>25</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- <widget class="CheckBox">
- <property name="name">
- <cstring>descriptionFilter</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>&description matches</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@null</string>
- <string></string>
- <string>--description '@descriptionRegexp'</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>When checked only profiles whose 6th (=description) field matches the given regular expression are shown</string>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout47</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="CheckBox">
- <property name="name">
- <cstring>locationFilter</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>TabFocus</enum>
- </property>
- <property name="text">
- <string>location &matches</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@null</string>
- <string></string>
- <string>--location '@locationRegexp'</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>When checked only profiles whose 3rd (=location) field matches the given regular expression are shown</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>Spacer5</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Preferred</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>15</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- </vbox>
- </widget>
- </grid>
- </widget>
- </grid>
- </widget>
- <widget class="ListBox">
- <property name="name">
- <cstring>profiles</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>1</horstretch>
- <verstretch>1</verstretch>
- </sizepolicy>
- </property>
- <property name="resizePolicy">
- <enum>AutoOneFit</enum>
- </property>
- <property name="selectionMode">
- <enum>Single</enum>
- </property>
- <property name="columnMode">
- <enum>FitToWidth</enum>
- </property>
- <property name="populationText">
- <string></string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>List of profiles found in processed .listing files</string>
- </property>
- </widget>
- </widget>
- <widget class="GroupBox" row="1" column="0">
- <property name="name">
- <cstring>detailsSelection</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="title">
- <string>Profile Details</string>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>11</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="ScriptObject" row="0" column="0">
- <property name="name">
- <cstring>isNewScript</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string>@if(isEmpty())
- at listFileCurrent.setEnabled()
- at listFileCurrent.setText(/etc/desktop-profiles/custom.listing)</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@# New Profile (being togled -> still false)
- at if(@String.compare(false, @isNew))
- @listFileCurrent.setEnabled(true)
- @deleteProfile.setEnabled(false)
- @listFileCurrent.setText(/etc/desktop-profiles/custom.listing)
- @commitChanges.setText(@i18n(Add new profile))
- at endif
-
-@# Existing Profile(being togled -> still true)
- at if(@String.compare(true, @isNew))
- @listFileCurrent.setEnabled(false)
- @deleteProfile.setEnabled(true)
- @listFileCurrent.setText(@exec(echo '@profilesAll.selection' | cut --fields 1 --delimiter ';'))
- @commitChanges.setText(@i18n(Save Changes))
- at endif</string>
- </stringlist>
- </property>
- </widget>
- <widget class="GroupBox" row="1" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>requirementsBox</cstring>
- </property>
- <property name="title">
- <string>Activation requirements:</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- </stringlist>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>11</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLayoutWidget" row="0" column="0">
- <property name="name">
- <cstring>Layout36</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="ListBox">
- <property name="name">
- <cstring>requirementsCurrent</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="selectionMode">
- <enum>Single</enum>
- </property>
- <property name="columnMode">
- <enum>FixedNumber</enum>
- </property>
- <property name="rowMode">
- <enum>Variable</enum>
- </property>
- <property name="variableHeight">
- <bool>true</bool>
- </property>
- <property name="populationText">
- <string>@execBegin
-. /usr/share/desktop-profiles/listingmodule
-
-FILE="$(echo '@profilesAll.selection' | cut --fields 1 --delimiter ';')"
-NAME="$(echo '@profilesAll.selection' | cut --fields 2 --delimiter ';')"
-
-REQS="$(grep "^$NAME;" $FILE | cut --fields 5 --delimiter ';')"
-for_each_requirement "$REQS" 'echo'
-
- at execEnd</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@execBegin
-@# escape @widgetText so we do not loose anything
- at setGlobal( tmp, at String.replace( @widgetText, \,\\\\\\\ ) ) @setGlobal( tmp, at String.replace( @global(tmp),$,\\\\\$ ) ) @setGlobal( tmp, at String.replace( @global(tmp), @exec(echo \"),\\\\\" ) )
- at setGlobal( tmp, at String.replace( @global(tmp), @exec(echo \`),\\\\\` ) )
-
- echo "@global(tmp)" |while read REQ; do
- echo -n "$REQ ";
- done;
- at execEnd </string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>list of activation requirements (contained in the 5th field) of selected profile</string>
- </property>
- </widget>
- <widget class="ExecButton">
- <property name="name">
- <cstring>delReq</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="text">
- <string>Remo&ve selected</string>
- </property>
- <property name="populationText">
- <string></string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>true
-
- at requirementsCurrent.removeItem(@requirementsCurrent.findItem(@requirementsCurrent.selection()))</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Removes selected activation requirement from the list</string>
- </property>
- </widget>
- </vbox>
- </widget>
- <widget class="GroupBox" row="0" column="1">
- <property name="name">
- <cstring>GroupBox5</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="title">
- <string>New activation requirement:</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- </stringlist>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>11</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLayoutWidget" row="0" column="0">
- <property name="name">
- <cstring>Layout37</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="Label">
- <property name="name">
- <cstring>addGroupReqLabel1</cstring>
- </property>
- <property name="text">
- <string>When the user is</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- </stringlist>
- </property>
- </widget>
- <widget class="ComboBox">
- <item>
- <property name="text">
- <string>a member of</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>not member of </string>
- </property>
- </item>
- <property name="name">
- <cstring>isMember</cstring>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@execBegin
-
-if test '@widgetText' = 'a member of'; then
- echo '';
-else
- echo '!';
-fi;
-
- at execEnd</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Your choice here determines whether the new requirement concerns membership or non-membership</string>
- </property>
- </widget>
- <widget class="ComboBox">
- <property name="name">
- <cstring>groupList</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="populationText">
- <string>@exec(cat /etc/group | cut --fields 1 --delimiter ':' | sort)</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Choose the group for which (non-)membership is needed to activate this profile</string>
- </property>
- </widget>
- <widget class="ExecButton">
- <property name="name">
- <cstring>addGroupReq</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>120</width>
- <height>32767</height>
- </size>
- </property>
- <property name="text">
- <string>&Add</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>true
-
- at requirementsCurrent.addUniqueItem(@isMember at groupList)</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Only activate profile for users that are (not) a member of the selected group</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget" row="1" column="0">
- <property name="name">
- <cstring>Layout38</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="Label">
- <property name="name">
- <cstring>addCommandReqLabel1</cstring>
- </property>
- <property name="text">
- <string>When</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- </stringlist>
- </property>
- </widget>
- <widget class="LineEdit">
- <property name="name">
- <cstring>commandReq</cstring>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Enter any shell command</string>
- </property>
- </widget>
- <widget class="Label">
- <property name="name">
- <cstring>addCommandReqLabel2</cstring>
- </property>
- <property name="text">
- <string>executes successfully</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- </stringlist>
- </property>
- </widget>
- <widget class="ExecButton">
- <property name="name">
- <cstring>addCommandReq</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>120</width>
- <height>32767</height>
- </size>
- </property>
- <property name="text">
- <string>Add</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>true
-
- at requirementsCurrent.addUniqueItem($(@commandReq))</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Make successful completion of given shell command a requirement for activation of this profile</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="ExecButton" row="2" column="0">
- <property name="name">
- <cstring>deactivate</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Deactivate profile completel&y</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>true
-
- at requirementsCurrent.addUniqueItem(!)</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Adds an unsatisfiable requirement (not in any group)</string>
- </property>
- </widget>
- </grid>
- </widget>
- </grid>
- </widget>
- <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>Layout29</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="Label">
- <property name="name">
- <cstring>listFileLabel</cstring>
- </property>
- <property name="text">
- <string>Listed in</string>
- </property>
- </widget>
- <widget class="FileSelector">
- <property name="name">
- <cstring>listFileCurrent</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="focusPolicy">
- <enum>TabFocus</enum>
- </property>
- <property name="populationText">
- <string>/etc/desktop-profiles/custom.listing</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="selectionFilter">
- <string>*.listing</string>
- </property>
- <property name="selectionCaption">
- <string>Append profile description to</string>
- </property>
- <property name="toolTip" stdset="0">
- <string>.listing file where the profile is defined</string>
- </property>
- </widget>
- <widget class="CheckBox">
- <property name="name">
- <cstring>isNew</cstring>
- </property>
- <property name="text">
- <string>&Is new</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- <property name="populationText">
- <string>false</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>false</string>
- <string>false</string>
- <string>true</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Check if shown details (will) describe a new profile</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>Layout28</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <spacer>
- <property name="name">
- <cstring>Spacer6_2</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>30</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- <widget class="ExecButton">
- <property name="name">
- <cstring>deleteProfile</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>32767</height>
- </size>
- </property>
- <property name="text">
- <string>Delete pr&ofile</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@setGlobal(tmp, @exec(tempfile))
-
- at exec(cat "@listFileCurrent" | grep -v "^@nameCurrent;" > @global(tmp))
- at exec(mv @global(tmp) @listFileCurrent)
-
- at exec(rm @global(tmp))
-</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Delete profile whose details are shown</string>
- </property>
- </widget>
- <widget class="ExecButton">
- <property name="name">
- <cstring>commitChanges</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>32767</height>
- </size>
- </property>
- <property name="text">
- <string>Add new profile</string>
- </property>
- <property name="default">
- <bool>true</bool>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@setGlobal(newProfile, at nameCurrent;@kindCurrent;@locationCurrent;@precedenceCurrent;@requirementsCurrent;@descriptionCurrent)
- at setGlobal(oldProfile, at exec(echo '@profilesAll.item(@profilesAll.currentItem)' | cut --fields 2 --delimiter ';'))
-
- at execBegin
-if test @isNew = false; then
- if test -w "@listFileCurrent" && test "@global(oldProfile)"x != x; then
- sed -i "s%^@global(oldProfile).*%@global(newProfile)%" "@listFileCurrent";
- elif test "@nameCurrent"x != x; then
- kdialog --error "It appears you don't have permission to write @listFileCurrent" || true;
- fi;
-fi;
- at execEnd
-
- at execBegin
-if test @isNew = true; then
- if test -w "@listFileCurrent"; then
- echo "@global(newProfile)" >> "@listFileCurrent";
- elif !(test -e "@listFileCurrent") && test -w "$(dirname @listFileCurrent)"; then
- echo "@global(newProfile)" >> "@listFileCurrent";
- elif test "@nameCurrent"x != x; then
- kdialog --error "It appears you don't have permission to write @listFileCurrent" || true;
- fi;
-fi;
- at execEnd
-</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Add/Update profile whose details are shown</string>
- </property>
- </widget>
- <widget class="ExecButton">
- <property name="name">
- <cstring>cancelChangeSelected</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>32767</height>
- </size>
- </property>
- <property name="text">
- <string>&Cancel Changes</string>
- </property>
- <property name="populationText">
- <string></string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>true
- at profilesAll.setCurrentItem(@profiles.findItem(@profiles.selection))
-
- at nameCurrent.setText(@exec(echo '@profilesAll.selection' | cut --fields 2 --delimiter ';'))
- at kindCurrent.setSelection(@exec(echo '@profilesAll.selection' | cut --fields 3 --delimiter ';'))
- at locationCurrent.setText(@exec(echo '@profilesAll.selection' | cut --fields 4 --delimiter ';'))
- at precedenceCurrent.setText(@exec(echo '@profilesAll.selection' | cut --fields 5 --delimiter ';'))
- at descriptionCurrent.setText(@exec(echo '@profilesAll.selection' | cut --fields 7 --delimiter ';'))
-
- at isNew.setChecked(false)
- at commandReq.clear()
-</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>Forget changes made to shown profile details</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget" row="0" column="0">
- <property name="name">
- <cstring>Layout36</cstring>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="LineEdit" row="0" column="1" rowspan="1" colspan="2">
- <property name="name">
- <cstring>nameCurrent</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="populationText">
- <string></string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>1st field (=name) of selected profile</string>
- </property>
- </widget>
- <widget class="QLayoutWidget" row="0" column="0" rowspan="2" colspan="1">
- <property name="name">
- <cstring>Layout28</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>Layout27</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="Label">
- <property name="name">
- <cstring>nameLabel</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Name:</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>Spacer7</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Preferred</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>33</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- <widget class="Label">
- <property name="name">
- <cstring>precedenceLabel</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="frameShape">
- <enum>NoFrame</enum>
- </property>
- <property name="frameShadow">
- <enum>Plain</enum>
- </property>
- <property name="text">
- <string>Precedence:</string>
- </property>
- </widget>
- </vbox>
- </widget>
- <widget class="QLayoutWidget" row="1" column="2">
- <property name="name">
- <cstring>Layout25</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="Label">
- <property name="name">
- <cstring>kindLabel</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Kind:</string>
- </property>
- </widget>
- <widget class="ComboBox">
- <item>
- <property name="text">
- <string>XDG_CONFIG</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>XDG_DATA</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>KDE</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>GCONF</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>GNUSTEP</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>ROX</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>UDE</string>
- </property>
- </item>
- <property name="name">
- <cstring>kindCurrent</cstring>
- </property>
- <property name="populationText">
- <string></string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>2nd field (=kind) of selected profile</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="LineEdit" row="1" column="1">
- <property name="name">
- <cstring>precedenceCurrent</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>45</width>
- <height>0</height>
- </size>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>4th field (=precedence value) of selected profile</string>
- </property>
- </widget>
- </grid>
- </widget>
- <widget class="QLayoutWidget" row="0" column="1">
- <property name="name">
- <cstring>Layout26</cstring>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>6</number>
- </property>
- <widget class="Label" row="1" column="0">
- <property name="name">
- <cstring>locationLabel</cstring>
- </property>
- <property name="text">
- <string>Location(s):</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- </stringlist>
- </property>
- </widget>
- <widget class="Label" row="0" column="0">
- <property name="name">
- <cstring>descriptionLabel</cstring>
- </property>
- <property name="text">
- <string>Description:</string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string></string>
- </stringlist>
- </property>
- </widget>
- <widget class="LineEdit" row="1" column="1">
- <property name="name">
- <cstring>locationCurrent</cstring>
- </property>
- <property name="populationText">
- <string></string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>3rd field of selected profile</string>
- </property>
- </widget>
- <widget class="LineEdit" row="0" column="1">
- <property name="name">
- <cstring>descriptionCurrent</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="populationText">
- <string></string>
- </property>
- <property name="associations" stdset="0">
- <stringlist>
- <string>@widgetText</string>
- </stringlist>
- </property>
- <property name="toolTip" stdset="0">
- <string>6th field (=description) of selected profile</string>
- </property>
- </widget>
- </grid>
- </widget>
- </grid>
- </widget>
- </grid>
-</widget>
-<connections>
- <connection>
- <sender>listDesktopProfilesGUI</sender>
- <signal>widgetOpened()</signal>
- <receiver>userList</receiver>
- <slot>populate()</slot>
- </connection>
- <connection>
- <sender>profiles</sender>
- <signal>selected(int)</signal>
- <receiver>precedenceCurrent</receiver>
- <slot>populate()</slot>
- </connection>
- <connection>
- <sender>profiles</sender>
- <signal>selectionChanged()</signal>
- <receiver>cancelChangeSelected</receiver>
- <slot>startProcess()</slot>
- </connection>
- <connection>
- <sender>listDesktopProfilesGUI</sender>
- <signal>widgetOpened()</signal>
- <receiver>groupList</receiver>
- <slot>populate()</slot>
- </connection>
- <connection>
- <sender>cancelChangeSelected</sender>
- <signal>clicked()</signal>
- <receiver>requirementsCurrent</receiver>
- <slot>populate()</slot>
- </connection>
- <connection>
- <sender>profiles</sender>
- <signal>selectionChanged()</signal>
- <receiver>requirementsCurrent</receiver>
- <slot>populate()</slot>
- </connection>
- <connection>
- <sender>profiles</sender>
- <signal>selected(int)</signal>
- <receiver>requirementsCurrent</receiver>
- <slot>populate()</slot>
- </connection>
- <connection>
- <sender>isNew</sender>
- <signal>toggled(bool)</signal>
- <receiver>isNewScript</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>listDesktopProfilesGUI</sender>
- <signal>widgetOpened()</signal>
- <receiver>listFileCurrent</receiver>
- <slot>populate()</slot>
- </connection>
- <connection>
- <sender>cancelChangeSelected</sender>
- <signal>clicked()</signal>
- <receiver>isNewScript</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>profiles</sender>
- <signal>selectionChanged()</signal>
- <receiver>isNewScript</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>deleteProfile</sender>
- <signal>clicked()</signal>
- <receiver>isNewScript</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>deleteProfile</sender>
- <signal>clicked()</signal>
- <receiver>requirementsCurrent</receiver>
- <slot>populate()</slot>
- </connection>
- <connection>
- <sender>deleteProfile</sender>
- <signal>clicked()</signal>
- <receiver>cancelChangeSelected</receiver>
- <slot>startProcess()</slot>
- </connection>
- <connection>
- <sender>listDesktopProfilesGUI</sender>
- <signal>widgetOpened()</signal>
- <receiver>profiles</receiver>
- <slot>setFocus()</slot>
- </connection>
- <connection>
- <sender>kindFilter</sender>
- <signal>toggled(bool)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>requirementFilter</sender>
- <signal>toggled(bool)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>precedenceFilter</sender>
- <signal>toggled(bool)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>userFilter</sender>
- <signal>toggled(bool)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>nameFilter</sender>
- <signal>toggled(bool)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>descriptionFilter</sender>
- <signal>toggled(bool)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>locationFilter</sender>
- <signal>toggled(bool)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>kindRegexp</sender>
- <signal>returnPressed()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>kindRegexp</sender>
- <signal>lostFocus()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>requirementRegexp</sender>
- <signal>returnPressed()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>requirementRegexp</sender>
- <signal>lostFocus()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>precedenceRegexp</sender>
- <signal>lostFocus()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>precedenceRegexp</sender>
- <signal>returnPressed()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>nameRegexp</sender>
- <signal>lostFocus()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>nameRegexp</sender>
- <signal>returnPressed()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>descriptionRegexp</sender>
- <signal>lostFocus()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>descriptionRegexp</sender>
- <signal>returnPressed()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>locationRegexp</sender>
- <signal>returnPressed()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>locationRegexp</sender>
- <signal>lostFocus()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>test</sender>
- <signal>widgetTextChanged(const QString)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>deleteProfile</sender>
- <signal>clicked()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>commitChanges</sender>
- <signal>clicked()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>sortField</sender>
- <signal>widgetTextChanged(const QString&)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>listDesktopProfilesGUI</sender>
- <signal>widgetTextChanged(const QString&)</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
- <connection>
- <sender>listDesktopProfilesGUI</sender>
- <signal>widgetOpened()</signal>
- <receiver>refreshList</receiver>
- <slot>execute()</slot>
- </connection>
-</connections>
-<tabstops>
- <tabstop>kindFilter</tabstop>
- <tabstop>kindRegexp</tabstop>
- <tabstop>requirementFilter</tabstop>
- <tabstop>requirementRegexp</tabstop>
- <tabstop>precedenceFilter</tabstop>
- <tabstop>test</tabstop>
- <tabstop>precedenceRegexp</tabstop>
- <tabstop>userFilter</tabstop>
- <tabstop>userList</tabstop>
- <tabstop>nameFilter</tabstop>
- <tabstop>nameRegexp</tabstop>
- <tabstop>descriptionFilter</tabstop>
- <tabstop>descriptionRegexp</tabstop>
- <tabstop>locationFilter</tabstop>
- <tabstop>locationRegexp</tabstop>
- <tabstop>sortField</tabstop>
- <tabstop>profiles</tabstop>
- <tabstop>nameCurrent</tabstop>
- <tabstop>descriptionCurrent</tabstop>
- <tabstop>precedenceCurrent</tabstop>
- <tabstop>kindCurrent</tabstop>
- <tabstop>locationCurrent</tabstop>
- <tabstop>requirementsCurrent</tabstop>
- <tabstop>delReq</tabstop>
- <tabstop>isMember</tabstop>
- <tabstop>groupList</tabstop>
- <tabstop>addGroupReq</tabstop>
- <tabstop>commandReq</tabstop>
- <tabstop>addCommandReq</tabstop>
- <tabstop>deactivate</tabstop>
- <tabstop>listFileCurrent</tabstop>
- <tabstop>isNew</tabstop>
- <tabstop>commitChanges</tabstop>
- <tabstop>cancelChangeSelected</tabstop>
- <tabstop>profilesAll</tabstop>
-</tabstops>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
Deleted: trunk/src/desktop-profiles/profile-snippet
===================================================================
--- trunk/src/desktop-profiles/profile-snippet 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/profile-snippet 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,13 +0,0 @@
-#!/bin/sh
-#
-# Make sure that people starting graphical clients over SSH get the correct
-# settings, i.e. make sure to run the profile activation script
-############################################################################
-
-# testing SSH_CLIENT as the woody ssh doesn't set SSH_CONNECTION
-# also testing SSH_CONNECTION as the current ssh manpage no longer mentions
-# SSH_CLIENT, so it appears that variable is being phased out.
-if ( ( (test -n "${SSH_CLIENT}") || (test -n "${SSH_CONNECTION}") ) && \
- (test -n "${DISPLAY}") ); then
- . /etc/X11/Xsession.d/20desktop-profiles_activateDesktopProfiles
-fi;
Deleted: trunk/src/desktop-profiles/update-profile-cache
===================================================================
--- trunk/src/desktop-profiles/update-profile-cache 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/update-profile-cache 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,119 +0,0 @@
-#!/bin/sh
-#
-# This script checks whether generating a cache of the wanted profile
-# assignment makes sense, and if so (re)generate the cache if it's out of date
-#
-# Supported CACHE_TYPES:
-# - static: used when profiles are either activated machine-wide or not at all
-# - none: used when we either don't want or don't support a cache
-# TODO: caching in the non-static case
-###############################################################################
-
-#################
-# initialization
-#################
- # get user preferences
- if (test -r /etc/default/desktop-profiles); then
- . /etc/default/desktop-profiles;
- fi;
-
- #failsave in case default file is deleted
- LISTINGS_DIRS=${LISTINGS_DIRS:-'/etc/desktop-profiles'}
- CACHE_DIR=${CACHE_DIR:-'/var/cache/desktop-profiles'}
- CACHE_FILE="$CACHE_DIR/activated_profiles"
-
-##############################################
-# Check wether generating a cache makes sense
-##############################################
- # if is true when there's at least 1 non-deactivated profile with a
- # group or command requirment
- # (a group or command requirement means at least 1 character in the
- # requirement that's neither whitespace nor '!')
- if( test $(list-desktop-profiles -e '$REQUIREMENTS' -r '[^[:space:]!]' | \
- grep -v '^![[:space:]]\|[[:space:]]!$\|[[:space:]]![[:space:]]\|^!$' | \
- wc -l) -ne 0); then
- CACHE_TYPE=none;
- else
- CACHE_TYPE=static
- fi;
-
-###########################################
-# generate $CACHE_FILE if that makes sense
-###########################################
- if (test "$CACHE_TYPE" = static); then
- #if:
- # - cache doesn't exist yet or
- # - last modification time of any metadata file is newer then the cache
- if !(test -e "$CACHE_FILE") ||
- !(test $(ls -t -1 /etc/desktop-profiles/*.listing \
- /etc/default/desktop-profiles \
- "$CACHE_FILE" 2> /dev/null | \
- head -1) = "$CACHE_FILE"); then
-
- # delete old cache (otherwise activateDesktopProfiles reuses it)
- rm -f "$CACHE_FILE";
-
- # make sure we only use the metadata files
- KDEDIRS='';XDG_CONFIG_DIRS='';XDG_DATA_DIRS='';CHOICESPATH='';
- GNUSTEP_PATHLIST='';UDEdir='';
-
- # generate profile settings
- . /etc/X11/Xsession.d/20desktop-profiles_activateDesktopProfiles;
-
- # move generated path files to cache dir, and set env vars accordingly
- if (test -e "$MANDATORY_PATH" ); then
- # sanity check
- mkdir -p "$CACHE_DIR";
-
- #do it with cat+rm instead of mv to ensure correct permissions
- cat "$MANDATORY_PATH" > "$CACHE_DIR/mandatory_path";
- rm -f "$MANDATORY_PATH";
- MANDATORY_PATH="$CACHE_DIR/mandatory_path";
- fi;
- if (test -e "$DEFAULTS_PATH" ); then
- #sanity check
- mkdir -p "$CACHE_DIR";
-
- #do it with cat+rm instead of mv to ensure correct permissions
- cat "$DEFAULTS_PATH" > "$CACHE_DIR/defaults.path";
- rm -f "$DEFAULTS_PATH";
- DEFAULTS_PATH="$CACHE_DIR/defaults.path";
- fi;
-
- # save profile settings to $CACHE_FILE
- mkdir -p "$CACHE_DIR";
- env | grep 'KDEDIRS\|XDG_CONFIG_DIRS\|XDG_DATA_DIRS\|CHOICESPATH\|UDEdir\|GNUSTEP_PATHLIST\|MANDATORY_PATH\|DEFAULTS_PATH' > "$CACHE_FILE";
-
- # Add markers for env variables according to personality type
- # markers will be filled in at X-start
- case "$PERSONALITY" in
- rude)
- sed -i -e 's/^\(KDEDIRS=.*\)$/\1:$KDEDIRS/' \
- -e 's/^\(XDG_CONFIG_DIRS=.*\)$/\1:$XDG_CONFIG_DIRS/' \
- -e 's/^\(XDG_DATA_DIRS=.*\)$/\1:$XDG_DATA_DIRS/' \
- -e 's/^\(CHOICESPATH=.*\)$/\1:$CHOICESPATH/' \
- -e 's/^\(GNUSTEP_PATHLIST=.*\)$/\1:$GNUSTEP_PATHLIST/' \
- -e 's/^\(UDEdir=.*\)$/\1:$UDEdir/' \
- "$CACHE_FILE";
- ;;
-
- sheep | autocrat)
- #no markers to add
- ;;
-
- polite | *)
- sed -i -e 's/^\(KDEDIRS=\)\(.*\)$/\1$KDEDIRS:\2/' \
- -e 's/^\(XDG_CONFIG_DIRS=\)\(.*\)$/\1$XDG_CONFIG_DIRS:\2/' \
- -e 's/^\(XDG_DATA_DIRS=\)\(.*\)$/\1$XDG_DATA_DIRS:\2/' \
- -e 's/^\(CHOICESPATH=\)\(.*\)$/\1$CHOICESPATH:\2/' \
- -e 's/^\(GNUSTEP_PATHLIST=\)\(.*\)$/\1$GNUSTEP_PATHLIST:\2/' \
- -e 's/^\(UDEdir=\)\(.*\)$/\1$UDEdir:\2/' \
- "$CACHE_FILE";
- ;;
- esac;
- fi;
- # end static cache generation
- else
- # we don't want to use the cache so make sure no old one is left behind
- rm -f "$CACHE_FILE";
- fi;
Deleted: trunk/src/desktop-profiles/update-profile-cache.1
===================================================================
--- trunk/src/desktop-profiles/update-profile-cache.1 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/update-profile-cache.1 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,26 +0,0 @@
-.TH UPDATE-PROFILE-CACHE 1 "December 13, 2006" "desktop-profiles"
-
-.SH NAME
-update-profile-cache \- (re)generate profile assignment cache
-
-.SH SYNOPSIS
-update-profile-cache
-
-.SH DESCRIPTION
-Running this script (re)generates the cache of profile assignments used by desktop-profiles. By default this script is run automatically once a day by a cron script.
-.
-.IP NOTE:
-No cache of assignments will be generated in cases where cache use isn't supported by desktop-profiles (at the moment caching profile assingments is only supported in the simple case when no group or command requirements are used for activation of profiles, i.e. when we have a static machine-wide profile assignment).
-
-.SH FILES
-/etc/desktop-profiles/*.listing - Files containing the metadata about installed profiles
-.PP
-/etc/default/desktop-profiles - File containing default settings for this script
-
-.SH AUTHOR
-This manual page was written by Bart Cornelis <cobaco at skolelinux.no>.
-.PP
-
-.SH SEE ALSO
-desktop-profiles(7), profiles-manager(1), list-desktop-profiles(1)
-
Deleted: trunk/src/desktop-profiles/zlogin-snippet
===================================================================
--- trunk/src/desktop-profiles/zlogin-snippet 2014-06-09 21:16:54 UTC (rev 83472)
+++ trunk/src/desktop-profiles/zlogin-snippet 2014-06-11 16:57:47 UTC (rev 83473)
@@ -1,23 +0,0 @@
-#!/bin/zsh
-#
-# This fixes the desktop-profiles corner-case where a graphical client is
-# started through an ssh -X session (in which the Xsession.d scripts aren't
-# run, so we need to make sure the profiles are activated according to the
-# specified settings at login).
-#############################################################################
-
-# testing SSH_CLIENT as the woody ssh doesn't set SSH_CONNECTION
-# also testing SSH_CONNECTION as the current ssh manpage no longer mentions
-# SSH_CLIENT, so it appears that variable is being phased out.
-if ( (test -n "${SSH_CLIENT}") || (test -n "${SSH_CONNECTION}") ) && \
- (test -n "${DISPLAY}"); then
- # zsh needs the shwordsplit option set otherwise activateDesktopProfiles
- # script wil error out
- if (setopt | grep shwordsplit); then
- source /etc/X11/Xsession.d/20desktop-profiles_activateDesktopProfiles;
- else
- setopt shwordsplit;
- source /etc/X11/Xsession.d/20desktop-profiles_activateDesktopProfiles;
- unsetopt shwordsplit;
- fi;
-fi;
More information about the debian-edu-commits
mailing list