Ok, I found a way to fix the problem.
Simply, I needed to install the package lib32-libopenssl-1.0-compat
which contains
the library with "1.0.0" version. This should be added as dependency to
the package
in AUR. (the command: # yaourt -S lib32-libopenssl-1.0-compat)
I can help for that if needed. Who manage the pharo-related packages for
Arch?
Julien
On 09/05/17 11:24, Sven Van Caekenberghe wrote:
For Pharo 5, on the same machine:
$ curl get.pharo.org/50+vm | bash
...
$ ./pharo --version
5.0 #1 Wed May 4 11:54:28 CEST 2016 gcc 4.6.3 [Production Spur ITHB VM]
CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4
May 4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid:
d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
https://github.com/pharo-project/pharo-vm.git Commit:
b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban
Lorenzano <esteba...@gmail.com> Jenkins build #589
Linux pharo-linux 3.2.0-31-generic-pae #50-Ubuntu SMP Fri Sep 7 16:39:45 UTC
2012 i686 i686 i386 GNU/Linux
$ ./pharo Pharo.image printVersion
[version] 5.0 #50772
$ ./pharo Pharo.image eval "ZnClient new get: 'https://pharo.org'"
4149724864:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert
handshake failure:s23_clnt.c:769:
ConnectionClosed: Connection closed while waiting for data.
...
This is normal, see
https://pharo.fogbugz.com/f/cases/19864/Add-support-for-Server-Name-Indication-SNI-to-Zodiac-SSLPlugin
which is integrated in 6 but not in 5.
Note that the error is different from yours (no linking error, a runtime error).
With other HTTPS sites, it still works on 5:
audio359@audio359:~/pharo-dev/pharo5$ ./pharo Pharo.image eval "ZnClient new get:
'https://audio359.eu'"
...
On 9 May 2017, at 09:08, Julien Delplanque <jul...@tamere.eu> wrote:
Hello,
I did the same thing as you and it works.
When I do:
./pharo --version
I get:
5.0-201705022326 Tue May 2 23:46:52 UTC 2017 gcc 4.6.3 [Production Spur ITHB
VM]
CoInterpreter VMMaker.oscog-eem.2203 uuid: 12d4afae-8498-4e76-8efe-60eba6ef4db2
May 2 2017
StackToRegisterMappingCogit VMMaker.oscog-eem.2203 uuid:
12d4afae-8498-4e76-8efe-60eba6ef4db2 May 2 2017
VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date:
Tue May 2 16:26:41 2017 -0700 $
Plugins: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
Linux testing-gce-7a7e75c9-f535-4934-bad2-d5fb6fd60cee 3.13.0-103-generic
#150~precise1-Ubuntu SMP Thu Nov 24 11:05:34 UTC 2016 i686 i686 i386 GNU/Linux
plugin path: /tmp/pharo/pharo-vm/lib/pharo/5.0-201705022326 [default:
/tmp/pharo/pharo-vm/lib/pharo/5.0-201705022326/]
And when I check the version of the VM currently installed on my system:
pharo-spur
I get:
5.0 #1 Tue Jun 21 12:37:33 CEST 2016 gcc 4.6.3 [Production Spur ITHB VM]
CoInterpreter VMMaker.oscog-HolgerHansPeterFreyther.1880 uuid:
16138eb3-2390-40f5-a6c8-15f0494936f8 Jun 21 2016
StackToRegisterMappingCogit VMMaker.oscog-HolgerHansPeterFreyther.1880 uuid:
16138eb3-2390-40f5-a6c8-15f0494936f8 Jun 21 2016
https://github.com/pharo-project/pharo-vm.git Commit:
9638b0190a9fc01479bfb752becd96edfd253c8c Date: 2016-06-21 12:29:26 +0200 By: GitHub
<nore...@github.com> Jenkins build #594
Linux pharo-linux 3.2.0-31-generic-pae #50-Ubuntu SMP Fri Sep 7 16:39:45 UTC
2012 i686 i686 i386 GNU/Linux
plugin path: /usr/share/pharo/spur/ [default: /usr/share/pharo/spur/]
So apparently those are not the same VMs.
Nevertheless, when I open Pharo 6 image that I got using your curl command, it
using the network works with both VM.
So, I tried to load a Pharo 5 image with the VM:
curl get.pharo.org/50+vm | bash
And when I do:
./pharo Pharo.image eval "ZnClient new get: 'https://pharo.org'"
I get:
ioLoadModule(/tmp/pharo2/pharo-vm/libSqueakSSL.so):
/usr/lib32/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by
/tmp/pharo2/pharo-vm/libSqueakSSL.so)
ZdcPluginMissing: SSL/TLS plugin initailization failed (VM plugin missing ? OS
libraries missing ?)
[ :exception | ZdcPluginMissing signal ] in ZdcPluginSSLSession>>initialize in
Block: [ :exception | ZdcPluginMissing signal ]
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
PrimitiveFailed(Exception)>>signal
PrimitiveFailed class(SelectorException class)>>signalFor:
ZdcPluginSSLSession(Object)>>primitiveFailed:
ZdcPluginSSLSession(Object)>>primitiveFailed
ZdcPluginSSLSession>>primitiveSSLCreate
[ handle := self primitiveSSLCreate ] in ZdcPluginSSLSession>>initialize in
Block: [ handle := self primitiveSSLCreate ]
BlockClosure>>on:do:
ZdcPluginSSLSession>>initialize
ZdcPluginSSLSession class(Behavior)>>new
ZdcSecureSocketStream>>sslSession
ZdcSecureSocketStream>>connect
ZnClient>>setupTLSTo:
ZnClient>>newConnectionTo:
ZnClient>>getConnectionAndExecute
ZnClient>>executeWithRedirectsRemaining:
[ self executeWithRedirectsRemaining: self maxNumberOfRedirects ] in
ZnClient>>executeWithRetriesRemaining: in Block: [ self
executeWithRedirectsRemaining: self maxNumb...etc...
BlockClosure>>on:do:
ZnClient>>executeWithRetriesRemaining:
[ self executeWithRetriesRemaining: self numberOfRetries ] in [ [ self
executeWithRetriesRemaining: self numberOfRetries ]
on: Error
do: self ifFailBlock ] in ZnClient>>executeWithTimeout in Block: [ self
executeWithRetriesRemaining: self numberOfR...etc...
BlockClosure>>on:do:
[ [ self executeWithRetriesRemaining: self numberOfRetries ]
on: Error
do: self ifFailBlock ] in ZnClient>>executeWithTimeout in Block: [ [ self
executeWithRetriesRemaining: self numberO...etc...
[ ^ block value ] in ZnClient>>withTimeoutDo: in Block: [ ^ block value ]
[ p psValueAt: index put: anObject.
aBlock value ] in ZnConnectionTimeout(DynamicVariable)>>value:during: in Block:
[ p psValueAt: index put: anObject....
BlockClosure>>ensure:
ZnConnectionTimeout(DynamicVariable)>>value:during:
ZnConnectionTimeout class(DynamicVariable class)>>value:during:
So I guess it concerns Pharo 5 images/VM?
Julien
On 08/05/17 13:49, Sven Van Caekenberghe wrote:
Just to be sure, I tried from scratch:
$ cat /etc/issue
Ubuntu 16.04.2 LTS
$ uname -a
Linux audio359 3.13.0-57-generic #95-Ubuntu SMP Fri Jun 19 09:28:15 UTC 2015
x86_64 x86_64 x86_64 GNU/Linux
$ curl get.pharo.org/60+vm | bash
...
$ ./pharo Pharo.image printVersion
[version] 6.0 #60482
$ ./pharo Pharo.image eval "ZnClient new get: 'https://pharo.org'"
'<!DOCTYPE HTML>
<html>
<head>
...
</html>'
$ ldd pharo-vm/lib/pharo/5.0-201705022326/SqueakSSL.so
linux-gate.so.1 => (0xf773a000)
libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0
(0xf751c000)
libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0xf74b2000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf72fb000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf72f6000)
/lib/ld-linux.so.2 (0xf7718000)
This is on a 64-bit Ubuntu with 32-bit libs installed (and that worked before).
Something must be different in your case.
On 8 May 2017, at 13:36, Marc Hanisch via Pharo-users
<pharo-users@lists.pharo.org> wrote:
From: Marc Hanisch <marc.hani...@googlemail.com>
Subject: Re: [Pharo-users] SSL/TLS plugin initailization failed (VM plugin
missing ? OS libraries missing ?)
Date: 8 May 2017 at 13:36:12 GMT+2
To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
Hello,
I have the same problem on Ubuntu 16.04 and Fedora 25...
Any hints?
Marc
Am 08.05.2017 13:18 schrieb "Julien Delplanque" <jul...@tamere.eu>:
Ok, I installed the missing library:
yaourt -S lib32-openssl-1.0
now when I do:
ldd /usr/share/pharo/vm/libSqueakSSL.so
I get:
/usr/share/pharo/vm/libSqueakSSL.so: /usr/lib32/libssl.so.1.0.0: version
`OPENSSL_1.0.0' not found (required by /usr/share/pharo/vm/libSqueakSSL.so)
linux-gate.so.1 (0xf77f1000)
libssl.so.1.0.0 => /usr/lib32/libssl.so.1.0.0 (0xf7731000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf7571000)
libcrypto.so.1.0.0 => /usr/lib32/libcrypto.so.1.0.0 (0xf7360000)
/usr/lib/ld-linux.so.2 (0x565de000)
libdl.so.2 => /usr/lib32/libdl.so.2 (0xf735b000)
So it is still not working, I still get the exception in Pharo. :-(
Julien