Commit graph

3118 commits

Author SHA1 Message Date
Hans-Christoph Steiner
6097caef91
build: fix typo in regex for Binaries: verification 2021-04-16 09:40:21 +02:00
Jochen Sprickerhof
f01a3caf77 Bump METADATA_VERSION for apksigner transition
We switched to apksigner in 50f0534d but old apks where still verified
with jarsigner (or an old apksigner version). Bumping the
METADATA_VERSION to force a rebuild of apkcache.
Hopefully this resolves de.chagemann.regexcrossword getting the
KnownVuln, DisabledAlgorithm tags.
2021-04-14 22:08:26 +00:00
Felix C. Stegerman
b08d54cb90
fix metadata_find_signing_files() 2021-04-14 23:52:13 +02:00
Hans-Christoph Steiner
5346ea3c19 gitlab-ci: prevent dualing linters: pyflakes vs mypy
* pyflakes says: "typing.Dict' imported but unused"
* mypy says: "Name 'Dict' is not defined"
2021-04-14 23:18:05 +02:00
Hans-Christoph Steiner
2946c90dd4 publish: rename vars to match naming in JAR Signature docs
https://docs.oracle.com/javase/tutorial/deployment/jar/intro.html

closes #892
2021-04-14 23:01:47 +02:00
Hans-Christoph Steiner
416790306f common.py: update copyrights 2021-04-14 23:01:47 +02:00
Hans-Christoph Steiner
4308a48717 apksigcopier: remove exclude_all_meta logic
This option is unneeded and unused in fdroidserver, and confusing.

https://github.com/obfusk/apksigcopier/pull/36

# Conflicts:
#	fdroidserver/apksigcopier.py
#	fdroidserver/common.py
2021-04-14 23:01:47 +02:00
Hans-Christoph Steiner
f5792d4f49 apksigcopier: purge main() to avoid confusion 2021-04-14 23:01:47 +02:00
Hans-Christoph Steiner
d28c1c0441 force apksigcopier "AUTO" to select sigs by available files 2021-04-14 23:01:47 +02:00
Felix C. Stegerman
202fd8b25a
vendor & use apksigcopier v0.4.0-12-g93d8e14 2021-04-14 21:06:20 +02:00
Felix C. Stegerman
67a0f3ae5b
use subclass hack for better ZIP cloning
See https://bugs.python.org/issue43547 for more info on the details.

thanks to @obfusk for the technique
2021-04-14 15:17:56 +02:00
Felix C. Stegerman
0a4995cd3b read_pkg_args(): allow appid_vercode.apk in addition to appid:vercode 2021-04-10 07:18:28 +00:00
Felix C. Stegerman
3e557a1a8a
check for invalid appids passed to commands 2021-04-08 10:31:33 +02:00
Sylvia van Os
24dd6740e1 Use tag if known
This ensures that we actually use the tag someone created when a new tag
is detected.
2021-04-07 09:41:03 +00:00
Jochen Sprickerhof
df3b6ea65c Create log file for VCSException
In case there is a VCS error (git tag not found), create a log file in
the F-Droid repo so it is shown on the monitor (currently 404).
2021-04-06 12:45:41 +00:00
Jochen Sprickerhof
49a593ac5f Excluded disabled metadata in failedBuilds 2021-04-06 09:44:11 +00:00
Benedikt Brückmann
8f0712e89b Add a mypy run to the pipeline 2021-04-02 08:57:56 +00:00
Hans-Christoph Steiner
b69b95103e add complete tests for finding apksigner; fix minor detection bug
find_apksigner() was preferring the oldest valid version rather than the
newest.
2021-03-23 21:01:53 +01:00
Hans-Christoph Steiner
9135dfbeed verify: include diffoscope setup info in output JSON 2021-03-23 11:01:40 +01:00
Hans-Christoph Steiner
8b393189c1 include /etc/issue.net in status JSON to identify the base system 2021-03-23 11:01:40 +01:00
Hans-Christoph Steiner
7ec2a8ebb3 add apksigner, jarsigner, and keytool to relevant status JSON 2021-03-22 22:31:29 +01:00
Hans-Christoph Steiner
903a7396b1 switch to preferring apksigner, requiring for fdroid publish 2021-03-22 22:30:49 +01:00
Hans-Christoph Steiner
8a9852209b update: do not die when androguard files to extract icon
https://jenkins.debian.net/job/reproducible_fdroid_test/422
https://jenkins.debian.net/job/reproducible_fdroid_test/423

