chicken-janitors
[Top][All Lists]
Advanced

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

#1792: Some eggs install into system /share and /bin (even when CHICKEN_


From: Chicken Trac
Subject: #1792: Some eggs install into system /share and /bin (even when CHICKEN_INSTALL_REPOSITORY is set); this fails when the directory is RO
Date: Thu, 14 Oct 2021 15:58:15 -0000

#1792: Some eggs install into system /share and /bin (even when
CHICKEN_INSTALL_REPOSITORY is set); this fails when the directory is RO
------------------------------------+---------------------
            Reporter:  Norman Gray  |       Type:  defect
              Status:  new          |   Priority:  major
           Milestone:  someday      |  Component:  unknown
             Version:  5.2.0        |   Keywords:
Estimated difficulty:               |
------------------------------------+---------------------
 I'm using Nixpkgs (hence the paths below), but the same would be true in
 another case when the system /share is for whatever reason not expected to
 be writable by chicken-install.

 Since .../share is expected to be read-only in this context, I've defined
 a separate repository for eggs to be installed in:

     CHICKEN_REPOSITORY_PATH=$HOME/.chicken-install:/nix/store
 /1sy3rv81crwlviknmqnfs1cwz3bbqr1g-chicken-5.2.0/lib/chicken/11
     CHICKEN_INSTALL_REPOSITORY=$HOME/.chicken-install
     CHICKEN_INCLUDE_PATH=/nix/store/na72pj8gy1gyqd0llz6myvk8dzd4q5i0
 -compiler-rt-libc-7.1.0/share:/nix/store/1sy3rv81crwlviknmqnfs1cwz3bbqr1g-
 chicken-5.2.0/share

 That works OK for several eggs, but srfi-29 fails:
 {{{
       installing srfi-29
     mkdir: cannot create directory ‘/nix/store
 /1sy3rv81crwlviknmqnfs1cwz3bbqr1g-
 chicken-5.2.0/share/chicken/srfi-29-bundles’: Permission denied
 }}}
 and sure enough, $HOME/.cache/chicken-install/srfi-29/srfi-29.install.sh
 includes
 {{{
     mkdir -p ${DESTDIR}'/nix/store/1sy3rv81crwlviknmqnfs1cwz3bbqr1g-
 chicken-5.2.0/share/chicken'
     mkdir -p ${DESTDIR}'/nix/store/1sy3rv81crwlviknmqnfs1cwz3bbqr1g-
 chicken-5.2.0/share/chicken/srfi-29-bundles'
     install -m 644 '/Users/norman/.cache/chicken-
 install/srfi-29/srfi-29-bundles/srfi-29' ${DESTDIR}'/nix/store
 /1sy3rv81crwlviknmqnfs1cwz3bbqr1g-
 chicken-5.2.0/share/chicken/srfi-29-bundles'
 }}}
 That is, it seems to unconditionally want to install in the system share
 directory.

 The same is true of some other eggs (I'm not sure this is an exhaustive
 list: Kon Lovett on-list suggested that these, like srfi-29, specify a
 'data files’ component to the extension, which chicken-install places in
 '(chicken-home)’):

 sqlite3: tried to install stuff into system /share

 spock and manual-labor: tried to install stuff into system /bin and /share

 In case anyone isn't aware NixOS, and Nixpkgs as a package system for
 other OSs, is predicated on the idea that the system directories are owned
 entirely by the Nix system, so that .../share/FOO is out of bounds.  I'm
 using Nixpkgs 2.3.16 on macOS 11.6, though I don't think either of those
 versions is relevant to the issue).

-- 
Ticket URL: <https://bugs.call-cc.org/ticket/1792>
CHICKEN Scheme <https://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.

reply via email to

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