Nicolas:

> On Thu, Aug 13, 2009 at 03:08:34PM -0500, Brian Cameron wrote:
>> I am fairly confident that a change to hardcode the list to a
>                                           ^^^^^^^^
>> configuration key would not be accepted upstream.  The upstream GDM
>> community has worked hard to try and make the Face Browser more usable
>> for the average user.  In other words, people want GDM to "just work"
>> out of the box, without needing to do special configuration to specify
>> a list of users to include.
>
> I never said anything about "hardcoding" anything.  Quite the contrary.

I thought you were suggesting that the list of users to be shown in the
face browser be specified by GDM configuration, rather than using
heuristics to decide which users to show.  The word "hardcoding" was
a poor word choice on my part.  What I meant was:

- We want to avoid a sysadmin needing to configure GDM to specify what
   users to include in the face browser.
- An opt-in mechanism has been suggested.  Perhaps you mean that after
   authentication, the GDM GUI would ask the user if they want to show
   up in the face browser or not, and the configuration would be modified
   to only include users who opt-in.  Something like this could work,
   though it would be a fair bit of work to get it right with upstream.
   For example, how do users change their mind if they picked "No", but
   then decide "Yes" later (or vice versa).  Does GDM need new GUI
   elements to allow users to change their setting, and if so, how to
   properly integrate this into the overall desktop experience.  Not
   impossible to implement, but time consuming.

> Clearly GDM's face browser cannot ""just work" out of the box" if there
> are no face pics, and when the user takes/installs the face pic the user
> can then just be added (silently or otherwise) to the face browser list.

If the user does not have a face picture, then GDM just shows the
username in the Face Browser list without the image next to it.  So,
currently the logic probes the $HOME directory and puts the image next
to the username if an image exists.  So, it does "just work" out of the
box even if the user has no image.

> I see nothing controversial about that, and plenty controversial about
> the heuristics you've described.  I think the subject ought to at least
> be broached with the upstream community, and if they'll take #ifdef
> SOLARIS code from you anyways, then just do it.
>
> But, you've proffered a solution that gets close -- let's work with it:
>
>> After talking with the upstream GDM developers, the following change
>> would be acceptable to go upstream:
>>
>> - The SUNWgnome-display-mgr-root package would install a directory
>>    /var/cache/gdm.
>
> Yes, let's cache dmrc and face pics.
>
>> - At run-time GDM would create a directory /var/cache/gdm/user-$uid
>>    when a user logs in, if the directory does not already exist.  In
>>    this file will be placed two files: dmrc and face.
>
> Yup.
>
>> - If the /var/cache/gdm/user-$uid/dmrc file does not exist, then
>>    GDM will log the user into the default session/language or whichever
>>    ones they selected in the GUI.  Then it will save the dmrc file to
>>    the cache with the default settings.  On next login, the defaults
>>    will be read from the cache and not the user's $HOME directory.
>
> The cache should also be updated at logout time, if at all possible.
> (But the system component doing a logout-time update wouldn't
> necessarily be part of GDM.)

A logout update is not necessary for caching this file since the choices
can only be selected in the login GUI before authenticating.  If the
values change, you know they have changed before authentication.

>> - On first login the /var/cache/gdm/user-$uid/face file will not
>>    exist so the user will see a generic user icon for their face.
>>    After authentication, GDM will check if the user has a defined
>>    face and copy it to the cached file.  Also, on logout, GDM will check
>>    again if the user has a defined face and copy it to the cached file.
>>    This way the face image will be available on next login if the user
>>    defined it during their session.  Obviously the face image will only
>>    be copied to the cache if one is not already in the cache or if the
>>    cached file is older.  Using this technique, GDM would only access
>>    the face images from the cache, and not the user's $HOME directory.
>
> IMO an option to not include users in the face browser who lack cached
> face pics is necessary:

Why?  The Face Browser just shows the username with no picture in this
case.

> when that option is enabled then GDM would not
> need any local user heuristics.  I find such heuristics rather
> objectionable.

The heuristics have nothing to do with the image.  The heuristics are
used to determine which users show up in the Face Browser at all.
Normally you only want the local users to show up in the Face Browser.

>> If it is a TCR requirement for GDM to work this way before it
>> integrates, then we can make it work this way.
>>
>> Is that reasonable?
>
> It is reasonable, except for that one minor issue mentioned above.

Brian


Reply via email to