View Issue Details

IDProjectCategoryView StatusLast Update
0001702SkyChart1-Softwarepublic17-04-23 16:11
ReporterMattia Verga Assigned ToPatrick Chevalley  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version4.0 
Target Version4.2Fixed in Version4.1 SVN 
Summary0001702: Error using openSSL 1.1
DescriptionSynapse component does not work with openSSL 1.1 and this causes an error when downloading artificial satellites data from https://www.prismnet.com/~mmccants/programs/qsmag.zip

This is probably due to the fact that OpenSSL now uses TLS_method() as default instead of SSLv23_method() (see https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_new.html)

At the moment only Fedora 26 has switched to OpenSSL 1.1, but this will become a problem with other distributions in future.
I can't find a bugtracker of synapse for reporting, only a mailing list, and I don't know enough Pascal language to be more helpful...
TagsNo tags attached.

Activities

Sasa

17-04-05 20:40

reporter   ~0003755

Last edited: 17-04-05 21:03

View 4 revisions

Mattia,

I have just noticed CDC use latest synapse SVN code...

You may contact author directly by private email regarding bug. He encourage that as well If anyone found bug is not willing to subscribe to mailing list and he replied promptly in the past. See notice regarding that on support page.

I'm not aware of current synapse development, however I do remember there was TLS issue with connection pop3/imap with some older release (perhaps ver. 35 or so). I have fixed that long time for my own internal needs. The fix was trivial in the synapse core, perhaps it is as well trivial for https.

Patrick Chevalley

17-04-06 09:25

administrator   ~0003756

The Synapse bug tracker is on Sourceforge:
https://sourceforge.net/p/synalist/_list/tickets

I can try to find a fix but I first need to install a Fedora 26 VM.
If this is just replacing SSLv23_* by TLS_* it can be trivial. But we must keep support of the old library too.

Mattia Verga

17-04-08 13:03

reporter   ~0003767

Thanks, I've reported this to synapse mailing list.
https://sourceforge.net/p/synalist/mailman/synalist-public/thread/06cb8c84-7534-950d-f515-53fbae6fad75%40tiscali.it/#msg35775796

Mattia Verga

17-04-12 09:46

reporter   ~0003776

This is the patch I wrote for Fedora. It removes support for SSLv2_method, defines the new TLS_method and sets it as default.

I don't know how to make it work automatically based on OpenSSL version, so I just apply the patch on Fedora releases where I need it.

