DDE 移植小组成果展示

自小组成立以来,已经为 DDE 的移植做出了很多贡献,本文做出了一些总结。如有补充或批改,可向 sig-dde-porting 提出 pr。

NixOS 的移植从今年 3 月开始,到现在已经有了实用的可能,今后会用一篇文章单独介绍。未来会每月更新进展,关注的同学可以订阅本站 rss。

今年改善可移植性的一些努力

  • 修复依赖特定 kwayland 无法在其他发行版编译的问题(为项目增加禁用wayland的option):

deepin-system-monitor,dde-clipboard,dde-session-shell…

  • 修复安装路径硬编码问题

29 个相关 pr https://github.com/linuxdeepin/developer-center/issues/3167

  • 减少代码中的硬编码问题

16 个相关 pr https://github.com/linuxdeepin/developer-center/issues/3374

  • 编译 flag 直接覆盖的问题

大约 8 处

  • 修复 as-need 参数 break 了部分连接器:

10 个相关 pr https://github.com/linuxdeepin/developer-center/issues/3345

  • 完善项目关于 pkg-config/Config.cmake 的问题(如写死路径,版本号错误,引入依赖检查不完善等等)

至少 17 个相关 pr,事实上应该远多于 17,存在多个修改顺便提在一个 pr 的情况。

  • 使用 dpkg-architecture 判断架构其他发行版无法使用问题

4 处以上

  • 避免绝对路径头文件:

解决 2 处,但仍有 1 处难以处理(https://github.com/linuxdeepin/dde-session-shell/pull/120)

  • dde-kwin 问题

justforlxz 已经多次修复 dde-kwin 对 kwin 的适配问题,但每次 kwin 每次更新都会重新带来很多问题。正在移植中的 deepin-kwin 将会解决这个麻烦,目前可以使用 Arch(aur)或者 dde-nixos 先行体验。

  • 处理 deepin-wallpapers 非自由协议问题(拆包)

dde-nixos 近期进展

  • dtkcore:

    • 其他发行版调用 uosType 直接返回 UosTypeUnknown,避免无意义的报错刷屏
    • 完善 isDDE 函数判断
    • deepin-os-release 判断是其他发行版后不会输出 deepin/uos 特有参数
  • dde-control-center:

    • 提供禁用生物认证模块的 option
    • 修复无法设置头像问题
    • 修复密码校验无法通过的问题
    • 修复系统信息/关于本机的显示问题:
      • 启用不应隐藏的“计算机名”,“产品名称”
      • 隐藏“版本”(社区版/专业版)
      • 替换为 NixOS 的 logo
      • 隐藏修改 “计算机名” 的功能
    • 隐藏用户体验模块,禁用对应 dbus 调用,修复通用模块卡钝问题
    • 修复显示内存为 0 的问题
  • deepin-movie:

    • 修复格式支持不完整的问题(修复 libPath 硬编码)
    • 修复一个崩溃问题
  • dde-grand-search:

    • 修复调用 dde-grand-search-daemon 的权限验证
  • deepin-screen-recorder:

    • 修复2个导致崩溃的问题
    • 修复命令行启动无法录屏的问题(dock插件仍然有此问题)
  • 修复 GStreamer 音频播放:

    • 需要设置依赖以及 GST_PLUGIN_SYSTEM_PATH_1_0
    • 涉及 deepin-music deepin-voice-note deepin-movie 和 dde-introduction
  • deepin-editor:

    • 修复主题路径硬编码造成的界面异常
  • deepin-compressor:

    • 修复无法加载自身插件的问题
  • 修复个别图标丢失的问题(部分 dci 图标需要 qtimageformats 支持)