Opened 5 weeks ago

Last modified 5 weeks ago

#1727 new defect

chicken-install srfi-18 fails on Windows

Reported by: Josh Helzer Owned by:
Priority: major Milestone: someday
Component: unknown Version: 5.2.0
Keywords: Cc:
Estimated difficulty:

Description

The culprit appears to be improper path escaping:

C:\>chicken-install srfi-18
building srfi-18
   C:\Users\j\AppData\Local\chicken-install\srfi-18\build-srfi-18.bat -host -D compiling-extension -J -s -regenerate-import-libraries -setup-mode -I C:\Users\j\AppData\Local\chicken-install\srfi-18 -C -IC:\Users\j\AppData\Local\chicken-install\srfi-18 -O2 -d1 srfi-18.scm -o C:\Users\j\AppData\Local\chicken-install\srfi-18\srfi-18.so
'""C:' is not recognized as an internal or external command,
operable program or batch file.
        1 file(s) copied.
'""C:' is not recognized as an internal or external command,
operable program or batch file.

Error: shell command terminated with nonzero exit code
1
"C:\\Users\\j\\AppData\\Local\\chicken-install\\srfi-18\\srfi-18.build.bat"

C:\>

Change History (2)

comment:1 Changed 5 weeks ago by sjamaan

Hi there! I think this isn't a SRFI-18 specific problem, but rather a chicken-install problem.

It looks like you might have missed the CHICKEN build instructions from the README file:

          - When installing under mingw, with a windows shell
            ("cmd.exe"), pass an absolute pathname (including the
            drive letter) as PREFIX and use forward slashes. If you
            are building the sources from git, use backslashes to
            specify the path to `chicken' (the "CHICKEN" variable).

Note that this requires you to use forward slashes, probably because of this issue. Of course, if you can fix CHICKEN and chicken-install specifically to make it work with backslashes that would be great too.

comment:2 Changed 5 weeks ago by Tim Rooney

Hey, I've also had this problem with some eggs in the past on Windows. I've been able to get around it when it pops up by removing some extra quotes in the build-*.bat files.

The problem seems to be that %CHICKEN_CSC% and %CHICKEN_CSI% are already quoted, but some of the batch files themselves quote the variable, causing doubled quotes that Windows cannot handle.

I believe that this should be all of the affected eggs:

; In
$ grep --include=*.bat -rw . -e '"%CHICKEN_CSC%"' -e '"%CHICKEN_CSI%"' | awk -F "/" '{ print $2 }'

; Out
breadline
imlib2
openssl
socket
srfi-18
taglib
Note: See TracTickets for help on using tickets.