Tried some GDM/LightDM changes in my system config and no passwords work

In my laptop, in generation 4 of my guix system all GUI stuff worked well (GDM and GDM login). I tried moving to lightDM and also setting some themes - which works in my desktop setup - and then I started having serious issues with login authentication: GDM nor lightDM accept my user password, and can’t do a root login.

This is the working gen 4 setup:

(use-modules (gnu)
             (nongnu packages linux)
             (gnu packages linux)
             (gnu packages audio)
             (gnu packages networking)
             (gnu packages package-management))

(use-service-modules cups
		     desktop
		     networking
		     ssh
		     xorg
		     sound
		     nix
		     docker)


;;non-guix key for substitute urls
(define %nonguix-key
  (plain-file
   "nonguix-archive-key.pub"
   "(public-key
    (ecc
     (curve Ed25519)
     (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))"))


(operating-system
 (kernel linux)
 (firmware (list linux-firmware
                 iwlwifi-firmware))
 ;; Add this to make sure the module gets loaded at boot time
 (initrd-modules (append '("btusb") %base-initrd-modules))
 (locale "en_US.utf8")
 (timezone "Etc/UTC")
 (keyboard-layout (keyboard-layout "us"))
 (host-name "my-hostname")

 ;; The list of user accounts ('root' is implicit).
 (users (cons* (user-account
                (name "my-user")
                (comment "My Name")
                (group "users")
                (home-directory "/home/my-user")
                (supplementary-groups '("wheel" "netdev" "audio" "video")))
               %base-user-accounts))

 ;; Packages installed system-wide.
 (packages (append (list (specification->package "emacs")
                         (specification->package "emacs-exwm")
                         (specification->package "emacs-desktop-environment")
                         (specification->package "bluez")
                         (specification->package "blueman")
                         (specification->package "pipewire")
                         (specification->package "wireplumber")
                         (specification->package "nix")
			 (specification->package "docker"))
                   %base-packages))


 ;; Below is the list of system services.
 (services
  (append (list (service gnome-desktop-service-type)
                (service openssh-service-type)
                (service cups-service-type)
                (service nix-service-type)
                (set-xorg-configuration
                 (xorg-configuration
                  (keyboard-layout keyboard-layout)))
                (service bluetooth-service-type
                         (bluetooth-configuration
                          (auto-enable? #t)))
		(service docker-service-type)
		(service containerd-service-type))
	  
          ;; Add the Nonguix substitutes configuration
          (modify-services %desktop-services
                           (guix-service-type config =>
                                              (guix-configuration
                                               (inherit config)
                                               (authorize-key? #t)
                                               (discover? #t)
                                               (authorized-keys
                                                (append (list %nonguix-key)
                                                        %default-authorized-guix-keys))
                                               (substitute-urls
                                                (append
                                                 (list "[https://nonguix-proxy.ditigal.xyz/](https://nonguix-proxy.ditigal.xyz/)"
						       "[https://ci.guix.gnu.org](https://ci.guix.gnu.org)"
                                                       "[https://bordeaux.guix.gnu.org](https://bordeaux.guix.gnu.org)")
                                                 %default-substitute-urls)))))))

 (bootloader (bootloader-configuration
              (bootloader grub-efi-bootloader)
              (targets (list "/boot/efi"))
              (keyboard-layout keyboard-layout)))
 (swap-devices (list (swap-space
                      (target (uuid
                               "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")))))

  ;; The list of file systems that get "mounted".
  (file-systems (cons* (file-system
                         (mount-point "/")
                         (device (uuid
                                  "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
                                  'ext4))
                         (type "ext4"))
                       (file-system
                         (mount-point "/boot/efi")
                         (device (uuid "YYYY-YYYY"
                                       'fat32))
                         (type "vfat")) %base-file-systems)))

This is one of the fancy setups:

(use-modules (gnu)
             (nongnu packages linux)
             (gnu packages linux)
             (gnu packages audio)
             (gnu packages networking)
             (gnu packages package-management))

(use-service-modules cups
                     desktop
                     networking
                     ssh
                     xorg
                     sound
                     nix
                     docker)


;;non-guix key for substitute urls
(define %nonguix-key
  (plain-file
   "nonguix-archive-key.pub"
   "(public-key
     (ecc
      (curve Ed25519)
      (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))"))

(operating-system
 (kernel linux)
 (firmware (list linux-firmware
                 iwlwifi-firmware))
 ;; Add this to make sure the module gets loaded at boot time
 (initrd-modules (append '("btusb") %base-initrd-modules))
 (locale "en_US.utf8")
 (timezone "Etc/UTC")
 (keyboard-layout (keyboard-layout "us"))
 (host-name "my-hostname")

 ;; The list of user accounts ('root' is implicit).
 (users (cons* (user-account
                (name "my-user")
                (comment "My Name")
                (group "users")
                (home-directory "/home/my-user")
                (supplementary-groups '("wheel" "netdev" "audio" "video")))
               %base-user-accounts))

 ;; Packages installed system-wide.
 (packages (append (list (specification->package "emacs")
                         (specification->package "emacs-exwm")
                         (specification->package "emacs-desktop-environment")
                         (specification->package "bluez")
                         (specification->package "blueman")
                         (specification->package "pipewire")
                         (specification->package "wireplumber")
                         (specification->package "nix")
                         (specification->package "docker"))
                   %base-packages))


 ;; Below is the list of system services.
 (services
  (append (list (service gnome-desktop-service-type)
                (service openssh-service-type)
                (service cups-service-type)
                (service nix-service-type)
                (set-xorg-configuration
                 (xorg-configuration
                  (keyboard-layout keyboard-layout)))
                (service bluetooth-service-type
                         (bluetooth-configuration
                          (auto-enable? #t)))
                (service docker-service-type)
                (service containerd-service-type))
          
          (modify-services %desktop-services
                           (guix-service-type config =>
                                              (guix-configuration
                                               (inherit config)
                                               (authorize-key? #t)
                                               (discover? #t)
                                               (authorized-keys
                                                (append (list %nonguix-key)
                                                        %default-authorized-guix-keys))
                                               (substitute-urls
                                                (append
                                                 (list "[https://nonguix-proxy.ditigal.xyz/](https://nonguix-proxy.ditigal.xyz/)"
                                                       "[https://ci.guix.gnu.org](https://ci.guix.gnu.org)"
                                                       "[https://bordeaux.guix.gnu.org](https://bordeaux.guix.gnu.org)")
                                                 %default-substitute-urls)))))))

 (bootloader (bootloader-configuration
              (bootloader grub-efi-bootloader)
              (targets (list "/boot/efi"))
              (keyboard-layout keyboard-layout)))

 (swap-devices (list (swap-space
                      (target (uuid
                               "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")))))

 ;; The list of file systems that get "mounted".
 (file-systems (cons* (file-system
                       (mount-point "/")
                       (device (uuid
                                "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
                                'ext4))
                       (type "ext4"))
                      (file-system
                       (mount-point "/boot/efi")
                       (device (uuid "YYYY-YYYY"
                                     'fat32))
                       (type "vfat")) %base-file-systems)))

And this is a minimal one:

;; Minimal working configuration based on generation 4
(use-modules (gnu) (nongnu packages linux))
(use-service-modules cups desktop networking ssh xorg nix docker pm linux)

(operating-system
  (kernel linux)
  (firmware (list linux-firmware))
  (locale "en_US.utf8")
  (timezone "Etc/UTC")
  (keyboard-layout (keyboard-layout "us"))
  (host-name "my-hostname")

  ;; User account without password
  (users (cons* (user-account
                  (name "my-user")
                  (comment "my-user")
                  (group "users")
                  (home-directory "/home/my-user")
                  (supplementary-groups '("wheel" "netdev" "audio" "video")))
                %base-user-accounts))

  ;; Basic packages
  (packages (append (list (specification->package "emacs")
                          (specification->package "emacs-exwm")
                          (specification->package "emacs-desktop-environment"))
                    %base-packages))

  ;; Services
  (services
   (append (list (service gnome-desktop-service-type)
                 (service openssh-service-type)
                 (service cups-service-type)
                 (set-xorg-configuration
                  (xorg-configuration (keyboard-layout keyboard-layout))))
           %desktop-services))

  (bootloader (bootloader-configuration
                (bootloader grub-efi-bootloader)
                (targets (list "/boot/efi"))
                (keyboard-layout keyboard-layout)))

  (swap-devices (list (swap-space
                        (target (uuid "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")))))

  (file-systems (cons* (file-system
                         (mount-point "/")
                         (device (uuid
                                  "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
                                  'ext4))
                         (type "ext4"))
                       (file-system
                         (mount-point "/boot/efi")
                         (device (uuid "YYYY-YYYY"
                                       'fat32))
                         (type "vfat")) %base-file-systems)))

Only gen4 works for authentication, fancy and minimal fail at authentication.

Any ideas?

Thanks in advance,

Hey,

I had this issue when rebuilding a sway configuration.

also the nixos guix package is broken.

I have a nixos setup, and although guix seems easier to use, I don’t think it’s at a level to use as a daily driver.

Guix pull doesn’t even work

I asked about how to get fish working properly here and no one answered. So, I would suggest moving to a distro that you can use while learning guix.

There isn’t the community available to support noobs is my feeling.

All the best!

This forum isn’t the most active and asking here and not getting an answer isn’t surprising me at all.

I would recommend to set aside some time to figure it out yourself and simultaneously try to get IRC to help with the effort.

This is also my problem but working on an installation as opposed to just the package manager is a much better way to learn, IMHO.

I guess, this has to do with infrastructure problems of which some are DDOS attacks and switching to the new source (codeberg) could help.

Thing is, I’m very happy to help with any all these issues, and would’ve thought at least one person would have pointed me towards a good packaging tutorial.

But yeah, that’s not the problem with the nixos package. It has undeclared variables in scheme. Seems to be the guix package is too old to work with new nix. And I don’t currently know enough about these things to fix it.

I will though.

Anyways, you mention IRC. Is there more of an active guix community on there? Or just GNU and FOSS in general?

Thanks for taking the time to respond

To OP - I was thinking it might be something to do with either shepherd calls being different (I still don’t know how to power off without sudo) or the way gdm handles the profile.

also, I would recommend rebooting twice before doing a pull, then reboot and do upgrade. For some reason it seems to do something weird between these 2 commands and you end up with an installation not pointing to anywhere useful.

Kind regards

Jfr

It’s subjective but I think a lot more happens in IRC and besides the Systemcrafters, you also have the Guix and Guile channels a join away to ask particular questions.

I’m also still fighting with Guix and Guile but I haven’t even touched Nix so I will be of no help at all.

The community here feels like most only answer if they know the answer or can hazard a good guess. Sadly noobs can wait a long time for somebody helping them to puzzle the problem out. We need more members, that are bored and are in search of a challenge :grinning_face_with_smiling_eyes:

I’m totally up for it.

I started using nix without any previous programming experience and figured it out.

I was literally looking for a programming language to learn because, well, I’m practically doing that anyway, found lisp and scheme and guile so Guix just seemed obvious.

It’s a shame some of the basics aren’t in place for guix, but if I can figure nix out I can figure this out, scheme is definitely more congruent with itself than nix. The home manager and ways guix handles shells and containers is much nicer. Where documentation exists, it’s easy and has examples.

I’ll be back here once I’ve learned some more scheme lol

This is why I picked Guix. I already learned a DSL for a monitoring solution so I wasn’t to keen on learning another one, only for Nix.

Absolutely, I just installed flatpak and now on every run I get a warning about two directories aren’t in the search path and the applications aren’t showing up in the launcher.

I followed https://flathub.org/setup/GNU%20Guix and flatpak 1.16.0 — Packages — GNU Guix

But now I need to follow random advice on an obscure forum to get it to work properly :wink:

There has been many problems due to some update with libxml2. The Guix team is working on it… Check Issues - guix/guix - Codeberg.org