diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-06-06 21:37:28 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2012-06-08 02:10:48 +0200 |
commit | 67104c35e16d006c4d3d941b49e7b7a38fe8b9d0 (patch) | |
tree | 14cdbc9b1429c9fb2e8da75d18661b8a0e85db49 | |
parent | 9a37f39d564efcaf2461c55406e099ad31a8e3fa (diff) | |
download | tdelibs-67104c35e16d006c4d3d941b49e7b7a38fe8b9d0.tar.gz tdelibs-67104c35e16d006c4d3d941b49e7b7a38fe8b9d0.zip |
Fix runtime openssl library detection on multiarch
This closes Bug 809
(cherry picked from commit 09d01cacf80d21ad213e6520b35e7f06e9546a83)
-rw-r--r-- | kio/kssl/kopenssl.cc | 58 |
1 files changed, 41 insertions, 17 deletions
diff --git a/kio/kssl/kopenssl.cc b/kio/kssl/kopenssl.cc index 9509764c9..e327cd68b 100644 --- a/kio/kssl/kopenssl.cc +++ b/kio/kssl/kopenssl.cc @@ -28,7 +28,7 @@ #include <kconfig.h> #include <kstaticdeleter.h> #include <tqregexp.h> - +#include <tqdir.h> #include <stdio.h> #include <unistd.h> @@ -293,21 +293,21 @@ KConfig *cfg; _cryptoLib = ll->globalLibrary(libname.latin1()); } #elif defined(__CYGWIN__) - libpaths << "/usr/bin/" - << "/usr/local/bin" - << "/usr/local/openssl/bin" - << "/opt/openssl/bin" - << "/opt/trinity/bin" - << ""; - - libnamess << "cygssl-0.9.7.dll" - << "cygssl.dll" - << "libssl.dll" - << ""; - - libnamesc << "cygcrypto.dll" - << "libcrypto.dll" - << ""; + libpaths << "/usr/bin/" + << "/usr/local/bin" + << "/usr/local/openssl/bin" + << "/opt/openssl/bin" + << "/opt/trinity/bin" + << ""; + + libnamess << "cygssl-0.9.7.dll" + << "cygssl.dll" + << "libssl.dll" + << ""; + + libnamesc << "cygcrypto.dll" + << "libcrypto.dll" + << ""; #else libpaths #ifdef _AIX @@ -321,7 +321,7 @@ KConfig *cfg; << "/opt/openssl/lib" KDELIBSUFF "/" << "/lib" KDELIBSUFF "/" << ""; - + // FIXME: #define here for the various OS types to optimize libnamess #ifdef hpux @@ -372,6 +372,18 @@ KConfig *cfg; tmpStr.replace(TQRegExp("\\(.*\\)"), ""); if (!access(tmpStr.latin1(), R_OK)) _cryptoLib = ll->globalLibrary(alib.latin1()); + if (!_cryptoLib) { + // Multiarch triplet search + TQDir madir (*it); + TQStringList multiarchdirs = madir.entryList("*-*-*", TQDir::Dirs); + for (TQStringList::Iterator mait = multiarchdirs.begin(); mait != multiarchdirs.end(); ++mait ) { + TQString malib = *it + *mait + "/" + *shit; + TQString tmpStr(malib.latin1()); + tmpStr.replace(TQRegExp("\\(.*\\)"), ""); + if (!access(tmpStr.latin1(), R_OK)) + _cryptoLib = ll->globalLibrary(malib.latin1()); + } + } if (_cryptoLib) break; } if (_cryptoLib) break; @@ -530,6 +542,18 @@ KConfig *cfg; tmpStr.replace(TQRegExp("\\(.*\\)"), ""); if (!access(tmpStr.latin1(), R_OK)) _sslLib = ll->globalLibrary(alib.latin1()); + if (!_sslLib) { + // Multiarch triplet search + TQDir madir (*it); + TQStringList multiarchdirs = madir.entryList("*-*-*", TQDir::Dirs); + for (TQStringList::Iterator mait = multiarchdirs.begin(); mait != multiarchdirs.end(); ++mait ) { + TQString malib = *it + *mait + "/" + *shit; + TQString tmpStr(malib.latin1()); + tmpStr.replace(TQRegExp("\\(.*\\)"), ""); + if (!access(tmpStr.latin1(), R_OK)) + _sslLib = ll->globalLibrary(malib.latin1()); + } + } if (_sslLib) break; } if (_sslLib) break; |