Skip to content

Conversation

@ch4og
Copy link

@ch4og ch4og commented Nov 30, 2025

Changes:

  1. After last change to quickshell.scm with addition of polkit, module for polkit wasn't added.

  2. I found that many inputs were in wrong places, some of them even repeated. Also bash-minimal should be added since we wrap binary.
    This caused errors like so when using as a channel:

guix home: error: profile contains conflicting entries for libxkbcommon
guix home: error:   first entry: libxkbcommon@1.11.0 /gnu/store/81knrk9sar7g1syz35dgfxlnyq1gi5l1-libxkbcommon-1.11.0
guix home: error:    ... propagated from qtbase@6.9.2
guix home: error:    ... propagated from quickshell@git
guix home: error:   second entry: libxkbcommon@1.11.0 /gnu/store/n8kmqvqjbps44jqzrib55b9vrp1rr15j-libxkbcommon-1.11.0
guix home: error:    ... propagated from gtk+@3.24.49
guix home: error:    ... propagated from network-manager-applet@1.36.0
hint: Try upgrading both `quickshell' and `network-manager-applet', or remove one of them from

and

$ QT_QPA_PLATFORM=wayland quickshell
  INFO: Launching config: "/home/ch/.config/quickshell/shell.qml"
  INFO: Shell ID: "50efbd8f00f9268d6d474eee6923db87" Path ID "50efbd8f00f9268d6d474eee6923db87"
  INFO: Saving logs to "/run/user/1000/quickshell/by-id/5vmumqi6t/log.qslog"
  WARN qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
 FATAL: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vkkhrdisplay, vnc, xcb.

fish: Job 1, 'QT_QPA_PLATFORM=wayland quicksh…' terminated by signal SIGABRT (Abort)
  1. Currenty Guix is absolutely fine with using this repo as a channel with in-tree source, so I made PR to docs

Result:

Setup:

