# How to find which commits to use for guix and nonguix channels? guix system reconfigure fails

**URL:** <https://forum.systemcrafters.net/t/how-to-find-which-commits-to-use-for-guix-and-nonguix-channels-guix-system-reconfigure-fails/1466>\
**Category:** Guix\
**Tags:** guix\
**Created:** [March 8, 2025, 8:04pm UTC](https://forum.systemcrafters.net/t/how-to-find-which-commits-to-use-for-guix-and-nonguix-channels-guix-system-reconfigure-fails/1466 "2025-03-08T20:04:14Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![smalik](https://avatars.discourse-cdn.com/v4/letter/s/59ef9b/32.png) [@smalik](https://forum.systemcrafters.net/u/smalik)\
**Post date:** [March 8, 2025, 8:04pm UTC](https://forum.systemcrafters.net/t/how-to-find-which-commits-to-use-for-guix-and-nonguix-channels-guix-system-reconfigure-fails/1466/1 "2025-03-08T20:04:14Z")

</div>

Hello,

I’ve installed guix on a virtual machine.

I’m trying to add the nvidia config from the nonguix readme.

I’ve run `guix pull` and setup the nonguix channel in `channels.scm`.  
When I run `sudo guix reconfigure config.scm` I get the error:

```auto
guix system: error: profile contains conflicting entries for upower
guix system: error: first entry: upower:1.90.2 /gnu/store/...-upower-1.90.2
guix system: error: second entry: upower:1.90.2 /gnu/store/...-upower-1.90.2
guix system: error: ... propagated from gnome@46.7
hint: Try upgrading both 'upower' and 'gnome', or remove one of them from the profile.

```

I’ve tried `guix upgrade upower gnome`, but that just gives

```auto
guix upgrade: warning: nothing to do

```

I’ve tried `guix install gnome upower`, which installs them in my profile, but re-running `guix system reconfigure config.scm` gives the same error.

* * *

I tried reverting the changes for adding the nvidia nonguix config, and the command `sudo guix reconfigure config.scm` completes sucessfully. So I assume something’s wrong with the gnome imports that are introduced as part of the nvidia config.

* * *

I think the issue might be that the nonguix channel packages are interfering or are not in sync with the guix channel.

I tried pinning guix and nonguix channels to v1.4.0 commits, and now I get the same error but for slightly different packages.

```auto
guix system: error: profile contains conflicting entries for gtk+
guix system: error: first entry: gtk+@3.24.30 /gnu/store/3hfbyphf96riviip19cqap6hnmai6q8m-gtk+-3.24.30
guix system: error: ... propagated from network-manager-applet@1.28.0
guix system: error: second entry: gtk+@3.24.30 /gnu/store/gsyxsri4k6nncw0wb75gxff0zg2nc9xv-gtk+-3.24.30
guix system: error: ... propagated from gnome-online-accounts@3.45.2
guix system: error: ... propagated from gnome@42.4
hint: Try upgrading both `network-manager-applet' and `gnome', or remove one of them from the profile.

```

Is there a way I can work out which commits to use for both channels that will work?

* * *

I also tried the commits used in [daviwil’s dofiles channels.scm](https://github.com/daviwil/dotfiles/blob/master/.files/.config/guix/channels.scm), with no luck and the same error, with different packages.

> **channels.scm**
>
> ```auto
> (list (channel
> (name 'nonguix)
> (url "https://gitlab.com/nonguix/nonguix")
> (branch "master")
> (commit
> ; master - 9/3/25
> ; "944619c1947ba59823f4ad6d8b13842b7e162d76")
>           
> ; v1.4.0
> "e662a42388490a2736276c2051aaf5cd3693a1cc")
> (introduction
> (make-channel-introduction
> "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
> (openpgp-fingerprint
> "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
> (channel
> (name 'guix)
> (url "https://git.savannah.gnu.org/git/guix.git")
> (branch "master")
> (commit
> ; master - 9/3/25
> ; "c4f297a664869a18126b66eb5209de1fcceb42d8")
> 
> ; v1.4.0
> "bba1e723b0ae81b377e0927a2f19bcc8b7b79479")
> (introduction
> (make-channel-introduction
> "9edb3f66fd807b096b48283debdcddccfea34bad"
> (openpgp-fingerprint
> "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
> 
> ```

> **config.scm**
>
> ```auto
> ;; This is an operating system configuration generated
> ;; by the graphical installer.
> ;;
> ;; Once installation is complete, you can learn and modify
> ;; this file to tweak the system configuration, and pass it
> ;; to the 'guix system reconfigure' command to effect your
> ;; changes.
> 
> ;; Indicate which modules to import to access the variables
> ;; used in this configuration.
> (use-modules (gnu)
>           
> ;; Import nonfree linux module.
> (nongnu packages linux)
> (nongnu system linux-initrd)
>           
> ;; Imports for nvidia
> (gnu packages gnome)
> (gnu services xorg)
> (nongnu packages nvidia)
> (nongnu services nvidia))
> 
> (use-service-modules cups desktop networking ssh xorg)
> 
> (operating-system
> (kernel linux)
> (kernel-arguments '("modprobe.blacklist=nouveau"
> ;; Set this if the card is not used for displaying or
> ;; you're using Wayland:
> ;"nvidia_drm.modeset=1"))
> ))
> (initrd microcode-initrd)
> (firmware (list linux-firmware))
> 
> (locale "en_GB.utf8")
> (timezone "Europe/London")
> (keyboard-layout (keyboard-layout "gb"))
> (host-name "guix-vm")
> 
> ;; The list of user accounts ('root' is implicit).
> (users (cons* (user-account
> (name "test")
> (comment "Test")
> (group "users")
> (home-directory "/home/test")
> (supplementary-groups '("wheel" "netdev" "audio" "video")))
> %base-user-accounts))
> 
> ;; Packages installed system-wide. Users can also install packages
> ;; under their own account: use 'guix search KEYWORD' to search
> ;; for packages and 'guix install PACKAGE' to install a package.
> (packages (append (list (specification->package "vim"))
> %base-packages))
> 
> ;; Below is the list of system services. To search for available
> ;; services, run 'guix system search KEYWORD' in a terminal.
> (services
> (modify-services
> (cons* (service gnome-desktop-service-type)
> 
> ;; To configure OpenSSH, pass an 'openssh-configuration'
> ;; record as a second argument to 'service' below.
> (service openssh-service-type)
> (service cups-service-type)
> (set-xorg-configuration
> (xorg-configuration
> (modules (cons nvda %default-xorg-modules))
> (drivers '("nvidia"))
> (keyboard-layout keyboard-layout)))
>                  
> (service nvidia-service-type)
> ;; Configure desktop environment, GNOME for example.
>            
> (service gnome-desktop-service-type
> ;; Enable NVIDIA support, only do this when the card is
> ;; used for displaying.
> (gnome-desktop-configuration
> (gnome (replace-mesa gnome))))
>               
> 
> ;; This is the default list of services we
> ;; are appending to.
> %desktop-services)
>    
> (guix-service-type config => (guix-configuration
> (inherit config)
> (substitute-urls
> (append (list "https://substitutes.nonguix.org")
> %default-substitute-urls))
> (authorized-keys
> (append (list (local-file "./signing-key.pub"))
> %default-authorized-guix-keys))))))
> 
> (bootloader (bootloader-configuration
> (bootloader grub-bootloader)
> (targets (list "/dev/sda"))
> (keyboard-layout keyboard-layout)))
> (swap-devices (list (swap-space
> (target (uuid
> "a143e351-164a-4b3f-adca-933120045c39")))))
> 
> ;; The list of file systems that get "mounted". The unique
> ;; file system identifiers there ("UUIDs") can be obtained
> ;; by running 'blkid' in a terminal.
> (file-systems (cons* (file-system
> (mount-point "/")
> (device (uuid
> "d3a406ad-5add-4110-b970-50fb7936e1a5"
> 'ext4))
> (type "ext4")) %base-file-systems)))
> 
> ```

---

<div class="post-metadata">

**Author:** ![arbn](https://avatars.discourse-cdn.com/v4/letter/a/a87d85/32.png) [@arbn](https://forum.systemcrafters.net/u/arbn)\
**Post date:** [April 10, 2025, 10:22pm UTC](https://forum.systemcrafters.net/t/how-to-find-which-commits-to-use-for-guix-and-nonguix-channels-guix-system-reconfigure-fails/1466/2 "2025-04-10T22:22:46Z")

</div>

Hi!

I think this is because services, in their configuration, reference versions of packages that you haven’t changed with `replace-mesa`, creating a package conflict between the version referencing `mesa` and the one referencing `nvda`. To solve this, you can either use `modify-services` to override the packages with the output of `replace-mesa`, or you can opt to not reference `%desktop-services` and explicitly define the services you need with the appropriate `mesa`-fied packages in their configuration. Here’s an example of some desktop services I defined to use `nvda`:

```auto
   (service network-manager-service-type
            (network-manager-configuration
             (network-manager (replace-mesa network-manager))))
   (simple-service 'network-manager-applet
                   profile-service-type
                   (list (replace-mesa network-manager-applet)))

   ;; GNOME
   (service gdm-service-type 
            (gdm-configuration
             (gdm (replace-mesa gdm))
             (wayland? #t)))
   (service gnome-desktop-service-type
            (gnome-desktop-configuration
             (core-services
              (list
               (replace-mesa gnome-meta-core-services)))
             (shell
              (list (replace-mesa gnome-meta-core-shell)))
             (utilities
              (list (replace-mesa gnome-meta-core-utilities)))
            (extra-packages
             (list (replace-mesa gnome-essential-extras)))))

```
