- 2024 年 12 月 1 日,提及kde和debian。
- 在 Debian 中,跟踪库依赖工作可从符号使用解析到库并添加到依赖列表,此工作已持续数年。
- KDE 社区如今创建越来越多基于 QML 的应用,QML 是解释型语言,缺失 QML 依赖仅在运行时出现问题。
- 为此创建了
dh_qmldeps
,在构建时搜索 QML 依赖,若无法解析则失败。 - 工作流程:包正常编译并拆分为二进制包,
dh_qmldeps
扫描包内容查找 QML 内容,用qmlimportscanner
扫描找到的文件,输出依赖的 QML 模块列表,根据标准化文件路径询问 Debian 系统哪些包提供该文件路径,最终得到变量${qml6:Depends}
,可附加到扫描包的依赖列表,维护者可根据需要降低某些依赖为推荐或建议。 - 源代码可在on salsa找到,使用文档在https://qt-kde-team.pages.debian.net/dh_qmldeps.html。
- 过去几周为每个创建 QML6 模块包的新包启用了
dh_qmldeps
,已解决首批 bug 且可用于更多包。 - 通过
qmlimportscanner
扫描所有代码,发现几个不存在的 QML 模块:import QtQuick3DPrivate
(qt6-multimedia 无私有 QML 模块[QTBUG-131753])、import QtQuickPrivate
(qt6-graphs 无私有 QML 模块[QTBUG-131754])、import QtQuickTimeline
(qt6-quicktimeline 正确 QML 名称为QtQuick.Timeline
[QTBUG-131755])、import QtQuickControls2
(qt6-webengine 看起来是移植 bug,QML6 模块名称应为QtQuick.Controls
[QTBUG-131756])、import QtGraphicalEffects
(kquickimageeditor 正确名称为 qt5compat.graphicaleffects,因是示例无人检查[kquickimageeditor!7])。 - 已达到首个里程碑,能简单处理 QML 模块,但 QML 应用仍有改进空间,目前
dh_qmldeps
扫描应用源代码中的所有 QML 文件作为 workaround。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。