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




Reply via email to