原则
这些文档里的每条规则都来自下面某一条。遇到规则没覆盖的情况,就按这些原则和目标来判断:一个运行高效、容易参与、速度优先的 remote。
- **只用开发者自己的构建。**应用来自开发者的官方发布,安装时由你的 Flatpak 直接从开发者的服务器下载(extra-data)。FlatPark 不从源码构建应用,也不托管应用文件。有人需要、但没有官方 Linux 版本的应用,可以由公开的
flatpark/<app>-release仓库严格按上游的构建方式、在其许可范围内发布一个版本,再像其他下载一样使用。 - **开源应用原样运行。**不向它的进程注入任何东西,不改它的任何文件。如果它不这样做就没法在沙箱里工作,应该由上游修复,修好之前不上架。
- **闭源应用的改动要经过审核并公开说明。**闭源应用可能需要改动才能在沙箱里工作;改动要经过审核,应用页面会写清改了什么、为什么。
- **每个软件包都说明自己做了什么。**每个包都申报自己的打包级别(原样、有适配、有改动、隔离降低),CI 会把申报和软件包的实际行为对照检查。
- **默认最小权限。**软件包只授予应用主要功能所需的权限;更多的权限由用户自己决定,以命令的形式写在页面上。只有在应用确实需要、或者不给就要用户做大量 override 时,宽泛的权限(home、在主机上运行命令)才会在审核后默认授予。
- 开发者对自己的应用有最终决定权:要不要上架、怎么打包、怎么介绍。对其他应用没有特权。
- **看软件包本身,不看它是怎么写出来的。**应用能不能上架,看它做了什么、怎么打包,不看它是不是用 AI 写的。
- **每个应用都用当前的 runtime。**freedesktop、GNOME 或 KDE runtime 出新版本时,用它的应用一起升级并测试,不会因为某个应用让你的磁盘上留着旧 runtime。
- **上线前测试,上线后快速修复。**我们自己的改动在上线前测试(测试手册);上游的新版本立刻上线,出了问题就快速修。
- **决策公开。**规则、软件包、审核、事故和下架,全都在公开的仓库里。