I've tested locally and it works, now I'm rebuilding skychart in Fedora 27 and 26.
skychart-4.0-libssl.patch (7,021 bytes)   
diff -U 3 -dHrN -- a/skychart/component/synapse/source/lib/blcksock.pas b/skychart/component/synapse/source/lib/blcksock.pas
--- a/skychart/component/synapse/source/lib/blcksock.pas	2017-04-12 09:21:36.872249313 +0200
+++ b/skychart/component/synapse/source/lib/blcksock.pas	2017-04-12 09:21:58.686247010 +0200
@@ -240,7 +240,7 @@
   {:Specify requested SSL/TLS version for secure connection.}
   TSSLType = (
     LT_all,
-    LT_SSLv2,
+    LT_SSLv23,
     LT_SSLv3,
     LT_TLSv1,
     LT_TLSv1_1,
diff -U 3 -dHrN -- a/skychart/component/synapse/source/lib/ssl_openssl_lib.pas b/skychart/component/synapse/source/lib/ssl_openssl_lib.pas
--- a/skychart/component/synapse/source/lib/ssl_openssl_lib.pas	2017-03-05 10:27:48.000000000 +0100
+++ b/skychart/component/synapse/source/lib/ssl_openssl_lib.pas	2017-04-12 09:16:06.067282537 +0200
@@ -125,8 +125,8 @@
     DLLUtilName: string = 'crypto.dll';
       {$ENDIF OS2GCC}
      {$ELSE OS2}
-    DLLSSLName: string = 'libssl.so';
-    DLLUtilName: string = 'libcrypto.so';
+    DLLSSLName: string = 'libssl.so.1.1';
+    DLLUtilName: string = 'libcrypto.so.1.1';
      {$ENDIF OS2}
     {$ENDIF}
   {$ELSE}
@@ -283,11 +283,6 @@
 
   [DllImport(DLLSSLName, CharSet = CharSet.Ansi,
     SetLastError = False, CallingConvention= CallingConvention.cdecl,
-    EntryPoint = 'SSLv2_method')]
-    function SslMethodV2 : PSSL_METHOD; external;
-
-  [DllImport(DLLSSLName, CharSet = CharSet.Ansi,
-    SetLastError = False, CallingConvention= CallingConvention.cdecl,
     EntryPoint = 'SSLv3_method')]
     function SslMethodV3 : PSSL_METHOD;  external;
 
@@ -313,6 +308,11 @@
 
   [DllImport(DLLSSLName, CharSet = CharSet.Ansi,
     SetLastError = False, CallingConvention= CallingConvention.cdecl,
+    EntryPoint = 'TLS_method')]
+    function SslMethodTLS : PSSL_METHOD; external;
+
+  [DllImport(DLLSSLName, CharSet = CharSet.Ansi,
+    SetLastError = False, CallingConvention= CallingConvention.cdecl,
     EntryPoint = 'SSL_CTX_use_PrivateKey')]
     function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer;  external;
 
@@ -713,12 +713,12 @@
   function SslCtxNew(meth: PSSL_METHOD):PSSL_CTX;
   procedure SslCtxFree(arg0: PSSL_CTX);
   function SslSetFd(s: PSSL; fd: Integer):Integer;
-  function SslMethodV2:PSSL_METHOD;
   function SslMethodV3:PSSL_METHOD;
   function SslMethodTLSV1:PSSL_METHOD;
   function SslMethodTLSV11:PSSL_METHOD;
   function SslMethodTLSV12:PSSL_METHOD;
   function SslMethodV23:PSSL_METHOD;
+  function SslMethodTLS:PSSL_METHOD;
   function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer;
   function SslCtxUsePrivateKeyASN1(pk: integer; ctx: PSSL_CTX; d: AnsiString; len: integer):Integer;
 //  function SslCtxUsePrivateKeyFile(ctx: PSSL_CTX; const _file: PChar; _type: Integer):Integer;
@@ -841,12 +841,12 @@
   TSslCtxNew = function(meth: PSSL_METHOD):PSSL_CTX; cdecl;
   TSslCtxFree = procedure(arg0: PSSL_CTX); cdecl;
   TSslSetFd = function(s: PSSL; fd: Integer):Integer; cdecl;
-  TSslMethodV2 = function:PSSL_METHOD; cdecl;
   TSslMethodV3 = function:PSSL_METHOD; cdecl;
   TSslMethodTLSV1 = function:PSSL_METHOD; cdecl;
   TSslMethodTLSV11 = function:PSSL_METHOD; cdecl;
   TSslMethodTLSV12 = function:PSSL_METHOD; cdecl;
   TSslMethodV23 = function:PSSL_METHOD; cdecl;
+  TSslMethodTLS = function:PSSL_METHOD; cdecl;
   TSslCtxUsePrivateKey = function(ctx: PSSL_CTX; pkey: sslptr):Integer; cdecl;
   TSslCtxUsePrivateKeyASN1 = function(pk: integer; ctx: PSSL_CTX; d: sslptr; len: integer):Integer; cdecl;
   TSslCtxUsePrivateKeyFile = function(ctx: PSSL_CTX; const _file: PAnsiChar; _type: Integer):Integer; cdecl;
@@ -948,12 +948,12 @@
   _SslCtxNew: TSslCtxNew = nil;
   _SslCtxFree: TSslCtxFree = nil;
   _SslSetFd: TSslSetFd = nil;
-  _SslMethodV2: TSslMethodV2 = nil;
   _SslMethodV3: TSslMethodV3 = nil;
   _SslMethodTLSV1: TSslMethodTLSV1 = nil;
   _SslMethodTLSV11: TSslMethodTLSV11 = nil;
   _SslMethodTLSV12: TSslMethodTLSV12 = nil;
   _SslMethodV23: TSslMethodV23 = nil;
+  _SslMethodTLS: TSslMethodTLS = nil;
   _SslCtxUsePrivateKey: TSslCtxUsePrivateKey = nil;
   _SslCtxUsePrivateKeyASN1: TSslCtxUsePrivateKeyASN1 = nil;
   _SslCtxUsePrivateKeyFile: TSslCtxUsePrivateKeyFile = nil;
@@ -1106,14 +1106,6 @@
     Result := 0;
 end;
 
-function SslMethodV2:PSSL_METHOD;
-begin
-  if InitSSLInterface and Assigned(_SslMethodV2) then
-    Result := _SslMethodV2
-  else
-    Result := nil;
-end;
-
 function SslMethodV3:PSSL_METHOD;
 begin
   if InitSSLInterface and Assigned(_SslMethodV3) then
@@ -1154,6 +1146,14 @@
     Result := nil;
 end;
 
+function SslMethodTLS:PSSL_METHOD;
+begin
+  if InitSSLInterface and Assigned(_SslMethodTLS) then
+    Result := _SslMethodTLS
+  else
+    Result := nil;
+end;
+
 function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer;
 begin
   if InitSSLInterface and Assigned(_SslCtxUsePrivateKey) then
@@ -1901,12 +1901,12 @@
         _SslCtxNew := GetProcAddr(SSLLibHandle, 'SSL_CTX_new');
         _SslCtxFree := GetProcAddr(SSLLibHandle, 'SSL_CTX_free');
         _SslSetFd := GetProcAddr(SSLLibHandle, 'SSL_set_fd');
-        _SslMethodV2 := GetProcAddr(SSLLibHandle, 'SSLv2_method');
         _SslMethodV3 := GetProcAddr(SSLLibHandle, 'SSLv3_method');
         _SslMethodTLSV1 := GetProcAddr(SSLLibHandle, 'TLSv1_method');
         _SslMethodTLSV11 := GetProcAddr(SSLLibHandle, 'TLSv1_1_method');
         _SslMethodTLSV12 := GetProcAddr(SSLLibHandle, 'TLSv1_2_method');
         _SslMethodV23 := GetProcAddr(SSLLibHandle, 'SSLv23_method');
+        _SslMethodTLS := GetProcAddr(SSLLibHandle, 'TLS_method');
         _SslCtxUsePrivateKey := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_PrivateKey');
         _SslCtxUsePrivateKeyASN1 := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_PrivateKey_ASN1');
         //use SSL_CTX_use_RSAPrivateKey_file instead SSL_CTX_use_PrivateKey_file,
@@ -2098,12 +2098,12 @@
     _SslCtxNew := nil;
     _SslCtxFree := nil;
     _SslSetFd := nil;
-    _SslMethodV2 := nil;
     _SslMethodV3 := nil;
     _SslMethodTLSV1 := nil;
     _SslMethodTLSV11 := nil;
     _SslMethodTLSV12 := nil;
     _SslMethodV23 := nil;
+    _SslMethodTLS := nil;
     _SslCtxUsePrivateKey := nil;
     _SslCtxUsePrivateKeyASN1 := nil;
     _SslCtxUsePrivateKeyFile := nil;
diff -U 3 -dHrN -- a/skychart/component/synapse/source/lib/ssl_openssl.pas b/skychart/component/synapse/source/lib/ssl_openssl.pas
--- a/skychart/component/synapse/source/lib/ssl_openssl.pas	2015-07-31 10:48:21.000000000 +0200
+++ b/skychart/component/synapse/source/lib/ssl_openssl.pas	2017-04-12 09:07:20.000000000 +0200
@@ -420,8 +420,8 @@
   FLastError := 0;
   Fctx := nil;
   case FSSLType of
-    LT_SSLv2:
-      Fctx := SslCtxNew(SslMethodV2);
+    LT_SSLv23:
+      Fctx := SslCtxNew(SslMethodV23);
     LT_SSLv3:
       Fctx := SslCtxNew(SslMethodV3);
     LT_TLSv1:
@@ -431,7 +431,7 @@
     LT_TLSv1_2:
       Fctx := SslCtxNew(SslMethodTLSV12);
     LT_all:
-      Fctx := SslCtxNew(SslMethodV23);
+      Fctx := SslCtxNew(SslMethodTLS);
   else
     Exit;
   end;
skychart-4.0-libssl.patch (7,021 bytes)   

Sasa

17-04-12 11:22

reporter   ~0003777

Last edited: 17-04-12 11:23

View 2 revisions

Mattia,

The library should be linked dynamically, not statically. In that case it is possible to determinate anything of interest (used OS version, available SSL/TLS version, etc) before the library is actually initialized.

If Patrick does not fix that, I may try to make corrections in the future.

Sasa

17-04-17 07:35

reporter   ~0003779

Mattia,

What following command returns on your system?

openssl version

I will try to fix this version of synapse generically.

Mattia Verga

17-04-17 10:46

reporter   ~0003780

On Fedora 25 (which still uses OpenSSL 1.0):
$ openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017

From Fedora 26 onwards:
$ openssl version
OpenSSL 1.1.0e-fips 16 Feb 2017

Sasa

17-04-17 15:33

reporter   ~0003781

Last edited: 17-04-17 15:46

View 6 revisions

Thank you,

Changed files are attached. With old OpenSSL 1.0.x it works unchanged, although I would ask to double check anyway.

The code change is quite simple, although it may further be polished. It works only for Linux and try to detected version of OpenSSL. If find OpenSSL 1.1.x, it will use your code.

If this interference on other Linux distros use OpenSSL 1.1.x, it can be also added similarly 'uname -v' and restrict code on Fedora only.

I revert code you have removed and all updated/added is under my initials in order to double check all is correct.

Code under {$IFDEF CLI} should not be changed at all, as that is for Delphi.NET only if I remember correctly (Windows .NET only applications). However, your changes in that section are still there you may remove anyway - I'm not familiar with .NET and these changes I made will have no effect there anyway.

Please test all and feedback your results. If all is correct Patrick may use that as a base to make an appropriate update.

Mattia Verga

17-04-18 18:51

reporter   ~0003782

Another option could be to set the openssl version by the configure script at compile time.

In the attached "skychart_ssl_new.patch" I made the following changes:
- only add the new OpenSSL 1.1 methods to synapse, without removing the obsoletes for v1.0
- make the CDC configure script check the OpenSSL version installed at compile time. The "openssl version" should work also on Win and Mac, but I cannot test. After the check, the default synapse method will be set to TLS if OpenSSL 1.1 is detected, otherwise it will be set to SSLv23.
- now the user can manually pass to configure script the names of libssl and libcrypto libraries ("./configure withSSL=SSLname withCrypto=Cryptoname").

My view is more "distribution oriented" (the package maintainer of the distribution can set the parameters at build time), while Sasa solution could be more "user friendly" for users that make their custom builds... the choice is up to you.
skychart_ssl_new.patch (6,167 bytes)   
diff -U 3 -dHrN -- a/configure b/configure
--- a/configure	2014-12-18 20:10:07.000000000 +0100
+++ b/configure	2017-04-18 18:18:13.352468714 +0200
@@ -3,7 +3,7 @@
 # create freepascal Makefile to build skychart
 #
 # syntaxe :
-#    ./configure [fpcbin=path_to_fpc_binaries] [fpc=path_to_fpc_units]  [lazarus=path_to_lazarus] [prefix=install_path] [target=fpcmake_target]
+#    ./configure [fpcbin=path_to_fpc_binaries] [fpc=path_to_fpc_units]  [lazarus=path_to_lazarus] [prefix=install_path] [target=fpcmake_target] [withSSL=SSL_library_name] [withCrypto=Crypto_library_name]
 #
 
 # set parameters
@@ -142,6 +142,28 @@
 sed "s#%PREFIX%#$prefix#" Makefile.in > Makefile
 cd $basedir
 
+#  Check OpenSSL version installed
+OPENSSL_VER="$(eval openssl version)"
+
+if [[ ${OPENSSL_VER} == *"OpenSSL 1.1"* ]]; then
+    sed -i "s/{{V23orTLS}}/SslMethodTLS/" skychart/component/synapse/source/lib/ssl_openssl.pas
+else
+    sed -i "s/{{V23orTLS}}/SslMethodV23/" skychart/component/synapse/source/lib/ssl_openssl.pas
+fi
+echo using ${OPENSSL_VER}
+
+#  OpenSSL library filenames
+if [ "$withSSL" ]; then
+   sed -i "s/libssl.so/$withSSL/" skychart/component/synapse/source/lib/ssl_openssl_lib.pas
+   echo using $withSSL as DLLSSLName
+fi
+
+if [ "$withCrypto" ]; then
+   sed -i "s/libcrypto.so/$withCrypto/" skychart/component/synapse/source/lib/ssl_openssl_lib.pas
+   echo using $withCrypto as DLLUtilName
+fi
+
+
 echo
 echo You can now build with:
 echo make clean  all
diff -U 3 -dHrN -- a/skychart/component/synapse/source/lib/blcksock.pas b/skychart/component/synapse/source/lib/blcksock.pas
--- a/skychart/component/synapse/source/lib/blcksock.pas	2015-07-31 10:48:21.000000000 +0200
+++ b/skychart/component/synapse/source/lib/blcksock.pas	2017-04-18 18:18:49.008477059 +0200
@@ -240,8 +240,10 @@
   {:Specify requested SSL/TLS version for secure connection.}
   TSSLType = (
     LT_all,
+    LT_SSLv23,
     LT_SSLv2,
     LT_SSLv3,
+    LT_TLS,
     LT_TLSv1,
     LT_TLSv1_1,
     LT_TLSv1_2,
diff -U 3 -dHrN -- a/skychart/component/synapse/source/lib/ssl_openssl_lib.pas b/skychart/component/synapse/source/lib/ssl_openssl_lib.pas
--- a/skychart/component/synapse/source/lib/ssl_openssl_lib.pas	2017-03-05 10:27:48.000000000 +0100
+++ b/skychart/component/synapse/source/lib/ssl_openssl_lib.pas	2017-04-18 18:22:09.316476706 +0200
@@ -313,6 +313,11 @@
 
   [DllImport(DLLSSLName, CharSet = CharSet.Ansi,
     SetLastError = False, CallingConvention= CallingConvention.cdecl,
+    EntryPoint = 'TLS_method')]
+    function SslMethodTLS : PSSL_METHOD; external;
+
+  [DllImport(DLLSSLName, CharSet = CharSet.Ansi,
+    SetLastError = False, CallingConvention= CallingConvention.cdecl,
     EntryPoint = 'SSL_CTX_use_PrivateKey')]
     function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer;  external;
 
@@ -719,6 +724,7 @@
   function SslMethodTLSV11:PSSL_METHOD;
   function SslMethodTLSV12:PSSL_METHOD;
   function SslMethodV23:PSSL_METHOD;
+  function SslMethodTLS:PSSL_METHOD;
   function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer;
   function SslCtxUsePrivateKeyASN1(pk: integer; ctx: PSSL_CTX; d: AnsiString; len: integer):Integer;
 //  function SslCtxUsePrivateKeyFile(ctx: PSSL_CTX; const _file: PChar; _type: Integer):Integer;
@@ -847,6 +853,7 @@
   TSslMethodTLSV11 = function:PSSL_METHOD; cdecl;
   TSslMethodTLSV12 = function:PSSL_METHOD; cdecl;
   TSslMethodV23 = function:PSSL_METHOD; cdecl;
+  TSslMethodTLS = function:PSSL_METHOD; cdecl;
   TSslCtxUsePrivateKey = function(ctx: PSSL_CTX; pkey: sslptr):Integer; cdecl;
   TSslCtxUsePrivateKeyASN1 = function(pk: integer; ctx: PSSL_CTX; d: sslptr; len: integer):Integer; cdecl;
   TSslCtxUsePrivateKeyFile = function(ctx: PSSL_CTX; const _file: PAnsiChar; _type: Integer):Integer; cdecl;
@@ -954,6 +961,7 @@
   _SslMethodTLSV11: TSslMethodTLSV11 = nil;
   _SslMethodTLSV12: TSslMethodTLSV12 = nil;
   _SslMethodV23: TSslMethodV23 = nil;
+  _SslMethodTLS: TSslMethodTLS = nil;
   _SslCtxUsePrivateKey: TSslCtxUsePrivateKey = nil;
   _SslCtxUsePrivateKeyASN1: TSslCtxUsePrivateKeyASN1 = nil;
   _SslCtxUsePrivateKeyFile: TSslCtxUsePrivateKeyFile = nil;
@@ -1154,6 +1162,14 @@
     Result := nil;
 end;
 
+function SslMethodTLS:PSSL_METHOD;
+begin
+  if InitSSLInterface and Assigned(_SslMethodTLS) then
+    Result := _SslMethodTLS
+  else
+    Result := nil;
+end;
+
 function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer;
 begin
   if InitSSLInterface and Assigned(_SslCtxUsePrivateKey) then
@@ -1907,6 +1923,7 @@
         _SslMethodTLSV11 := GetProcAddr(SSLLibHandle, 'TLSv1_1_method');
         _SslMethodTLSV12 := GetProcAddr(SSLLibHandle, 'TLSv1_2_method');
         _SslMethodV23 := GetProcAddr(SSLLibHandle, 'SSLv23_method');
+        _SslMethodTLS := GetProcAddr(SSLLibHandle, 'TLS_method');
         _SslCtxUsePrivateKey := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_PrivateKey');
         _SslCtxUsePrivateKeyASN1 := GetProcAddr(SSLLibHandle, 'SSL_CTX_use_PrivateKey_ASN1');
         //use SSL_CTX_use_RSAPrivateKey_file instead SSL_CTX_use_PrivateKey_file,
@@ -2104,6 +2121,7 @@
     _SslMethodTLSV11 := nil;
     _SslMethodTLSV12 := nil;
     _SslMethodV23 := nil;
+    _SslMethodTLS := nil;
     _SslCtxUsePrivateKey := nil;
     _SslCtxUsePrivateKeyASN1 := nil;
     _SslCtxUsePrivateKeyFile := nil;
diff -U 3 -dHrN -- a/skychart/component/synapse/source/lib/ssl_openssl.pas b/skychart/component/synapse/source/lib/ssl_openssl.pas
--- a/skychart/component/synapse/source/lib/ssl_openssl.pas	2015-07-31 10:48:21.000000000 +0200
+++ b/skychart/component/synapse/source/lib/ssl_openssl.pas	2017-04-18 17:43:59.300144692 +0200
@@ -424,14 +424,18 @@
       Fctx := SslCtxNew(SslMethodV2);
     LT_SSLv3:
       Fctx := SslCtxNew(SslMethodV3);
+    LT_SSLv23:
+      Fctx := SslCtxNew(SslMethodV23);
     LT_TLSv1:
       Fctx := SslCtxNew(SslMethodTLSV1);
     LT_TLSv1_1:
       Fctx := SslCtxNew(SslMethodTLSV11);
     LT_TLSv1_2:
       Fctx := SslCtxNew(SslMethodTLSV12);
+    LT_TLS:
+      Fctx := SslCtxNew(SslMethodTLS);
     LT_all:
-      Fctx := SslCtxNew(SslMethodV23);
+      Fctx := SslCtxNew({{V23orTLS}});
   else
     Exit;
   end;
skychart_ssl_new.patch (6,167 bytes)   

Sasa

17-04-18 20:32

reporter   ~0003783

Last edited: 17-04-18 20:44

View 4 revisions

The best solution would be that author of synapse make official support, however last SVN version is 2 years old ('stable' even 5 years) and probably we will wait some more time for any further change.

The second problem is OpenSLL 1.1 itself. AFAIK, previous releases than 1.1.0e had some serious problems.

My current solution is Linux only oriented. To make this available for other platforms for the future, another approach should be used instead command line execution.

That would assume to try dynamically to open 1.1 lib and if fail to use old one. That is more simpler and more correct way than using command line execution, as on Windows for instance, user may copy required OpenSSL files in executable root and they will be used regardless what is actually installed (or not at all).

Still, the main problem is that ssl files are (so far) differently named on different systems (as is for instance OS2 and Darwin) and this require additional research to make an truly OS independent solution for such transition.

That is why neither specific version scrips nor unoficial code update are not quite good long term solution for maintenance than officially provided by author of synapse.

Patrick Chevalley

17-04-23 16:11

administrator   ~0003784

Thank you Sasa for your patch!

It work fine and I only do one change to avoid version detection in configure.
Now it first try to load TLS_method and if result is null it load SSLv23_method.
This way version detection is done at run time, allowing the same binary to work on system with different openssl version, and preserve compatibility on any system.

I also include the patch to apply to a standard version of Synapse. This is my second patch, first one is to load versioned .so files.

Fixed by rev 3585:
https://sourceforge.net/p/skychart/code/3585/

Issue History

Date Modified Username Field Change
17-04-05 18:39 Mattia Verga New Issue
17-04-05 20:40 Sasa Note Added: 0003755
17-04-05 20:41 Sasa Note Edited: 0003755 View Revisions
17-04-05 21:02 Sasa Note Edited: 0003755 View Revisions
17-04-05 21:03 Sasa Note Edited: 0003755 View Revisions
17-04-06 09:25 Patrick Chevalley Assigned To => Patrick Chevalley
17-04-06 09:25 Patrick Chevalley Status new => assigned
17-04-06 09:25 Patrick Chevalley Product Version => 4.0
17-04-06 09:25 Patrick Chevalley Target Version => 4.2
17-04-06 09:25 Patrick Chevalley Note Added: 0003756
17-04-08 13:03 Mattia Verga Note Added: 0003767
17-04-12 09:46 Mattia Verga File Added: skychart-4.0-libssl.patch
17-04-12 09:46 Mattia Verga Note Added: 0003776
17-04-12 11:22 Sasa Note Added: 0003777
17-04-12 11:23 Sasa Note Edited: 0003777 View Revisions
17-04-17 07:35 Sasa Note Added: 0003779
17-04-17 10:46 Mattia Verga Note Added: 0003780
17-04-17 15:33 Sasa File Added: Synapse SVN 203 - Update for CDC.zip
17-04-17 15:33 Sasa Note Added: 0003781
17-04-17 15:35 Sasa Note Edited: 0003781 View Revisions
17-04-17 15:38 Sasa Note Edited: 0003781 View Revisions
17-04-17 15:40 Sasa Note Edited: 0003781 View Revisions
17-04-17 15:45 Sasa Note Edited: 0003781 View Revisions
17-04-17 15:46 Sasa Note Edited: 0003781 View Revisions
17-04-18 18:51 Mattia Verga File Added: skychart_ssl_new.patch
17-04-18 18:51 Mattia Verga Note Added: 0003782
17-04-18 20:32 Sasa Note Added: 0003783
17-04-18 20:36 Sasa Note Edited: 0003783 View Revisions
17-04-18 20:43 Sasa Note Edited: 0003783 View Revisions
17-04-18 20:44 Sasa Note Edited: 0003783 View Revisions
17-04-23 16:11 Patrick Chevalley Status assigned => resolved
17-04-23 16:11 Patrick Chevalley Resolution open => fixed
17-04-23 16:11 Patrick Chevalley Fixed in Version => 4.1 SVN
17-04-23 16:11 Patrick Chevalley Note Added: 0003784