Issue installing some packages with nixpkgs

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Issue installing some packages with nixpkgs

Blake Sweeney
Hi,

I'm trying to install some packages using nixpkgs on osx using egg2nix and ran
into a strange issue with llrb-tree. It cannot be installed because of failure
to create a strange path. Other packages like srfi-69, list-utils, etc can be
installed though. Below is a snippet of trying to install llrb-tree:

these derivations will be built:
  /nix/store/88v0h58kdj8jlyp4r40f9ppkjhr6drz1-chicken-llrb-tree-0.3.8.drv
building '/nix/store/88v0h58kdj8jlyp4r40f9ppkjhr6drz1-chicken-llrb-tree-0.3.8.drv'...
unpacking sources
unpacking source archive /nix/store/2gaq2jwbg6788dkvfq200947d6x461qy-chicken-llrb-tree-export
source root is chicken-llrb-tree-export
patching sources
configuring
no configure script, doing nothing
building
no Makefile, doing nothing
installing

Error: (create-directory) cannot create directory - Permission denied: "/homeless-shelter"
builder for '/nix/store/88v0h58kdj8jlyp4r40f9ppkjhr6drz1-chicken-llrb-tree-0.3.8.drv' failed with exit code 70
error: build of '/nix/store/88v0h58kdj8jlyp4r40f9ppkjhr6drz1-chicken-llrb-tree-0.3.8.drv' failed

Attached is a shell.nix that can reproduce the issue. Note that on osx, you will
need a very up-to-date nix as chicken was just marked as working on osx.

I'm guessing that at some point chicken-install wants to create a path in $HOME,
which is set to /homeless-shelter by nix during a build. Nix already sets
CHICKEN_INSTALL_PREFIX and CHICKEN_INSTALL_REPOSITORY, but is there any other
path that needs to be set/created? Thanks for any help!


Kind Regards,
Blake Sweeney

Reply | Threaded
Open this post in threaded view
|

Re: Issue installing some packages with nixpkgs

Mario Domenech Goulart-4
Hi Blake,

On Sat, 21 Nov 2020 12:09:22 +0000 Blake Sweeney <[hidden email]> wrote:

> I'm trying to install some packages using nixpkgs on osx using egg2nix and ran
> into a strange issue with llrb-tree. It cannot be installed because of failure
> to create a strange path. Other packages like srfi-69, list-utils, etc can be
> installed though. Below is a snippet of trying to install llrb-tree:
>
> these derivations will be built:
>   /nix/store/88v0h58kdj8jlyp4r40f9ppkjhr6drz1-chicken-llrb-tree-0.3.8.drv
> building '/nix/store/88v0h58kdj8jlyp4r40f9ppkjhr6drz1-chicken-llrb-tree-0.3.8.drv'...
> unpacking sources
> unpacking source archive /nix/store/2gaq2jwbg6788dkvfq200947d6x461qy-chicken-llrb-tree-export
> source root is chicken-llrb-tree-export
> patching sources
> configuring
> no configure script, doing nothing
> building
> no Makefile, doing nothing
> installing
>
> Error: (create-directory) cannot create directory - Permission denied: "/homeless-shelter"
> builder for '/nix/store/88v0h58kdj8jlyp4r40f9ppkjhr6drz1-chicken-llrb-tree-0.3.8.drv' failed with exit code 70
> error: build of '/nix/store/88v0h58kdj8jlyp4r40f9ppkjhr6drz1-chicken-llrb-tree-0.3.8.drv' failed
>
> Attached is a shell.nix that can reproduce the issue. Note that on osx, you will
> need a very up-to-date nix as chicken was just marked as working on osx.
>
> I'm guessing that at some point chicken-install wants to create a path in $HOME,
> which is set to /homeless-shelter by nix during a build. Nix already sets
> CHICKEN_INSTALL_PREFIX and CHICKEN_INSTALL_REPOSITORY, but is there any other
> path that needs to be set/created? Thanks for any help!

Maybe the cache created by chicken-install [1]?

If you don't want it to use a directory in the user home directory, you
can configure the CHICKEN_EGG_CACHE environment variable to point to
another directory.

[1] https://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=blob;f=library.scm;h=d1b6ad229f2e9d3444973345c7778319b30a9c54;hb=HEAD#l6619

All the best.
Mario
--
http://parenteses.org/mario

Reply | Threaded
Open this post in threaded view
|

Re: Issue installing some packages with nixpkgs

Blake Sweeney
Hi,

On Sat, Nov 21, 2020 at 01:18:59PM +0100, Mario Domenech Goulart wrote:
> Maybe the cache created by chicken-install [1]?
>
> If you don't want it to use a directory in the user home directory, you
> can configure the CHICKEN_EGG_CACHE environment variable to point to
> another directory.

Thanks for the pointer, it made me realize that chicken-install is trying to
fetch a package, which it shouldn't do in nix. Turns out that egg2nix doesn't
extract the llrb-syntax dependency that is required to build llrb-tree. Making
llrb-syntax a dependency in nix fixes the issue. Thanks! Thanks to everyone
who's worked on chicken, I really enjoyed working with it!


Kind Regards,
Blake Sweeney