ASDF can't load sbcl-clx-truetype installed through Guix

  • Done
  • quality assurance status badge
Details
4 participants
  • Guillaume Le Vaillant
  • John Kehayias
  • Alec Barreto
  • Lars Rustand
Owner
unassigned
Submitted by
Lars Rustand
Severity
normal
L
L
Lars Rustand wrote on 27 Jan 16:57 +0100
(address . bug-guix@gnu.org)
878r4ad39e.fsf@yoga.mail-host-address-is-not-set
Trying to load clx-truetype with ASDF in SBCL fails because of read-only
filesystem. This is caused by the store being read-only and ASDF is
trying to save the compiled file there. I read somewhere that Guix
already supplies precompiled files for all Common Lisp libraries, so
ASDF should just be able to load this one instead of compiling it, but
this doesn't seem to work in this case.

I'm able to load other packages just fine, like sbcl-slynk and
sbcl-alexandria. Using cl-clx-truetype instead of sbcl-clx-truetype also
works fine, even though this one obviously also needs compilation.

I'm not sure what the exact cause is, but it seems that there are at
least two things wrong.
1. ASDF/SBCL doesn't find the precompiled file(s) for clx-truetype.
2. The path to where the compiled files are saved is wrong.


Steps to reproduce:
1. Install sbcl and sbcl-clx-truetype
2. Run `sbcl --eval '(require :asdf)' --eval '(asdf:load-system :clx-truetype)'`
2a. Or start sbcl and manually run the commands


Toggle snippet (45 lines)
This is SBCL 2.4.0, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
WARNING: System definition file #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/share/common-lisp/sbcl/clx-truetype/clx-truetype.asd" contains definition for system "clx-truetype-test". Please only define "clx-truetype" and secondary systems with a name starting with "clx-truetype/" (e.g. "clx-truetype/test") in that file.
WARNING: System definition file #P"/gnu/store/bqfsbh15lpnf9i9f5qf6ya6yhcdk8nw3-sbcl-cl-store-0.8.11-1.c787337/share/common-lisp/sbcl/cl-store/cl-store.asd" contains definition for system "cl-store-tests". Please only define "cl-store" and secondary systems with a name starting with "cl-store/" (e.g. "cl-store/test") in that file.
WARNING: redefining ZPB-TTF::LOCATION in DEFGENERIC

debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread
#<THREAD tid=8027 "main thread" RUNNING {1001460003}>:
Error opening #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/lib/common-lisp/sbcl/clx-truetype/package-tmpGHU3ALSV.fasl":

