Opened 9 years ago

Closed 9 years ago

#904 closed defect (fixed)

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

Reported by: Maurizio Tomasi Owned by: Kon Lovett
Priority: minor Milestone:
Component: extensions Version: 4.8.x
Keywords: Cc:
Estimated difficulty:

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.)

Change History (2)

comment:1 Changed 9 years ago by felix winkelmann

Milestone: 4.8.0
Owner: set to Kon Lovett
Status: newassigned

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.

comment:2 Changed 9 years ago by Kon Lovett

Resolution: fixed
Status: assignedclosed

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.)

Note: See TracTickets for help on using tickets.