Currently translated at 80.1% (459 of 573 strings)
Translated using Weblate: Hungarian (hu) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 13.7% (79 of 573 strings)
Translated using Weblate: Swedish (sv) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 7.5% (43 of 573 strings)
Translated using Weblate: Russian (ru) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 84.2% (483 of 573 strings)
Translated using Weblate: Korean (ko) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 36.1% (207 of 573 strings)
Translated using Weblate: Tibetan (bo) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 67.8% (389 of 573 strings)
Translated using Weblate: German (de) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 86.0% (493 of 573 strings)
Translated using Weblate: Spanish (es) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 55.4% (318 of 573 strings)
Translated using Weblate: Chinese (Traditional) (zh_Hant) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 82.7% (474 of 573 strings)
Translated using Weblate: Spanish (Argentina) (es_AR) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 14.4% (83 of 573 strings)
Translated using Weblate: Albanian (sq) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 80.1% (459 of 573 strings)
Translated using Weblate: Tibetan (bo) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 67.7% (388 of 573 strings)
Translated using Weblate: German (de) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 85.8% (492 of 573 strings)
Translated using Weblate: Spanish (es) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 55.3% (317 of 573 strings)
Translated using Weblate: Chinese (Traditional) (zh_Hant) by Hans-Christoph Steiner <hans@guardianproject.info>
Currently translated at 82.5% (473 of 573 strings)
Co-authored-by: Hans-Christoph Steiner <hans@guardianproject.info>
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/bo/
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/de/
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/es/
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/es_AR/
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/hu/
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/ko/
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/ru/
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/sq/
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/sv/
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/zh_Hant/
Translation: F-Droid/F-Droid Server
Currently translated at 89.7% (514 of 573 strings)
Translated using Weblate: Polish (pl) by Michal L <michalrmsmi@wp.pl>
Currently translated at 89.5% (513 of 573 strings)
Translated using Weblate: Polish (pl) by Michal L <michalrmsmi@wp.pl>
Currently translated at 86.5% (496 of 573 strings)
Co-authored-by: Michal L <michalrmsmi@wp.pl>
Translate-URL: https://hosted.weblate.org/projects/f-droid/fdroidserver/pl/
Translation: F-Droid/F-Droid Server
When using fdroidserver methods as an API, the full setup might not
have taken place. `app` instances can always just be a dict, the App
class is mostly just a typing shortcut. This is incremental, it only
affects a couple of functions in fdroidserver/update.py.
!822
The gpg dependencies are complicated. The previous setup was always
failing with:
The following information may help to resolve the situation:
The following packages have unmet dependencies:
gpg : Depends: gpgconf (= 2.2.20-1~bpo9+1)
Depends: libassuan0 (>= 2.5.0) but 2.4.3-2 is to be installed
Depends: libgpg-error0 (>= 1.35) but 1.26-2 is to be installed
Thanks to @izzysoft to spotting this.
None of the config options in config.py require Python code. YAML is a
common config data format, and it is also used for build metadata. It is
also much safer to use since it can be pure data, without anything
executable in it. This also reduces the attack surface of the fdroid
process by eliminating a guaranteed place to write to get code executed.
With config.py, any exploit that can get local write access can turn that
into execute access by writing to the config.py, then cleaning up after
itself once it has what it needs. Switching to YAML removes that vector
entirely.
Also, this removes the config_file argument. It is not used in either
fdroidserver or repomaker. Also, it probably wouldn't work since so
much of the code assumes that the current working dir is the root of the
repo.
Up until now, the buildserver has not included androguard. Since a
good version of androguard (v3.3.3+) is included in stretch-backports
and the buildserver is already setup to use stretch-backports, this
sets up the buildserver with androguard.
closes#627
Ultimately we want to get to using apksigner by default everywhere,
this gets us closer to that by setting up all new repos to use
apksigner by default in the config.py
There must be at least one APK available for this test suite to work, for
example, this test:
grep -F '<application id=' repo/index.xml
This can't be easily implemented using an env vir beccause the while
loop is running in a pipe, so a different process.
copy_apks_into_repo is used with throwaway tmp dirs, so the stamp file
should work well.