aboutsummaryrefslogtreecommitdiffstats
path: root/prosody
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2022-07-02 17:27:39 +0200
committerKim Alvefur <zash@zash.se>2022-07-02 17:27:39 +0200
commit8ee6441fc524b6ffc65fe327485cb8500b7a63f9 (patch)
tree2923f7e03c95db8d4506051c53bd8b86d5228600 /prosody
parentc8a49ad14411a858ceb3cc4c4df091d31cb90ed7 (diff)
downloadprosody-8ee6441fc524b6ffc65fe327485cb8500b7a63f9.tar.gz
prosody-8ee6441fc524b6ffc65fe327485cb8500b7a63f9.zip
executables: Reject Lua 5.1 early
Prevents attempting to load libraries that may no longer be found and crashing with a traceback. Platforms like Debian where multiple Lua versions can be installed at the same time and 'lua' pointing to one of the installed interpreters via symlinks, there's the possibility that prosody/prosodyctl may be invoked with Lua 5.1, which will no longer have any of the rest of Prosody libraries available to be require(), and thus would immediately fail with an unfriendly traceback. Checking and aborting early with a friendlier message and reference to more information is better. Part of #1600
Diffstat (limited to 'prosody')
-rwxr-xr-xprosody6
1 files changed, 6 insertions, 0 deletions
diff --git a/prosody b/prosody
index ac623cef..eaac3dff 100755
--- a/prosody
+++ b/prosody
@@ -44,6 +44,12 @@ if CFG_DATADIR then
end
+-- Check before first require, to preempt the probable failure
+if _VERSION < "Lua 5.2" then
+ io.stderr:write("Prosody is no longer compatible with Lua 5.1\n")
+ io.stderr:write("See https://prosody.im/doc/depends#lua for more information\n")
+ return os.exit(1);
+end
local startup = require "util.startup";
local async = require "util.async";