From: Boris Kraut Date: Sat, 30 Apr 2016 15:06:40 +0000 (+0200) Subject: F-Droid Binary Repo X-Git-Url: http://git.marmaro.de/?p=krt-msg;a=commitdiff_plain;h=f7a912ebe3d00c6eedde0cd11ee75bba530e5b52 F-Droid Binary Repo --- diff --git a/2016-04-30T15:06:38Z.msg b/2016-04-30T15:06:38Z.msg new file mode 100644 index 0000000..3f0b8e0 --- /dev/null +++ b/2016-04-30T15:06:38Z.msg @@ -0,0 +1,60 @@ +From: Boris Kraut +To: undisclosed-recipients: ; +Date: Sat, 30 Apr 2016 17:06:38 +0200 +Message-ID: <20160430170638.Vmuscy@ubuntu.local> +Reply-To: Boris Kraut +Subject: [.plan] F-Droid Binary Repo + +Es ist schon fast beschaemend, dass jemand der doch shcon relativ viel Zeit in +das F-Droid Projekt gesteckt hat, noch nie ein eigenes Repo betrieben hat -- +dabei hatte ich schon einige Ideen, was man denn in so einem unoffiziellen +Repo veroeffentlichen koennte: Entwicklungs-Schnappschuesse, "tainted builds" +(Apps die nicht-freie Abhaengigkeiten wie Google's play-services oder Crash- +lytics nutzen), oder offizielle Binaries (vom jeweiligen Upstream-Entwickler +signiert). Und jedes mal, wenn im IRC Fragen dazu aufkamen, musste ich passen, +an andere Entwickler verweisen oder ein "ja, muesste man mal tun" los werden. + +Nach einer kurzen Diskussion, habe ich mir dann doch endlich mal ein Herz ge- +fasst und mir die Doku durchgelesen -- eigentlich nur 2-3 Absaetze -- und das +umgesetzt. Das schoene ist, dass F-Droid eigentlich nur einen normalen Web- +Server braucht. Was aus einem Webserver ein F-Droid-Repo macht, sind die APKs +und ein paar Metadaten. Letztere werrden vom `fdroid` Tool des eigentlichen +fdroidserver-Pakets vorausgefuellt, genauso wie man sich einen Signier- +Schluessel fuer den Index erzeugen lassen kann. Sind alle Abhaengigkeiten +installiert, sieht der Verlauf ungefaehr so aus: + +$ git clone https://gitlab.com/fdroid/fdroidserver.git +$ mkdir -p binaryrepo/{metadata,repo} +$ cp fdroidserver/examples/config.py binaryrepo/ +$ cp whatever.apk binaryrepo/repo/ +$ cd binaryrepo +$ vim config.py +$ ../fdroidserver/fdroid update --create-key +$ ../fdroidserver/fdroid update -c + +Die Metadaten koennen mit einem beliebigen Texteditor veraendert werden. Ob +die Aenderungen erlaubt sind, sagt einem `fdroid lint -f` und etwaige Fehler +lassen sich haeufig mit `fdroid rewritemeta package.id` automatisch beheben. + +Nach jeder Aenderung oder neuen App muss `fdroid udpate` ein weiteres Mal +ausgefuehrt werden, um den Index zu aktualisieren. Ausserdem muessen -- wie +ich eingangs erwaehnt habe -- die noetigen Dateien auf einen "normalen" Web- +server kopiert werden: Einfach das komplette `repo` Verzeichnis irgendwo +hochladen -- fertig. Ich habe dazu kurzerhand GitHubs Homepoage-Hosting +verwendet. Wer will kann also im F-Droid-Client folgende Quelle hinzufuegen, +um (derzeit) den aktuellen Firefox vorzufinden: https://krt16s.github.io/repo/ + +Zum aktualisieren des Repos nutze ich folgendes Skript [0]: + +$ cd repo +$ wget -O firefox_arm.apk -c "https://download.mozilla.org/?product=fennec-latest&os=android&lang=multi" +$ wget -O firefox_x86.apk -c "https://download.mozilla.org/?product=fennec-latest&os=android-x86&lang=multi" +$ cd .. +$ ~/tmp/fdroid/fdroidserver/fdroid update -c +$ git add -f repo/* +$ git commit -m "Update Firefox" +$ git push origin master + + +[0] https://github.com/krt16s/krt16s.github.io/blob/master/ffupdater.sh +[1] https://f-droid.org/manual/fdroid.html#Simple-Binary-Repository