#160 Web Happenings

2024年8月9日 • 11 条笔记 • 由 Felix 整理

GNOME 项目在 8 月 2 日至 8 月 9 日这一周内发生的情况更新。

主权技术基金

Thib 宣布

自从上次收到 STF 更新已经有一段时间了,但这里是正在进行的工作及其原因的高级状态!

主权技术基金与 GNOME 基金会签订了这 8 个目标

  1. 单独加密用户主目录
  2. 提高硬件支持的范围和质量
  3. 现代化平台基础设施
  4. 改进 QA 和开发工具
  5. 改进可访问性的状态和兼容性
  6. 为 Linux 桌面设计新的可访问性堆栈
  7. 维护和现代化安全组件
  8. Wayland/Flatpak 的安全 API

目前在多个领域开展工作,但为了简洁起见,以下是七月份的一些亮点。

单独加密用户主目录

在 Linux 系统上,用户传统上在名为 /etc/passwd 的特定文件中管理。它不区分技术帐户和人类帐户。它还仅存储关于用户的非常基本的信息,并且只能由 root 修改。这是一个非常严格的用户数据库。

AccountsService 是一个“临时”守护进程(自 2010 年以来),用于管理用户并存储更多关于他们的扩展信息:个人资料图片、家长控制设置、首选登录会话、语言等。它管理 /etc/passwd 及其自己的数据库。

homed 是 AccountsService 的现代替代品。它为用户数据提供加密,并为未来的令人兴奋的平台安全性和灵活性改进铺平道路。Adrian 让 AccountsService 集成到 homed 中,以便更容易地进行过渡

他获得了 homed 支持 AccountsService MR 的合并。这个 MR 阻止了所有 homed MR 的着陆。

现代化平台基础设施

GTK 和 libadwaita

GTK 是一个流行的开发工具包,用于在自由桌面上创建图形应用程序。libadwaita 是一个基于 GTK 的库,它为现代 GNOME 应用程序提供构建块。

Alice 打开了一个关于平台库接口的问题。她还发布了 libadwaita 版本:1.4.71.5.31.6beta1.6rc

她在 beta 之前修复了 Dialog 上的问题

通知

应用程序向系统发送通知有多种选择,每种选择都有不同的功能和限制。Julian 致力于理清当前的情况,并将 XDG 门户通知 API 变成通知的首选标准,重点是可访问性、不同桌面之间的一致性、可扩展性和现代功能。Julian 致力于改进 GNU/Linux 桌面上的平台 API,以显示 GNOME Shell 上的通知。

Intents 系统

几个平台允许原生应用程序打开 https 链接(例如,在 Google 地图应用程序中打开 maps.google.com 链接)。自由桌面除了注册自定义方案的处理程序之外,什么也不做。Andy 正在开发一个 intents 系统来支持 https url。

改进质量保证和开发工具

systemd-sysupdate 是一个更新系统,允许不可变系统应用轻量级的增量更新。它有助于基于镜像的系统支持不可变性、自动更新、适应性、恢复出厂设置、统一性以及提供从引导加载程序到整个系统的信任链。

sysupdate 是一个 CLI 工具。为了能够使用 systemd-sysupdate,需要更强大的服务。sysupdated 是一个提供 sysupdate 的 dbus API 的服务。

systemd-repart 是一个 systemd 在启动时运行的工具,它可以对磁盘进行无损分区。

Varlink 是一种有点简单的 IPC 协议,它在 dbus 代理启动之前很早就开始工作。

Adrian Vovk 在 sysupdate、sysupdated 和 Varlink 对 systemd-repart 的支持方面取得了稳定进展。

改进可访问性的状态和兼容性

Joanie 正在清理 Orca 的代码并支持新的 keygrabs。

维护和现代化安全组件

自由桌面通过 secrets 规范标准化了密钥(例如密码或 SSH 密钥)的存储和使用。gnome-keyring 是后端实现,libsecret 是所述规范的客户端。

gnome-keyring 和 libsecret 是用 C 编写的,缺乏维护。oo7 是一个现代的 Rust 客户端库,它尊重 secrets 规范。Dhanuka 正在扩展 oo7 以实现密钥管理的后端,并最终取代 gnome-keyring

Wayland/Flatpak 的安全 API

Georges 发布了 xdg-desktop-portal-gnome。他开始记录 Flatpak a11y 情况(以及为什么它目前无法解决)。

