Hi Monoke, On Mon, Nov 03, 2025 at 07:46:23AM +0000, [email protected] wrote: > Hello, > I'm attempting to build and install a package definition for this program: > https://github.com/milgra/sov > > Following the examples in the Guix manual, and so far so good, except that > build tests fail with this output after running `guix package > --install-from-file=sov.scm`: > > Fontconfig error: No writable cache directories (...)
This sounds like it's trying to update the font cache. The build environment is read-only so this will fail which is what it's saying. I had a quick look at the tests and it appears that they are looking for some specific fonts: https://github.com/milgra/sov/commit/b87812836cc08549bbabd3365d7db642cb0ac1b6 I didn't look at the details but I think it will probably fail unless you ran a full Sway environment to do the tests, which our builders don't do. The recommended way would be to either remove the tests that won't run or if there's no choice to turn off all tests, as you did lower down. To remote the tests you could either (a) turn them off using the upstreams test runner, often this is done with an <origin> snippet, (b) turn them off with a patch to the test runner, (c) remove the tests with a patch. The test runner looks like it's just a script (runtests.sh), so you might have to patch it to remove anything that won't work. I suspect when you look at it you'll find there aren't any tests that can run in our build environments usefully, so removing all tests with #:tests? #f will be better and more concise. If you decide to submit it upstream to Guix you'll need to put a comment on the tests line explaining concisely why you've removed them. The rest of your package definition looks good. Just watch your line length in the descriptions as Guix requires everything to be 80 chars or less. Lets not wake the dragon of dicussing whether 80 chars on modern screens is sensible or mere cargo-culting. Hope that all makes sense! Steve / Futurile > I'm inexperienced with Guile Scheme & writing custom package definitions, > and I'm not sure how to fix this. If I disable tests with `#:tests? #false` > then the package appears to build and install without an issue... I'd still > like to know what's going on, though. I've attached the .scm file for > reference. > Maybe I've done something wrong along the way? > P.S. My apologies if this message shows up in the list several times, I seem > to be having difficulties with my mail client and I'm not sure if anything > is being sent. > (define-module (config packages sov) > #:use-module (gnu packages) > #:use-module (gnu packages build-tools) > #:use-module (gnu packages cmake) > #:use-module (gnu packages fontutils) > #:use-module (gnu packages freedesktop) > #:use-module (gnu packages gl) > #:use-module (gnu packages image) > #:use-module (gnu packages llvm) > #:use-module (gnu packages ninja) > #:use-module (gnu packages pkg-config) > #:use-module (gnu packages xdisorg) > #:use-module (guix build-system meson) > #:use-module (guix git-download) > #:use-module ((guix licenses) #:prefix license:) > #:use-module (guix packages) > #:use-module (guix utils)) > > ;;(define-public sov > (let ((version "0.94") > (revision "0") > (commit "5beff04194dd675db121c13dec738bc0711b0107")) > (package > (name "sov") > (version (git-version version revision commit)) > (source (origin > (method git-fetch) > (uri (git-reference > (url "https://github.com/milgra/sov/") > (commit commit))) > (file-name (git-file-name name version)) > (sha256 > (base32 > "0k39pr83yqpzmbk0a8a302gxmsdgpjdlvm2dijyp2yvjdn3xl0i6")))) > (build-system meson-build-system) > (arguments > `(#:tests? #false)) > (native-inputs > (list clang meson ninja cmake pkg-config fontconfig)) > (inputs > (list libpng freetype libglvnd glew wayland wayland-protocols > libxkbcommon)) > (home-page "https://github.com/milgra/sov/") > (synopsis "An overlay that shows schemas for all workspaces to make > navigation in sway easier.") > (description "Sway overview is an overview application for the sway > tiling window manager. Tiling window managers are about simplicity so by > default they don't have any kind of overview feature. It is okay under five > workspaces because you can just remember where specific windows were opened > but over 5 workspaces it can get really complicated. Sway overview draws a > schematic layout of all your workspaces on each output. It contains all > windows, window titles and window contents. Thumbnail based overview > solutions can become confusing quickly when the thumbnails become too small > to recognize, sway overview won't. The common usage of Sway overview is to > bound its appereance to the desktop switcher buttons with a little latency. > Sway overview can be structured via html, styled via css.") > (license license:gpl3))) > ;;)
