Commit Graph

47 Commits

Author SHA1 Message Date
Hans-Christoph Steiner 0d5d0f7da2
use androidx script to generate Gradle verification metadata files
https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/development/update-verification-metadata.sh

This also uses Gradle and androidx as sources of key material:
* 14e347025c/gradle/verification-keyring.keys
* https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/gradle/verification-keyring.keys
2022-12-20 20:59:57 +01:00
Torsten Grote eef3c3fb0d
Upgrade to Android Studio Chipmunk
and upgrade other dependencies as well
2022-11-28 12:48:58 +01:00
Torsten Grote 83dd06e682 [app] upgrade dependencies 2022-11-28 10:17:30 +01:00
Hans-Christoph Steiner c629d21b56
gradle verification: only contact keyservers when updating metadata
This config should include all the PGP keys needed to verify all the
dependencies used in this build.  This prevents Gradle from contacting PGP
keyservers for regular builds.  Gradle will still contact keyservers when
updating the metadata.

https://docs.gradle.org/current/userguide/dependency_verification.html#sec:local-keyring-only
2022-11-28 09:49:38 +01:00
Hans-Christoph Steiner 206d8407d4
gradle verification: ignored keys are now available on keyservers
I sent some to the keyservers, some key owners have pushed them to
keys.openpgp.net.  Also Google people have started maintaining keyrings:

https://android.googlesource.com/platform/frameworks/support/+/HEAD/gradle/verification-keyring.keys
2022-11-28 09:37:14 +01:00
Torsten Grote db275bf218 [db] Run tests also locally with roboelectric
This is much faster and doesn't require a device. However, the test should also continue to run on-device as this is the sqlite version used in practice.
2022-09-12 09:46:15 +00:00
Torsten Grote 44ceaa6842 [db] Add a method for getting an app without specifying the repoId 2022-09-12 09:46:15 +00:00
Torsten Grote ca6da651ec [db] First prototype 2022-09-12 09:46:15 +00:00
Torsten Grote 8b2d96dc1b
[index] Add LocaleChooser with getBestLocale() method and test
This is for getting the best matching localized content.
2022-07-17 15:57:14 -03:00
Torsten Grote 632833a3e7
[index] Add UpdateChecker with tests
Also introduce interfaces for important classes, so they can be implemented by stuff like database classes as well. This makes UpdateChecker and CompatibilityChecker more generic.

Also add tests for CompatibilityChecker.
2022-07-17 15:57:14 -03:00
Torsten Grote d2d8b4ee9f
[index] Add dokka for creating HTML library docs 2022-07-17 15:57:12 -03:00
Torsten Grote 802deb43eb
[index] First prototype 2022-07-17 15:57:11 -03:00
Hans-Christoph Steiner d6e97b4634 update to latest: org.robolectric:robolectric:4.8.1
./gradlew --write-verification-metadata pgp,sha256 testFullDebugUnitTest
./gradlew --write-verification-metadata sha256 testFullDebugUnitTest
2022-05-25 13:42:26 +02:00
Torsten Grote eca567d7a1 disable jetifier after upgrading ACRA and delegate adapters 2022-05-18 12:52:56 +02:00
Torsten Grote c463b3c9ed Upgrade to Gradle 7 and Java 11 2022-05-18 12:52:55 +02:00
Torsten Grote 30a41efe07
Allow cleartext (non-https) traffic, so swap/nearby works
In the future, we might not want to allow cleartext for non-local comms.
2022-05-17 11:23:47 -03:00
Hans-Christoph Steiner 04bb8b8998
update gradle verification
./gradlew --write-verification-metadata pgp,sha256 assemble
./gradlew --write-verification-metadata sha256 assemble
2022-05-03 11:08:04 +02:00
Torsten Grote 8b3e0f83ae
Publish download library to maven central
and add a different license for it.
2022-04-27 10:29:28 -03:00
Torsten Grote d6b21e2658
[download] Switch to different slf4j logging implementation on Android 2022-04-19 14:08:58 -03:00
Torsten Grote d937732ce0
[download] Upgrade Ktor to 2.0 2022-04-19 11:37:19 -03:00
Torsten Grote bf202bcbd8
Disable kotlin-native for now as it pulls in unverified binaries and executes them
https://youtrack.jetbrains.com/issue/KT-47026
2022-04-01 09:48:04 -03:00
Torsten Grote 27fe848156
Improve mirror fallback, e.g. on 404
and update ktor
2022-03-18 08:38:18 -03:00
Torsten Grote f777410358
Add test that we don't accept TLS 1.0 or TLS 1.1 2022-03-09 16:19:37 -03:00
Torsten Grote decc2cc6e3
Add ktlint and run it in CI
Fixes formatting issues it found.