```
Traceback (most recent call last):
  File "../fdroid", line 22, in <module>
    fdroidserver.__main__.main()
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/__main__.py", line 227, in main
    raise e
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/__main__.py", line 208, in main
    mod.main()
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/update.py", line 2316, in main
    apks, cachechanged = process_apks(apkcache, repodirs[0], knownapks, options.use_date_from_apk)
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/update.py", line 1746, in process_apks
    use_date_from_apk, ada, True)
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/update.py", line 1619, in process_apk
    apk = scan_apk(apkfile)
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/update.py", line 1385, in scan_apk
    scan_apk_androguard(apk, apk_file)
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/update.py", line 1527, in scan_apk_androguard
    resource_id = arsc.get_id(apk['packageName'], icon_id)
  File "/usr/lib/python3/dist-packages/androguard/core/bytecodes/axml/__init__.py", line 1668, in get_id
    self._analyse()
  File "/usr/lib/python3/dist-packages/androguard/core/bytecodes/axml/__init__.py", line 1321, in _analyse
    ate = self.packages[package_name][nb + 3 + nb_i]
IndexError: list index out of range

```
2021-03-22 18:16:34 +01:00
Hans-Christoph Steiner
50f0534d87 publish: always use apksigner to sign APKs, closes #880 2021-03-22 18:16:34 +01:00
Hans-Christoph Steiner
08cde5c2e6 code formatting: black --skip-string-normalization --line-length 100 2021-03-22 18:16:34 +01:00
Jochen Sprickerhof
ea9f917ddc Support versionCode and versionName in brackets
Example: versionCode(29)
https://github.com/florisboard/florisboard/blob/v0.3.9/app/build.gradle.kts#L24
2021-03-19 13:58:02 +01:00
Christian Beier
553daf8552 update: take build subdir into account when looking for triple-t data
Implemented as a fallback solution when parsing settings.gradle
and globbing the build dir with "'*', 'src', '*', 'play'" did not
yield results.

Before, the logic would not find triple-t metadata in projects where
settings.gradle is in a subdirectory or 'src' is found at a directory
depth != 2.

Closes fdroid/fdroiddata#2295
2021-03-17 13:19:44 +00:00
Hans-Christoph Steiner
dbf80ad771
metadata: remove git repo handling from metadata parsing
This is a vestige of implementing builds from a .fdroid.yml file directly
in the app's source repo.  It was never fully complete and seems to not be
used in any apps in fdroiddata.  This makes `fdroid build --all` runs much
faster since it does not need to do any git handling for apps that do not
have any new builds to run.

4e8e29794
948689281
a4e431080
e37be9b06
e775d330c
2021-03-17 13:44:24 +01:00
Hans-Christoph Steiner
78842e9cc2 scanner: should not exit with error when apkanalyzer fails
apkanalyzer produces useful output when it can run, but it does not
support all recent JDK versions, and also some DEX versions, so this
cannot count on it to always produce useful output or even to run
without exiting with an error.

211dd65ff0 was based on false
assumptions that apkanalyzer can always produce output.

fdroiddata!8585
fdroiddata!8584
2021-03-15 10:54:29 +01:00
Hans-Christoph Steiner
5695993521 build: include useful successful build IDs in status JSON, closes #825 2021-03-11 18:52:31 +01:00
Felix C. Stegerman
259ca51001 use vagrantfile instead of 'builder/Vagrantfile' in get_clean_builder() 2021-03-10 09:12:52 +00:00
Hans-Christoph Steiner
8bb2c7d4b1 metadata: stop setting up source repo when running lint/rewritemeta
broken in 54e8867a7e
2021-03-09 17:55:07 +01:00
Hans-Christoph Steiner
211dd65ff0 scanner: show error if scan_binary fails to run apkanalyzer 2021-03-09 15:55:45 +01:00
Hans-Christoph Steiner
649347dcd4 common: properly parse version from NDK's source.properties 2021-03-09 15:55:45 +01:00
Hans-Christoph Steiner
6a875a1821 update: stop extracting and storing XML icons, they're useless
APKs that only have XML icons in them should include an icon.png in the
metadata or fastlane/triple-t

closes #344
2021-03-09 15:40:30 +01:00
Hans-Christoph Steiner
850e244526 index: rename vars to match the dict key 'signer'
'sig' matches the old deprecated entry for the signer fingerprint that
uses the custom fingerprint algorithm.
2021-03-09 15:40:30 +01:00
Hans-Christoph Steiner
544a45c16a index: raise error rather than crash on bad repo file
If a non-APK is added with the appid/packageName that matches some APKs, it
should through an error.

