app_lua: packaging many times with different lua library versions

参考这个issue:

https://github.com/kamailio/kamailio/issues/4578

目前的 app_lua 是基于 lua5.1 编译的,不好!

在 Debian/Ubuntu 系统上,官方软件源同时提供多个 Lua 版本及其开发库(liblua5.1、liblua5.2、liblua5.3、liblua5.4 等),

而 Kamailio 的 app_lua 模块目前只针对其中一个版本(主要是 liblua5.1)编译打包。

如果打包者把 app_lua 改链接到较新的 Lua 版本(如 5.3 或 5.4),就会破坏依赖旧版本 Lua 的用户的兼容性。

因此提出一个方案: 让 app_lua 模块可以多次编译,针对每个 Lua 版本生成一个独立的 .so 文件,例如:

app_lua.so → 链接最新的稳定版(推荐默认使用)

app_lua52.so → 链接 Lua 5.2

app_lua53.so → 链接 Lua 5.3

app_lua54.so → 链接 Lua 5.4

......

用户/打包者根据实际环境加载对应的模块版本,避免单一版本打包导致的大范围兼容性问题。

技术实现思路(讨论中提到的)

通过 CMake 编译时传入参数控制模块的内部名称,例如:

-DMOD_NAME='"app_lua54"'

这样生成的共享库文件名和注册的模块名都会带上版本标记。

打包时可以把多个变体放到同一个 kamailio-app-lua 或 kamailio-lua 包里,或者拆分成独立的子包(视打包策略而定)。

对比了 tls/tlsa 的处理方式(把 tls 代码嵌入 tlsa),但认为 不适合 直接套用到 app_lua 上,因为 Lua 版本兼容性问题更普遍且长期存在。

相关推荐
我爱C编程17 小时前
【3.1】基于FPGA的FFT/IFFT模块开发——前言/目录
fpga开发·教程·通信·fft·傅里叶变换
HalvmånEver20 小时前
Linux:基于 UDP Socket 的实战项目——UDP 群聊聊天室
linux·运维·网络·学习·udp·通信
物联通信量讯说2 天前
量讯物联携HiveLink云宽带亮相CHIC,助力连锁零售数字化降本增效
物联网·零售·iot·通信
liulilittle3 天前
LINUX RING BUFFER TUN/TAP 1
linux·服务器·网络·c++·信息与通信·通信
普中科技4 天前
【普中STM32F1xx开发攻略--标准库版】-- 第 38 章 RS485 通信实验
stm32·单片机·嵌入式硬件·开发板·通信·rs485·普中科技
xixixi777774 天前
2026 年 03 月 20 日 AI+通信+安全行业日报(来更新啦)
大数据·人工智能·安全·ai·大模型·通信
嵌入小生0075 天前
硬件 --- 通信 --- uart/通信方式/电平标准/通信方向
uart·通信·串行通信·并行通信·电平标准·通信方向
xixixi777775 天前
5G核心网核心之辨:从服务化架构(SBA)到网络切片的深度实践解析
人工智能·网络安全·信息与通信·通信
问道飞鱼5 天前
【Tauri框架学习】Tauri 与 React 前端集成:通信机制与交互原理详解
前端·学习·react.js·rust·通信
421!6 天前
ESP32学习笔记之UART
笔记·学习·嵌入式·esp32·通信