他还合并了 xdg-dbus-proxy (https://github.com/flatpak/xdg-dbus-proxy/pull/61) + flatpak (https://github.com/flatpak/flatpak/pull/5828) + WebKit (https://github.com/WebKit/WebKit/pull/29052) 的 a11y 相关补丁。

他完成了并合并了 GLib 文档更新分支:https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4113

最后,他合并了 Julian 合作完成的通知重构的 gnome-shell 和 xdg-desktop-portal-gnome 部分。

GNOME 核心应用和库

WebKitGTK

GTK 端口的 WebKit 渲染引擎。

Michael Catanzaro

我修复了 WebKitGTK 中的一个重要错误,该错误阻止了缓存(未使用的)子进程正确挂起。WebKit 会意外地挂起 bwrap 或 flatpak-spawn 监督进程,而不是实际的 WebKit 子进程。由于其监督进程被挂起,实际的 WebKit 子进程即使在应用程序关闭后仍会保留,浪费内存。此修复将在 WebKitGTK 2.44.3 中提供。

Web

GNOME 桌面的 Web 浏览器。

Jan-Michael Brummer 报告

GNOME Web 终于收到基于 Abdullah Alansari 初始工作实现的自动表单填充功能。

Michael Catanzaro 报告

Arak 在 Epiphany 47.beta 中登陆了几个改进书签排序的提交!以前神秘的排序顺序已被字母大小写不敏感的排序取代,但收藏夹书签除外,它们排在非收藏夹书签之前。

Michael Catanzaro 宣布

Jan-Michael Brummer 在 Epiphany 47.beta 中添加了一个隐私报告对话框,以更好地显示智能跟踪预防功能的工作方式。现在可以查看哪些跟踪域名在哪些网站上被阻止,反之亦然,哪些网站上阻止了跟踪域名。这不会更改智能跟踪预防的工作方式,自 Epiphany 3.38 以来一直受支持;它只是提供了对其正在执行的操作的新可见性。

Mutter

Wayland 显示服务器和 X11 窗口管理器和合成库。

Bilal Elmoussaoui

我上周末对 Mutter / GNOME Shell 的可访问性部分进行了一些代码重组,并在 https://belmoussaoui.com/blog/19-accessibility-adventure/ 中记录了其中一部分。

libspelling

hergertme 报告

libspelling 获得了对从主线程进行拼写检查的支持,以提高大型文档的性能。Text Editor 和 Builder 都已更新为使用 libspelling 进行拼写检查功能。

GNOME Circle 应用和库

gtk-rs

为 GNOME 堆栈中的基本库提供 Rust 语言的安全绑定。

slomo 报告

gtk4-rs 0.9 和 gtk-rs-core 0.20 刚刚发布,正好赶上也被包含在 GNOME 47 版本中。

此版本相对较小,主要提供对新 API 的绑定以及对 glib::clone! 和 glib::closure! 宏的改进,以使其与 cargo fmt 和 rust-analyzer 更好地配合使用。

像往常一样,与此同时,gstreamer-rs 0.23 和 gst-plugins-rs 0.13、libadwaita 0.7 和其他相关 crate 获得了与新的 gtk4-rs 和 gtk-rs-core 版本及其自身更改兼容的新版本。

有关更多详细信息,请参见 https://gtk-rs.org/blog/2024/07/17/new-release.html

第三方项目

Ronnie Nissan

本周我发布了 Embellish v0.3.0,一个简单的 nerd 字体管理器,更新包括

  • 升级到 libadwaiata 1.5
  • 迁移到 AboutDialog
  • 分离已安装和可用字体
  • 合并安装和卸载按钮。

您可以在 flathub 上获取 Embellish

GNOME Network Displays

将桌面流式传输到支持 Wi-Fi 显示的设备

lorbus 报告

GNOME Network Displays (https://gitlab.gnome.org/GNOME/gnome-network-displays/) v0.93.0 发布!GND 允许将窗口、显示器或虚拟显示器投射到 Miracast 和 Chromecast 设备。在此版本中,修复了一些问题,并添加了对 VAH264 gstreamer 硬件编码的支持。GND 正在寻找新的贡献者来完成去年 GSoC 开始的守护进程化和 dbus API 添加工作,目的是将其与 GNOME Shell 和 GNOME 控制中心更紧密地集成。尝试一下,用户反馈也深受赞赏!稳定版本可在 Flathub 上获得,夜间构建在 GNOME Nightly Flatpak 仓库中。

实习

IlChitarrista 宣布

随着 GSoC 的最后三分之一的开始,我们几乎完成了忽略的应用程序的实现,很快就可以使某些应用程序仅在本地运行。驱动程序和开发工具也将默认排除在同步之外,因为它们会根据需要自动安装。非常感谢 Jamie Gravendeel 的设计反馈、Alice Mikhaylenko 的 Adwaita 和 GTK 建议以及我的导师 Cogitri 的代码审查。如果您有兴趣关注开发,这是合并请求

由于我们进度超前,我们现在开始研究未来在 Flathub 上发布以及纳入 GNOME Circle 所需的步骤!

本周就到此为止!

下周再见,请务必访问 #thisweek:gnome.org,分享您自己的项目更新!