Traceback (most recent call last):
  File "/home/hans/code/fdroid/server/fdroid", line 22, in <module>
    fdroidserver.__main__.main()
  File "/home/hans/code/fdroid/server/fdroidserver/__main__.py", line 211, in main
    mod.main()
  File "/home/hans/code/fdroid/server/fdroidserver/update.py", line 2343, in main
    index.make(apps, sortedids, apks, repodirs[0], False)
  File "/home/hans/code/fdroid/server/fdroidserver/index.py", line 142, in make
    fdroid_signing_key_fingerprints)
  File "/home/hans/code/fdroid/server/fdroidserver/index.py", line 166, in make_v1
    v1_sort_packages(packages, fdroid_signing_key_fingerprints)
  File "/home/hans/code/fdroid/server/fdroidserver/index.py", line 292, in v1_sort_packages
    packages.sort(key=v1_sort_keys)
  File "/home/hans/code/fdroid/server/fdroidserver/index.py", line 288, in v1_sort_keys
    .format(apkfilename=package['apkName']))
fdroidserver.exception.FDroidException: at.roteskreuz.stopcorona_8.jobf does not have a valid signature!
2021-03-09 15:40:30 +01:00
Hans-Christoph Steiner
b5c941938a update: reuse local_copy_dir to provide auto-copying with --nosign
When using `fdroid update --nosign` in combo with `fdroid signindex`, the
unsigned index files have to be copied to a thumb drive or something in
order to be brought to the offline signing server.  This reuses the config
option local_copy_dir as the destination for those unsigned index files.
2021-03-09 15:40:30 +01:00
Hans-Christoph Steiner
a2f0356d84 build: include all wiki data in the JSON status output 2021-03-09 15:40:30 +01:00
relan
56b84251f6 build: set overall timeout to 72 hours
Some builds are pending for weeks now because of the global time limit.
Give them a chance to be built.
2021-03-08 11:41:30 +03:00
Jochen Sprickerhof
933eea149a Add needsUpdate and noUpdateCheck to update.json
As done in update_wiki.
2021-02-12 11:04:24 +00:00
Jochen Sprickerhof
33bff6b298 Publish unsigned builds
This should make debugging reproducible builds easier.
2021-02-12 10:20:30 +00:00
Hans-Christoph Steiner
0d836751e5
code format cleanup 2021-02-12 10:58:07 +01:00
Hans-Christoph Steiner
007c62065d
pylint flags "_" as bad variable name, its the gettext function
Throughout the fdroidserver code base, "_()" is used for localizing
strings.  So it should not be used as an ignored variable name.  Those
should be called "_ignored".
2021-02-12 10:56:31 +01:00
Hans-Christoph Steiner
525dcb8f98 update: handle large, corrupt, or inaccessible fastlane/triple-t files
```
Traceback (most recent call last):
  File "../fdroid", line 22, in <module>
    fdroidserver.__main__.main()
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/__main__.py", line 227, in main
    raise e
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/__main__.py", line 208, in main
    mod.main()
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/update.py", line 2340, in main
    repoapps = prepare_apps(apps, apks, repodirs[0])
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/update.py", line 2176, in prepare_apps
    copy_triple_t_store_metadata(apps_with_packages)
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/update.py", line 1076, in copy_triple_t_store_metadata
    _set_author_entry(app, 'authorWebSite', os.path.join(root, f))
  File "/var/lib/jenkins/userContent/reproducible/reproducible_fdroid_build_apps/fdroidserver/update.py", line 784, in _set_author_entry
    with open(f, errors='replace') as fp:
FileNotFoundError: [Errno 2] No such file or directory: 'build/player.efis.cfd/pfd/src/main/play/contact-website.txt'
```
2021-02-11 17:42:13 +01:00
fossdd
bcdefccb31 Revert removing Licenses 2021-02-10 19:10:14 +00:00
fossdd
8371a2e07a Update SPDX License List 2021-02-08 15:14:28 +00:00
Benedikt Brückmann
022d73b3b6 Add HTML/CSS tidy test
and tidy up the content
2021-02-08 12:25:02 +01:00
Benedikt Brückmann
0936051c7b Fix pep8 2021-02-08 12:25:02 +01:00
Benedikt Brückmann
96854be84a Only overwrite index.html/css files which were created by fdroid update
Further changes:
* use real value for icon instead of hard coded value
* Move qrcode.make() to top
* fix identation of css file generation
2021-02-08 12:25:02 +01:00