Read-only file system

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
0: [CONTINUE ] Retry opening.
1: [USE-VALUE ] Try opening a different file.
2: [RETRY ] Retry
compiling #<CL-SOURCE-FILE "clx-truetype" "package">.
3: [ACCEPT ] Continue, treating
compiling #<CL-SOURCE-FILE "clx-truetype" "package">
as having been successful.
4: Retry ASDF operation.
5: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
configuration.
6: Retry ASDF operation.
7: Retry ASDF operation after resetting the
configuration.
8: Ignore runtime option --eval "(asdf:load-system :clx-truetype)".
9: [ABORT ] Skip rest of --eval and --load options.
10: Skip to toplevel READ/EVAL/PRINT loop.
11: [EXIT ] Exit SBCL (calling #'EXIT, killing the process).

(SB-IMPL::%OPEN-ERROR #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/lib/common-lisp/sbcl/clx-truetype/package-tmpGHU3ALSV.fasl" 30 NIL :CREATE)
0]
;
; compilation unit aborted
; caught 1 fatal ERROR condition
* %
J
J
John Kehayias wrote on 27 Jan 22:07 +0100
(name . Lars Rustand)(address . rustand.lars@gmail.com)(address . 68764@debbugs.gnu.org)
87cytmiiyu.fsf@protonmail.com
Hi Lars,

On Sat, Jan 27, 2024 at 04:57 PM, Lars Rustand wrote:

Toggle quote (23 lines)
> Trying to load clx-truetype with ASDF in SBCL fails because of read-only
> filesystem. This is caused by the store being read-only and ASDF is
> trying to save the compiled file there. I read somewhere that Guix
> already supplies precompiled files for all Common Lisp libraries, so
> ASDF should just be able to load this one instead of compiling it, but
> this doesn't seem to work in this case.
>
> I'm able to load other packages just fine, like sbcl-slynk and
> sbcl-alexandria. Using cl-clx-truetype instead of sbcl-clx-truetype also
> works fine, even though this one obviously also needs compilation.
>
> I'm not sure what the exact cause is, but it seems that there are at
> least two things wrong.
> 1. ASDF/SBCL doesn't find the precompiled file(s) for clx-truetype.
> 2. The path to where the compiled files are saved is wrong.
>
>
> Steps to reproduce:
> 1. Install sbcl and sbcl-clx-truetype
> 2. Run `sbcl --eval '(require :asdf)' --eval '(asdf:load-system :clx-truetype)'`
> 2a. Or start sbcl and manually run the commands
>

I can't reproduce this, at least on Guix at commit
da3e6aea0a750246e8a9120d62441c3df65faff0

I ran your command in one line with guix shell (and set --pure just in
case; I have SBCL_HOME set, not sure if anything else relevant):

Toggle snippet (14 lines)
? guix shell --pure sbcl sbcl-clx-truetype -- sbcl --eval '(require :asdf)' --eval '(asdf:load-system :clx-truetype)'
This is SBCL 2.4.0, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
WARNING: System definition file #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/share/common-lisp/sbcl/clx-truetype/clx-truetype.asd" contains definition for system "clx-truetype-test". Please only define "clx-truetype" and secondary systems with a name starting with "clx-truetype/" (e.g. "clx-truetype/test") in that file.
WARNING: System definition file #P"/gnu/store/bqfsbh15lpnf9i9f5qf6ya6yhcdk8nw3-sbcl-cl-store-0.8.11-1.c787337/share/common-lisp/sbcl/cl-store/cl-store.asd" contains definition for system "cl-store-tests". Please only define "cl-store" and secondary systems with a name starting with "cl-store/" (e.g. "cl-store/test") in that file.
WARNING: redefining ZPB-TTF::LOCATION in DEFGENERIC
* (quit)

Perhaps try with 'guix shell --pure' as well, in case it is an
environment setting?

John

Toggle quote (44 lines)
> This is SBCL 2.4.0, an implementation of ANSI Common Lisp.
> More information about SBCL is available at <http://www.sbcl.org/>.
>
> SBCL is free software, provided as is, with absolutely no warranty.
> It is mostly in the public domain; some portions are provided under
> BSD-style licenses. See the CREDITS and COPYING files in the
> distribution for more information.
> WARNING: System definition file #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/share/common-lisp/sbcl/clx-truetype/clx-truetype.asd" contains definition for system "clx-truetype-test". Please only define "clx-truetype" and secondary systems with a name starting with "clx-truetype/" (e.g. "clx-truetype/test") in that file.
> WARNING: System definition file #P"/gnu/store/bqfsbh15lpnf9i9f5qf6ya6yhcdk8nw3-sbcl-cl-store-0.8.11-1.c787337/share/common-lisp/sbcl/cl-store/cl-store.asd" contains definition for system "cl-store-tests". Please only define "cl-store" and secondary systems with a name starting with "cl-store/" (e.g. "cl-store/test") in that file.
> WARNING: redefining ZPB-TTF::LOCATION in DEFGENERIC
>
> debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread
> #<THREAD tid=8027 "main thread" RUNNING {1001460003}>:
> Error opening #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/lib/common-lisp/sbcl/clx-truetype/package-tmpGHU3ALSV.fasl":
>
> Read-only file system
>
> Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
>
> restarts (invokable by number or by possibly-abbreviated name):
> 0: [CONTINUE ] Retry opening.
> 1: [USE-VALUE ] Try opening a different file.
> 2: [RETRY ] Retry
> compiling #<CL-SOURCE-FILE "clx-truetype" "package">.
> 3: [ACCEPT ] Continue, treating
> compiling #<CL-SOURCE-FILE "clx-truetype" "package">
> as having been successful.
> 4: Retry ASDF operation.
> 5: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
> configuration.
> 6: Retry ASDF operation.
> 7: Retry ASDF operation after resetting the
> configuration.
> 8: Ignore runtime option --eval "(asdf:load-system :clx-truetype)".
> 9: [ABORT ] Skip rest of --eval and --load options.
> 10: Skip to toplevel READ/EVAL/PRINT loop.
> 11: [EXIT ] Exit SBCL (calling #'EXIT, killing the process).
>
> (SB-IMPL::%OPEN-ERROR #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/lib/common-lisp/sbcl/clx-truetype/package-tmpGHU3ALSV.fasl" 30 NIL :CREATE)
> 0]
> ;
> ; compilation unit aborted
> ; caught 1 fatal ERROR condition
> * %
R
R
rustand.lars wrote on 27 Jan 22:17 +0100
(address . 68764@debbugs.gnu.org)(name . John Kehayias)(address . john.kehayias@protonmail.com)
874jeycvlc.fsf@yoga.mail-host-address-is-not-set
John Kehayias <john.kehayias@protonmail.com> writes:

Toggle quote (13 lines)
> Hi Lars,
>
> I can't reproduce this, at least on Guix at commit
> da3e6aea0a750246e8a9120d62441c3df65faff0
>
> I ran your command in one line with guix shell (and set --pure just in
> case; I have SBCL_HOME set, not sure if anything else relevant):
> ...
> Perhaps try with 'guix shell --pure' as well, in case it is an
> environment setting?
>
> John

I ran the exact same command as you, and still get the error inside the
pure shell. Also, I don't think this has anything to do with a specific
Guix commit, since this has been like this for several months. In fact
it has never worked for me at all. I did a pull again now, so should be
on the latest commit, but the error is still present. I am currently on
dc8aa52.

I even tried running it in a container, and the error is there also, so
this cannot be because of something else in my system, right?

Toggle snippet (43 lines)
guix shell --container sbcl sbcl-clx-truetype -- sbcl --eval '(require :asdf)' --eval '(asdf:load-system :clx-truetype)'
applying 4 grafts for bash-5.1.16 ...
This is SBCL 2.4.0, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
WARNING: System definition file #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/share/common-lisp/sbcl/clx-truetype/clx-truetype.asd" contains definition for system "clx-truetype-test". Please only define "clx-truetype" and secondary systems with a name starting with "clx-truetype/" (e.g. "clx-truetype/test") in that file.
WARNING: System definition file #P"/gnu/store/bqfsbh15lpnf9i9f5qf6ya6yhcdk8nw3-sbcl-cl-store-0.8.11-1.c787337/share/common-lisp/sbcl/cl-store/cl-store.asd" contains definition for system "cl-store-tests". Please only define "cl-store" and secondary systems with a name starting with "cl-store/" (e.g. "cl-store/test") in that file.
WARNING: redefining ZPB-TTF::LOCATION in DEFGENERIC

debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread
#<THREAD tid=1 "main thread" RUNNING {1001460003}>:
Error opening #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/lib/common-lisp/sbcl/clx-truetype/package-tmpGHU3ALSV.fasl":

Read-only file system

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
0: [CONTINUE ] Retry opening.
1: [USE-VALUE ] Try opening a different file.
2: [RETRY ] Retry
compiling #<CL-SOURCE-FILE "clx-truetype" "package">.
3: [ACCEPT ] Continue, treating
compiling #<CL-SOURCE-FILE "clx-truetype" "package">
as having been successful.
4: Retry ASDF operation.
5: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
configuration.
6: Retry ASDF operation.
7: Retry ASDF operation after resetting the
configuration.
8: Ignore runtime option --eval "(asdf:load-system :clx-truetype)".
9: [ABORT ] Skip rest of --eval and --load options.
10: Skip to toplevel READ/EVAL/PRINT loop.
11: [EXIT ] Exit SBCL (calling #'EXIT, killing the process).

(SB-IMPL::%OPEN-ERROR #P"/gnu/store/qwb8qyjn615icrgxkjwqjwlwkwzxcc7y-sbcl-clx-truetype-0.0.1-1.c6e10a9/lib/common-lisp/sbcl/clx-truetype/package-tmpGHU3ALSV.fasl" 30 NIL :CREATE)
0]
G
G
Guillaume Le Vaillant wrote on 27 Jan 22:49 +0100
(address . rustand.lars@gmail.com)
87bk96jvdw.fsf@kitej
rustand.lars@gmail.com skribis:

Toggle quote (25 lines)
> John Kehayias <john.kehayias@protonmail.com> writes:
>
>> Hi Lars,
>>
>> I can't reproduce this, at least on Guix at commit
>> da3e6aea0a750246e8a9120d62441c3df65faff0
>>
>> I ran your command in one line with guix shell (and set --pure just in
>> case; I have SBCL_HOME set, not sure if anything else relevant):
>> ...
>> Perhaps try with 'guix shell --pure' as well, in case it is an
>> environment setting?
>>
>> John
>
> I ran the exact same command as you, and still get the error inside the
> pure shell. Also, I don't think this has anything to do with a specific
> Guix commit, since this has been like this for several months. In fact
> it has never worked for me at all. I did a pull again now, so should be
> on the latest commit, but the error is still present. I am currently on
> dc8aa52.
>
> I even tried running it in a container, and the error is there also, so
> this cannot be because of something else in my system, right?

Hi.
Could you check if adding the "--no-userinit" option for sbcl makes
a difference?
-----BEGIN PGP SIGNATURE-----

iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCZbV7Ww8cZ2x2QHBvc3Rl
by5uZXQACgkQa+ggit8h/j9KqwD/WDDWHFazEF2xPZs4umCx3zC5lMxegSQ4oGOp
ldDI2zQA/1Z04El4Ph8oPJkk/jE2Ts74BrOAkm8v6G8Phb/825xy
=zXqY
-----END PGP SIGNATURE-----

A
A
Alec Barreto wrote on 7 Feb 12:05 +0100
ASDF can't load sbcl-clx-truetype installed through Guix
(address . 68764@debbugs.gnu.org)
87msscfsa9.fsf@posteo.net
I am running into this same issue on other cl packages as well.
L
L
Lars Rustand wrote on 5 Mar 21:28 +0100
(name . Guillaume Le Vaillant)(address . glv@posteo.net)
87bk7sza2w.fsf@yoga.mail-host-address-is-not-set
Guillaume Le Vaillant <glv@posteo.net> writes:

Toggle quote (12 lines)
> rustand.lars@gmail.com skribis:
>
>> I ran the exact same command as you, and still get the error inside the
>> pure shell. Also, I don't think this has anything to do with a specific
>> Guix commit, since this has been like this for several months. In fact
>> it has never worked for me at all. I did a pull again now, so should be
>> on the latest commit, but the error is still present. I am currently on
>> dc8aa52.
>>
>> I even tried running it in a container, and the error is there also, so
>> this cannot be because of something else in my system, right?

I had forgot about this thread, but randomly saw it mentioned on IRC
today. The problem in my case was that I had some packages in
~/common-lisp. Since I was running the container from my home folder
this was still visible inside the container even though it was --pure.
After deleting the ~/common-lisp folder I was able to load the package
without any issue, both inside a container/shell and directly on my
system also.
G
G
Guillaume Le Vaillant wrote on 7 Mar 21:18 +0100
(name . Lars Rustand)(address . rustand.lars@gmail.com)(address . 68764-close@debbugs.gnu.org)
87zfv9bxql.fsf@kitej
Lars Rustand <rustand.lars@gmail.com> skribis:

Toggle quote (8 lines)
> I had forgot about this thread, but randomly saw it mentioned on IRC
> today. The problem in my case was that I had some packages in
> ~/common-lisp. Since I was running the container from my home folder
> this was still visible inside the container even though it was --pure.
> After deleting the ~/common-lisp folder I was able to load the package
> without any issue, both inside a container/shell and directly on my
> system also.

Ok. Closing the issue then.
-----BEGIN PGP SIGNATURE-----

iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCZeohcg8cZ2x2QHBvc3Rl
by5uZXQACgkQa+ggit8h/j8/lwD9H2pKzZLxUj42uOa+pC9s8mu5WWY713GICgV1
amRZEGEA/R2TfCK5F/ZinmwNzUQZia7PBHoKG+CInqjM4u2McX5e
=aJHN
-----END PGP SIGNATURE-----

?