help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: stumpwm contrib modules have been broken


From: Katherine Cox-Buday
Subject: Re: stumpwm contrib modules have been broken
Date: Wed, 06 Jan 2021 10:08:34 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Guillaume Le Vaillant <glv@posteo.net> writes:

> Guillaume Le Vaillant <glv@posteo.net> skribis:
>
>> Katherine Cox-Buday <cox.katherine.e@gmail.com> skribis:
>>
>>> Sometime recently, the way Common Lisp code is compiled was changed (for
>>> the better, I think), and now my StumpWM contrib modules won't load.
>>> Here's why:
>>>
>>> StumpWM looks[1] for .asd files to determine what is a module. Guix's
>>> Common Lisp build system used to combine an entire system into a single
>>> .fasl file and then produce a .asd file for loading it. Now -- as far as
>>> I can tell -- it looks like `lib/common-lisp/sbcl` is more like the
>>> Common Lisp cache: one .fasl file per .lisp file.
>>>
>>> If I point StumpWM at `lib/common-lisp/sbcl` via `set-module-dir`, it
>>> finds no modules. If I point StumpWM at `share/common-lisp/sbcl`, it
>>> finds modules, tries to compile them, and then gives me a permissions
>>> error about writing to the `/gnu` store.
>>>
>>> Is anyone using StumpWM contrib modules successfully with Guix's new
>>> layout? How?
>>>
>>> [1] - https://github.com/stumpwm/stumpwm/blob/master/module.lisp#L70
>>
>> Hi,

Hey, thanks for responding Guillaume, and thanks for forwarding, Pierre.

>> In my StumpWM init file, I use '(asdf:load-system ...)' instead of
>> '(load-module ...)' to load the contrib modules that are installed in my
>> Guix profile, and it works.

When I try this, I get this error:

Error opening 
#P"/gnu/store/j6s3hhmlm8n7ynv92agcbzzxrc0bgpc0-stumpwm-20.11-lib/lib/common-lisp/sbcl/stumpwm/package-tmpAAURS01.fasl

which is a file that does not exist.

> With the following near the top of my StumpWM init file, the
> 'load-module' function works like 'asdf:load-system':
>
> (let* ((guix-profile (pathname-as-directory (getenv "GUIX_PROFILE")))
>        (module-dir (merge-pathnames "share/common-lisp/sbcl/" guix-profile)))
>   (set-module-dir module-dir))

This is what I mentioned above, pointing to the `share/` side of things.
On my Guix OS system, this works (but it has to compile everything; I'd
prefer to use the precompiled fasls), but on my alien distro, I get the
afforementioned permission error as it tries to write to the store.

I'm happy to try and find something that works in the short-term so I
can get my window manager back, but in the long-term, we should repair
the bug so that new users aren't left wondering as well.

Thanks again for responding.

Katherine



reply via email to

[Prev in Thread] Current Thread [Next in Thread]