• 首页
  • 加入
  • RSS
  • Thursday, June 19, 2025

    从本次报告开始,deepin-ports SIG 将在每周末发布每周的进展报告。

    镜像更新

    • 为 u-boot 默认配置增加 U_BOOT_SYNC_DTBS 选项以自动拷贝设备树文件。
    • 新增了以下设备的 deepin 25 测试镜像:
      • k1:
        • 20250617-161611
        • 20250617-135113
      • generic:
        • 20250618-150752

    驱动更新

    imggpu

    应用更新

    • 为 deepin 安装器修复 riscv64 ISO 全盘安装未正确设置分区的问题。

    测试

    • deepin-ports RISC-V 测试规范撰写中
    • 测试了以下镜像:

    文档

    网页

    • 上线新版网页
      • 新增「支持矩阵」提供支持设备列表及基本信息
      • 新增「测试报告」提供各镜像的测试结果(如果有)
      • 新增「文档列表」列出全部的安装指南和测试报告
      • 界面风格改进

    活动

    • 筹备参展 RISC-V 峰会的海报和材料
    • OSPP 2025 RISC-V 相关项目已结束申请,即将正式开始,包括:
      • 为 deepin RISC-V 移植 GCC 12 的 RISC-V Vector (RVV) 扩展支持
      • 为Linux Kernel扩充更多基于RISC-V V扩展和K扩展的SHA-3算法加速实现

    Tuesday, May 27, 2025

    编辑的话请把自己的名字加到作者名单里

    已经发布的 deepin 25 beta 包含了对应的新版 DDE。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。

    下面对项目名称的称呼均以 GitHub 对应的原始仓库名为准。

    概览

    相对于 deepin 25 alpha,在 deepin 25 beta 中并不存在较大幅的架构调整,而是以缺陷修复以及完善之前尚未完善但计划涵盖在最终版本的组件(例如 QML 版控制中心)作为研发的重心。需要注意的是,部分 DDE 组件在本版本中已被废弃,另外本次发布过程中也存在一个组件的 git 仓库有变动的情况,详情请参见后续的描述。

    由于这些项目的版本间互相影响,我们建议移植人员参照 deepin 25 beta 所使用的包版本进行打包,下面会对主要的部分进行详细说明。

    需要注意的是,由于此文章编写时间早于版本发布时间,故最终版本镜像中使用的版本可能高于下面列出的版本。我们尽可能确保此文章的准确性,但若您需要获取 ISO 镜像中使用的确切软件版本列表,请挂载 ISO 后参阅 LIVE/FILESYS{T,0,1}.MAN/live/filesystem.manifest 路径对应的文件的内容。

    主要组件

    DTK 与 DTK6

    DTK 是 DDE 组件与应用的基础依赖,适用于 RC 的版本参照如下:

    packageversion
    dtkcommon5.7.16
    dtklog0.0.2
    dtkcore5.7.16
    dtkgui5.7.16
    dtkwidget5.7.16
    dtkdeclarative5.7.16
    qt5integration5.7.16
    qt5platform-plugins5.7.16
    dtk6core6.0.36
    dtk6gui6.0.36
    dtk6widget6.0.35
    dtk6declarative6.0.36.4
    qt6integration6.0.35
    qt6platform-plugins6.0.35

    本次 DTK 组件大部分版本号以及相对应的平台插件等版本号均已对齐,例外的有 dtklog、dtk6widget、dtk6declarative、qt6integration、qt6platform-plugins。可参照上表进行打包。

    关于 qt5platform-plugins,现有的 dwayland 插件可能对非 DDE 环境(例如 KDE)的 wayland 用户存在影响,可参照 linuxdeepin/developer-center#7217 打对应的 patch 规避影响。

    DDE 主要组件

    下面仅涉及变化较大或影响较广的组件。其余未涉及的组件可正常参照最新 tag 进行打包与移植。

    由于 deepin 25 preview 仍在持续开发过程中,故较多组件采取了 x.99.z 的版本号策略。此外,一般情况下,此类 tag 并不会实际以 git tag 的形式存在,而只会体现在 debian/changlog 文件中。下面涉及到的此类版本号将会在版本发布前后补充对应的 git tag。

    下面涉及到的组件的版本参照如下:

    packageversion
    deepin-desktop-schemas6.0.10
    dde-daemon6.1.32
    dde-session1.99.17
    dde-application-manager1.2.28
    dde-shell1.99.36
    dde-launchpad1.99.15
    dde-tray-loader1.99.26
    dde-application-wizard0.1.14
    dde-clipboard6.1.8
    dde-launcher被 dde-launchpad 取代,不再使用
    dde-dock被 dde-shell 取代,不再使用
    startdde已被废弃,不再使用

    dde-application-manager

    由于涉及到诸多关于应用识别的改善,故建议总是使用最新版本。

    dde-session-shell

    此项目未涉及到结构性的巨大调整,但存在仓库历史与 tag 历史变化的事项。由于项目维护需要,之前的 dde-session-shell 仓库被重命名为了 dde-session-shell-snipe,并在此后新建了名为 dde-session-shell 的仓库,这导致你无法在 dde-session-shell 仓库下找到历史(例如alpha之前)的 tag 信息。若有移植需求,可移步 dde-session-shell-snipe 仓库。

    对于 beta 以及未来版本的移植,仍然保持使用 dde-session-shell 仓库即可。

    dde-shell

    dde-shell 旨在将 DDE 桌面环境插件化与模块化,降低开发难度,使各个组件的替换变得更加容易,并且提供更好的桌面环境集成支持。alpha 阶段相比 preview 阶段集中在缺陷的修复上,并未涵盖太多的结构调整和新特性。对于 alpha 以及更早版本的变化,请阅读之前的博客文章。

    为保障 dde-shell 在 Qt 6.8.0 或 6.8.1 的环境可以正常运行(即使是X11环境下),若 ,则 必须 给 qtwayland 打下面的 patch:

    dde-shell 在 alpha 中为修正一个特定问题所包含的一个变更依赖另一个 Qt Wayland 的 patch:

    若你所移植的目标发行版不接受此补丁,则可考虑对 dde-shell 项目 revert 于此相关的对应 commit:

    dde-launchpad

    dde-launchpad 现仅支持以 dde-shell 插件的形式被最终用户使用。因而,打包 dde-launchpad 现需要先打包 dde-shell,并确保用户最终使用的是 dde-shell。

    dde-session

    我们已在 deepin 23 beta3 起放弃了对 deepin-kwin wayland 的支持,DDE 后续所有 wayland 相关的支持均由 treeland 提供。请参见后续的 Treeland 段落。

    下面涉及到的组件的版本参照如下。对于位于非 linuxdeepin 组织的软件包,此处一并给出了组织名:

    packageversion
    vioken/waylib0.6.13
    vioken/qwlroots0.5.3
    treeland0.5.20
    ddm0.1.10

    deepin-kwin 环境

    deepin-kwin 对 Qt 的版本依赖切换到了 Qt 6,不过值得注意的是,当前的 deepin-kwin 并非从上游 kwin 6.x 中 fork 出来的,而是基于 uos 20 版本的 kwin 5.27.x 进行的 qt6/kf6 迁移,并且由于一些原因,其二进制可执行的文件名恢复到了 kwin,这会导致与上游原版 kwin 的冲突。

    就于此事项的详细介绍,请参见 https://github.com/orgs/linuxdeepin/discussions/11471 讨论。对于移植人员,我们建议考虑下面两种方案:

    • 继续使用 deepin-kwin 5.27,尽管存在一些问题,但此版本仍然可保证和上游版本 kwin 共存。
    • 考虑打包 Treeland 环境。

    Treeland 环境

    Treeland 环境在 alpha -> beta 阶段无较大变化,alpha 阶段的移植注意事项仍然适用于 beta。

    DDM

    尽管 DDM 目前是基本功能可用状态,DDM 目前仍相对而言不够稳定。对于打包移植而言,建议采用其他DM来启动用户级的treeland。

    对于其它 DM,只需要打包时安装 usr/share/wayland-sessions/treeland-user.desktop 即可。

    Qt 补丁

    下述假定您的发行版使用的 Qt 版本为 Qt 6.8.2。

    如果你在 Treeland 下遇到小 launchpad 无法输入中文的问题,可以打下面的 patch,但是该 patch 目前尚未进行完整测试,可能存在一些问题。

    https://codereview.qt-project.org/c/qt/qtbase/+/611940

    另外,如果你的发行版所附的 Qt 6.8 版本并未更新至 Qt 6.8.2,则可能需要打三个额外的补丁,可参见 DDE Qt 6.8 适配说明(针对 Qt 6.8.0) 以及 deepin 25 preview DDE 移植简要指南(针对 Qt 6.8.1)

    Qt 6.9 说明

    DDE 尚未完整针对 Qt 6.9 进行测试,但存在一些已知问题,下面列出了对应的问题和处理方式:

    1. QML 的 DelegateChoice/DelegateChooser 组件不存在问题

    Qt 6.9 中,此组件被从 labs “转正”到了 QtQml.Models 下,相应的 import 需要修正。已知 dde-control-center 与 dde-shell 存在此问题,其中 dde-control-center 已进行了修正:

    获取移植帮助

    如果您希望得到移植相关的帮助,请考虑加入我们 DDE 移植小组的在线交流群(下列房间有桥接,任选其一即可),一起展开相关的交流:

    Wednesday, May 14, 2025

    起因

    之前已经写过一篇使用 distrobox

    Tuesday, April 22, 2025

    最近遇到了两起 X11 下客户端报 Maximum number of clients reached 的错误,并且无法连接到 Xorg。

    搜到了一个排查方法,执行

    Wednesday, April 16, 2025

    编辑的话请把自己的名字加到作者名单里

    deepin 23.1 现已发布。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。

    下面对项目名称的称呼均以 GitHub 对应的原始仓库名为准。 {.note}

    概览

    对于 DDE 本次更新并未包含大规模的结构调整,而是比较存催的缺陷修复为主的更新,对于比较值得注意的事项将会列在下方。对于 deepin 23 的注意事项,可参见 deepin 23 正式版发布时的移植指南文章所给出的说明。

    由于 DDE 涉及到的各个组件项目的版本间互相影响,我们强烈建议移植人员参照 deepin 23.1 正式版所使用的包版本进行打包(也务必遵循依赖顺序打包)。下面会对主要的部分进行详细说明。

    下面给出的版本号信息供打包移植时参考。若您需要获取 ISO 镜像中使用的确切软件版本列表,请挂载 ISO 后参阅 LIVE/FILESYSTEM.MANIFEST (也可能是 LIVE/FILESYS0.MAN)路径对应的文件的内容。

    主要组件

    DTK 与 DTK6

    DTK 是 DDE 组件与应用的基础依赖,适用于 RC 的版本参照如下:

    packageversion
    dtkcommon5.7.5
    dtklog0.0.2
    dtkcore5.7.5
    dtkgui5.7.5
    dtkwidget5.7.5
    dtkdeclarative5.7.5
    qt5integration5.7.5
    qt5platform-plugins5.7.5
    dtk6log0.0.2
    dtk6core6.0.25
    dtk6gui6.0.25
    dtk6widget6.0.25
    dtk6declarative6.0.25
    qt6integration6.0.25
    qt6platform-plugins6.0.25

    除新增的 dtklog 外,本次 DTK 版本号以及相对应的平台插件等版本号均已对齐,可直接参照打包。

    deepin-kwin wayland 功能已经废弃,未来将由 treeland 替代。目前 dwayland 包已经不再使用,依赖此包的应用比如 qt5platform-plugins,不应该继续编译依赖 dwayland 的功能,可参照 linuxdeepin/developer-center#7217 打对应的 patch 规避。

    目前,使用 dtk6 的正式组件有 dde-application-manager,dde-launchpad 与 dde-shell。需要注意,deepin 23 环境中 dde-shell 的托盘组件 dde-tray-loader 仍然需要使用 qt5。

    DDE 主要组件

    下面仅涉及变化较大或影响较广的组件。其余未涉及的组件可正常参照最新 tag 进行打包与移植。

    下面涉及到的组件的版本参照如下:

    packageversion
    deepin-osconfig2024.08.06
    dde-app-services1.0.27
    dde-session1.2.13
    dde-application-manager1.2.27
    dde-tray-loader1.0.10
    dde-shell1.0.10
    dde-launchpad1.0.11
    dde-application-wizard0.1.10
    deepin-wayland-protocols1.10.0.28
    deepin-kwin5.27.2.213
    dde-launcher被 dde-launchpad 取代,不再使用
    dde-dock被 dde-shell 取代,不再使用

    dde-application-manager

    此组件现已使用主干分支最新版本(当前为 1.2.27)。请注意,较早的主干版本(例如 1.2.26)在 deepin 23 环境存在一些已知行为问题,故移植最新的 deepin 23 DDE 时,请至少使用 1.2.27 版本。

    dde-session-shell

    尽管此组件不存在架构性质层面的较大调整,但涉及到打包移植相关的注意事项。此组件由于主干分支的研发需求,对仓库进行过迁移到。当前 GitHub 上的 linuxdeepin/dde-session-shell 仓库历史已与之前不同。故如果你需要适用于 deepin 23 的此仓库的完整历史,请转到 dde-session-shell-snipe。所有原始仓库的提交历史以及 tag 均可在这个仓库中找到(实质是仓库重命名后新建了与原名的同名仓库)。

    (注:相关请参见此邮件列表存档

    Qt 6.9 编译问题

    如果遇到 qmlsc 崩溃问题,见 QTBUG-135885QTBUG-135885,需要为 qtdeclarative 增加以下 patch:

    技术预览组件

    原本涉及的技术预览组件在 23 至 23.1 的这个阶段均无较大进展,故不再于此罗列。

    获取移植帮助

    如果您希望得到移植相关的帮助,请考虑加入我们 DDE 移植小组的在线交流群(下列房间有桥接,任选其一即可),一起展开相关的交流:

    Friday, March 21, 2025

    编辑的话请把自己的名字加到作者名单里

    即将发布(你阅读到这个文章的时候可能已经发布了)的 deepin 25 alpha 将会包含对应的新版 DDE。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。

    下面对项目名称的称呼均以 GitHub 对应的原始仓库名为准。 {.note}

    概览

    相对于 deepin 25 preview,在 deepin 25 alpha 中并不存在较大幅的架构调整,而是以缺陷修复以及完善之前尚未完善但计划涵盖在最终版本的组件(例如 QML 版控制中心)作为研发的重心。同时,我们也对 Qt、DTK 进行了更多完善,以供 DDE 组件以及 Treeland 能够更好的运行。

    由于这些项目的版本间互相影响,我们建议移植人员参照 deepin 25 alpha 所使用的包版本进行打包,下面会对主要的部分进行详细说明。

    需要注意的是,由于此文章编写时间早于版本发布时间,故最终版本镜像中使用的版本可能高于下面列出的版本。我们尽可能确保此文章的准确性,但若您需要获取 ISO 镜像中使用的确切软件版本列表,请挂载 ISO 后参阅 LIVE/FILESYS{T,0,1}.MAN/live/filesystem.manifest 路径对应的文件的内容。

    主要组件

    DTK 与 DTK6

    DTK 是 DDE 组件与应用的基础依赖,适用于 RC 的版本参照如下:

    packageversion
    dtkcommon5.7.12
    dtklog0.0.2
    dtkcore5.7.12
    dtkgui5.7.12
    dtkwidget5.7.12
    dtkdeclarative5.7.12
    qt5integration5.7.12
    qt5platform-plugins5.7.7
    dtk6core6.0.32.1
    dtk6gui6.0.32
    dtk6widget6.0.32
    dtk6declarative6.0.32.1
    qt6integration6.0.32
    qt6platform-plugins6.0.32

    除 dtklog 以及 dtk6 的 core 于 declarative 外,本次 DTK 版本号以及相对应的平台插件等版本号均已对齐,可直接参照打包。

    关于 qt5platform-plugins,现有的 dwayland 插件可能对非 DDE 环境(例如 KDE)的 wayland 用户存在影响,可参照 linuxdeepin/developer-center#7217 打对应的 patch 规避影响。

    DDE 主要组件

    下面仅涉及变化较大或影响较广的组件。其余未涉及的组件可正常参照最新 tag 进行打包与移植。

    由于 deepin 25 preview 仍在持续开发过程中,故较多组件采取了 x.99.z 的版本号策略。此外,一般情况下,此类 tag 并不会实际以 git tag 的形式存在,而只会体现在 debian/changlog 文件中。下面涉及到的此类版本号将会在版本发布前后补充对应的 git tag。

    下面涉及到的组件的版本参照如下:

    packageversion
    dde-session1.99.11
    dde-application-manager1.2.26
    dde-shell1.99.28
    dde-launchpad1.99.9
    dde-tray-loader1.99.19
    dde-application-wizard0.1.13
    dde-clipboard6.1.6
    dde-launcher被 dde-launchpad 取代,不再使用
    dde-dock被 dde-shell 取代,不再使用

    dde-application-manager

    由于涉及到诸多关于应用识别的改善,故建议总是使用最新版本。

    dde-shell

    dde-shell 旨在将 DDE 桌面环境插件化与模块化,降低开发难度,使各个组件的替换变得更加容易,并且提供更好的桌面环境集成支持。alpha 阶段相比 preview 阶段集中在缺陷的修复上,并未涵盖太多的结构调整和新特性。对于 alpha 以及更早版本的变化,请阅读之前的博客文章。

    为保障 dde-shell 在 Qt 6.8.0 或 6.8.1 的环境可以正常运行(即使是X11环境下),若 ,则 必须 给 qtwayland 打下面的 patch:

    另外,dde-shell 在 alpha 中为修正一个特定问题所包含的一个变更依赖另一个 Qt Wayland 的 patch:

    若你所移植的目标发行版不接受此补丁,则可考虑对 dde-shell 项目 revert 于此相关的对应 commit:

    dde-launchpad

    dde-launchpad 现仅支持以 dde-shell 插件的形式被最终用户使用。因而,打包 dde-launchpad 现需要先打包 dde-shell,并确保用户最终使用的是 dde-shell。

    dde-session

    需要注意的是,我们已在 deepin 23 beta3 起放弃了对 deepin-kwin wayland 的支持,DDE 后续所有 wayland 相关的支持均由 treeland 提供。请参见后续的 Treeland 段落。

    下面涉及到的组件的版本参照如下。对于位于非 linuxdeepin 组织的软件包,此处一并给出了组织名:

    packageversion
    vioken/waylib0.6.13
    vioken/qwlroots0.5.3
    treeland0.5.20
    ddm0.1.10

    Treeland 环境

    Treeland 环境相较于 deepin 23 阶段有了较多的提升,不过由于 Treeland 迭代开发过程中我们对 Qt 以及 wlroots 进行了诸多完善,故 Treeland 对 Qt 以及 wlroots 等组件有较高的版本要求,以及可能需要应用一些额外的 patch。

    DDM

    尽管 DDM 目前是基本功能可用状态,DDM 目前仍相对而言不够稳定。对于打包移植而言,建议采用其他DM来启动用户级的treeland。

    对于其它 DM,只需要打包时安装 usr/share/wayland-sessions/treeland-user.desktop 即可。

    Qt 补丁

    下述假定您的发行版使用的 Qt 版本为 Qt 6.8.2。

    如果你在 Treeland 下遇到小 launchpad 无法输入中文的问题,可以打下面的 patch,但是该 patch 目前尚未进行完整测试,可能存在一些问题。

    https://codereview.qt-project.org/c/qt/qtbase/+/611940

    另外,如果你的发行版所附的 Qt 6.8 版本并未更新至 Qt 6.8.2,则可能需要打三个额外的补丁,可参见 DDE Qt 6.8 适配说明(针对 Qt 6.8.0) 以及 deepin 25 preview DDE 移植简要指南(针对 Qt 6.8.1)

    获取移植帮助

    如果您希望得到移植相关的帮助,请考虑加入我们 DDE 移植小组的在线交流群(下列房间有桥接,任选其一即可),一起展开相关的交流:

    Wednesday, March 5, 2025

    由于 deepin-ports SIG 维护的 deepin (23/25) RISC-V 版本的版本发布周期和软件包维护状况与主线 deepin 有所不同,本文将为用户和开发者提供一些常见问题的解答。

    1. deepin RISC-V 版本的发布周期是多久?

    与主线发布的 iso 镜像不同,RISC-V 版本需要针对不同的硬件平台进行适配,其中不仅涉及到 deepin 主线软件仓库的更新,来自硬件厂商的驱动和内核也会有各自的更新周期,且适配过程中可能存在一些 bug,这也需要通过发布新版本的方式来修复。

    因此,我们有如下发布计划:

    • 对于主线 deepin 的 大版本发布(不同仓库) ,我们会在不晚于 1 个月的时间内发布对应的 RISC-V 镜像。
    • 对于主线 deepin 的 小版本发布或日常更新(同一仓库) ,我们不保证会同步发布对应的 RISC-V 镜像,但用户可以通过更新软件包的方式获得最新的软件。
    • 对于硬件厂商的 SDK 和驱动更新,我们会在收到更新后尽快发布对应的 RISC-V 镜像。
    • 对于 已知的 bug,我们不保证会在短时间内发布新镜像,但是我们每次发布新镜像时都会尽量修复所有已知的 bug。
    • 对于 内核的大更新(改变版本号),我们会在收到更新后尽快构建并推送至仓库。
    • 对于 内核的小更新(不改变版本号),我们会在有大量更新或者有重大 bug 修复时构建并推送至仓库。

    2. deepin RISC-V 版本的软件包是如何维护的?

    deepin-ports 发布的镜像通常包含以下全部或部分仓库的组合:

    • deepin 主线仓库 (23 或 25),由 deepin CI 统一构建
    • deepin-ports 仓库, 包含了一些 deepin 主线仓库中未包含的软件包
      • ports-apps 仓库, 包含一些针对 RISC-V 平台适配的应用软件包
      • ports-kernel 仓库, 包含了所有版本的非主线的 RISC-V 内核
      • ports-profiles 仓库,包含了针对 RISC-V 各种设备适配的配置文件和包组
      • ports-imggpu 仓库,包含了各版本的 Imagination GPU 驱动,通常由固件和特定版本的 glvnd 化 mesa 组成
      • ports-board-* 仓库,包含了特定硬件平台的驱动,这些驱动通常由硬件厂商提供,尚未上游化

    例如,JH7110 镜像(适用于 VisionFive 2、MilkV Mars 等设备)的 /etc/apt/sources.list 将包括以下内容:

    # deepin 25 stable + testing
    deb https://ci.deepin.com/repo/deepin/deepin-community/stable/ crimson main community commercial
    deb https://ci.deepin.com/repo/deepin/deepin-community/testing/ unstable/25 main community commercial
    # deepin-ports apps + kernel + imggpu + profiles + boards-jh7110
    deb [ trusted=yes ] https://ci.deepin.com/repo/deepin/deepin-ports/repo/ crimson ports-apps ports-kernel ports-imggpu ports-profiles ports-board-jh7110
    

    以上仓库均在 Open Build Service (OBS) 上构建,构建结果会被发布到对应仓库中。自 2024 年以来,我们已经通过此方式适配了十余款设备,该维护方式经验证有效。

    3. deepin RISC-V 版本的内核是如何维护的?

    对于一些厂商提供的内核,deepin-ports 提供了一套工作流实现自动化构建,产物将遵循 deepin-ports 的 RISC-V 发布周期推送至仓库,该工作流同样构建 u-boot。具体包含以下流程:

    • git clone 远程分支,安装内核构建依赖
    • 应用特定一组 deepin 下游 patch
    • 执行 defconfig,应用特定一组 deepin 下游 config
    • 构建内核并打包 deb

    该工作流在 GitHub Action 上使用交叉编译,在 deepin OBS (Open Build Service) 上使用 riscv64 构建机编译。(注意:仅后者打出的 linux-headers 可用于 DKMS)

    Thursday, January 16, 2025

    编辑的话请把自己的名字加到作者名单里

    即将发布(你阅读到这个文章的时候可能已经发布了)的 deepin 25 preview 将会包含对应的新版 DDE。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。

    下面对项目名称的称呼均以 GitHub 对应的原始仓库名为准。 {.note}

    概览

    相对于 deepin 23,在 deepin 25 中,包括桌面、通知中心在内的大部分旧的 DDE 桌面组件已转化为 dde-shell 插件形式,以供更好的跨显示环境兼容性。包括控制中心在内的组件也已开始提供全新设计以及基于 QML 的全新界面。同时,我们也对 Qt、DTK 进行了更多完善,以供 DDE 组件以及 Treeland 能够更好的运行。

    由于这些项目的版本间互相影响,我们建议移植人员参照 deepin 25 preview 所使用的包版本进行打包,下面会对主要的部分进行详细说明。

    需要注意的是,由于此文章编写时间早于版本发布时间,故最终版本镜像中使用的版本可能高于下面列出的版本。我们尽可能确保此文章的准确性,但若您需要获取 ISO 镜像中使用的确切软件版本列表,请挂载 ISO 后参阅 LIVE/FILESYS{0,1}.MAN/live/filesystem.manifest 路径对应的文件的内容。

    主要组件

    DTK 与 DTK6

    DTK 是 DDE 组件与应用的基础依赖,适用于 RC 的版本参照如下:

    packageversion
    dtkcommon5.7.7
    dtklog0.0.2
    dtkcore5.7.7
    dtkgui5.7.7
    dtkwidget5.7.7
    dtkdeclarative5.7.7
    qt5integration5.7.7
    qt5platform-plugins5.7.7
    dtk6core6.0.27
    dtk6gui6.0.27
    dtk6widget6.0.27
    dtk6declarative6.0.27
    qt6integration6.0.27
    qt6platform-plugins6.0.27

    除 dtklog 外,本次 DTK 版本号以及相对应的平台插件等版本号均已对齐,可直接参照打包。

    关于 qt5platform-plugins,现有的 dwayland 插件可能对非 DDE 环境(例如 KDE)的 wayland 用户存在影响,可参照 linuxdeepin/developer-center#7217 打对应的 patch 规避影响。

    DDE 主要组件

    下面仅涉及变化较大或影响较广的组件。其余未涉及的组件可正常参照最新 tag 进行打包与移植。

    由于 deepin 25 preview 仍在持续开发过程中,故较多组件采取了 x.99.z 的版本号策略。此外,一般情况下,此类 tag 并不会实际以 git tag 的形式存在,而只会体现在 debian/changlog 文件中。下面涉及到的此类版本号将会在版本发布前后补充对应的 git tag。

    下面涉及到的组件的版本参照如下:

    packageversion
    dde-session1.99.7
    dde-application-manager1.2.23
    dde-shell1.99.19
    dde-launchpad1.99.5
    dde-tray-loader1.99.12
    dde-application-wizard0.1.11
    dde-clipboard6.1.4
    dde-launcher被 dde-launchpad 取代,不再使用
    dde-dock被 dde-shell 取代,不再使用

    dde-application-manager

    由于涉及到诸多关于应用识别的改善,故建议总是使用最新版本。

    dde-shell

    dde-shell 旨在将 DDE 桌面环境插件化与模块化,降低开发难度,使各个组件的替换变得更加容易,并且提供更好的桌面环境集成支持。preview 阶段,dde-shell 已经可以满足原计划的部分目标。现 DDE 环境下,dde-shell 已取代 dde-dock 来负责管理整个 dock 区域、 dde-launchpad 提供了对应的 dde-shell 插件用以展示启动器相关的界面、原 dde-session-ui 中的通知中心部分也转到了 dde-shell 中,且转用了新的界面设计。

    关于 shell 的服务启动方面,为了方便故障排查,dde-shell 从原本的单进程转为了两个进程(分别提供桌面和任务栏两个部分)。另外,shell项目的任务栏部分在此阶段也配合 dde-application-manager 对应用识别的准确度进行了诸多完善。若仍有发现应用错误识别和错误分组的问题,欢迎及时反馈。

    为保障dde-shell在Qt6.8之后的环境可以正常运行(即使是X11环境下),必须给qtwayland打下面的patch:

    https://codereview.qt-project.org/c/qt/qtwayland/+/603556

    dde-launchpad

    dde-launchpad 现仅支持以 dde-shell 插件的形式被最终用户使用。因而,打包 dde-launchpad 现需要先打包 dde-shell,并确保用户最终使用的是 dde-shell。

    dde-session

    需要注意的是,我们已在 deepin 23 beta3 起放弃了对 deepin-kwin wayland 的支持,DDE 后续所有 wayland 相关的支持均由 treeland 提供。请参见后续的 Treeland 段落。

    下面涉及到的组件的版本参照如下。对于位于非 linuxdeepin 组织的软件包,此处一并给出了组织名:

    packageversion
    vioken/waylib0.6.10
    vioken/qwlroots0.5.2
    treeland0.5.17
    ddm0.1.9

    Treeland 环境

    Treeland 环境相较于 deepin 23 阶段有了较多的提升,不过由于 Treeland 迭代开发过程中我们对 Qt 以及 wlroots 进行了诸多完善,故 Treeland 对 Qt 以及 wlroots 等组件有较高的版本要求,以及可能需要应用一些额外的 patch。

    DDM

    尽管 DDM 目前是基本功能可用状态,DDM 目前仍相对而言不够稳定。对于打包移植而言,建议采用其他DM来启动用户级的treeland。

    对于其它 DM,只需要打包时安装 usr/share/wayland-sessions/treeland-user.desktop 即可。

    Qt 补丁

    下述假定您的发行版使用的 Qt 版本为 Qt 6.8.1。

    为保障 dde-shell 在 Treeland 上可以正常运行,需要打下面的 patch,否则可能会出现 dde-shell 崩溃的情况。

    https://codereview.qt-project.org/c/qt/qtbase/+/607654

    如果你在 Treeland 下遇到小 launchpad 无法输入中文的问题,可以打下面的 patch,但是该 patch 目前尚未进行完整测试,可能存在一些问题。

    https://codereview.qt-project.org/c/qt/qtbase/+/611940

    另外,如果你的发行版所附的 Qt 6.8 版本并未更新至 Qt 6.8.1,则可能需要打两个额外的补丁,可参见 DDE Qt 6.8 适配说明

    获取移植帮助

    如果您希望得到移植相关的帮助,请考虑加入我们 DDE 移植小组的在线交流群(下列房间有桥接,任选其一即可),一起展开相关的交流:

    Thursday, January 2, 2025

    UOS 这仓库有多鬼畜,就不用我多说了,开发的时候每次都要重装一个不同版本的系统也挺麻烦,比如 1060、1063、1070、1070u1。。。

    所以我就想到,我可以用构建用的 rootfs 加上仓库,整出来一个基础环境,然后通过 distrobox

    Saturday, November 9, 2024