返回介绍

收录政策

发布于 2023-08-06 23:35:04 字数 4232 浏览 0 评论 0 收藏 0

存储库中的所有应用都必须是自由开源软件(FLOSS)——例如,在 GPL 或 Apache 许可下发布。检查源代码、从已发布的源代码构建应用,以尽可能地确保情况确实如此。为了确定哪些许可证是 FLOSS 的,我们遵从拥有良好记录的广受信任的组织。具体来说,我们承认这些标准:DFSGFSFGNUOSI

要使软件成为 FLOSS,整个软件都必须如此——包括使用的所有库和依赖项。此外,它必须仅使用 FLOSS 工具即可构建。

注意事项:

  • 我们不能使用 Google 专有的 “Play Services” 构建应用。 请与上游讨论无污染的构建方式(使用 microg ,或完全删除非自由依赖)。
  • 我们不能使用像 Crashlytics 和 Firebase 这样的专有跟踪/分析依赖项来构建应用。请与上游讨论无污染的构建方式(使用像 ACRA 这样的 FLOSS 分析软件,或完全删除非自由依赖)。
  • 我们无法使用专有广告库构建应用。我们并不反对广告(请参阅负面特征),但必须以与 FLOSS 兼容的方式提供广告。
  • 我们无法构建需要非自由构建工具的应用,包括 Oracle 的 JDK 或一些预发布的工具链。

此外:

  • 必须在我们支持的、可公开访问的版本控制系统(git、hg、svn、bzr)中维护应用的源代码,而且源代码需要保持最新状态。
  • 此软件在缺乏明确用户同意的情况下禁止下载额外的可执行二进制文件(如附加组件、自动更新等)。同意意味着需要用户主动选择加入(禁止拒绝的难度大于接受,或以用户可能在未阅读相关警告便同意的方式呈现)且应清晰地向用户解释,激活它意味着选择绕过 F-Droid 的检查。
  • 软件应使用基于开发者所控制的域名的独有 Andriod “应用 ID“。比如,如果应用位于 gitlab.com 上一个名为 “foo” 的组中,那么域名可以是 io.gitlab.foo。它不应基于其他人的域名(比如 com.google.foo)。Maven Central OSSRH 提供了良好的指导
  • 如果应用是另一个分支(即使是不包含在 F-Droid 存储库中的应用),它必须有一个与原始 ID 不同的新 ID。确保相应地重命名你的分支(包括所有活动的翻译)。仅重新命名应用程序但没有为用户增加价值的复刻可能不会被接受。
  • 尽管不理想,“非功能性” 资产(例如艺术品)可以 使用比功能性代码更宽松的许可——例如,仅被许可用于该特定游戏的艺术品资产。但无论如何,它们必须包含在某种许可之下,而不是侵犯版权。
  • 不得侵犯商标,必须遵守任何其他法律要求。
  • F-Droid 不注册任何 API 密钥。即使密钥由第三方提供,我们也会将它们包含在二进制和源代码版本中。
  • 二进制依赖项(如 JAR 文件)必须从源代码构建或从 Debian 存储库中安装。

理想情况下:

  • 应该使用 tag 或其他方式注明版本。

尽管我们尝试从源代码构建每样东西,但我们仍然需要一些预构建的二进制文件。 因此我们有一些例外:

  • 可信的 maven 存储库。虽然不能保证这些二进制文件是自由的,并对应于源代码,但 F-Droid 目前允许以下已知的存储库:
    • Maven Central - 原始存储库,硬编码在 Maven 和 Gradle 中。
    • 谷歌 Maven 存储库 - 硬编码在 Gradle 中,这个存储库托管谷歌自己的库。
    • JCenter - 硬编码在 Gradle 中,这个 Bintray 的存储库试图提供更容易的处理。它与 Maven Central 同步,并包含一些额外的库。它正在关闭,所以请避免这个存储库。
    • OSS Sonatype - 由 mavenCentral 背后的人维护,这个仓库专注于为开源项目二进制文件提供托管服务。它与 Maven Central 同步,并包含一些额外的库
    • OSS JFrog - 由 jCenter 背后的人维护,这个仓库专注于为开源项目二进制文件提供托管服务。
    • JitPack.io - 直接从 GitHub 仓库构建。然而,他们不提供任何选项来复现或验证所产生的二进制文件。在某些情况下会构建预发布版本。
    • Clojars - Clojure 库仓库。
    • CommonsWare - 托管一系列开源库的仓库。
    • Gradle 插件存储库 - 硬编码在 Gradle 中,这个仓库托管 Gradle 插件。
  • Android SDK/NDK。 它们作为专有二进制文件发布,但我们目前没有替代方案。 在 Debian 中打包最新的 Android SDK 版本的工作正在进行中。
  • Grandle。 只有一些旧版本的 Gradle 被打包在 Debian 中。 我们目前从开发者网站下载它们。
  • Flutter SDK。 它们是自由开源软件但未打包在 Debian 中,我们无法从源代码构建它。 目前我们使用 Flutter srclib 脚本从开发者网站下载它们。
  • JSC/Hermes。 可以从源代码进行构建,但这需要几个小时。 我们目前从 npm 下载它们并 scanignore 它们。
  • 来自 pip wheels 的二进制文件。 一些应用使用 pip 安装依赖项,我们只好信任不可信的 Pypi。
  • 来自 Nix 缓存的二进制文件。 这些二进制文件大多是可重复的。
  • Rust/Rustup。 目前我们使用 rustup srclib 中的脚本从开发者网站下载它们。 我们也许可以使用 Debian 软件包。
  • Golang 和 Nodejs。 它们在 Debian 中可用,但最近的版本不是马上可用。 目前我们可以从开发者网站下载它们。
  • 一些没有打包在我们 Debian 版本中的其他编译器/构建工具。

一些软件虽然是自由和开源的,但可能会进行某些用户不欢迎的活动。我们仍可能将这些应用收录在存储库中,但会使用适当的 负面特征 标记它们。尽管这样的软件被适当标记后收录,通常情况下,其他具有这些特征的“FLOSS”软件实际上并非完全自由。例如,广告和用户跟踪通常是通过我们无法收录的专有二进制库实现的。

包含捐赠信息时,还必需提供与以下位置一致的捐赠链接(例如 Liberapay/OpenCollective/比特币等):

  • 项目源代码中的 README 或类似文件。
  • 包含于项目源码中的 FUNDING.yml 文件。
  • 应用的主站。
  • 如果软件托管在 GitLab 上,那么请求将捐赠信息添加到 fdroiddata 存储库的人与管理应用源代码的用户账户相同即可。

这是为了防止有人在未经上游开发者同意的情况下,恶意改变 F-Droid 存储库中应用的捐赠链接。

有关将应用添加到 F-Droid 存储库的更多信息,请参阅收录操作指南

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文