From 9652d44ef20d5ffcf65df319653590426029ebce Mon Sep 17 00:00:00 2001 From: Daniel Dickinson Date: Fri, 25 Mar 2016 03:04:18 -0400 Subject: [PATCH] luci-base: Add option to check linked libraries Some packages have different variants that have different capabilities depending on which libraries against which they are linked. Add a function to check which library a binary links against in order to determine available functionality. Signed-off-by: Daniel Dickinson --- modules/luci-base/luasrc/util.lua | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/luci-base/luasrc/util.lua b/modules/luci-base/luasrc/util.lua index 2956aadcf3..d614a6c799 100644 --- a/modules/luci-base/luasrc/util.lua +++ b/modules/luci-base/luasrc/util.lua @@ -636,6 +636,23 @@ function libpath() return require "nixio.fs".dirname(ldebug.__file__) end +function checklib(fullpathexe, wantedlib) + local fs = require "nixio.fs" + local haveldd = fs.access('/usr/bin/ldd') + if not haveldd then + return -1 + end + local libs = exec("/usr/bin/ldd " .. fullpathexe) + if not libs then + return 0 + end + for k, v in ipairs(split(libs)) do + if v:find(wantedlib) then + return 1 + end + end + return 0 +end -- -- Coroutine safe xpcall and pcall versions modified for Luci -- 2.30.2