aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2009-02-26 02:42:47 +0000
committerMatthew Wild <mwild1@gmail.com>2009-02-26 02:42:47 +0000
commit073db87d448354024c663a695be2e4c62e8f506d (patch)
treed45833c758ac2713283de62cd420886d95953459
parent2aa35ba40d4868d6e65f07b743b269c89d6b0e46 (diff)
downloadprosody-073db87d448354024c663a695be2e4c62e8f506d.tar.gz
prosody-073db87d448354024c663a695be2e4c62e8f506d.zip
Better handling of found, but unloadable, core libraries (eg. undefined symbols)
-rw-r--r--util/dependencies.lua30
1 files changed, 24 insertions, 6 deletions
diff --git a/util/dependencies.lua b/util/dependencies.lua
index 09b7b018..6ba5f670 100644
--- a/util/dependencies.lua
+++ b/util/dependencies.lua
@@ -9,7 +9,7 @@
local fatal;
-local function softreq(...) local ok, lib = pcall(require, ...); if ok then return lib; else return nil; end end
+local function softreq(...) local ok, lib = pcall(require, ...); if ok then return lib; else return nil, lib; end end
local function missingdep(name, sources, msg)
print("");
@@ -51,19 +51,37 @@ if not ssl then
end
end
-local encodings = softreq "util.encodings"
+local encodings, err = softreq "util.encodings"
if not encodings then
- missingdep("util.encodings", { ["Windows"] = "Make sure you have encodings.dll from the Prosody distribution in util/";
+ if err:match("not found") then
+ missingdep("util.encodings", { ["Windows"] = "Make sure you have encodings.dll from the Prosody distribution in util/";
["GNU/Linux"] = "Run './configure' and 'make' in the Prosody source directory to build util/encodings.so";
});
+ else
+ print "***********************************"
+ print("util/encodings couldn't be loaded. Check that you have a recent version of libidn");
+ print ""
+ print("The full error was:");
+ print(err)
+ print "***********************************"
+ end
fatal = true;
end
-local encodings = softreq "util.hashes"
-if not encodings then
- missingdep("util.hashes", { ["Windows"] = "Make sure you have hashes.dll from the Prosody distribution in util/";
+local hashes, err = softreq "util.hashes"
+if not hashes then
+ if err:match("not found") then
+ missingdep("util.hashes", { ["Windows"] = "Make sure you have hashes.dll from the Prosody distribution in util/";
["GNU/Linux"] = "Run './configure' and 'make' in the Prosody source directory to build util/hashes.so";
});
+ else
+ print "***********************************"
+ print("util/hashes couldn't be loaded. Check that you have a recent version of OpenSSL (libcrypto in particular)");
+ print ""
+ print("The full error was:");
+ print(err)
+ print "***********************************"
+ end
fatal = true;
end