Hi Brian,

A lot of valid points.
May be we should move the discussion into the bug itself,
http://defect.opensolaris.org/bz/show_bug.cgi?id=11467
since some comments have been made there.

-Ghee

Brian Cameron wrote:
>
> Ghee:
>
> To me, this seems a partial, or short-term, solution.  However, you
> do not say that it is, so I have some questions.
>
> Currently, SRSS software works on many different distributions (such
> as Red Hat, Ubuntu, Novell, etc.) and unless we get these sorts of
> changes upstream, then people using SRSS on non-OpenSolaris distros will
> still have problems with these undesired autostart programs still
> being available by default.
>
> So I wonder, what technique should be used to ensure that SRSS works
> properly on all distros?  If the solution is that the SRSS install
> process should disable these autostart files (perhaps by setting
> Hidden=true in them, by removing them, or moving them aside), then
> it would seem to make the most sense to use this technique on
> OpenSolaris as well, rather than treating OpenSolaris as a special
> case.  So, is this a temporary solution until SRSS adds something to
> their install process to manage this?
>
> Or, if we are hoping to get this sort of change upstream, then I wonder
> why this is coded in a Sun Ray specific manner.  It would seem more
> likely to get upstream if we had some general mechanism that could be
> used for a wider array of purposes.  For example, perhaps the desktop
> file should have a key that enables or disables the desktop file based
> on whether an environment variable or X-property is set.
>
> Have we discussed this extension with the upstream Free Desktop
> community to see if some sort of general mechanism could be added
> to the desktop specification to manage this sort of thing in a way
> that could go upstream and make Sun Ray work better across all distros?
> I would think that the xdg at lists.freedesktop.org mailing list would be
> the right place to discuss this.
>
> I would think we should have some upstream discussion before adding
> such patches to our build, unless this is intended to be a short-term
> fix until the SRSS software adds any needed code to their install
> scripts.
>
> Brian
>
>
>> This is a fix to provide some level of support for not automatically 
>> starting some applications which are deemed unnecessary when user is 
>> login on a Sun Ray DTU as described in 
>> http://defect.opensolaris.org/bz/show_bug.cgi?id=11467
>>
>> The fix here in gnome-session is to check for the presence and value 
>> of the key
>>
>> X-SUNRAY-Disable=true
>>
>> and gnome-session checks for the presence of the X-property, 
>> _SUN_SUNRAY_HOME
>> to indicate that is a DTU and hence not to start up the application 
>> associated with the desktop file.
>>
>> -----
>> Index: base-specs/gnome-session.spec
>> ===================================================================
>> --- base-specs/gnome-session.spec    (revision 19421)
>> +++ base-specs/gnome-session.spec    (working copy)
>> @@ -71,6 +71,8 @@
>>  Patch18:     gnome-session-18-fastreboot.diff
>>  #owner:gheet date:2009-09-10 type:bug doo:11230
>>  Patch19:     gnome-session-19-remove-dup.diff
>> +#owner:gheet date:2009-09-10 type:branding  doo:11467
>> +Patch20:     gnome-session-20-sunray-profile.diff
>>
>>
>>  URL:          http://www.gnome.org
>> @@ -126,6 +128,7 @@
>>  %patch17 -p1
>>  #%patch18 -p1
>>  %patch19 -p1
>> +%patch20 -p1
>>
>>  %build
>>  %ifos linux
>>
>>
>> $ cat patches/gnome-session-20-sunray-profile.diff
>> diff -urN -x'*nfs*' 
>> gnome-session-2.27.92/gnome-session/gsm-autostart-app.c 
>> ../SUNWgnome-session-2.27.92.hacked/gnome-session-2.27.92/gnome-session/gsm-autostart-app.c
>>  
>>
>> --- gnome-session-2.27.92/gnome-session/gsm-autostart-app.c    
>> 2009-07-01 13:45:30.000000000 +0100
>> +++ 
>> ../SUNWgnome-session-2.27.92.hacked/gnome-session-2.27.92/gnome-session/gsm-autostart-app.c
>>     
>> 2009-09-21 14:41:00.117490099 +0100
>> @@ -28,6 +28,7 @@
>>
>>  #include <glib.h>
>>  #include <gio/gio.h>
>> +#include <gdk/gdkx.h>
>>
>>  #include <gconf/gconf-client.h>
>>
>> @@ -99,6 +100,38 @@
>>  }
>>
>>  static gboolean
>> +is_sunray_client (void)
>> +{
>> +        Atom          sunray_client_id;
>> +
>> +        sunray_client_id = XInternAtom (GDK_DISPLAY (),
>> +                                        "_SUN_SUNRAY_HOME", True);
>> +
>> +        if (sunray_client_id == None) {
>> +                return FALSE;
>> +        }
>> +    else return TRUE;
>> +}
>> +
>> +
>> +static gboolean
>> +is_disabled_for_sunray_client (GsmApp *app)
>> +{
>> +    GsmAutostartAppPrivate *priv;
>> +
>> +    priv = GSM_AUTOSTART_APP (app)->priv;
>> +
>> +    if (egg_desktop_file_has_key (priv->desktop_file,
>> +                      "X-SUNRAY-Disable", NULL) &&
>> +        egg_desktop_file_get_boolean (priv->desktop_file,
>> +                                          "X-SUNRAY-Disable", NULL) &&
>> +        is_sunray_client ())
>> +        return TRUE;
>> +    else
>> +        return FALSE;
>> +}
>> +
>> +static gboolean
>>  is_disabled (GsmApp *app)
>>  {
>>          GsmAutostartAppPrivate *priv;
>> @@ -130,6 +163,10 @@
>>                  return TRUE;
>>          }
>>
>> +    /* Add additional check for Sun Ray DTU */
>> +    if (is_disabled_for_sunray_client (app))
>> +        return TRUE;
>> +
>>          /* Do not check AutostartCondition - this method is only to 
>> determine
>>           if the app is unconditionally disabled */
>>
>>
>>
>>
>

Reply via email to