Also remove version variables from gradle scripts as they are not wanted by the project.
2022-02-16 09:43:19 -03:00
Torsten Grote 82b131ff71
Address first round of review comments 2022-02-16 09:43:19 -03:00
Torsten Grote 062c870f23
Move (Http)Downloader into download library 2022-02-16 09:43:18 -03:00
Torsten Grote 9ca7bebc88
Add mirror support in downloads library 2022-02-16 09:43:17 -03:00
Torsten Grote 2bbc03b797
Add workaround for https://youtrack.jetbrains.com/issue/KTOR-3358 2022-02-16 09:43:17 -03:00
Torsten Grote 3d479b29e5
Initial work on separate download library 2022-02-16 09:43:17 -03:00
Torsten Grote d9f993632c
Add kotlin-gradle-plugin and upgrade gradle to 6.9.2
in order to resolve issue with dependency verification
2022-02-16 09:43:17 -03:00
mlya 79c2a38247 closes #2332 add missing verification-metadata for macos 2022-02-04 10:22:07 +00:00
Hans-Christoph Steiner 80a50dcfd4
vendor 'cc.mvdan.accesspoint:library:0.2.0' to remove jcenter entirely
Code was in https://github.com/mvdan/libaccesspoint

Note that this project is **abandoned** since its method doesn't work on Android
7.1 or later. Have a look at these newer alternatives that have been tested to
work on Android 8.0:

* https://github.com/shinilms/direct-net-share
* https://github.com/geekywoman/direct-net-share
* https://github.com/aegis1980/WifiHotSpot
2022-01-19 20:43:24 +01:00
proletarius101 d440cb0c81 Fix status bar color 2021-08-26 13:09:00 +00:00
proletarius101 42c0fe7430 Migrate the image loader to Glide 2021-07-01 15:57:06 +00:00
Hans-Christoph Steiner 39f680bb24
resync gradle verification metadata 2021-06-16 14:35:10 +02:00
Isira Seneviratne 19ffd2b491 Use ActivityCompat.recreate(). 2021-06-16 12:29:32 +00:00
Isira Seneviratne 5fad229dbe Update RxJava to version 3. 2021-06-15 08:51:16 +00:00
proletarius101 e48c49ce0c Change the bottom navigation bar to the material component one 2021-05-18 12:39:58 +00:00
proletarius101 aaf08fea0c Update material components library to 1.3.0 2021-04-28 19:17:05 +08:00
Hans-Christoph Steiner 1cd02f02e0
fix trove4j verification error
trove4j-20160824.pom uploaded to mavenCentral has more info in it, so a
different sha256.
2021-04-12 15:57:40 +02:00
Hans-Christoph Steiner 04ab3aefa4
update gradle verification metadata
./gradlew --write-verification-metadata pgp,sha256 assemble
./gradlew --write-verification-metadata sha256 assemble
2021-04-07 22:00:20 +02:00
Isira Seneviratne ab8e7935b0 Add WorkManagerTestRule. 2021-01-21 06:18:23 +05:30
Isira Seneviratne df66d127c2 Add AndroidX WorkManager. 2021-01-21 06:17:28 +05:30
Hans-Christoph Steiner 83b7d7ff67 bump all test dependencies
Hopefully this will give some stability in the Robolectric tests.
2021-01-19 09:06:05 +01:00
Hans-Christoph Steiner 4640146842 gradle dependency verification is too buggy with .pom metadata
This disables the verification of .pom files.  .pom files can add
dependencies, so it would be good to have them verified.  But since this
current setup requires all JAR to be verified, any new dependencies would
fail anyway:
https://docs.gradle.org/current/userguide/dependency_verification.html#sec:disabling-metadata-verification

In some cases everything works fine, like on gitlab-ci, and in other places
it always gives errors like this:

```
A problem occurred configuring root project 'client'.
> Dependency verification failed for configuration ':classpath'
  4 artifacts failed verification:
    - all-1.2.0.pom (com.sun.activation:all:1.2.0) from repository MavenRepo
    - jvnet-parent-1.pom (net.java:jvnet-parent:1) from repository MavenRepo
    - oss-parent-7.pom (org.sonatype.oss:oss-parent:7) from repository MavenRepo
    - oss-parent-9.pom (org.sonatype.oss:oss-parent:9) from repository MavenRepo
  This can indicate that a dependency has been compromised. Please carefully verify the checksums.

  Open this report for more details: file:///home/hans/code/fdroid/client/build/reports/dependency-verification/at-1603359642220/dependency-verification-report.html
```

@glennmen and @eighthave both are getting that error.
2020-10-22 11:49:17 +02:00
Hans-Christoph Steiner 708a6d8dbd
allow differing sha256 values in Google Maven vs Android Offline
It turns out that some of the dependencies in the Google Offline Components
downloadable maven repository have difference to the ones Google publishes
to maven.google.com.  WTF.  In any case, the new Gradle Dependency
Verification feature handles this gracefully.  I manually verified the
diffs between the two using diffoscope.  One just differed by timestamps in
the ZIP header, and the other just differed by linefeeds at the end of the
file.  Then I generated this metadata update using:

`./gradlew --write-verification-metadata pgp,sha256`

* https://developer.android.com/studio#offline
2020-08-04 09:46:43 +02:00
Hans-Christoph Steiner be5bdf3219
enable built-in gradle dependency verification
This fully replaces gradle-witness and goes far beyond what it offered. As
far as I can tell, this actually will verify every single artifact that
gradle downloads and uses.

This was generated in two passes to get both the PGP and the SHA256 info:

```
./gradlew --write-verification-metadata pgp,sha256 build connectedFullDebugAndroidTest --export-keys
./gradlew --write-verification-metadata sha256 build connectedFullDebugAndroidTest
```

Thanks to  @vlsi who made me aware of this, and helped make it possible.
closes !837
2020-07-21 10:33:44 +02:00