summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-06-06 21:37:28 -0500
committerSlávek Banko <slavek.banko@axis.cz>2012-06-08 02:10:48 +0200
commit67104c35e16d006c4d3d941b49e7b7a38fe8b9d0 (patch)
tree14cdbc9b1429c9fb2e8da75d18661b8a0e85db49
parent9a37f39d564efcaf2461c55406e099ad31a8e3fa (diff)
downloadtdelibs-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.cc58
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;