Die fdroidserver-Werkzeuge bieten alles, was für die Einrichtung und den Unterhalt eigener Repos, den Betrieb eines fdroid-Buildservers und sogar die Bereitstellung einer eigenen Website wie f-droid.org benötigt wird. Die F-Droid-Entwickler arbeiten zumeist mit Debian, Arch, und Ubuntu, somit sind das aktuell die am besten unterstützten Plattformen.
Um deine eigene App- und Mediensammlung einzurichten und zu betreiben, musst du mithilfe der Tools von fdroidserver ein F-Droid-Repository konfigurieren. Um das komplette F-Droid-Buildserver-Setup auszuführen, siehe Build Server Setup.
- Debian/Ubuntu/Mint/usw.
- Fedora/Archlinux
- Guix
- Homebrew
- Windows Subsystem für Linux
- Cygwin
- Docker Executable Image (jede Plattform)
- Installation des aktuellsten Codes (jede Plattform)
- Herstellung von Apps
- Herstellung aller Apps von f-droid.org
- Proprietäre, nicht-quelloffene Programmbibliotheken
Debian/Ubuntu/Mint/usw.
Die F-Droid-Tools, die auch als fdroidserver bekannt sind, können aus dem Standard-Repository des Betriebssystems installiert werden. Auf Debian-basierten Betriebssystemen sollte dies für die Installation der grundlegenden F-Droid-Einrichtung ausreichen:
sudo apt-get install fdroidserver
Es kommt jedoch häufig vor, dass die Version von fdroidserver, die im Standardpaket-Repository des Betriebssystems verfügbar ist, nicht mehr aktuell ist.
Eine neuere Version erhalten
Eine neuere Version von fdroidserver findest du möglicherweise im F-Droid PPA oder im backports-Repository deines Betriebssystems.
-
Ubuntu/Mint: verwende das F-Droid PPA (Fingerabdruck:
9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151):sudo add-apt-repository ppa:fdroid/fdroidserver sudo apt-get update sudo apt-get install fdroidserver -
Debian: Zuerst Einrichtung von Backports, dann ersetze deine Debian-Version durch ‘bookworm’:
apt-get install -t bookworm-backports fdroidserver
Fedora/Archlinux
Da die Pakete in diesen Distributionen neuer sein könnten als die offiziellen Pakete auf pypi, umgeht die Installation der Abhängigkeiten in einer separaten virtuellen Umgebung die Fehler bei der Auflösung der Abhängigkeiten:
python3 -m venv env
source env/bin/activate
pip install -e .
Guix
Die Tools sind auch im Guix-Hauptkanal erhältlich. Zur Installation:
guix install fdroidserver
Homebrew
Siehe die Homebrew-Formel für weitere Details.
brew install fdroidserver
Windows Subsystem für Linux
Mit dem Windows 10 „Anniversary Update“, kannst du eine Ubuntu-Umgebung aktivieren, die in Windows läuft, bekannt als „Bash in Windows“, „Ubuntu in Windows“, oder „Windows-Subsystem für Linux“.
- Konfiguration des Windows-Subsystems für Linux
- Installiere fdroidserver aus dem F-Droid
PPA
(Fingerabdruck:
9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151), indem du das hier in einer Bash Shell ausführst:
sudo add-apt-repository ppa:fdroid/fdroidserver
sudo apt-get update
sudo apt-get install fdroidserver
Cygwin
- Java dem Windows-PATH zuordnen: http://www.kingluddite.com/tools/how-do-i-add-java-to-my-windows-path
- Cygwin installieren https://www.sourceware.org/cygwin/
- in Cygwin, diese Pakete installieren: gcc-core git openssh python3 python3-imaging python3-paramiko python3-requests python3-setuptools rsync wget
- eine Cygwin-Bash-Shell öffnen und
pip install fdroidserverausführen
Dann geschieht hiermit die Repo-Einrichtung:
export ANDROID_HOME=/cygdrive/c/pfad/zum/android-sdk
fdroid init # the keystore gen will fail
Nach Ausführung von fdroid init, muss der Windows-Pfad zu deinem
Schlüsselspeicher in config.yml eingestellt werden. Es ist auch möglich,
fdroidserver in einer virtuellen Umgebung mithilfe von virtualenv und
pip zu installieren.
Docker Executable Image (jede Plattform)
Wenn du bereits Docker „Executable Images“ verwendest, dann ist die einfachste Methode fdroidserver auszuführen, unser Executable Image
Installation des aktuellsten Codes (jede Plattform)
Die einfachste Möglichkeit, die fdroidserver-Tools aus dem Quellcode zu installieren, ist das Verwenden von „virtualenv“ und „pip“. Stelle zunächst sicher, dass die Python3-Version von virtualenv oder venv installiert ist. Diese sollte in der Python-Distribution deines Betriebssystems enthalten sein oder über andere Mechanismen wie dnf/yum/pacman/emerge/Fink/MacPorts/Brew verfügbar sein. Dann installiere fdroidserver in eine Python „virtual env“:
python -m venv fdroidserver-env
. fdroidserver-env/bin/activate
pip install git+https://gitlab.com/fdroid/fdroidserver.git
Variationen hierzu findest du in den CI-Tests: https://gitlab.com/fdroid/fdroidserver/blob/master/.gitlab-ci.yml
Herstellung von Apps
Um Apps mit F-Droid zu erstellen, müssen Java und das komplette Android-SDK installiert sein. Dieser Prozess wurde bisher nur für GNU/Linux entwickelt, aber wir würden uns über Patches freuen, die ihn auch unter macOS und Windows zum Laufen bringen. Wenn du nur F-Droid-Repositorys von APK-Dateien erstellen möchtest, die du bereits hast, oder nicht weißt, was das bedeutet, kannst du diesen Abschnitt überspringen.
Um Android-Apps mit der fdroidserver-Toolchain zu erstellen, müssen Java, das Android-SDK und einige andere wichtige Tools installiert sein. Nur Teile des Android-SDK sind in Debian verfügbar, daher muss das Android-SDK manuell installiert werden, ebenso wie die dafür erforderlichen Pakete (die Android-SDK-Tools beinhalten einige 32-Bit-Binärdateien, diese i386-Bibliotheken werden auch auf 64-Bit-Systemen benötigt). Die F-Droid-Tools verwenden das Android-SDK zum Erstellen und Überprüfen von Apps, daher muss das Android-SDK vor dem Verwenden von fdroidserver installiert und eingerichtet sein.
Installiere das
Android-SDK und
stelle sicher, dass die Umgebungsvariable ANDROID_HOME korrekt eingestellt
ist. Vergewissere dich von der Echtheit der heruntergeladenen Datei, die
SHA-1-Prüfsumme kann auf der Google-Download-Seite gegengeprüft werden.
$ sudo apt-get install fdroidserver
$ mkdir ~/android-sdk-linux
$ cd ~/android-sdk-linux
$ wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
$ echo "87f6dcf41d4e642e37ba03cb2e387a542aa0bd73cb689a9e7152aad40a6e7a08 commandlinetools-linux-6858069_latest.zip" | sha256sum -c
commandlinetools-linux-6858069_latest.zip: OK
$ unzip commandlinetools-linux-6858069_latest.zip
$ export ANDROID_HOME="$HOME/android-sdk-linux"
$ ./cmdline-tools/bin/sdkmanager --sdk_root="$ANDROID_HOME" platform-tools "build-tools;30.0.3"
Hinweis: Wenn du Android Studio installiert hast, ist auch das Android SDK
installiert. Es sollte unter ~/Android/Sdk statt unter
~/android-sdk-linux zu finden sein. Du findest den Pfad in Android
Studio, wenn du das Menü Tools→SDK Manager öffnest.
Um diese Einstellungen dauerhaft der Shell hinzuzufügen:
$ echo export ANDROID_HOME=$ANDROID_HOME >> .bashrc
Herstellung aller Apps von f-droid.org
Um alle Apps, die in f-droid.org bereitstehen, herzustellen, werden eine ganze Reihe weiterer Software-Pakete benötigt:
- alle von den Apps, die du erstellen möchtest, verlangten SDK-Plattformen
- alle beim Build-Vorgang (Maven, Ant usw.) jeder App erforderlichen Debian-Pakete
- jedes Werkzeug zur Verwaltung des Quellcodes (Git, Subversion, Mercurial usw.)
- jede Version des Android-NDK, das Apps verwenden
Obendrein wird, um Apps so herzustellen, wie es auf f-droid.org geschieht, die komplette Buildserver-Konfiguration benötigt. Das ist eine sicherere, gebrauchsfertige Konfiguration, die einige weitere Einstellungen und Ressourcen erfordert. Die Skripte zur Buildserver-Bereitstellung liefern nützliche Hinweise zu allen notwendigen Kleinigkeiten.
Möchtest du deine eigenen, offiziellen Versionen mit den F-Droid-Werkzeugen erstellen, dann muss auch der Signierprozess eingerichtet werden.
Proprietäre, nicht-quelloffene Programmbibliotheken
Das Android-SDK wird von Google unter einer proprietären Lizenz zur Verfügung gestellt. Innerhalb dieser unterliegen die grundlegenden Build-Werkzeuge, SDK-Plattformen, unterstützende Programmbibliotheken und einige andere Komponenten der Apache-Lizenz und der Quellcode wird mitgeliefert.
Google APIs, die zur Herstellung von Apps, die Google Maps nutzen, verwendet werden, sind dahingehend frei, dass die Bibliothek auf dem Gerät vorinstalliert ist. Google Play Services, Google Admob, GCM und viele andere Drittanbieterbibliotheken sind proprietär und können nicht im F-Droid-Hauptrepository aufgenommen werden. Das microG-Projekt entwickelt freien Software-Ersatz für einige der am häufigsten verwendeten proprietären Google-Dienste.
