掲載ポリシー

この掲載ポリシーの目的は、F-Droidのメインリポジトリに含まれるすべてのアプリが、F-Droidの中核的な使命を支えるようにすることです。その使命とは、プライバシーを尊重するAndroid向けの自由かつオープンソースなソフトウェアアプリを見つけ、共有するための信頼できる手段を提供することです。アプリがこれらの基準を満たさない場合でも、別のリポジトリを通じてF-Droidユーザーに提供することはできます。

自由ソフトウェアの要件

リポジトリ内のすべてのアプリケーションは、Free, Libre and Open Source Software(FLOSS)である必要があります。たとえば、GPLまたはApacheライセンスの下で公開されているものです。これが当てはまることを確認するため、ソースの目視確認と、公開されたソースからアプリケーションをビルドすることの両方によって、あらゆる努力が払われています。どのライセンスがFLOSSであるかを判断する際は、実績のある広く信頼された組織に従います。具体的には、次の基準を認めています:Debian Free Software Guidelines(DFSG)、Free Software Foundation(FSF)、GNU、Open Source Initiative(OSI)(これらすべての簡単な概要は、System Package Data Exchange(SPDX)で確認できます)。

JARファイルを含むすべてのバイナリ依存関係は、ソースからのコンパイル、またはDebianリポジトリからのダウンロードに由来する必要があります。ビルド済みバイナリは、承認された信頼済みソースからのみ取得するべきです。

アートワークやフォントを含む非機能的なアセットには、より制限の少ないライセンスを使用できます。これにはプロジェクト固有のゲームアートも含まれますが、非商用ライセンスを使用する場合は再配布を許可している必要があります。すべてのアセットは、有効な法的ライセンスを持つかパブリックドメインであり、著作権侵害がないものでなければなりません。

Google Play Services、Firebase、Crashlytics、プロプライエタリな広告・追跡SDKなどのプロプライエタリな追跡ライブラリ、広告ライブラリ、分析ツールの実装は、すべてのアプリケーションで厳格に禁止されています。このような機能が必要になる場合、上流の開発者はFLOSSの代替手段、またはこれらの依存関係を必要としないビルドフレーバーのいずれかを実装する必要があります。

ビルドの透明性と再現性

F-Droidのインフラストラクチャは、配布されるバイナリがそのソースコードと一致することを確認するため、公開されているソースコードからアプリケーションをコンパイルします。アプリケーションの完全なビルドプロセスには、Debianでパッケージ化されたツールを含む、100% FLOSSのツールチェーンが必要です。OracleのJDKや一部のプレリリース版ツールチェーンを含め、プロプライエタリなビルドツールの使用は厳格に禁止されています。私たちはすべてをソースからビルドするよう努めていますが、FLOSSのビルド済みバイナリを使用することが唯一現実的な方法である場合もあります。次のソースは、ビルド済みバイナリの提供元として許可される場合があります:

  • Debianの「main」パッケージアーカイブ。
  • アプリケーションは、特定の条件の下で、信頼済みMavenリポジトリからビルド済みFLOSSバイナリをダウンロードできます。これにはMaven Central、Google Maven、OSS Sonatype、OSS JFrog、JitPack.io、Clojarsが含まれます。これらのバイナリは自由なライセンスの下にある必要があり、単にこれらのリポジトリのいずれかに含まれているだけでは不十分です。
  • Android SDK、Flutter SDK、Hermesは、Debianが代替ソリューションを提供するまで、公式のビルド済みバイナリを使用することが許可されています。
  • PyPI Wheels、Nixキャッシュ、Rust/Rustup、Golang、Node.js(現在のバージョン)、およびDebianに含まれていないコンパイラーやビルドツールからのビルド済みFLOSSバイナリの使用は、許容される場合があります。可能な限り、他の選択肢よりもDebianでパッケージ化された依存関係を選ぶべきです。

セキュリティと法令遵守

  1. F-DroidはいかなるAPIキーにも登録しません。第三者から提供された場合でも、バイナリリリースとソースコードリリースの両方に含めます。
  2. すべての寄付リンクは、不正な変更を防ぐために上流の開発者による検証が必要です。F-Droidのコントリビューターは、funding.jsonFUNDING.yml、または_README_ファイルを確認できます。また、検証はアプリのソースコードと同じアカウントから送られたメッセージによって行うこともできます。たとえば、https://gitlab.com/foobar/myapp に対する @foobar のように、そのアカウントがF-Droid自体と同じGitLabインスタンス(例:gitlab.com)上にある場合です。アプリケーションのメインウェブサイトに寄付リンクを掲載することもできます。
  3. アプリケーションは、著作権や商標などの第三者の知的財産権を含め、第三者の権利を侵害してはなりません。アプリケーションは、必要な商標および著作権の許可を取得する必要があります。別のドメイン名と一致する重複したAndroidアプリケーションIDを持つアプリケーションは、自動的に却下されます。
  4. F-Droidは、Anti-Featuresとして知られる事前定義されたラベルを使用しています。これは、必ずしもアプリケーションを掲載対象から除外するものではなく、ユーザーの自由やプライバシーなどに関する警告表示として機能します。
  5. アプリケーションは、明示的なユーザーの同意なしに、追加の実行可能なバイナリファイル(例:アドオン、自動更新など)をダウンロードしてはなりません。同意とは、オプトインである必要があることを意味します。(拒否することが承諾することより難しくなっていてはならず、ユーザーが読まずに承諾を押してしまいそうな形で提示されていてもなりません) また、その機能を有効にするとF-Droidのチェックを迂回することを選択することになる、とユーザーに明確に説明する形で構成されている必要があります。

