diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-02-26 02:42:47 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-02-26 02:42:47 +0000 |
commit | 073db87d448354024c663a695be2e4c62e8f506d (patch) | |
tree | d45833c758ac2713283de62cd420886d95953459 | |
parent | 2aa35ba40d4868d6e65f07b743b269c89d6b0e46 (diff) | |
download | prosody-073db87d448354024c663a695be2e4c62e8f506d.tar.gz prosody-073db87d448354024c663a695be2e4c62e8f506d.zip |
Better handling of found, but unloadable, core libraries (eg. undefined symbols)
-rw-r--r-- | util/dependencies.lua | 30 |
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 |