DDE(深度桌面环境) Qt 6.8 适配说明

embedded/2024/11/14 21:48:40/

内容来源:deepin Plant

Qt 6.8 发布已经有一段时间了,各个发行版尝试移植 DDE 时发现包括 dde-shell 在内的几个组件存在比较明显的问题,DDE 小组进行了相关的紧急修复。由于 DDE 部分项目也在分叉维护的状态,为了方便各位移植人员有效进行移植,故在此罗列相关注意事项。

注:笔者所测试的环境为 Arch Linux,下述为 2024/10/25 testing 仓库状态下的测试结论。若未另行说明,则下述涉及到的项目名称仍然使用了与 DDE 对应项目原始仓库的名称,而非各个发行版下的包名。

更新:对于 dde-launchpad、dde-tray-loader、dde-shell 目前均有新的维护分支版本,部分版本中已包含了下述中涉及到的一些 patch 的修复。本文目前只更新了实机验证可用的新 tag 版本,但你也可以尝试未验证但位于维护分支的新 tag。

分支与 tag 说明

因维护需要,对于部分 DDE 组件(dde-shell、dde-launchpad、dde-tray-loader),我们对 deepin 23 所使用的分支创建了名为 release/beige 的维护分支。也会在维护分支上打对应的维护更新用的 tag。

由于 deepin 现阶段的提测流程需要对提测版本打 tag,故我们对主干(master)分支也会打 tag。为了在不与现行规范冲突的情况下尽可能表示区分,我们使用格式为 x.99.z 的 tag 标记此版本是尚在开发中的版本。开发中的 tag 版本事实上在满足一定条件下也可供外部使用,但我们不保证 x.99.z 中 z 位更新时的兼容性,故仍然建议优先使用 release/beige 上的 tag 版本。

qt-6-wayland" style="text-align:center;">Qt 6 Wayland

由于 dde-shell 的托盘加载部分(dde-tray-loader)使用了 Wayland(即便是 x11 环境也如此)实现应用的嵌入,故对 Qt 6 的 wayland 组件存在依赖。有下述两个 Patch 需要应用到 Qt 6 Wayland 组件之上:

  • https://codereview.qt-project.org/c/qt/qtwayland/+/598596
  • https://codereview.qt-project.org/c/qt/qtwayland/+/599732

dde-shell

Patch 说明

升级至 Qt 6.8 后,dde-shell 可能存在面板无任何内容的情况,就于此问题,需要应用这个 patch:https://github.com/linuxdeepin/dde-shell/commit/46871c83cf8ecfcf83bf2fb49e1f09af997eca96

版本建议

  • 若目标发行版原本在使用 1.0.0 版本,则建议至少更新到 1.0.2
  • 1.0.3 以上版本依赖 treeland-protocols 项目,进行打包即可,建议对齐打包后至少更新 dde-shell 至 1.0.4
    • 由于 treeland-protocols 更新了其 CMake 支持中目标名称的大小写,故你需要打这个小 patch (或者手动进行相应调整): https://github.com/linuxdeepin/dde-shell/commit/b3f342c094354e4ba87ac1da4cf1a380556b2a3b
  • dde-shell 主干分支存在 1.99.1,但包括此版本在内的主干分支已不再在任务栏提供启动器图标,故需要配合启动器主干分支使用(启动器暂无 1.99.z 版本)

tl;dr:建议打包 treeland-protocols 后更新至至少 1.0.4

treeland-protocols

被 dde-shell 1.0.3 以上版本所依赖。

版本建议

建议打包/更新至 0.4.1

dde-tray-loader

Patch 说明

任务栏托盘区域的弹出面板(例如点击时间组件后的面板)早期版本有位置不正确的问题,需要应用这个 patch: https://github.com/linuxdeepin/dde-tray-loader/commit/664b093b6a913764fedbac9110927f26978aa8c9 。最新版本(1.0.5 起)中已经修正相关问题。

版本建议

建议更新至 1.0.5

dde-launchpad

Patch 说明

启动器的维护分支版本应该可以在无任何修改的情况下正常工作,尽管启动器小窗口模式的面板位置可能不对,但位置问题暂不计划在维护分支解决。

启动器主干分支不存在上述问题,但主干分支暂无 1.99.z tag。

版本建议

在之前的移植过程中发现小窗口搜索结果界面可能存在显示错位问题,此问题已在 1.0.6 修复,故建议更新至 1.0.6

dde-application-manager

Patch 说明

不需要 patch。

版本建议

一个 deepin 23 的所谓“特性”即,父进程启动的子进程一般会被识别归属为父进程,会导致例如在终端启动 vscode,打开的 vscode 窗口会和终端共用相同图标的问题。此问题已经在最新维护版本得到解决。直接更新dde-shell (>= 1.0.4) dde-application-manager(>=1.2.16)版本即刻解决。

建议更新至 1.2.16

相关阅读:

(1)deepin - 国际排名查看

(2)深度桌面环境(DDE)

(3)DDE 背后的 Treeland 技术详解


http://www.ppmy.cn/embedded/137600.html

相关文章

Three.js中文教程

⬇️ 整理了一些 Three.js 的笔记,有兴趣的工友可以看看 ⬇️ 《Three.js中文教程》

Go 语言已立足主流,编程语言排行榜24 年 11 月

Go语言概述 Go语言,简称Golang,是由Google的Robert Griesemer、Rob Pike和Ken Thompson在2007年设计,并于2009年11月正式宣布推出的静态类型、编译型开源编程语言。Go语言以其提高编程效率、软件构建速度和运行时性能的设计目标,…

zookeeper之节点基本操作

ZooKeeper是一个分布式协调服务,它的节点操作包括创建、查询、更新、删除等,以下是ZooKeeper节点的基本操作介绍: 1. 创建节点 持久节点(Persistent Node) 含义:持久节点是ZooKeeper中最基本的节点类型。创建后,除非显式删除,否则它将一直存在于ZooKeeper树中,即使创…

js | 作用域

前置知识 作用域 const对象怎么禁止修改 方法一: Object.freeze方法二:defineProperty递归,对于每个节点都有:writable:false const obj{a1:{b1:{c1:c1}},a2:{b1:{c1:c2},b2:[]}, }// solution1: Object.freeze(obj) // Objec…

半导体制造技术导论(第二版)萧宏 第二章集成电路工艺介绍答案

本章要求 1. 成品率的概念 整体成品率是指通过最后测试的良好芯片总数与生产所有晶圆上的晶粒总数的比值 2. 成品率的重要性 成品率决定一个IC芯片制造厂赔钱还是赚钱3. 描述一个无尘室的基本结构 4. 说明无尘室协议规范的重要性 严格遵守无尘室协议规范很重要&#xff0…

【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-成绩排序ABCDE

CL13 成绩排序(50 分) 分别给出代号为 A、B、C、D、E 的五名同学的跳远成绩:请按照成绩从高到低,将五名同学的代号输出。输入: 输入五个不相同的正整数(不超过 100): 表示五名同学的成绩,相邻…

LayUI组件国际化多国语言版本脚本-下篇根据语种替换

最近项目需要使用多国语言版本,但是项目之前的代码使用了Layui组件,全网找不到layui的多语言,只能自己动手做,使用Python脚本提取组件中所有的中文,使用本文脚本将中文替换成相应的语种, 1、请将翻译后lan…

蓝桥杯每日真题 - 第10天

题目:(班级活动) 题目描述(14届 C&C B组C题) 解题思路: 题目要求我们找到最小的修改次数,使得任意一名同学的 ID 都与另一名同学的 ID 不相同。可以总结出这是一个寻找“重复数字最少修改…