bug#57292: [PATCH v3] gnu: gdm: Enable accessibility settings.

2024-02-20 Thread Dariqq
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(-)

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 
 ;;; Copyright © 2023 Dominik Delgado Steuter 
 ;;; Copyright © 2023 Zhu Zihao 
+;;; Copyright © 2024 Dariqq 
 ;;;
 ;;; 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






bug#68988: [PATCH] gnu: linux-libre 6.7: Modify .conf files.

2024-02-20 Thread Leo Famulari
Pushed as 877abbdae790deaacf30af8a845e2290c39e10ff





bug#69286: guix-build-coordinator-agent-only should not propagate guix

2024-02-20 Thread Andreas Enge
Hello,

I installed guix-build-coordinator-agent-only into my user profile to try
it out, and wondered today why "guix build" would build the wrong version
of a software; then why "guix describe" showed a wrong date; until I
realised that the package propagates guix, and that the thus propagated
guix takes precedence over the one obtained via "guix pull".

This looks like a bug to me, since it pulls the rug under the users' feet
by surreptitiously swapping their consciously installed guix by a different
one.

Andreas






bug#69284: guix pull is not reproducible

2024-02-20 Thread Andrew Tropin via Bug reports for GNU Guix

guix pull -C channels-lock.scm produces different profiles on different
machines.

I executed the same command on a few different machines.
channels-lock.scm contains channels list with exact commit specified.

--8<---cut here---start->8---
curl https://paste.sr.ht/~abcdw/5f18e9e5cc6cb243c84a3975eb4e6a46ed17d996 > 
channels-lock.scm
guix pull -C channels-lock.scm -p tmp
readlink tmp-1-link
--8<---cut here---end--->8---

The output log on all machines starts similiar:
--8<---cut here---start->8---
Updating channel 'rde' from Git repository at 'https://git.sr.ht/~abcdw/rde'...
Authenticating channel 'rde', commits 257cebd to 2a0c7e9 (2304 new commits)...
Updating channel 'guix' from Git repository at 
'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix', commits 9edb3f6 to d264237 (69420 new commits)...
Building from these channels:
  guix  https://git.savannah.gnu.org/git/guix.git   d264237
  rde   https://git.sr.ht/~abcdw/rde2a0c7e9
--8<---cut here---end--->8---

--8<---cut here---start->8---
Updating channel 'rde' from Git repository at 'https://git.sr.ht/~abcdw/rde'...
Authenticating channel 'rde', commits 257cebd to 2a0c7e9 (2,304 new commits)...
Updating channel 'guix' from Git repository at 
'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix', commits 9edb3f6 to d264237 (2,382 new commits)...
Building from these channels:
  guix  https://git.savannah.gnu.org/git/guix.git   d264237
  rde   https://git.sr.ht/~abcdw/rde2a0c7e9
--8<---cut here---end--->8---

but resulting profile is different:
/gnu/store/w3qq81dzdj9wckcw8fpz5lv6ylhw1m2d-profile (local fresh guix system)
/gnu/store/c2i8iyqkc146ac2hqzy1v6zkqs82xypp-profile (debian 11)
/gnu/store/svg0is4iwvlg6mgi2rvpkngcccqcvhys-profile (debian 12)
/gnu/store/w3qq81dzdj9wckcw8fpz5lv6ylhw1m2d-profile (remote fresh guix system)

The first guix pull takes from 25 to 50 minutes, which is really long
time.  However, due to irreproducibility, building the guix profile on
CI doesn't help to cut that time to some manageable numbers.

-- 
Best regards,
Andrew Tropin


signature.asc
Description: PGP signature


bug#68800: Guix waits for termination of a kernel thread

2024-02-20 Thread Ludovic Courtès
Hi Tomas,

Tomas Volf <~@wolfsden.cz> skribis:

>> What about this method (from shepherd)?
>>
>> --8<---cut here---start->8---
>> (define (linux-process-flags pid)
>>   "Return the process flags of @var{pid} (or'd @code{PF_} constants), 
>> assuming
>> the Linux /proc file system is mounted; raise a @code{system-error} exception
>> otherwise."
>>   (call-with-input-file (string-append "/proc/" (number->string pid)
>>"/stat")
>> (lambda (port)
>>   (define line
>> (get-string-all port))
>>
>>   ;; Parse like systemd's 'is_kernel_thread' function.
>>   (let ((offset (string-index line #\ ;offset past 'tcomm' field
>> (match (and offset
>> (string-tokenize (string-drop line (+ offset 1
>>   ((state ppid pgrp sid tty-nr tty-pgrp flags . _)
>>(or (string->number flags) 0))
>>   (_
>>0))
>>
>> ;; Per-process flag defined in .
>> (define PF_KTHREAD #x0020);I am a kernel thread
>>
>> (define (linux-kernel-thread? pid)
>>   "Return true if @var{pid} is a Linux kernel thread."
>>   (= PF_KTHREAD (logand (linux-process-flags pid) PF_KTHREAD)))
>> --8<---cut here---end--->8---
>>
>> If it works better, we can use that in syscalls.scm as well.
>
> Yes, that does seem to work:

Pushed as 34c79c6ae8103ebae9ce08c81a9220a6b82b05f6.

Thank you!

Ludo’.