Commit Graph

5549 Commits

Author SHA1 Message Date
Hans-Christoph Steiner 8716474083
bump to v1.1.9 2020-06-24 21:49:59 +02:00
Hans-Christoph Steiner 49d414635a lint: fix OpenCollective field validator
closes fdroiddata#2077
2020-06-24 21:49:26 +02:00
Hans-Christoph Steiner cad4dc18c6
bump to version v1.1.8 2020-06-18 08:01:34 +02:00
Hans-Christoph Steiner 6bbf0a1722 add Liberapay: field with username as data
Liberapay was originally included using a numeric ID, since they had
not yet finalized the public URLs.  Now it is a username.  So this
logic prefers the username in Liberapay: field, and keeps the old
LiberapayID: to ease migration.  LiberapayID: will not override
Liberapay:.  Clients are expected to prefer Liberapay: over LiberapayID:

# Conflicts:
#	fdroidserver/update.py
#	tests/metadata/info.guardianproject.checkey.yml
#	tests/metadata/obb.main.oldversion.yml
#	tests/metadata/org.adaway.yml
#	tests/update.TestCase
2020-06-18 06:52:52 +02:00
Marcus 0ff3c561c0 add opencollective metadata and index field 2020-06-18 06:37:45 +02:00
Hans-Christoph Steiner 722a23f571 bump to versiob v1.1.7 2020-05-15 09:22:10 +02:00
Hans-Christoph Steiner 80a467134f gitlab-ci: run Debian/buster job on all commits 2020-05-15 08:20:44 +02:00
Michael Pöhn f5f61155ae improve litecoin validation + tests 2020-05-14 17:41:09 +02:00
Hans-Christoph Steiner 7b6f089220 index: xml.dom.minidom no longer sorts attribs
It seems now that xml.dom.minidom preserves the order of attributes, rather
than sorting them.  We assume alpha-sort, so this manually

This diff in the test suite running on Debian/testing pointed it out:
https://gitlab.com/fdroid/fdroidserver/-/jobs/486970383