品質管理

アプリケーションは、リポジトリに追加される際に、いくつかの基本的な品質要件も満たす必要があります。

  1. アプリケーションは、掲載時点で積極的にメンテナンスされており、作者が継続的なメンテナンスを行う意思を示している必要があります。非推奨またはメンテナンスされていないアプリケーションは掲載されるべきではありません。
  2. アプリケーションは正常に機能し、説明に記載されているすべての機能を実装している必要があります。
  3. ウェブサイトをラップするアプリケーションは、ネイティブ機能や機能強化を提供する必要があります。
  4. アプリケーションはエンドユーザーにとって有用である必要があります。デモアプリケーションは掲載されるべきではありません。
  5. アプリケーションは、何らかの独自の価値を提供する必要があります。軽微なリブランディングのみを行い、リポジトリ内で積極的にメンテナンスされている他のアプリケーションと比べて意味のある改善がないアプリケーションは、掲載されるべきではありません。

ビルドと検証のワークフロー

  • 一意のID: すべてのアプリケーションには、それぞれ異なるAndroidの「Application ID」が必要です。
  • 自分のドメイン: 開発者が所有するドメイン名に由来するApplication IDを使用することをおすすめします。
  • フォーク: フォークされたアプリケーションは、元のアプリケーションとは異なる新しいAndroid IDを取得する必要があります。これは元のアプリがF-Droid外に存在する場合でも同様です。また、名前、アイコン、文字列についても、翻訳の調整を含む対応する変更が必要です。
  • 依存関係の処理: ライブラリ依存関係は、ソースからビルドされるか、信頼済みMavenリポジトリで提供されている必要があります。ビルド済みSDK(Android/Flutter)では、Debianでのパッケージ化が完了するまでscanignoreの使用が許可されます。
  • 自動チェック: F-Droidのメンテナーは、ライセンス遵守、ソースの入手可能性、ビルド可能性、掲載ポリシーへの準拠を確認する検証プロセスを通じてアプリケーションをレビューします。レビュー担当者は、プロプライエタリコード、追跡機能、広告要素、その他のAnti-Featuresとあわせて、非フリーな依存関係についても検査します。
  • 手動レビュー: コントリビューターがアプリを手動でレビューし、必要に応じて問題にフラグを付けます。

私たちの使命と掲載ポリシー

私たちの使命は、自由でオープンソースなアプリケーションを安全かつ透明性のある形で配布し、世界中のあらゆる年齢のユーザーに、有用でプライバシーを尊重するアプリを提供することです。

掲載の判断を行う際には、メインリポジトリに含めるコンテンツの種類を判断するため、私たちの中核的な使命を指針とします。また、掲載の判断にあたっては過去の前例も考慮します。提案されたアプリが、以前に除外したアプリと似ている場合は、その点が考慮されます。掲載の判断を行う際には、そのアプリが私たちの使命を支えるかどうかに加えて、子どもを含むすべてのF-Droidユーザーに適しているかどうかも考慮します。

これが厳密に判断できるものではないことを認識しており、掲載ポリシーに関して合理的で理性的な判断を行うよう努めています。アプリが誤って除外されたと思う場合は、team@f-droid.orgに異議申し立てをメールで送ることができます。その申し立ては、そのアプリを除外するという当初の判断に関与していなかったチームメンバーによって検討されます。

アプリが除外された場合でも、自分自身のアプリリポジトリ、または第三者のアプリリポジトリを通じて、そのアプリをF-Droidユーザーに提供することを選択できる点に留意してください。

ポリシーの施行

  • リポジトリは、開発者が問題を修正するまで、準拠していないアプリケーションを削除または却下します。F-Droidコミュニティは、準拠を達成するために開発者同士が協力することを推奨しています。
  • 再ビルドに失敗するアプリ(Play Servicesを必要とする場合など)や、開示されていないAnti-Featuresを含むアプリは却下されます。
  • 上流の開発者は、アプリケーションに必要な修正を加えた後、再レビューを依頼できます。
  • F-Droidは、違反を繰り返す者に対して、警告、一時的な停止、または恒久的なコンテンツ削除を含むさまざまな措置を実施する権限を保持します。その際には、適切な通知と異議申し立ての手段を提供します。ドキュメントには、すべての削除措置が記録されます。