$ grep -r quickshell /tmp/channels*
/tmp/channels.scm:       (name 'quickshell)
/tmp/channels.scm:       (url "https://github.com/quickshell-mirror/quickshell")
/tmp/channels2.scm:      (name 'quickshell)
/tmp/channels2.scm:      (url "https://github.com/ch4og/quickshell")

$ cat /tmp/quickshell.scm
(use-modules (quickshell)
             (gnu packages))

(packages->manifest
 (list quickshell-git))

Using upstream repo as a channel:

$ guix time-machine -C /tmp/channels.scm -- shell --container --manifest=/tmp/quickshell.scm -- quickshell --version
...
build of /gnu/store/wxsca503slgp6fw97jh4crl1791pfdpa-guix-package-cache.drv failed
hint: This usually indicates a bug in one of the channels you are pulling from, or
some incompatibility among them.  You can check the build log and report the
issue to the channel developers.

The channels you are pulling from are: guix quickshell.

View build log at '/var/log/guix/drvs/wx/sca503slgp6fw97jh4crl1791pfdpa-guix-package-cache.drv.gz'.
cannot build derivation `/gnu/store/8560ic1v4yh99565vw3wzmv90pkb0wmw-profile.drv': 1 dependencies couldn't be built
guix time-machine: error: build of `/gnu/store/8560ic1v4yh99565vw3wzmv90pkb0wmw-profile.drv' failed

$ zcat /var/log/guix/drvs/wx/sca503slgp6fw97jh4crl1791pfdpa-guix-package-cache.drv.gz
...
(exception unbound-variable (value #f) (value "Unbound variable: ~S") (value (polkit)) (value #f))

Using my PR's repo as a channel:

$ guix time-machine -C /tmp/channels2.scm -- shell --container --manifest=/tmp/quickshell.scm -- quickshell --version
...
quickshell 0.2.1, revision , distributed by: "In-tree Guix channel"

@ch4og ch4og marked this pull request as draft November 30, 2025 02:45
@ch4og ch4og changed the title guix: load polkit module guix: fix package defenition Nov 30, 2025
@ch4og
Copy link
Author

ch4og commented Nov 30, 2025

I am not sure that vulkan-headers are required.

(replace 'build (lambda _ (invoke "cmake" "--build" ".")))
(replace 'install (lambda _ (invoke "cmake" "--install" ".")))

Also it seems like build phases that are in package do no changes at all and can be removed.

Please confirm if so, I'll fix both this issues.

@outfoxxed
Copy link
Member

If it builds fine with all features enabled, and qtdeclarative modules are still available in the environment this seems fine. Unless I'm reading it wrong you're not actually adding polkit to the deps list though, and I'm not sure why you moved wayland-protocols.

Removing those replacements should also be fine if it still builds.

@ch4og
Copy link
Author

ch4og commented Nov 30, 2025

Unless I'm reading it wrong you're not actually adding polkit to the deps list though

polkit was already in the dependency list, the issue was that package wasn't importing the Guix module that provides its package definition. I added that.

I'm not sure why you moved wayland-protocols.

Regarding wayland-protocols, you're right, moving it was a mistake on my part.

@ch4og
Copy link
Author

ch4og commented Nov 30, 2025

Removing those replacements should also be fine if it still builds.

I did remove replacements, it still builds fine:

$ guix build -L . -f quickshell.scm
/gnu/store/0qj5mi134miqi4dpdhzfl9sylr92d1gy-quickshell-git

$ guix shell -L . -f quickshell.scm -- quickshell --version
quickshell 0.2.1, revision , distributed by: "In-tree Guix channel"

$ git log -1
commit 95364813e0882ea87955eec8d67a6bb5b74341d4 (HEAD -> master)
Author: Nikita Mitasov <me@ch4og.com>
Date:   Sun Nov 30 06:35:02 2025 +0300

    guix: remove unneeded replacements

qtdeclarative modules are still available in the environment

I don't really understand how Qt works at all so I don't really know a way to test that.

@ch4og
Copy link
Author

ch4og commented Nov 30, 2025

Running quickshell with example config in pure shell works fine. Maybe that can prove it works?
(pure fully clears environment variables)

$ guix shell -L /tmp/quickshell -f /tmp/quickshell/quickshell.scm coreutils bash --pure -- bash
The following derivation will be built:
  /gnu/store/s7wpzd4yfgj4jvkqa7f0md4fcwb3lrg1-profile.drv

building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
generating GLib schema cache...
building directory of Info manuals...
building XDG desktop file cache...
building XDG MIME database...
building profile with 3 packages...
bash: zoxide: command not found
bash: fastfetch: command not found

ch@noko ~ [env]$ export XDG_RUNTIME_DIR="/tmp/runtime-$(id -u)"

ch@noko ~ [env]$ mkdir -p "$XDG_RUNTIME_DIR"

ch@noko ~ [env]$ env
SHELL=/gnu/store/x2g0npwvq1w8mp9g0zlfjhw8b4g6z1a7-fish-4.0.1/bin/fish
BASH_LOADABLES_PATH=/gnu/store/ka4hvmgcr1ml86rf0mav2myvl2v8184s-profile/lib/bash
PWD=/home/ch
LOGNAME=ch
HOME=/home/ch
TERM=xterm-ghostty
USER=ch
DISPLAY=:0
SHLVL=1
GUIX_ENVIRONMENT=/gnu/store/ka4hvmgcr1ml86rf0mav2myvl2v8184s-profile
XDG_RUNTIME_DIR=/tmp/runtime-1000
PATH=/gnu/store/ka4hvmgcr1ml86rf0mav2myvl2v8184s-profile/bin
_=/gnu/store/ka4hvmgcr1ml86rf0mav2myvl2v8184s-profile/bin/env

ch@noko ~ [env]$ cat ~/.config/quickshell/shell.qml
import Quickshell // for PanelWindow
import QtQuick // for Text

PanelWindow {
  anchors {
    top: true
    left: true
    right: true
  }

  implicitHeight: 30

  Text {
    // center the bar in its parent component (the window)
    anchors.centerIn: parent

    text: "hello world"
  }

ch@noko ~ [env]$ quickshell
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
  INFO: Launching config: "/home/ch/.config/quickshell/shell.qml"
  INFO: Shell ID: "50efbd8f00f9268d6d474eee6923db87" Path ID "50efbd8f00f9268d6d474eee6923db87"
  INFO: Saving logs to "/tmp/runtime-1000/quickshell/by-id/7t3xiti6t/log.qslog"
pci id for fd 14: 10de:2560, driver (null)
pci id for fd 17: 10de:2560, driver (null)
kmsro: driver missing
glx: failed to create dri3 screen
failed to load driver: nvidia-drm
  INFO: Configuration Loaded

@outfoxxed
Copy link
Member

If it works in a pure shell that's probably enough

@ch4og ch4og marked this pull request as ready for review November 30, 2025 09:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants