chiark / gitweb /
Hans-Christoph Steiner [Tue, 19 Sep 2017 14:48:20 +0000 (16:48 +0200)]
tests: move test APK with bad unicode filename to separate test
This filename has some messed up bytes related to bi-directional script
that is included (Left-to-Right and Right-to-Left). GNU/Linux always
interprets filenames as pure byte sequences. Windows and OSX store
filenames as Unicode strings. So on OSX, the invalid filename gets
converted to a valid name. That works fine, but the test fails because it
is compared to a file generated on Ubuntu, where it preserves the byte
sequence.
This includes an APK with a valid Unicode filename that includes
bi-directional script.
Hans-Christoph Steiner [Tue, 19 Sep 2017 13:07:19 +0000 (15:07 +0200)]
index: always use jarsigner for verifying JAR signatures
apksigner v0.7 (build-tools 26.0.1), Google made it require that the
AndroidManifest.xml was present in the archive before it verifies the
signature. So this needs to stick with the jarsigner hack for JARs.
Hans-Christoph Steiner [Tue, 19 Sep 2017 08:55:16 +0000 (10:55 +0200)]
init: prompt user for Android SDK path using platform-specific default
Hans-Christoph Steiner [Sun, 17 Sep 2017 19:54:21 +0000 (21:54 +0200)]
create blank config.py using cross-platform technique
os.mknod() fails on OSX with:
Traceback (most recent call last):
File "/Users/travis/build/fdroidtravis/fdroidserver/tests/../fdroid", line 154, in <module>
main()
File "/Users/travis/build/fdroidtravis/fdroidserver/tests/../fdroid", line 130, in main
mod.main()
File "/Users/travis/build/fdroidtravis/fdroidserver/fdroidserver/update.py", line 1768, in main
common.write_to_config(config, 'repo_keyalias', config['repo_keyalias'])
File "/Users/travis/build/fdroidtravis/fdroidserver/fdroidserver/common.py", line 2328, in write_to_config
os.mknod(cfg)
PermissionError: [Errno 1] Operation not permitted
Hans-Christoph Steiner [Tue, 19 Sep 2017 18:12:41 +0000 (18:12 +0000)]
Merge branch 'first-working-localization' into 'master'
First working localization
See merge request fdroid/fdroidserver!340
Hans-Christoph Steiner [Fri, 15 Sep 2017 21:40:11 +0000 (23:40 +0200)]
update translation template with latest strings
Hans-Christoph Steiner [Fri, 15 Sep 2017 21:39:32 +0000 (23:39 +0200)]
add Makefile to handle refreshing translation template
To generate the translation files, run `make -C locale`or
`cd locale && make`
To update the template, run `make -C locale template` or
`cd locale && make fdroidserver.pot`
Hans-Christoph Steiner [Fri, 15 Sep 2017 21:20:29 +0000 (23:20 +0200)]
fix string formats that are ambiguous for translators
Hans-Christoph Steiner [Fri, 15 Sep 2017 19:48:45 +0000 (21:48 +0200)]
ensure _ is used only for gettext strings
_ is often used for variables that are ignored, this makes that a bit more
explicit
!338
Hans-Christoph Steiner [Fri, 15 Sep 2017 20:20:18 +0000 (22:20 +0200)]
English source string corrections
From @monolifed <monolifed@gmail.com>
Hans-Christoph Steiner [Sat, 16 Sep 2017 08:41:12 +0000 (10:41 +0200)]
"No config.py found" should warning level, until people get use to it
Since !335 changed the long standing behavior, now allowing `fdroid` to
work without a config.py being present, this message should be quite
visible in case people are expecting `fdroid` to fail when there is no
config.py present.
Hans-Christoph Steiner [Sat, 16 Sep 2017 08:11:06 +0000 (08:11 +0000)]
Merge branch 'plural' into 'master'
Correct plurals
See merge request fdroid/fdroidserver!334
Hans-Christoph Steiner [Sat, 16 Sep 2017 08:07:56 +0000 (08:07 +0000)]
Merge branch 'newcomers' into 'master'
allow starting without config.py
See merge request fdroid/fdroidserver!335
Hans-Christoph Steiner [Fri, 15 Sep 2017 21:00:33 +0000 (21:00 +0000)]
Merge branch 'weblate' into 'master'
Weblate
See merge request fdroid/fdroidserver!339
Hans-Christoph Steiner [Fri, 15 Sep 2017 21:00:33 +0000 (21:00 +0000)]
Weblate
Hans-Christoph Steiner [Fri, 15 Sep 2017 19:29:12 +0000 (19:29 +0000)]
Merge branch 'implement-gettext' into 'master'
first implementation of localization using gettext
Closes #342
See merge request fdroid/fdroidserver!338
Jan Berkel [Wed, 13 Sep 2017 15:33:57 +0000 (17:33 +0200)]
Correct plurals
Hans-Christoph Steiner [Fri, 15 Sep 2017 09:41:39 +0000 (11:41 +0200)]
rename 'app-id' to standard Android 'applicationId'
* https://developer.android.com/studio/build/application-id.html
* https://sites.google.com/a/android.com/tools/tech-docs/new-build-system/applicationid-vs-packagename
This only changes the term in the human texts, not var names or CLI flags.
Hans-Christoph Steiner [Wed, 13 Sep 2017 16:03:57 +0000 (18:03 +0200)]
implement gettext localization
This allows all the text to be localized via Weblate. This is a quick
overview of all the strings, but there are certainly some that were left
out.
closes #342
Hans-Christoph Steiner [Wed, 13 Sep 2017 14:00:51 +0000 (16:00 +0200)]
tests: support running on platforms with old java
In order to test on travis-ci's OSX setup, its easiest to support the old
version of Java that is installed there by default. It is pretty old, so
it does not include the April 2017 update that disables MD5:
https://blogs.oracle.com/java-platform-group/oracle-jre-will-no-longer-trust-md5-signed-code-by-default
https://www.bleepingcomputer.com/news/security/oracle-to-block-jar-files-signed-with-md5-starting-with-april-2017
https://support.ca.com/us/knowledge-base-articles.TEC1691042.html
#292 #323
Hans-Christoph Steiner [Thu, 14 Sep 2017 06:44:43 +0000 (08:44 +0200)]
standardize os.walk() var names based on Python 3.5 docs
There were multiple conventions used in the code, but mostly it was already
using the convention from the docs, so this converts things to using that
convention:
https://docs.python.org/3/library/os.html#os.walk
Hans-Christoph Steiner [Fri, 15 Sep 2017 09:31:18 +0000 (11:31 +0200)]
set minimum Python version to 3.4
We use contructs introduced in 3.4, and 3.4 is really widely available.
https://setuptools.readthedocs.io/en/latest/setuptools.html#new-and-changed-setup-keywords
Hans-Christoph Steiner [Thu, 14 Sep 2017 08:22:37 +0000 (10:22 +0200)]
gitlab-ci: ensure release tag is present for metadata_v0 tests
Forks won't necessarily have all the tags, so this ensures that they are
present.
Hans-Christoph Steiner [Fri, 15 Sep 2017 09:10:07 +0000 (09:10 +0000)]
Merge branch 'buildserver-verbose' into 'master'
print build-server output when verbose flag is set
Closes #213
See merge request fdroid/fdroidserver!219
Hans-Christoph Steiner [Fri, 15 Sep 2017 09:01:12 +0000 (09:01 +0000)]
Merge branch '368-makebuildserver-fails-checkey-101' into 'master'
remove checkey from jenkins-build-makebuildserver
Closes #368
See merge request fdroid/fdroidserver!337
Michael Pöhn [Thu, 14 Sep 2017 09:28:12 +0000 (11:28 +0200)]
remove checkey from jenkins-build-makebuildserver
Marcus Hoffmann [Thu, 14 Sep 2017 00:14:26 +0000 (02:14 +0200)]
tests: don't touch config.py, no config is fine now
Marcus Hoffmann [Tue, 12 Sep 2017 14:21:29 +0000 (16:21 +0200)]
common: allow starting without a config file
There is no reason this should be disallowed as the default config often
works well when building simple apps.
Marcus Hoffmann [Thu, 14 Sep 2017 00:13:49 +0000 (02:13 +0200)]
make sure config exists before writing to it
Marcus Hoffmann [Thu, 14 Sep 2017 00:03:43 +0000 (02:03 +0200)]
bash_completion: add update --create-key option
Michael Pöhn [Wed, 13 Sep 2017 23:38:34 +0000 (01:38 +0200)]
log build-server output when verbose flag is set
Marcus Hoffmann [Wed, 13 Sep 2017 12:02:04 +0000 (14:02 +0200)]
bash_completion: fix option completion
Line breaks need to be escaped in the command list.
Hans-Christoph Steiner [Wed, 13 Sep 2017 07:53:26 +0000 (09:53 +0200)]
add all subcommands to bash completion
The bash completion needs a modernization, but this at least makes all the
subcommands work.
#374
Hans-Christoph Steiner [Wed, 13 Sep 2017 07:18:46 +0000 (07:18 +0000)]
Merge branch 'fix_gplay_check' into 'master'
Fix gplay check
See merge request !333
Marcus Hoffmann [Tue, 12 Sep 2017 23:42:15 +0000 (01:42 +0200)]
checkupdates: use html.unescape instead of HTMLParser.unescape
HTMLParser.unescape is only an internal method and deprecated.
This requires Pyhton 3.4.
Marcus Hoffmann [Tue, 12 Sep 2017 23:40:09 +0000 (01:40 +0200)]
checkupdates: fix google play check method
This has never worked with python3 and was also not properly adapted to
apps as objects. So we fix both of these issues.
Hans-Christoph Steiner [Tue, 12 Sep 2017 15:33:51 +0000 (15:33 +0000)]
Merge branch 'refuse-publishing-duplicate-apks' into 'master'
proper error message when publishing with the same app in repo and unsigned
See merge request !329
Hans-Christoph Steiner [Tue, 12 Sep 2017 15:29:29 +0000 (15:29 +0000)]
Merge branch 'warn_on_aar' into 'master'
scanner: warn on aar files
See merge request !332
Hans-Christoph Steiner [Mon, 11 Sep 2017 15:47:57 +0000 (15:47 +0000)]
Merge branch 'scanner_refactoring' into 'master'
Scanner refactoring
See merge request !330
Marcus Hoffmann [Sun, 3 Sep 2017 22:57:38 +0000 (00:57 +0200)]
scanner: warn on aar files
Marcus Hoffmann [Mon, 11 Sep 2017 14:46:54 +0000 (16:46 +0200)]
scanner: rename variables, use os.path.relpath
* rename fd -> path_in_build_dir
* rename fp -> filepath
* use os.path.reldir instead of string manipulation
Marcus Hoffmann [Mon, 4 Sep 2017 14:11:27 +0000 (16:11 +0200)]
scanner: more descriptive variable names from os.walk
This uses the names from python documentation of os.walk().
Michael Pöhn [Tue, 30 May 2017 12:53:54 +0000 (14:53 +0200)]
proper error message when publishing with the same app in repo and unsigned
Hans-Christoph Steiner [Thu, 7 Sep 2017 09:51:08 +0000 (09:51 +0000)]
Merge branch 'close-subprocess-file-handles' into 'master'
make sure file-streams of subprocesses get closed
See merge request !328
Hans-Christoph Steiner [Thu, 7 Sep 2017 09:49:51 +0000 (09:49 +0000)]
Merge branch 'close-subprocess-file-handles' into 'master'
make sure file-streams of subprocesses get closed
See merge request !328
Hans-Christoph Steiner [Thu, 7 Sep 2017 09:04:25 +0000 (09:04 +0000)]
Merge branch 'signatures-subcommand' into 'master'
signatures command
See merge request !327
Michael Pöhn [Thu, 7 Sep 2017 00:36:58 +0000 (02:36 +0200)]
make sure file-streams of subprocesses get closed
Michael Pöhn [Wed, 6 Sep 2017 13:54:16 +0000 (15:54 +0200)]
added signatures subcommand
Hans-Christoph Steiner [Tue, 5 Sep 2017 14:45:57 +0000 (14:45 +0000)]
Merge branch 'dont-list-fdroid-subcommands-in-random-order' into 'master'
don't list fdroid subcommands in random order
See merge request !326
Michael Pöhn [Mon, 4 Sep 2017 12:29:30 +0000 (14:29 +0200)]
dont list fdroid subcommands in random order
Marcus Hoffmann [Sun, 3 Sep 2017 17:30:00 +0000 (19:30 +0200)]
remove trailing whitespace
Marcus Hoffmann [Sun, 3 Sep 2017 16:33:03 +0000 (18:33 +0200)]
makebuildserver: add comment about not upgrading sdk-tools
Michael Pöhn [Fri, 1 Sep 2017 12:21:05 +0000 (12:21 +0000)]
Merge branch 'apk_output_location' into 'master'
handle gradle-plugin 3.0 output apk location
Closes #363
See merge request !321
Hans-Christoph Steiner [Thu, 31 Aug 2017 19:51:09 +0000 (19:51 +0000)]
Merge branch 'metadata_v0_test' into 'master'
bump fdroid version to test against to 0.8 remove legacy handling
See merge request !324
Marcus Hoffmann [Thu, 31 Aug 2017 18:36:07 +0000 (20:36 +0200)]
CI: bump fdroid version to test against to 0.8 remove legacy handling
Bump to latest released version, remove all handling of things that
changed in a backward incompatible way before.
Hans-Christoph Steiner [Thu, 31 Aug 2017 12:48:18 +0000 (12:48 +0000)]
Merge branch 'mr/update_docker-py' into 'master'
setup.py: unstick docker-py and requests dependencies
See merge request !318
Marcus Hoffmann [Mon, 28 Aug 2017 15:05:24 +0000 (15:05 +0000)]
Merge branch 'mr/verify_ca_certs_v2' into 'master'
makebuildserver: verify https all requests to avoid urllib3 warnings
See merge request !316
Marcus Hoffmann [Sun, 27 Aug 2017 22:40:49 +0000 (22:40 +0000)]
Merge branch 'revert-
af707cd1' into 'master'
Revert "setup.py: don't use pyasn1 to 0.3.3 until pyasn1-modules is updated to support it"
See merge request !322
Marcus Hoffmann [Sun, 27 Aug 2017 22:07:49 +0000 (22:07 +0000)]
Revert "setup.py: don't use pyasn1 to 0.3.3 until pyasn1-modules is updated to support it"
This reverts commit
af707cd1cb86ff8c3f8931adc0f874cd976cf391
Marcus Hoffmann [Sun, 27 Aug 2017 21:58:40 +0000 (21:58 +0000)]
setup.py: don't use pyasn1 to 0.3.3 until pyasn1-modules is updated to support it
Latest pyasn1-modules hard codes pyasn1-0.3.2, so this currently break our tests.
Ref: https://github.com/etingof/pyasn1-modules/issues/4
Marcus Hoffmann [Sun, 27 Aug 2017 19:41:16 +0000 (19:41 +0000)]
Merge branch 'mr/update_platforms_tools' into 'master'
makebuildserver: update platform and build tool releases
See merge request !317
Marcus Hoffmann [Sat, 26 Aug 2017 15:03:13 +0000 (17:03 +0200)]
add comments to gradle output directories
Marcus Hoffmann [Sat, 26 Aug 2017 10:55:34 +0000 (12:55 +0200)]
handle gradle-plugin 3.0 output apk location
This commit adds support for new gradle plugin 3.0 output directories.
The new structure looks like this:
build/outputs/apk/<flavour1><Flavour2>/release/*.apk
Note the capitalization on the different flavour components.
So if we build a specific flavour combination we add this combination to
the path where we look for an output .apk.
Closes #363
Based on !320 by: Michel Le Bihan <michel@lebihan.pl>
Signed-off-by: Marcus Hoffmann <bubuiic@aol.com>
Michael Pöhn [Tue, 22 Aug 2017 16:46:07 +0000 (16:46 +0000)]
Merge branch 'local_metadata' into 'master'
metadata: also read .fdroid.txt metadata
Closes #364
See merge request !319
Marcus Hoffmann [Mon, 21 Aug 2017 22:03:43 +0000 (00:03 +0200)]
metadata: also read .fdroid.txt metadata
This is documented as working here:
https://f-droid.org/docs/Building_Applications/
(second to last paragraph)
fixes #364
Marcus Hoffmann [Wed, 16 Aug 2017 23:47:06 +0000 (01:47 +0200)]
setup.py: unstick docker-py and requests dependencies
docker-py 1.10.6 is the last version released under docker-py, after that it
will be just docker, but has breaking changes, see:
https://github.com/docker/docker-py/releases/tag/2.0.0
Update the list of allowed versions of requests to docker-py master.
Marcus Hoffmann [Wed, 16 Aug 2017 22:41:23 +0000 (00:41 +0200)]
makebuildserver: update platform and build tool releases
Update platform-25 to r03
Update platform-26 to r02
Add build-tools_r26.0.1
sha256 signatures locally computed after verifying the sha1 signature provided
by the repository2-1.xml file.
All these will be downloaded and installed in the buildserver through
provision-android-sdk anyway but this adds them to the cache.
Marcus Hoffmann [Wed, 16 Aug 2017 22:49:53 +0000 (00:49 +0200)]
makebuildserver: verify https all requests to avoid urllib3 warnings
According to http://docs.python-requests.org/en/master/user/advanced/#ca-certificates
python-requests >= 2.4.0 will use the certifi provided certificates.
We already recommend installing python3-certifi in the docs.
On debian requests is patched to use the system trust store instead.
Hans-Christoph Steiner [Tue, 15 Aug 2017 15:49:58 +0000 (15:49 +0000)]
Merge branch 'gradle-updates' into 'master'
makebuildserver: add Gradle 3.5.1, 4.0.1, 4.0.2 and 4.1
See merge request !313
Hans-Christoph Steiner [Tue, 15 Aug 2017 15:48:50 +0000 (15:48 +0000)]
Merge branch 'ndk-r15c' into 'master'
makebuildserver: upgrade NDK r15b to r15c
See merge request !314
relan [Mon, 7 Aug 2017 11:46:08 +0000 (14:46 +0300)]
makebuildserver: add Gradle 3.5.1, 4.0.1, 4.0.2 and 4.1
Android Gradle plugin 3.0.0 requires Gradle 4.1.
relan [Fri, 11 Aug 2017 07:19:40 +0000 (10:19 +0300)]
makebuildserver: upgrade NDK r15b to r15c
Hans-Christoph Steiner [Thu, 27 Jul 2017 01:21:28 +0000 (18:21 -0700)]
metadata: handle empty YAML files without crashing
!311
Hans-Christoph Steiner [Wed, 26 Jul 2017 22:34:13 +0000 (15:34 -0700)]
update: test metadata creation using internal and external templates
There is a hardcoded template in update.py, and there is also the
possibility for the user to create a template.yml. This tests both of them
and cleans up the related code a bit.
#352 !310
Hans-Christoph Steiner [Wed, 26 Jul 2017 13:38:47 +0000 (06:38 -0700)]
add missing comma in setup.py
Hans-Christoph Steiner [Wed, 26 Jul 2017 18:14:33 +0000 (18:14 +0000)]
Merge branch 'metadata' into 'master'
preserve order and formatting on creating Metadata from Yaml template (closes #352)
Closes #352
See merge request !310
Izzy [Wed, 26 Jul 2017 07:22:01 +0000 (09:22 +0200)]
preserve order and formatting on creating Metadata from Yaml template (closes #352)
Hans-Christoph Steiner [Wed, 19 Jul 2017 14:21:50 +0000 (16:21 +0200)]
Bump to 0.8
Hans-Christoph Steiner [Wed, 19 Jul 2017 14:12:06 +0000 (16:12 +0200)]
update pypi "classifiers"
Hans-Christoph Steiner [Wed, 19 Jul 2017 14:08:21 +0000 (16:08 +0200)]
update README to point to https://f-droid.org/docs
Hans-Christoph Steiner [Wed, 19 Jul 2017 14:03:50 +0000 (16:03 +0200)]
update file list in setup.py
Hans-Christoph Steiner [Wed, 26 Jul 2017 05:06:42 +0000 (05:06 +0000)]
Merge branch 'metadata' into 'master'
Updating syntax check for Flattr (see #284)
See merge request !309
Izzy [Thu, 20 Jul 2017 18:26:25 +0000 (20:26 +0200)]
Updating syntax check for Flattr (see #284)
Hans-Christoph Steiner [Thu, 20 Jul 2017 03:58:27 +0000 (03:58 +0000)]
Merge branch '0.8-fixes' into 'master'
0.8 fixes
Closes #325, #347, and #309
See merge request !304
Hans-Christoph Steiner [Wed, 19 Jul 2017 21:59:47 +0000 (23:59 +0200)]
Hans-Christoph Steiner [Wed, 19 Jul 2017 21:58:07 +0000 (23:58 +0200)]
include all test files in source tarball
Hans-Christoph Steiner [Wed, 19 Jul 2017 13:56:50 +0000 (15:56 +0200)]
gitlab-ci: filter new build fields in metadata_v0 test
Hans-Christoph Steiner [Wed, 19 Jul 2017 08:59:05 +0000 (10:59 +0200)]
update: always include name/summary/desc in index.xml if available
With the new localization support, the name/summary/description in the
metadata file becomes the global override. So most apps are not going to
have those fields present in their metadata file. This fixes the index.xml
generation to fall back to the localized versions of those fields when they
are not set in the metadata field.
https://forum.f-droid.org/t/what-has-happend-to-osmand
Hans-Christoph Steiner [Wed, 19 Jul 2017 07:56:28 +0000 (09:56 +0200)]
add new files to MANIFEST.in
They need to be there in order to be included in the source tarball.
Hans-Christoph Steiner [Wed, 19 Jul 2017 07:55:45 +0000 (09:55 +0200)]
wp-droid: move deprecated Wordpress plugin to its own repo
closes #325
Hans-Christoph Steiner [Mon, 17 Jul 2017 10:11:33 +0000 (12:11 +0200)]
verify: if downloading from /repo/ fails, try /archive/
The Builds entries in metadata/ files do not easily say whether a
given APK is in the repo/ or the archive/. So it should also try to
download the official APK from the archive/ when verifying.
Hans-Christoph Steiner [Sat, 15 Jul 2017 20:15:30 +0000 (20:15 +0000)]
keep .apk file ext when diffoscope'ing Binaries:
Hans-Christoph Steiner [Sat, 15 Jul 2017 21:42:29 +0000 (23:42 +0200)]
rewritemeta: only print file type if its changing
Hans-Christoph Steiner [Wed, 19 Jul 2017 11:02:06 +0000 (13:02 +0200)]
server: report errors pushing to git mirrors
This makes `fdroid server update` fail if pushing to one of the git mirrors
fails. This is what happens if the other methods fail, e.g. rsync or S3.
closes #347
Hans-Christoph Steiner [Wed, 19 Jul 2017 10:59:20 +0000 (12:59 +0200)]
server: include gitlab raw URLs as git mirrors
gitlab serves raw files from a CDN, so its appropriate to use the raw URL.
@pserwylo @grote and I discussed it and found a reference, but I can't find
that reference now.
Since the client will try the next mirror if one fails, it makes sense to
include both the gitlab raw and gitlab pages URLs to the mirror. The
gitlab pages deploy process is still a bit flaky anyway.
Hans-Christoph Steiner [Mon, 10 Jul 2017 15:13:26 +0000 (17:13 +0200)]
server: only rm git mirror if the git history is getting too large
git hosts like github, gitlab, bitbucket usually allow 1 gig repos. This
changes the git mirroring behavior to keep the history until the repo hits
1 gig. Keeping history makes updates a lot faster, since the whole repo
does not need to be pushed on each update.
Hans-Christoph Steiner [Sat, 8 Jul 2017 10:11:42 +0000 (12:11 +0200)]
update: force checkout .gitlab-ci.yml when updating git mirrors
closes #309
Hans-Christoph Steiner [Fri, 7 Jul 2017 15:52:53 +0000 (17:52 +0200)]
server: smooth out btlog transfer for offline signing setups
It turns out it is error prone to `git push` to a non-bare git repo. For
the offline signing machine, the git remote needs to be a regular git repo
in a directory on a thumbdrive so that once the thumbdrive is plugged into
an online machine, that git repo can be transferred to the online machine.
Hans-Christoph Steiner [Mon, 17 Jul 2017 06:33:02 +0000 (06:33 +0000)]
Merge branch 'xmlicons' into 'master'
have fallback for XML icons also consider res/mipmap*
See merge request !307
Izzy [Sun, 16 Jul 2017 22:54:33 +0000 (00:54 +0200)]
have fallback for XML icons also consider res/mipmap*
several apps (e.g.
[FastHub](http://apt.qumran.org/fdroid/index/apk/com.fastaccess.github)
and [Monety](http://apt.qumran.org/fdroid/index/apk/open.currency)) have
their ic_launcher.png files not in res/drawable*dpi/, but in
res/mipmap*/ -- so the regex has been adjusted by this patch.
Additionally: if the only icon for a given resolution was an XML without
existing fallback-PNG, it should be considered "non existent" (ie.
"empty_density").