gdm: Accessibility icon missing in log in screen

  • Done
  • quality assurance status badge
Details
4 participants
  • Dariqq
  • Liliana Marie Prikler
  • Luis Felipe
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Luis Felipe
Severity
normal
Merged with
L
L
Luis Felipe wrote on 22 Nov 2022 21:36
(name . Luis Felipe via Bug reports for GNU Guix)(address . bug-guix@gnu.org)
2y8GkCDBpAUVvqJ8mOO9N0Co9cME1YQOiJAnGa7NJARYTg1TraXbAmPs_ZM5FjGJnQoHYbsdnXU1b4dpcIFyujfecDWYXmiPKpOkYhD-pgs=@protonmail.com
In the log in screen, top-right corner of the screen, the accessibility button is there, but its icon is missing. A placeholder image is shown instead.

Guix System 8280429
gdm 42.0




---
Luis Felipe López Acevedo
Attachment: signature.asc
M
M
Maxim Cournoyer wrote on 26 Nov 2022 03:44
control message for bug #59489
(address . control@debbugs.gnu.org)
87ilj2fn9a.fsf@gmail.com
merge 59489 57292
quit
M
M
Maxim Cournoyer wrote on 20 Jan 04:12 +0100
Re: bug#59489: gdm: Accessibility icon missing in log in screen
(name . Dariqq)(address . dariqq@posteo.net)
877ck4itp3.fsf_-_@gmail.com
Hi Dariqq,

Thanks for working toward a fix for this.

Dariqq <dariqq@posteo.net> writes:

Toggle quote (36 lines)
> gdm needs the "/share" subdirectory of these packages present in XDG_DATA_DIRS
> such that the accessibility settings work:
> - gnome-control-center: For the icon.
> - dconf: To be able to change settings.
> - at-spi2-core: contains accessibiltiy dbus-service.
>
> * gnu/services/xorg.scm (<gdm-configuration>)[gnome-shell-assets]: Add
> at-spi2-core, dconf, gnome-control-center.
>
> Change-Id: I71138ef52af6d440fadc43425b0fc48b186dcc40
> ---
> gnu/services/xorg.scm | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
> index 1ee15ea90c..27c8aa40c3 100644
> --- a/gnu/services/xorg.scm
> +++ b/gnu/services/xorg.scm
> @@ -51,6 +51,7 @@ (define-module (gnu services xorg)
> #:use-module (gnu packages freedesktop)
> #:use-module (gnu packages gnustep)
> #:use-module (gnu packages gnome)
> + #:use-module (gnu packages gtk)
> #:use-module (gnu packages admin)
> #:use-module (gnu packages bash)
> #:use-module (gnu system shadow)
> @@ -1039,7 +1040,10 @@ (define-record-type* <gdm-configuration>
> (debug? gdm-configuration-debug? (default #f))
> (default-user gdm-configuration-default-user (default #f))
> (gnome-shell-assets gdm-configuration-gnome-shell-assets
> - (default (list adwaita-icon-theme font-abattis-cantarell)))
> + (default (list at-spi2-core
> + dconf
> + gnome-control-center
> + adwaita-icon-theme font-abattis-cantarell)))

Since this is, as the name implies, intended for artwork or other
non-functional "assets", perhaps these package should be propagated by
the gdm package itself? Would that have achieve the same?

This issue appears to have been discussed previously, although I can't
find it anymore...

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 20 Jan 04:12 +0100
control message for bug #59489
(address . control@debbugs.gnu.org)
875xzoitoz.fsf@gmail.com
tags 59489 + moreinfo
quit
D
D
Dariqq wrote on 20 Jan 18:09 +0100
Re: bug#59489: gdm: Accessibility icon missing in log in screen
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
a6bc0c94-21c0-4f94-90ee-a331d1ad9d2a@posteo.net
Hi Maxim,


On 20.01.24 04:12, Maxim Cournoyer wrote:
Toggle quote (7 lines)
>
> Since this is, as the name implies, intended for artwork or other
> non-functional "assets", perhaps these package should be propagated by
> the gdm package itself? Would that have achieve the same?
>


That's what I tried initially and confirmed again today that it doesn't
work for both inputs or propagated inputs. (the icon from
gnome-control-center is visible because the share directory will be
included XDG_DATA_DIRS from the wrapper script from the glib-or-gtk-wrap
phase but not he other packages).
After that the next most simple solution was the hacky workaround via
gnome-shell-assets. Maybe someone has a better idea for how to include
the extra packages?


Also as I use the gnome-desktop via gnome-desktop-service-type all these
packages should already be in my system profile. So somehow the
environment is weird when shepherd starts gdm such that gdm can't find
the extra files but I don't know enough of both guix/shepherd and
gdm/gnome to figure out what the exact problem is.

Toggle quote (4 lines)
> This issue appears to have been discussed previously, although I can't
> find it anymore...
>

I found https://issues.guix.gnu.org/28088which is a bit related but not
exactly the same as there is no login manager involved.
M
M
Maxim Cournoyer wrote on 22 Jan 06:30 +0100
(name . Dariqq)(address . dariqq@posteo.net)
874jf63pfj.fsf@gmail.com
Hi Dariqq,

Dariqq <dariqq@posteo.net> writes:

Toggle quote (19 lines)
> Hi Maxim,
>
>
> On 20.01.24 04:12, Maxim Cournoyer wrote:
>> Since this is, as the name implies, intended for artwork or other
>> non-functional "assets", perhaps these package should be propagated by
>> the gdm package itself? Would that have achieve the same?
>>
>
>
> That's what I tried initially and confirmed again today that it
> doesn't work for both inputs or propagated inputs. (the icon from
> gnome-control-center is visible because the share directory will be
> included XDG_DATA_DIRS from the wrapper script from the
> glib-or-gtk-wrap phase but not he other packages).
> After that the next most simple solution was the hacky workaround via
> gnome-shell-assets. Maybe someone has a better idea for how to include
> the extra packages?

Ah, that's interesting. It means there's probably some environment
variable that gets set and usefor the other things too, or perhaps it
searches relatively to its binary.

Ideally we could patch what it needs in the gdm package definition. A
second option would be to wrap GDM with the paths such as XDG_DATA_DIRS
it wants.

Toggle quote (13 lines)
> Also as I use the gnome-desktop via gnome-desktop-service-type all
> these packages should already be in my system profile. So somehow the
> environment is weird when shepherd starts gdm such that gdm can't find
> the extra files but I don't know enough of both guix/shepherd and
> gdm/gnome to figure out what the exact problem is.
>
>> This issue appears to have been discussed previously, although I can't
>> find it anymore...
>>
>
> I found https://issues.guix.gnu.org/28088 which is a bit related but
> not exactly the same as there is no login manager involved.

Thanks, that's the issue I remember seeing.

I'd like to avoid abusing the gnome-shell-assets, so would welcome us
further investigating the sources of GDM to get clues as to what/where
it's looking and what it wants exactly, but otherwise with your
explanation I think this can be a first step (apply this change as is).

Does anyone have a problem with it?

--
Thanks,
Maxim
D
D
Dariqq wrote on 22 Jan 19:51 +0100
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
82ee32aa-1d73-4e9b-896f-f330675ee9b4@posteo.net
Hi Maxim,
On 22.01.24 06:30, Maxim Cournoyer wrote:
Toggle quote (8 lines)
>
> Ah, that's interesting. It means there's probably some environment
> variable that gets set and usefor the other things too, or perhaps it
> searches relatively to its binary.
>
> Ideally we could patch what it needs in the gdm package definition. A
> second option would be to wrap GDM with the paths such as XDG_DATA_DIRS
> it wants.
Toggle quote (6 lines)
> I'd like to avoid abusing the gnome-shell-assets, so would welcome us
> further investigating the sources of GDM to get clues as to what/where
> it's looking and what it wants exactly, but otherwise with your
> explanation I think this can be a first step (apply this change as
> is).
> Does anyone have a problem with it?
Currently gdm starts with XDG_DATA_DIRS set to the share directories of
gnome-shell and all packages in gnome-shell-assets.
Looking at other login-managers it seems they also set XDG_DATA_DRIS
explicitly. Specifically the sddm-shepherd-service seems to solve this
by setting XDG_DATA_DIRS to the correct path of the current system
profile i.e. "/run/current-system/profile/share".
Maybe we could do the same with gdm? We then would need to add the extra
packages to the system profile rather than some wrapper.
This will then work work for a gdm+gnome setup (with empty
gnome-shell-assets) as the gnome package propagates all the packages
needed and more.
For gdm-only there is then a problem how to include the extra packages.
Currently the gdm-profile-service extension only adds the
gnome-shell-assets but now also gnome-shell would be needed as this
currently not in the system profile but added in XDG_DATA_DIRS.
Then there is the question whether the extra packages should be added to
the profile by the service or propagated from gdm (or some other
package). If the answer is gdm then gdm would also need to be added to
the profile and as gdm depends on gnome-shell and want's gnome-shell
present a service would need to add gnome-shell anyway.
This is essentially the same as the current solution via
gnome-shell-ssets but this will work if the extra packages are in the
system profile through any mean (and not explicitly added via the
gnome-shell-assets) however for non-gnome-setups using gdm a solution is
needed in any way.
D
D
Dariqq wrote on 29 Jan 22:31 +0100
[PATCH] WIP: gnu: propagate inputs for gdm and rework gdm-service-type.
(address . 57292@debbugs.gnu.org)
ce99344ed8955a50d0d7fc54ec2de4f4bbf65597.1706563883.git.dariqq@posteo.net
* gnu/packages/gnome.scm (gdm)[propagated inputs]: Add adwaita-icon-theme,
dconf, font-abattis-cantarell, gnome-control-center.
* gnu/services/xorg.scm (gdm-shepherd-service): Set XDG_DATA_DIR to
run/current-system/profile/share.
(gdm-profile-service): New variable.
(gdm-service-type): Use gdm-profile-service.
(gdm-configuration-gnome-shell-assets): Set default to gnome-shell.

Change-Id: I870206a9ee6a7481d19e6b38b6a3ee72b5801c6a
---
Hi Maxim and others,
This is not quite the explicit wrapper we talked about on IRC but something similiar.

The gdm package now propagates the packages from gnome-shell-assets and I added dconf and gnome-control-center for basic accessibility settings functionality + icon. Does this introduce a problem as dconf is already a natice input?
Maybe also some other packages can be added like at-spi2-core, orca, ... or is this something the user should add to the system profile themselves?

In order for the gdm-shepherd-service to find the propagated packages I changed the XDG_DATA_DIR of the service to the system profile and added a gdm-profile-service to add gdm and gnome-shell to the system profile. Probably the gnome-shell-assets name should now also be changed as is is now only the gnome-shell package.

What do you think?


gnu/packages/gnome.scm | 5 +++++
gnu/services/xorg.scm | 20 +++++++++-----------
2 files changed, 14 insertions(+), 11 deletions(-)

Toggle diff (72 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6f22529dd7..c16079da0a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9020,6 +9020,11 @@ (define-public gdm
libcanberra
libgudev
linux-pam))
+ (propagated-inputs
+ (list adwaita-icon-theme
+ dconf
+ font-abattis-cantarell
+ gnome-control-center))
(synopsis "Display manager for GNOME")
(home-page "https://wiki.gnome.org/Projects/GDM/")
(description
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 1ee15ea90c..8b360d7729 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -1039,7 +1039,9 @@ (define-record-type* <gdm-configuration>
(debug? gdm-configuration-debug? (default #f))
(default-user gdm-configuration-default-user (default #f))
(gnome-shell-assets gdm-configuration-gnome-shell-assets
- (default (list adwaita-icon-theme font-abattis-cantarell)))
+ ;; XXX: Remove gnome-shell below when GDM
+ ;; can depend on GNOME Shell directly.
+ (default (list gnome-shell)))
(xorg-configuration gdm-configuration-xorg
(default (xorg-configuration)))
(x-session gdm-configuration-x-session
@@ -1136,6 +1138,10 @@ (define (gdm-pam-service config)
#:allow-empty-passwords?
(gdm-configuration-allow-empty-passwords? config))))
+(define (gdm-profile-service config)
+ (cons* (gdm-configuration-gdm config)
+ (gdm-configuration-gnome-shell-assets config)))
+
(define (gdm-shepherd-service config)
(define config-file
(gdm-configuration-file config))
@@ -1164,15 +1170,7 @@ (define (gdm-shepherd-service config)
"GDM_X_SESSION="
#$(gdm-configuration-x-session config))
(string-append
- "XDG_DATA_DIRS="
- ((lambda (ls) (string-join ls ":"))
- (map (lambda (path)
- (string-append path "/share"))
- ;; XXX: Remove gnome-shell below when GDM
- ;; can depend on GNOME Shell directly.
- (cons #$gnome-shell
- '#$(gdm-configuration-gnome-shell-assets
- config)))))
+ "XDG_DATA_DIRS=/run/current-system/profile/share")
;; Add XCURSOR_PATH so that mutter can find its
;; cursors. gdm doesn't login so doesn't source
;; the corresponding line in /etc/profile.
@@ -1237,7 +1235,7 @@ (define gdm-service-type
(service-extension polkit-service-type
gdm-polkit-rules)
(service-extension profile-service-type
- gdm-configuration-gnome-shell-assets)
+ gdm-profile-service)
(service-extension dbus-root-service-type
(compose list
gdm-configuration-gdm))

base-commit: 21e4d6cd6913eca131f2c0fd0cd509fc843c7eb8
--
2.41.0
L
L
Liliana Marie Prikler wrote on 30 Jan 06:27 +0100
5b57f9c4a0572b6064bf43ea3abb8aa134f2f437.camel@gmail.com
Am Montag, dem 29.01.2024 um 21:31 +0000 schrieb Dariqq:
Toggle quote (30 lines)
> * gnu/packages/gnome.scm (gdm)[propagated inputs]: Add adwaita-icon-
> theme,
> dconf, font-abattis-cantarell, gnome-control-center.
> * gnu/services/xorg.scm (gdm-shepherd-service): Set XDG_DATA_DIR to
> run/current-system/profile/share.
> (gdm-profile-service): New variable.
> (gdm-service-type): Use gdm-profile-service.
> (gdm-configuration-gnome-shell-assets): Set default to gnome-shell.
>
> Change-Id: I870206a9ee6a7481d19e6b38b6a3ee72b5801c6a
> ---
> Hi Maxim and others,
> This is not quite the explicit wrapper we talked about on IRC but
> something similiar.
>
> The gdm package now propagates the packages from gnome-shell-assets
> and I added dconf and gnome-control-center for basic accessibility
> settings functionality + icon. Does this introduce a problem as dconf
> is already a natice input?
> Maybe also some other packages can be added like  at-spi2-core, orca,
> ... or is this something the user should add to the system profile
> themselves?
>
> In order for the gdm-shepherd-service to find the propagated packages
> I changed the XDG_DATA_DIR of the service to the system profile and
> added a gdm-profile-service to add gdm and gnome-shell to the system
> profile. Probably the gnome-shell-assets name should now also be
> changed as is is now only the gnome-shell package.
>
> What do you think?
In my opinion, adding gnome-shell and gnome-control-center to gdm-
configuration-gnome-shell-assets would be preferable to propagating
inputs.

WDYT?
D
D
Dariqq wrote on 4 Feb 09:53 +0100
754a70d0-98f8-440d-b55b-c468fb2177f1@posteo.net
On 30.01.24 06:27, Liliana Marie Prikler wrote:

Toggle quote (7 lines)
> In my opinion, adding gnome-shell and gnome-control-center to gdm-
> configuration-gnome-shell-assets would be preferable to propagating
> inputs.
>
> WDYT?


This is basically my original patch in https://issues.guix.gnu.org/57292#3.

If i understand it correctly Maxim wants gdm to take care of all of
dependencies providing functionality and handcrafting the environment
with gdm-shepherd-service and gdm-configuration-gnome-shell-assets feels
like a hacky workaround.
L
L
Liliana Marie Prikler wrote on 4 Feb 20:26 +0100
519a9a21138608175ff0ff50fca1a1b2fd3f8cf2.camel@gmail.com
Am Sonntag, dem 04.02.2024 um 08:53 +0000 schrieb Dariqq:
Toggle quote (17 lines)
>
> On 30.01.24 06:27, Liliana Marie Prikler wrote:
>
> > In my opinion, adding gnome-shell and gnome-control-center to gdm-
> > configuration-gnome-shell-assets would be preferable to propagating
> > inputs.
> >
> > WDYT?
>
>
> This is basically my original patch in
> https://issues.guix.gnu.org/57292#3.
>
> If i understand it correctly Maxim wants gdm to take care of all of
> dependencies providing functionality and handcrafting the environment
> with gdm-shepherd-service and gdm-configuration-gnome-shell-assets
> feels like a hacky workaround.
Yes, it seems Maxim and I have conflicting goals. Maxim wants to avoid
"abusing" gnome-shell-assets whereas I want to avoid propagation, as it
pollutes profiles. Perhaps Maxim and I can agree on how to interpret
gnome-shell-assets, as IIUC even with packages that aren't "pure data"
only the data portion of it ought to be relevant, no?

We should do so especially because the newly propagated variables are
anyhow propagated by gnome-desktop-service, which could constitute
weird behaviour all around.

Cheers
D
D
Dariqq wrote on 5 Feb 17:08 +0100
88163787-b993-4ca1-9ef7-d9d32cbbeab2@posteo.net
On 04.02.24 20:26, Liliana Marie Prikler wrote:

Toggle quote (12 lines)
> Yes, it seems Maxim and I have conflicting goals. Maxim wants to avoid
> "abusing" gnome-shell-assets whereas I want to avoid propagation, as it
> pollutes profiles. Perhaps Maxim and I can agree on how to interpret
> gnome-shell-assets, as IIUC even with packages that aren't "pure data"
> only the data portion of it ought to be relevant, no?
>
> We should do so especially because the newly propagated variables are
> anyhow propagated by gnome-desktop-service, which could constitute
> weird behaviour all around.
>
> Cheers

What would you think of the wrap-program solution which would avoid
propagating pacakges?

I currently have something like

#+BEGIN_SRC scheme
(add-after 'install 'wrap-gdm
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (string-append #$output "/bin/gdm")
`("XDG_DATA_DIRS" ":" prefix
#$(map (lambda (input)
(file-append (this-package-input input)
"/share"))
'("at-spi2-core"
"dconf"
"gnome-control-center"))))))
#+END_SRC

Also this way the assets (adwaita and cantarell) should be kept in the
gdm-configuration as when I tested this I had a white box as a cursor.
L
L
Liliana Marie Prikler wrote on 5 Feb 18:55 +0100
f3ed3053b5db03a53255e917eb348ab2a4bfb151.camel@gmail.com
Am Montag, dem 05.02.2024 um 16:08 +0000 schrieb Dariqq:
Toggle quote (37 lines)
>
> On 04.02.24 20:26, Liliana Marie Prikler wrote:
>
> > Yes, it seems Maxim and I have conflicting goals.  Maxim wants to
> > avoid "abusing" gnome-shell-assets whereas I want to avoid
> > propagation, as it pollutes profiles.  Perhaps Maxim and I can
> > agree on how to interpret gnome-shell-assets, as IIUC even with
> > packages that aren't "pure data" only the data portion of it ought
> > to be relevant, no?
> >
> > We should do so especially because the newly propagated variables
> > are anyhow propagated by gnome-desktop-service, which could
> > constitute weird behaviour all around.
> >
> > Cheers
>
> What would you think of the wrap-program solution which would avoid
> propagating pacakges?
>
> I currently have something like
>
> #+BEGIN_SRC scheme
> (add-after 'install 'wrap-gdm
>              (lambda* (#:key inputs outputs #:allow-other-keys)
>                (wrap-program (string-append #$output "/bin/gdm")
>                  `("XDG_DATA_DIRS" ":" prefix
>                    #$(map (lambda (input)
>                            (file-append (this-package-input input)
> "/share"))
>                          '("at-spi2-core"
>                            "dconf"
>                            "gnome-control-center"))))))
> #+END_SRC
>
> Also this way the assets (adwaita and cantarell) should be kept in
> the gdm-configuration as when I tested this I had a white box as a
> cursor.
That SGTM, but we do need a more descriptive phase name. The question
is whether we should inline the gnome-shell assets this way as well or
not.

Maxim, WDYT?
M
M
Maxim Cournoyer wrote on 10 Feb 04:06 +0100
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
87r0hlvwzc.fsf@gmail.com
Hello,

Liliana Marie Prikler <liliana.prikler@gmail.com> writes:

Toggle quote (42 lines)
> Am Montag, dem 05.02.2024 um 16:08 +0000 schrieb Dariqq:
>>
>> On 04.02.24 20:26, Liliana Marie Prikler wrote:
>>
>> > Yes, it seems Maxim and I have conflicting goals.  Maxim wants to
>> > avoid "abusing" gnome-shell-assets whereas I want to avoid
>> > propagation, as it pollutes profiles.  Perhaps Maxim and I can
>> > agree on how to interpret gnome-shell-assets, as IIUC even with
>> > packages that aren't "pure data" only the data portion of it ought
>> > to be relevant, no?
>> >
>> > We should do so especially because the newly propagated variables
>> > are anyhow propagated by gnome-desktop-service, which could
>> > constitute weird behaviour all around.
>> >
>> > Cheers
>>
>> What would you think of the wrap-program solution which would avoid
>> propagating pacakges?
>>
>> I currently have something like
>>
>> #+BEGIN_SRC scheme
>> (add-after 'install 'wrap-gdm
>>              (lambda* (#:key inputs outputs #:allow-other-keys)
>>                (wrap-program (string-append #$output "/bin/gdm")
>>                  `("XDG_DATA_DIRS" ":" prefix
>>                    #$(map (lambda (input)
>>                            (file-append (this-package-input input)
>> "/share"))
>>                          '("at-spi2-core"
>>                            "dconf"
>>                            "gnome-control-center"))))))
>> #+END_SRC
>>
>> Also this way the assets (adwaita and cantarell) should be kept in
>> the gdm-configuration as when I tested this I had a white box as a
>> cursor.
> That SGTM, but we do need a more descriptive phase name. The question
> is whether we should inline the gnome-shell assets this way as well or
> not.

I have never attempted to customize gnome-shell. If it can be
customized with custom themes, different fonts and what not, then I
think it makes sense to keep the user-choosable art assets as
gnome-shell-assets.

Otherwise, if it's not configurable and expects only a specific font,
specific icons, etc., then it seems it'd make sense that it finds them
out of the gate (wrapped from within a phase).

Could someone confirm whether GDM is configurable when it comes to icons
and fonts?

Thanks for working on it, Dariqq!

--
Thanks,
Maxim
L
L
Liliana Marie Prikler wrote on 12 Feb 15:02 +0100
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
aad568ed542bcacef01258fd60fd421cdc0e37c4.camel@gmail.com
Am Freitag, dem 09.02.2024 um 22:06 -0500 schrieb Maxim Cournoyer:
Toggle quote (2 lines)
> Could someone confirm whether GDM is configurable when it comes to
> icons and fonts?
Without the context of Guix, it is. Within the context of Guix, we'd
have to make gsettings functional for most (all?) changes to have an
effect.

Cheers
D
D
Dariqq wrote on 13 Feb 22:25 +0100
04d831d6-d1b6-43f5-a09d-522414f0d3c1@posteo.net
Hi,

On 10.02.24 04:06, Maxim Cournoyer wrote:

Toggle quote (6 lines)
> I have never attempted to customize gnome-shell. If it can be
> customized with custom themes, different fonts and what not, then I
> think it makes sense to keep the user-choosable art assets as
> gnome-shell-assets.
>

I tried in a vm with only gdm-service-type (and no gnome) and the assets
also wrapped inside gdm and got a white box as a cursor. This might be
caused by adwaita not being in the profile (which gnome-shell-assets
also get added to) but I am not sure about this.


Toggle quote (10 lines)
> Otherwise, if it's not configurable and expects only a specific font,
> specific icons, etc., then it seems it'd make sense that it finds them
> out of the gate (wrapped from within a phase).
>
> Could someone confirm whether GDM is configurable when it comes to icons
> and fonts?
>
> Thanks for working on it, Dariqq!
>

I'd suggest leaving the gnome-shell-assets as is for now and deal with
the gdm customisation issue at another time as it looks like it is more
complicated than just adding the assets to the wrapper.


Regarding the patch should I create and send it or someone of you? (I
don't really care)

And if the answer is me should the patch be against master or gnome-team
branch?

Cheers
M
M
Maxim Cournoyer wrote on 16 Feb 20:10 +0100
Re: bug#57292: GDM accessibility menu buttons don't do anything
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
87v86orzsg.fsf_-_@gmail.com
Hi Liliana, Dariqq,
[...]
Toggle quote (24 lines)
>> What would you think of the wrap-program solution which would avoid
>> propagating pacakges?
>>
>> I currently have something like
>>
>> #+BEGIN_SRC scheme
>> (add-after 'install 'wrap-gdm
>>              (lambda* (#:key inputs outputs #:allow-other-keys)
>>                (wrap-program (string-append #$output "/bin/gdm")
>>                  `("XDG_DATA_DIRS" ":" prefix
>>                    #$(map (lambda (input)
>>                            (file-append (this-package-input input)
>> "/share"))
>>                          '("at-spi2-core"
>>                            "dconf"
>>                            "gnome-control-center"))))))
>> #+END_SRC
>>
>> Also this way the assets (adwaita and cantarell) should be kept in
>> the gdm-configuration as when I tested this I had a white box as a
>> cursor.
> That SGTM, but we do need a more descriptive phase name. The question
> is whether we should inline the gnome-shell assets this way as well or
> not.
As Dariqq tried to inline the assets in the wrap phase and that did
*not* immediately, work, and since in theory a user could configure GDM
to use different assets, I think the art assets can stay where they
currently are, and the above patch merged to master to fix this
longstanding issue. Perhaps the phase name could be
'wrap-accessibility-dependencies'.
Dariqq, if you send an updated patch along these lines, I think we can
finally get it merged.
--
Thanks,
Maxim
D
D
Dariqq wrote on 20 Feb 20:58 +0100
[PATCH v3] gnu: gdm: Enable accessibility settings.
(name . Dariqq)(address . dariqq@posteo.net)
57ec3715a20bdaa01f66f32a61dc917b31c03553.1708459127.git.dariqq@posteo.net
gdm needs the "/share" subdirectory of these packages present in XDG_DATA_DIRS
such that the accessibility settings work:
- at-spi2-core: contains accessibility dbus service.
- dconf: To be able to change settings.
- gnome-control-center: icon.

* gnu/packages/gnome.scm (gdm)[inputs]: Add at-spi2-core, dconf, gnome-control-center.
[phases]: Add wrap-accessibility-dependencies phase.

Change-Id: Ibfe8f1aee9c8fe0c06f895de121f0f84defe4773
---

Hi everyone,

Here is v3 of gdm accessibility issue which adds the wrapper phase we've been discussing.
I added the extra inputs under a seperate section in the inputs. If you'd like to keep them in alphabetical order feel free to adjust this.
ALso I am not sure if the format of my commit message is ok.

I've tested on both master and gnome-team and it works on both.

To ennable the screenreader it is enough for orca to be in the system profile (and orca working i.e. on gnome-team branch).
dconf is both a native and normal input: Based on the fedora gdm.spec it seems like a build dependency however i was not able to verify this as cross-compiling (for i686-linux-gnu) requries me to bootstrap gcc. At leeast the default tests do not seem to require it.
Adding gnome-control-center, which is used for the icon, pulls in python dependencies which breaks cross compiling. Maybe you have some ideas for this.

Also some other thing that I notices is that because /var/lib/gdm is mounted as tmpfs this makes the changes in the gdm accessibility settings not persist through reboots which is annoying. These will get stored in /var/lib/gdm/.config/dconf/.


gnu/packages/gnome.scm | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)

Toggle diff (50 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 953bd817ed..a967c9cb16 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -77,6 +77,7 @@
;;; Copyright © 2023 Juliana Sims <juli@incana.org>
;;; Copyright © 2023 Dominik Delgado Steuter <d@delgado.nrw>
;;; Copyright © 2023 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2024 Dariqq <dariqq@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -9007,7 +9008,18 @@ (define-public gdm
(for-each (lambda (desktop)
(symlink desktop (basename desktop)))
(find-files
- (string-append settings "/etc/xdg"))))))))))
+ (string-append settings "/etc/xdg")))))))
+ ;; GDM needs some additional programs available via XDG_DATA_DIRS,
+ ;; to make accessibility settings and related services available.
+ (add-after 'install 'wrap-accessibility-dependencies
+ (lambda _
+ (wrap-program (string-append #$output "/bin/gdm")
+ `("XDG_DATA_DIRS" ":" prefix
+ #$(map (lambda (input)
+ (file-append (this-package-input input) "/share"))
+ '("at-spi2-core"
+ "dconf"
+ "gnome-control-center")))))))))
(native-inputs
(list `(,glib "bin") ;for glib-compile-schemas, etc.
dconf
@@ -9029,7 +9041,12 @@ (define-public gdm
iso-codes
libcanberra
libgudev
- linux-pam))
+ linux-pam
+
+ ;; accessibility dependencies
+ at-spi2-core
+ dconf
+ gnome-control-center))
(synopsis "Display manager for GNOME")
(home-page "https://wiki.gnome.org/Projects/GDM/")
(description

base-commit: ffcce77ec488e3c89401ad77fafa65fcd9e9f5be
--
2.41.0
L
L
Liliana Marie Prikler wrote on 24 Feb 07:38 +0100
cf2a5d636f318bf28307b7ebf65b716ff5820345.camel@gmail.com
Am Dienstag, dem 20.02.2024 um 19:58 +0000 schrieb Dariqq:
Toggle quote (13 lines)
> gdm needs the "/share" subdirectory of these packages present in
> XDG_DATA_DIRS
> such that the accessibility settings work:
> - at-spi2-core: contains accessibility dbus service.
> - dconf: To be able to change settings.
> - gnome-control-center: icon.
>
> * gnu/packages/gnome.scm (gdm)[inputs]: Add at-spi2-core, dconf,
> gnome-control-center.
> [phases]: Add wrap-accessibility-dependencies phase.
>
> Change-Id: Ibfe8f1aee9c8fe0c06f895de121f0f84defe4773
> ---
I've rewritten the commit message slightly and pushed this to gnome-
team. Thus closing.

Cheers
Closed
?