comparison prosodyctl @ 14066:b085d32af140 13.0

prosody, prosodyctl: Load loader directly from source directory This should ensure that loader.lua is loaded from the source directory and does the right thing when installed with `make install` There are currently three ways Prosody can be run: - Directly from the source directory, like `./prosody` - Installed with `make install` - Installed into Lua paths with e.g. dh-lua or luarocks In the first two cases, Lua search paths need to include the source directory and ensure that `require "prosody.util.json"` ends up loading `util/json.lua` relative to the installation (CFG_SOURCEDIR) or the source checkout. Finally, in the last case where Prosody resources are installed under the 'prosody.*' namespace in regular Lua search paths, then loader.lua should activate the compatibility mode that makes sure that both `require"util.json"` and `require"prosody.util.json"` both resolve to `(one path from of package.path)/prosody/util/json.lua`
author Kim Alvefur <zash@zash.se>
date Mon, 09 Feb 2026 16:59:42 +0100
parents 312542dd184d
children 6ccc6e0ece29 2462247ec377
comparison
equal deleted inserted replaced
14062:ef586363d90f 14066:b085d32af140
40 return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";")); 40 return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";"));
41 end 41 end
42 package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path); 42 package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path);
43 package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath); 43 package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath);
44 44
45 require "prosody.loader"; 45 if pcall(dofile, CFG_SOURCEDIR .. "/loader.lua") then
46 package.loaded["prosody.loader"] = true;
47 else
48 require "prosody.loader";
49 end
46 else 50 else
47 -- Not installed, e.g. running from a source checkout 51 -- Not installed, e.g. running from a source checkout
48 require "loader"; 52 require "loader";
49 end 53 end
50 54