Package: zoidberg
Version: 0.95-1
Severity: wishlist
Tags: patch

Hi,

in order to fix bug #344030 for users of zoidberg I need to execute 
some code in /etc/zoidrc (there unfortunately doesn't seem to be a 
non-shell-specific way to deal with the corner case in that bug).

Attached are patches with 2 competing solutions to do so:
1) modularized_zoidrc.patch: this adds looking for a /etc/zoidrc.d
   directory and sourcing all scripts in that directory when present
   -> IMO this is the preferred solution as:
      - it can be used by other packages also (e.g. the user-es, and user-de 
        configuration packages could use this to configure things for zsh
        users)
      - doesn't clutter the system unnecessarely (though minimally) when
        desktop-profiles isn't installed .
2) with_bugfix_zoidrc.patch: this just adds the shell-snippet needed to fix
   bug #344030 directly into /etc/zoidrc
--
Cheers, cobaco

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






--- default_zoidrc	2006-02-10 14:57:34.000000000 +0100
+++ modularized_zoidrc	2006-02-10 14:36:11.000000000 +0100
@@ -91,3 +91,10 @@
 		grep => 'grep --color=auto',
 	 } );
 }
+
+# allow modularized additions to customize the shell environment
+if ( -d '/etc/zoidrc.d') {
+  for (`ls /etc/zoidrc.d/*`) { 
+    s/\n//; source "$_";
+  }
+}  
--- default_zoidrc	2006-02-10 14:57:34.000000000 +0100
+++ with_bugfix_zoidrc	2006-02-10 14:39:03.000000000 +0100
@@ -91,3 +91,29 @@
 		grep => 'grep --color=auto',
 	 } );
 }
+
+### fixes for bug #34403 of desktop-profiles for users of zoidberg
+# 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`;
+}

Attachment: pgph6FzLAUirr.pgp
Description: PGP signature

Reply via email to