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: Guillaume Le Vaillant
Subject: Re: stumpwm contrib modules have been broken
Date: Wed, 06 Jan 2021 18:26:04 +0100
User-agent: mu4e 1.4.13; emacs 27.1

Katherine Cox-Buday <cox.katherine.e@gmail.com> skribis:

> 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

I'm using a Guix OS and I don't have the issue; StumpWM uses the
precompiled files and doesn't try to recompile anything.
Maybe we can try to find what is the difference between your
configuration and mine.

Are all the packages for the Lisp systems and StumpWM modules that you
load in your init file installed in your Guix profile?

How is your StumpWM started (.xsession file, custom script, ...)?

What is the result of evaluating '(getenv "XDG_CONFIG_DIRS")' in your
StumpWM?

What is the result of evaluating '(getenv "XDG_DATA_DIRS")' in your
StumpWM?

Could you share the part of your init file that sets the module
directory (or directories)?

Does StumpWM try to recompile every module that you load, or only
some of them?

Attachment: signature.asc
Description: PGP signature


reply via email to

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