I'm trying to setup a Pharo8 image in Windows 10, using a git repo I cloned manually, but pharo gives a strange error. The following code works fine on linux, but fails in Windows (I've tried both Git Bash or msys2-mingw64). It clones my repo, downloads a Pharo 8 image+vm in a subdir, copies it to a new image where it adds an Iceberg repo and tries to install a metacello package:
$ git clone git@github.com:powerlang/powerlang.git powerlang
$ cd powerlang/bootstrap
$ curl https://get.pharo.org/64/80+vm | bash
$ ./pharo Pharo.image save bootstrap
$ ./pharo bootstrap.image eval --save "(IceRepositoryCreator new location: '..' asFileReference; createRepository) register"
$ ./pharo bootstrap.image metacello install tonel://./src BaselineOfPowerlang
MetacelloNotification: Fetched -> BaselineOfPowerlang-tonel.1 --- tonel://C:\dev\powerlang\bootstrap\src --- tonel://C:\dev\powerlang\bootstrap\src
MetacelloNotification: Loaded -> BaselineOfPowerlang-tonel.1 --- tonel://C:\dev\powerlang\bootstrap\src --- tonel://C:\dev\powerlang\bootstrap\src
MetacelloNotification: Loading baseline of BaselineOfPowerlang...
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
[infinite loop]
Am I doing something wrong? How can I fix the problem?
It seems the problems had to do with paths.
I could finally work around them by manually telling Iceberg where the .ssh files are (which it should already know :/
as they are in the standard directory). Changing to the line below solved the problem:
$ ./pharo bootstrap.image eval --save "IceCredentialsProvider useCustomSsh: true. IceCredentialsProvider sshCredentials publicKey: '`cygpath -w ~/.ssh/id_rsa.pub`'; privateKey: '`cygpath -w ~/.ssh/id_rsa`'. (IceRepositoryCreator new location: '..' asFileReference; createRepository) register"
Iceberg doesn't support using ~
for the ssh path, nor the /c/Users/xxx
notation, so instead we pass it translated to a Windows styled path (cygwin -w ~/.ssh/id_rsa
gets converted to C:\Users\xxx\.ssh\id_rsa
).