Subject: Re: bug#42947: Chez Scheme libraries are broken

From: Martin Becze <[email-masked]>
Date: Mon, 31 Aug 2020 11:53:24 -0500

> This is creating an empty directory, right?  Are you sure this helps?

Yes, I think it solves the problem. On line 92 of the package definition 
we have

```
(native-search-paths
      (list (search-path-specification
             (variable "CHEZSCHEMELIBDIRS")
             (files (list (string-append "lib/csv" version "-site"))))))
```
search-path-specification won't set the environmental variable unless 
the folder already exists. Note lib/csv<version> does exist at this 
point but most libraries seem to want to live lib/csv<version>-site.

On 8/28/20 8:22 AM, Ludovic Courtès wrote:
> Hi Martin,
> 
> Martin Becze <[email-masked]> skribis:
> 
>> Chez Scheme libraries are broken. For example `guix environment --ad-hoc
>> chez-scheme chez-fmt`. chez-fmt will not install (for me) because it is
>> dependent on chez-srfi and chez-scheme seem unable to locate it.
>>
>> I think it is because CHEZSCHEMELIBDIRS is not being set. But I'm not
>> sure why that is happening. The chez-scheme package includes the following
>>
>>
>> ```
>> (native-search-paths
>>        (list (search-path-specification
>>              (variable "CHEZSCHEMELIBDIRS")
>>              (files (list (string-append "lib/csv" version "-site"))))))
>> ```
>> Which I think should set it.
>>
>> -Martin
> 
> Martin Becze <[email-masked]> skribis:
> 
>> By default chez-scheme seems to be using lib/csv<version> for libaries. This
>> creates the directory lib/csv<version>-site which the scheme libary packages
>> expect.
>>
>> * gnu/packages/chez.scm (chez-scheme): Create libary directory.
>> ---
>>   gnu/packages/chez.scm | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
>> index b80421d3f7..bb584696ae 100644
>> --- a/gnu/packages/chez.scm
>> +++ b/gnu/packages/chez.scm
>> @@ -194,6 +194,8 @@
>>                       (bin (string-append out "/bin"))
>>                       (lib (string-append out "/lib"))
>>                       (name "chez-scheme"))
>> +               ;; create the folder for libary installation
>> +               (mkdir (string-append lib "/csv" ,version "-site"))
> 
> This is creating an empty directory, right?  Are you sure this helps?
> 
> Isn’t the problem that packages like chez-fmt install libraries in
> ‘csv-site’ instead of ‘csv1.2.3-site’?
> 
> --8<---------------cut here---------------start------------->8---
> $ find $(./pre-inst-env  guix build chez-fmt)
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/lib
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/lib/csv-site
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/lib/csv-site/fmt-js.so
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/lib/csv-site/fmt-c.so
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/lib/csv-site/fmt.so
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/share
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/share/doc
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/share/doc/chez-fmt-0.8.11
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/share/doc/chez-fmt-0.8.11/fmt.css
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/share/doc/chez-fmt-0.8.11/README
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/share/doc/chez-fmt-0.8.11/fmt.html
> /gnu/store/qr8mgphbivlqbdmn355kps2cxlmi679d-chez-fmt-0.8.11/share/doc/chez-fmt-0.8.11/VERSION
> --8<---------------cut here---------------end--------------->8---
> 
> Thanks,
> Ludo’.
> 
>