```diff
--- /builds/fdroid/fdroidserver/tests/repo/index.xml	2020-04-11 13:36:57.000000000 +0000
+++ repo/index.xml	2020-04-11 13:41:44.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <fdroid>
-	<repo icon="fdroid-icon.png" name="My First F-Droid Repo Demo" pubkey="308204e1308202c9a003020102020434597643300d06092a864886f70d01010b050030213110300e060355040b1307462d44726f6964310d300b06035504031304736f7661301e170d3136303931333230313930395a170d3434303133303230313930395a30213110300e060355040b1307462d44726f6964310d300b06035504031304736f766130820222300d06092a864886f70d01010105000382020f003082020a028202010086ef94b5aacf2ba4f38c875f4194b44f5644392e3715575d7c92828577e692c352b567172823851c8c72347fbc9d99684cd7ca3e1db3e4cca126382c53f2a5869fb4c19bdec989b2930501af3e758ff40588915fe96b10076ce3346a193a0277d79e83e30fd8657c20e35260dd085aa32eac7c4b85786ffefbf1555cafe2bc928443430cdbba48cfbe701e12ae86e676477932730d4fc7c00af820aef85038a5b4df084cf6470d110dc4c49ea1b749b80b34709d199b3db516b223625c5de4501e861f7d261b3838f8f616aa78831d618d41d25872dc810c9b2087b5a9e146ca95be740316dcdbcb77314e23ab87d4487913b800b1113c0603ea2294188b71d3e49875df097b56f9151211fc6832f9790c5c83d17481f14ad37915fd164f4fd713f6732a15f4245714b84cd665bdbd085660ea33ad7d7095dcc414f09e3903604a40facc2314a115c0045bb50e9df38efb57e1b8e7cc105f340a26eeb46aba0fa6672953eee7f1f92dcb408e561909bbd4bdf4a4948c4d57c467d21aa238c34ba43be050398be963191fa2b49828bc1e4eeed224b40dbe9dc3e570890a71a974a2f4527edb1b07105071755105edcb2af2f269facfb89180903a572a99b46456e80d4a01685a80b233278805f2c876678e731f4ec4f52075aeef6b2b023efbb8a3637ef507c4c37c27e428152ec1817fcba640ad601cb09f72f0fbe2d274a2410203010001a321301f301d0603551d0e04160414c28bf33dd5a9a17338e5b1d1a6edd8c7d141ed0b300d06092a864886f70d01010b0500038202010084e20458b2aafd7fc27146b0986f9324f4260f244920417a77c9bf15e2e2d22d2725bdd8093ec261c3779c3ca03312516506f9410075b90595b41345956d8eb2786fb5994f195611382c2b99dba13381b0100a30bc9e6e47248bf4325e2f6eec9d789216dc7536e753bf1f4be603d9fa2e6f5e192b4eb988b8cdb0bb1e8668a9225426f7d4636479f73ed24ad1d2657c31e63c93d9679b9080171b3bd1bf10a3b92b80bd790fbf62d3644900cd08eae8b9bf9c2567be98dc8cdd2ae19a8d57a3e3e2de899f81f1279f578989e6af906f80c8c2b67651730ee7e568c1af5bcb845b6d685dc55332a9984aeceaea3b7e883447edf1c76b155d95253e39b9710eaa22efa6c81468829702b5dce7126538f3ca70c2f0ad9a5795435fdb1f715f20d60359ef9a9926c7050116e802df651727447848827815f70bd82af3cedd08783156102d2d8ce995c4c43b8e47e91a3e6927f3505a5d395e6bebb84542c570903eeab4382a1c2151f1471c7a06a34dc4d268d8fa72e93bdcd2dccc4302ecac47b9e7e3d8bc9b46d21cd097874a24d529548018dc190ff568c6aa428f0a5eedff1a347730931c74f19277538e49647a4ad7254f4c1ec7d4da12cce9e1fad9607534e66ab40a56b473d9d7e3d563fd03cad2052bad365c5a29f8ae54f09b60dbca3ea768d7767cbe1c133ca08ce725c1c1370f4aab8e5b6e286f52dc0be8d0982b5a" timestamp="1480431575" url="https://MyFirstFDroidRepo.org/fdroid/repo" version="21">
+	<repo name="My First F-Droid Repo Demo" icon="fdroid-icon.png" url="https://MyFirstFDroidRepo.org/fdroid/repo" version="21" timestamp="1480431575" pubkey="308204e1308202c9a003020102020434597643300d06092a864886f70d01010b050030213110300e060355040b1307462d44726f6964310d300b06035504031304736f7661301e170d3136303931333230313930395a170d3434303133303230313930395a30213110300e060355040b1307462d44726f6964310d300b06035504031304736f766130820222300d06092a864886f70d01010105000382020f003082020a028202010086ef94b5aacf2ba4f38c875f4194b44f5644392e3715575d7c92828577e692c352b567172823851c8c72347fbc9d99684cd7ca3e1db3e4cca126382c53f2a5869fb4c19bdec989b2930501af3e758ff40588915fe96b10076ce3346a193a0277d79e83e30fd8657c20e35260dd085aa32eac7c4b85786ffefbf1555cafe2bc928443430cdbba48cfbe701e12ae86e676477932730d4fc7c00af820aef85038a5b4df084cf6470d110dc4c49ea1b749b80b34709d199b3db516b223625c5de4501e861f7d261b3838f8f616aa78831d618d41d25872dc810c9b2087b5a9e146ca95be740316dcdbcb77314e23ab87d4487913b800b1113c0603ea2294188b71d3e49875df097b56f9151211fc6832f9790c5c83d17481f14ad37915fd164f4fd713f6732a15f4245714b84cd665bdbd085660ea33ad7d7095dcc414f09e3903604a40facc2314a115c0045bb50e9df38efb57e1b8e7cc105f340a26eeb46aba0fa6672953eee7f1f92dcb408e561909bbd4bdf4a4948c4d57c467d21aa238c34ba43be050398be963191fa2b49828bc1e4eeed224b40dbe9dc3e570890a71a974a2f4527edb1b07105071755105edcb2af2f269facfb89180903a572a99b46456e80d4a01685a80b233278805f2c876678e731f4ec4f52075aeef6b2b023efbb8a3637ef507c4c37c27e428152ec1817fcba640ad601cb09f72f0fbe2d274a2410203010001a321301f301d0603551d0e04160414c28bf33dd5a9a17338e5b1d1a6edd8c7d141ed0b300d06092a864886f70d01010b0500038202010084e20458b2aafd7fc27146b0986f9324f4260f244920417a77c9bf15e2e2d22d2725bdd8093ec261c3779c3ca03312516506f9410075b90595b41345956d8eb2786fb5994f195611382c2b99dba13381b0100a30bc9e6e47248bf4325e2f6eec9d789216dc7536e753bf1f4be603d9fa2e6f5e192b4eb988b8cdb0bb1e8668a9225426f7d4636479f73ed24ad1d2657c31e63c93d9679b9080171b3bd1bf10a3b92b80bd790fbf62d3644900cd08eae8b9bf9c2567be98dc8cdd2ae19a8d57a3e3e2de899f81f1279f578989e6af906f80c8c2b67651730ee7e568c1af5bcb845b6d685dc55332a9984aeceaea3b7e883447edf1c76b155d95253e39b9710eaa22efa6c81468829702b5dce7126538f3ca70c2f0ad9a5795435fdb1f715f20d60359ef9a9926c7050116e802df651727447848827815f70bd82af3cedd08783156102d2d8ce995c4c43b8e47e91a3e6927f3505a5d395e6bebb84542c570903eeab4382a1c2151f1471c7a06a34dc4d268d8fa72e93bdcd2dccc4302ecac47b9e7e3d8bc9b46d21cd097874a24d529548018dc190ff568c6aa428f0a5eedff1a347730931c74f19277538e49647a4ad7254f4c1ec7d4da12cce9e1fad9607534e66ab40a56b473d9d7e3d563fd03cad2052bad365c5a29f8ae54f09b60dbca3ea768d7767cbe1c133ca08ce725c1c1370f4aab8e5b6e286f52dc0be8d0982b5a">
 		<description>This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/u/fdroid. </description>
 		<mirror>http://foobarfoobarfoobar.onion/fdroid/repo</mirror>
 		<mirror>https://foo.bar/fdroid/repo</mirror>
@@ -94,9 +94,9 @@
 			<added>2017-12-22</added>
 			<sig>056c9f1554c40ba59a2103009c82b420</sig>
 			<permissions>ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE,CHANGE_WIFI_MULTICAST_STATE,INTERNET,READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE</permissions>
-			<uses-permission maxSdkVersion="18" name="android.permission.READ_EXTERNAL_STORAGE"/>
-			<uses-permission maxSdkVersion="18" name="android.permission.WRITE_EXTERNAL_STORAGE"/>
-			<uses-permission-sdk-23 maxSdkVersion="27" name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
+			<uses-permission name="android.permission.READ_EXTERNAL_STORAGE" maxSdkVersion="18"/>
+			<uses-permission name="android.permission.WRITE_EXTERNAL_STORAGE" maxSdkVersion="18"/>
+			<uses-permission-sdk-23 name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" maxSdkVersion="27"/>
 		</package>
 	</application>
 	<application id="fake.ota.update">
@@ -182,9 +182,9 @@
 			<added>2013-12-31</added>
 			<sig>eb41d4d6082bb3e81c3d58dbf7fc7332</sig>
 			<permissions>ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE,BLUETOOTH,BLUETOOTH_ADMIN,CHANGE_NETWORK_STATE,CHANGE_WIFI_MULTICAST_STATE,CHANGE_WIFI_STATE,INTERNET,NFC,RECEIVE_BOOT_COMPLETED</permissions>
-			<uses-permission maxSdkVersion="22" name="android.permission.ACCESS_NETWORK_STATE"/>
-			<uses-permission maxSdkVersion="18" name="android.permission.BLUETOOTH_ADMIN"/>
-			<uses-permission-sdk-23 maxSdkVersion="25" name="android.permission.WRITE_SETTINGS"/>
+			<uses-permission name="android.permission.ACCESS_NETWORK_STATE" maxSdkVersion="22"/>
+			<uses-permission name="android.permission.BLUETOOTH_ADMIN" maxSdkVersion="18"/>
+			<uses-permission-sdk-23 name="android.permission.WRITE_SETTINGS" maxSdkVersion="25"/>
 		</package>
 	</application>
 	<application id="obb.main.twoversions">
```
2020-05-14 17:33:21 +02:00
Torsten Grote 3282687f9e Fix nightly --archive-older command line option 2020-05-11 17:40:59 +02:00
Hans-Christoph Steiner dcb72a77ce
bump to version v1.1.6 2019-12-03 00:28:16 +01:00
Hans-Christoph Steiner f92eaf644f
nightly: set descriptions for repo and archive 2019-12-03 00:10:46 +01:00
Hans-Christoph Steiner aa18746cc4
bump to version v1.1.5 2019-08-26 14:58:38 +02:00
Hans-Christoph Steiner 004e2c8f26
setup.py: ruamel.yaml >= 0.15 required for yml rewrites 2019-08-21 14:41:23 +02:00
Hans-Christoph Steiner 39e4e05c9f
setup.py: use officially documented way of including README
https://packaging.python.org/tutorials/packaging-projects/
2019-08-21 14:41:13 +02:00
Hans-Christoph Steiner c02a98f364 bump to version v1.1.4 2019-08-15 10:45:50 +02:00
Hans-Christoph Steiner bb36bf6c67 update CHANGELOG for v1.1.4 2019-08-15 10:45:23 +02:00
Hans-Christoph Steiner dff47beb01 tests: conditionally disable tests that can't work with apksigner
apksigner treats MD5 signatures as valid, fdroid does not.
2019-08-15 10:16:03 +02:00
Hans-Christoph Steiner 6b013d01ac tests: skip disabled_algorithms test when apksigner is present
apksigner doesn't treat MD5 signatures as deprecated, so that portion of
the tests would always fail.
2019-08-15 10:15:25 +02:00
Michael Pöhn 8fe1583f83 improve bitcoin validation regex + testcases 2019-08-14 23:16:40 +02:00
Hans-Christoph Steiner fd870c59bd bump to version v1.1.3 2019-07-03 23:44:22 +02:00
Hans-Christoph Steiner fd1e22e791 ./setup.py release: make upload step manual so CI can run first
There is lots of CI tests for the Debian package, so it is good to first
run those Debian CI tests before uploading an fdroidserver release.
2019-07-03 23:44:22 +02:00
Hans-Christoph Steiner e8cd0986e3 include all relevant files in source tarball (MANIFEST.in) 2019-07-03 23:44:22 +02:00
Hans-Christoph Steiner 5ba7419128 tests: only run source tarball test if running from git clone 2019-07-03 23:44:22 +02:00
Hans-Christoph Steiner 4ddd840471 tests: only run hooks/pre-commit if its present (not in source tarball) 2019-07-03 20:47:27 +02:00
Hans-Christoph Steiner 9e32e2d770 tests: common.test_sign_apk requires aapt to run 2019-07-03 16:21:43 +02:00
Hans-Christoph Steiner b484e9ecfd tests: handle when apksigner considers MD5 signatures valid 2019-07-03 16:21:43 +02:00
Hans-Christoph Steiner 2e59220644
gitlab-ci: disable bandit fail on standard debug keystore password 2019-06-30 22:50:41 +02:00
Hans-Christoph Steiner 74a0abc530 update bash completion for new deploy/nightly flags 2019-05-02 08:53:22 +02:00
Hans-Christoph Steiner 5a2534b604 nightly: archive older versions; remove archive if git mirror is full 2019-05-01 21:02:11 +02:00
Hans-Christoph Steiner 6e7e9b355c deploy: if git mirror > 1GB after deleting history, delete the archive
git mirrors are meant to be an easy way to host a repo that is zero
maintenance.  They are not meant to be the canonical repo with full,
preserved archive.  This option provides the zero maintenance mode.
2019-05-01 21:02:11 +02:00
Hans-Christoph Steiner 833f23cf89 scanner: allow local Debian Maven repo file:///usr/share/maven-repo
It is now possible to build an app using only things in Debian.  Since the
buildserver will always control the contents of file:///usr/share/maven-repo,
it is the most safe repo there is.
2019-05-01 21:02:11 +02:00
Hans-Christoph Steiner 01fb62fff4 publish: fix stupid error in repro-signing and add integration test
stoopid mistake in ea84014f9b
2019-04-11 13:31:38 +02:00
Nico Alt bb80c729f5 Version 1.1.2, including changelog 2019-03-29 08:42:49 +01:00
Nico Alt a5851c083d Flush file before passing it to next function
When downloading a repo index, the downloaded index got written to a
file with `.write()` in a `with` clause. Before the file got actually
written to the disk, it got already passed into the next function,
resulting in a `VerificationException`:
```
JAR signature failed to verify: /tmp/tmppq2r51r0
jarsigner: java.util.zip.ZipException: zip file is empty
```

