[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.
- #1792: Some eggs install into system /share and /bin (even when CHICKEN_INSTALL_REPOSITORY is set); this fails when the directory is RO,
Chicken Trac <=