Summary

Unable to run "chicken-install -deploy" with srfi-19 (must be root)

Metadata

Description

On my system (Ubuntu Linux 12.04, with Chicken Scheme 4.7.0 installed from the Ubuntu repository using `apt-get`) I cannot add the egg `srfi-19` to my deployed executable because of write permissions:

 $ chicken-install -deploy -p ./standalone srfi-19
 retrieving ...
 resolving alias `kitten-technologies' to: http://chicken.kitten-technologies.co.uk/henrietta.cgi
 connecting to host "chicken.kitten-technologies.co.uk", port 80 ...
 requesting "/henrietta.cgi?name=srfi-19&mode=default" ...
 reading response ...
 HTTP/1.1 200 OK
 Date: Tue, 21 Aug 2012 20:46:43 GMT
 Server: Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.9-dev DAV/2 SVN/1.6.17 PHP/5.2.17 mod_fastcgi/2.4.6
 Connection: close
 Transfer-Encoding: chunked
 Content-Type: text/plain
 reading chunks ....
 reading files ...
   ./TODO
   ./chicken-primitive-object-inlines.scm
   ./de/
   ./de/srfi-19
   ./en/
   ./en/srfi-19
   ./es/
   ./es/srfi-19
   ./it/
   ./it/srfi-19
   ./nl/
   ./nl/srfi-19
   ./pt/
   ./pt/br/
   ./pt/br/srfi-19
   ./srfi-19-common.scm
   ./srfi-19-core.scm
   ./srfi-19-date.scm
   ./srfi-19-io.scm
   ./srfi-19-period.scm
   ./srfi-19-support.scm
   ./srfi-19-time.scm
   ./srfi-19-timezone.scm
   ./srfi-19.meta
   ./srfi-19.scm
   ./srfi-19.setup
   ./tai-utc.dat
  srfi-19 located at /tmp/temp379e/srfi-19
 checking platform for `srfi-19' ...
 checking dependencies for `srfi-19' ...
 install order:
 ("srfi-19")
 installing srfi-19: ...
 changing current directory to /tmp/temp379e/srfi-19
   /usr/bin/csi -bnq -e "(require-library setup-api)" -e "(import setup-api)" -e "(setup-error-handling)" -e "(extension-name-and-version '(\"srfi-19\" \"\"))" -e "(destination-prefix \"/home/tomasi/standalone\")" -e "(runtime-prefix \"/home/tomasi/standalone\")" -e "(deployment-mode #t)" /tmp/temp379e/srfi-19/srfi-19.setup
   cp -r de/srfi-19 /var/lib/chicken/6/srfi-29-bundles/de/srfi-19
 cp: cannot create regular file `/var/lib/chicken/6/srfi-29-bundles/de/srfi-19': Permission denied
 
 Error: shell command failed with nonzero exit status 256:
 
   cp -r de/srfi-19 /var/lib/chicken/6/srfi-29-bundles/de/srfi-19
 
 
 Error: shell command terminated with nonzero exit code
 17920
 "/usr/bin/csi -bnq -e \"(require-library setup-api)\" -e \"(import setup-api)\" ...

To solve this, I have to use `sudo`. So far this is the only library I am using in my project which requires me to do so.

(Note: before doing this I already installed the egg using `sudo chicken-install srfi-19`.)

Changes and comments

[2012-08-23 21:29:31 UTC] felix changed status from new to assigned

[2012-08-23 21:29:31 UTC] felix set owner to kon

[2012-08-23 21:29:31 UTC] felix removed milestone 4.8.0

[2012-08-23 21:29:31 UTC] felix wrote:

The problem seems to be that `install-srfi-19-bundle` ("setup-helper" egg) uses `repository-path` as the destination for bundles. It should probably use `installation-prefix`, which is different in deployment mode (this can be tested by evaluating `(deployment-mode)`). I tried to use `installation-prefix` instead, but then I got a complaint about a missing bundle directory. In any case `repository-path` is not the correct destination in deployment mode.

[2012-08-23 22:05:10 UTC] kon changed status from assigned to closed

[2012-08-23 22:05:10 UTC] kon set resolution to fixed

[2012-08-23 22:05:10 UTC] kon wrote:

try w/ setup-helper 1.5.3

(Note: use chicken-install -sudo srfi-19 instead of sudo chicken-install srfi-19 should it be necessary.)