This behavior got introduced in
869cc114a3.

I've found this bug with help of Repomaker's tests: https://gitlab.com/fdroid/repomaker/merge_requests/215#note_148994053
2019-03-29 08:39:25 +01:00
Hans-Christoph Steiner 6634407c60 update: allow tests to pass when apksigner is not installed
This is only for the v2/v3 signatures.

fdroid/fdroidserver#627
2019-02-03 16:54:32 +01:00
Hans-Christoph Steiner 2157498dcf version 1.1.1 2019-02-03 15:50:39 +01:00
Hans-Christoph Steiner 43f8c29cc6 add CHANGELOG 2019-02-03 15:50:39 +01:00
Hans-Christoph Steiner 50ca3967cc update: fix tests when running without apksigner 2019-02-03 15:50:39 +01:00
Hans-Christoph Steiner 17dc231dc9 update: fix running without androguard
Soon, we can rip out all the aapt parsing stuff, but not yet!
2019-02-03 15:50:39 +01:00
Hans-Christoph Steiner 5d39a97ab8 Merge branch 'index-v1-sdk-as-int' into 'master'
fdroid update: treat target and min sdk version as integers

Closes #596

See merge request fdroid/fdroidserver!596
2019-02-03 14:47:36 +00:00
Hans-Christoph Steiner c386774413 Merge branch 'weblate' into 'master'
Updated by hook in Weblate to make PO files to match POT (msgmerge)

