View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001702 | SkyChart | 1-Software | public | 17-04-05 18:39 | 17-04-23 16:11 |
Reporter | Mattia Verga | Assigned To | Patrick Chevalley | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 4.0 | ||||
Target Version | 4.2 | Fixed in Version | 4.1 SVN | ||
Summary | 0001702: Error using openSSL 1.1 | ||||
Description | Synapse 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... | ||||
Tags | No tags attached. | ||||
|
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. |
|
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. |
|
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 |
|
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; |
|
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. |
|
Mattia, What following command returns on your system? openssl version I will try to fix this version of synapse generically. |
|
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 |
|
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. |
|
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; |
|
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. |
|
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/ |
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 | |
17-04-05 21:02 | Sasa | Note Edited: 0003755 | |
17-04-05 21:03 | Sasa | Note Edited: 0003755 | |
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 | |
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 | |
17-04-17 15:38 | Sasa | Note Edited: 0003781 | |
17-04-17 15:40 | Sasa | Note Edited: 0003781 | |
17-04-17 15:45 | Sasa | Note Edited: 0003781 | |
17-04-17 15:46 | Sasa | Note Edited: 0003781 | |
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 | |
17-04-18 20:43 | Sasa | Note Edited: 0003783 | |
17-04-18 20:44 | Sasa | Note Edited: 0003783 | |
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 |