See merge request fdroid/fdroidserver!620
2019-02-01 15:20:36 +00:00
Hans-Christoph Steiner ec578fe85f Updated by hook in Weblate to make PO files to match POT (msgmerge) 2019-02-01 15:20:36 +00:00
Hans-Christoph Steiner 9bc81f2689 Merge branch 'encoding-warning' into 'master'
log a warning when encoding is not set to utf-8

Closes #617

See merge request fdroid/fdroidserver!619
2019-02-01 13:16:50 +00:00
Michael Pöhn 5a1c6cf2de log a warning when encoding is not set to utf-8 2019-02-01 13:26:31 +01:00
Hans-Christoph Steiner 09bbca4a51 update: force all "SDK Version" values to int when parsing aapt 2019-02-01 09:56:36 +01:00
Michael Pöhn dd695c650e update: treat target and min sdk version as int 2019-02-01 09:56:21 +01:00
Hans-Christoph Steiner 64bab7a94c Merge branch 'v2-sig-support' into 'master'
first basic support for APK Signature v2 and v3

See merge request fdroid/fdroidserver!618
2019-02-01 08:40:20 +00:00
Hans-Christoph Steiner 2907aa3ea3 fallback to v3 signatures if v1 and v2 are not available 2019-02-01 09:18:00 +01:00
Hans-Christoph Steiner d96f5ff660 support APK Signature V2 when apksigner is installed
This was done with much help from @uniqx.  This is the first level of
supporting APK Signatures v1, v2, and v3.  This is enough to include
APKs with any combo of v1/v2/v3 signatures.  For this to work at all,
apksigner and androguard 3.3.3+ must be installed.

closes #399
2019-02-01 09:17:56 +01:00