chiark / gitweb /
Hans-Christoph Steiner [Wed, 27 Sep 2017 15:35:51 +0000 (17:35 +0200)]
handle exceptions that send a tuple for the error message
Running `fdroid verify` I was seeing FDroidExceptions from verify.py:98
that had a tuple rather than a string.
Traceback (most recent call last):
File "/home/hans/code/fdroid/server/fdroid", line 152, in <module>
main()
File "/home/hans/code/fdroid/server/fdroid", line 128, in main
mod.main()
File "/home/hans/code/fdroid/server/fdroidserver/verify.py", line 98, in main
logging.info("...NOT verified - {0}".format(e))
File "/home/hans/code/fdroid/server/fdroidserver/exception.py", line 22, in __str__
ret += "\n==== detail begin ====\n%s\n==== detail end ====" % ''.join(self.detail).strip()
TypeError: sequence item 1: expected str instance, HTTPError found
Hans-Christoph Steiner [Thu, 12 Oct 2017 11:46:59 +0000 (11:46 +0000)]
Merge branch 'error_on_jars' into 'master'
RFC: Error on jars
See merge request fdroid/fdroidserver!325
Hans-Christoph Steiner [Sun, 8 Oct 2017 19:06:09 +0000 (19:06 +0000)]
Merge branch 'gradle-4.2.1' into 'master'
makebuildserver: add Gradle 4.2.1
See merge request fdroid/fdroidserver!351
relan [Sun, 8 Oct 2017 18:10:43 +0000 (21:10 +0300)]
makebuildserver: add Gradle 4.2.1
N.B. Actual address of the distribution server is downloads.gradle.org;
services.gradle.org redirects to it.
Michael Pöhn [Fri, 6 Oct 2017 17:18:10 +0000 (17:18 +0000)]
Merge branch '334-make-index-generation-fully-reproducible' into 'master'
Resolve "make index generation fully reproducible"
Closes #334
See merge request fdroid/fdroidserver!343
Hans-Christoph Steiner [Fri, 6 Oct 2017 09:07:13 +0000 (09:07 +0000)]
Merge branch 'print-vcs-client-version' into 'master'
common: print VCS client version
See merge request fdroid/fdroidserver!349
relan [Fri, 6 Oct 2017 06:37:47 +0000 (09:37 +0300)]
common: print VCS client version
This may help to debug issues with too old VCS clients.
Hans-Christoph Steiner [Wed, 4 Oct 2017 20:13:46 +0000 (20:13 +0000)]
Merge branch 'fix_bare_except' into 'master'
fix bare except to satisfy newer pycodestyle
See merge request fdroid/fdroidserver!348
Hans-Christoph Steiner [Wed, 4 Oct 2017 20:13:33 +0000 (20:13 +0000)]
Merge branch 'build-tools-26-0-2' into 'master'
add build-tools 26.0.2
See merge request fdroid/fdroidserver!347
Marcus Hoffmann [Wed, 4 Oct 2017 17:23:53 +0000 (19:23 +0200)]
fix bare except to satisfy newer pycodestyle
Marcus Hoffmann [Wed, 4 Oct 2017 17:03:41 +0000 (19:03 +0200)]
add build-tools 26.0.2
Marcus Hoffmann [Wed, 4 Oct 2017 16:18:30 +0000 (18:18 +0200)]
import: fix bitbucket import
repo type can be found on main url, not under /src
Hans-Christoph Steiner [Tue, 3 Oct 2017 13:19:47 +0000 (13:19 +0000)]
Merge branch 'fix-dot-gradle-removal' into 'master'
build: fix build/ and .gradle/ removal after cleaning
Closes #384
See merge request fdroid/fdroidserver!346
Hans-Christoph Steiner [Tue, 3 Oct 2017 12:57:34 +0000 (12:57 +0000)]
Merge branch '291-include-apk-signatures-in-build-metadata-file' into 'master'
include APK signatures in build metadata file
Closes #291
See merge request fdroid/fdroidserver!287
relan [Sun, 1 Oct 2017 06:57:32 +0000 (09:57 +0300)]
build: fix build/ and .gradle/ removal after cleaning
An app may not have a top-level build.gradle file, while Gradle still
creates top-level .gradle/ directory. When build.gradle is absent,
fdroidserver will not remove .gradle/, scanner will find binaries in it
and fail the whole build.
Fix this by also checking for settings.gradle file (should always exist
in the top-level directory) in addition to build.gradle.
Michael Pöhn [Mon, 4 Sep 2017 00:23:17 +0000 (02:23 +0200)]
use OrderedDict for localization data in index-v1
Michael Pöhn [Sun, 3 Sep 2017 21:07:43 +0000 (23:07 +0200)]
make sure all timestamps in index-v1 are utc
Michael Pöhn [Thu, 31 Aug 2017 09:46:12 +0000 (11:46 +0200)]
convert apk timestamp from filesystem to utc before storing
Michael Pöhn [Fri, 25 Aug 2017 23:44:02 +0000 (01:44 +0200)]
make sure apk-added datetime only gets returned rounded to days
Michael Pöhn [Fri, 22 Sep 2017 14:12:41 +0000 (16:12 +0200)]
add test for index-v1.json
Michael Pöhn [Wed, 16 Aug 2017 03:46:32 +0000 (05:46 +0200)]
sort antiFeatures list in index-v1.json
Michael Pöhn [Tue, 5 Sep 2017 13:17:22 +0000 (15:17 +0200)]
store fdroid signing-key-fp-list in stats dir
Michael Pöhn [Tue, 19 Sep 2017 22:58:19 +0000 (00:58 +0200)]
added some docstrings and error messages
Michael Pöhn [Wed, 9 Aug 2017 15:14:51 +0000 (17:14 +0200)]
choose best apk version vor index v0
Michael Pöhn [Tue, 19 Sep 2017 22:16:13 +0000 (00:16 +0200)]
sort index-v1; publish now creates and stores a list of signature fingerprints
Michael Pöhn [Tue, 19 Sep 2017 14:03:11 +0000 (16:03 +0200)]
added functions for storing/loading signer fingerprints to stats
Michael Pöhn [Tue, 4 Jul 2017 08:53:16 +0000 (10:53 +0200)]
added some developer-signing key metadata to tests
Michael Pöhn [Thu, 14 Sep 2017 14:46:43 +0000 (16:46 +0200)]
function for finding developer signature in metadata
Michael Pöhn [Tue, 19 Sep 2017 13:34:29 +0000 (15:34 +0200)]
add signer to index v1
Michael Pöhn [Sat, 23 Sep 2017 11:10:52 +0000 (13:10 +0200)]
added parse release filename function
Michael Pöhn [Tue, 13 Jun 2017 16:12:45 +0000 (18:12 +0200)]
skip singing apks which ar not validating with signatures from metadata
Michael Pöhn [Tue, 12 Sep 2017 16:17:46 +0000 (18:17 +0200)]
test for common.get_app_id_aapt
Michael Pöhn [Thu, 14 Sep 2017 14:23:04 +0000 (16:23 +0200)]
try injecting signatures for metadata when publishing
Michael Pöhn [Sun, 11 Jun 2017 23:48:29 +0000 (01:48 +0200)]
check file existance before trying to verify apks; use centext manager for zips when verifying apk
Michael Pöhn [Sat, 23 Sep 2017 07:36:22 +0000 (09:36 +0200)]
add common functions for dealing with apk signatures
Michael Pöhn [Thu, 8 Jun 2017 10:52:11 +0000 (12:52 +0200)]
refactored publishing source tarball into a function
Michael Pöhn [Sat, 23 Sep 2017 07:02:50 +0000 (09:02 +0200)]
common function for fetching sha256 signing-key fingerprint
Hans-Christoph Steiner [Tue, 26 Sep 2017 08:49:51 +0000 (08:49 +0000)]
Merge branch 'build-drozer-syntax-error' into 'master'
building with --dscanner now exits gracefully when repo dir not present
See merge request fdroid/fdroidserver!344
Hans-Christoph Steiner [Mon, 25 Sep 2017 14:34:25 +0000 (16:34 +0200)]
tests: test setting up app git repo like `fdroid build` does
I wrote this to try to find #379 but this test didn't trigger that bug.
Hans-Christoph Steiner [Mon, 25 Sep 2017 14:28:22 +0000 (16:28 +0200)]
tests: add setUp() method to common to handle standard stuff
Hans-Christoph Steiner [Wed, 20 Sep 2017 15:22:56 +0000 (17:22 +0200)]
move lots of comments to function doc strings
Hans-Christoph Steiner [Wed, 20 Sep 2017 13:54:50 +0000 (15:54 +0200)]
travis-ci: quiet output for pip/sdkmanager installs
The log was getting way too long.
Hans-Christoph Steiner [Wed, 20 Sep 2017 10:23:41 +0000 (12:23 +0200)]
update MANIFEST.in
There were a number of new files missing. Some files still manually
excluded. Generated using:
for f in `git ls-tree -r master --name-only | sort`; do echo include $f; done
Hans-Christoph Steiner [Wed, 20 Sep 2017 09:48:49 +0000 (11:48 +0200)]
use pandoc to convert README.md to PyPI's reST format
PyPI and Python packages expect the description to be in reST format, which
is a lot different than Markdown. This does the conversion if pandoc is
installed.
Michael Pöhn [Mon, 25 Sep 2017 14:09:57 +0000 (16:09 +0200)]
build+drozer: error message instead of crash when repo-folder missing
Hans-Christoph Steiner [Mon, 25 Sep 2017 12:17:34 +0000 (12:17 +0000)]
Merge branch 'gradle-4.2' into 'master'
makebuildserver: add Gradle 4.2
See merge request fdroid/fdroidserver!342
relan [Sat, 23 Sep 2017 07:04:39 +0000 (10:04 +0300)]
makebuildserver: add Gradle 4.2
Hans-Christoph Steiner [Wed, 20 Sep 2017 15:24:57 +0000 (15:24 +0000)]
Merge branch 'port-to-osx-and-trusty' into 'master'
port to OSX and Ubuntu/trusty
See merge request fdroid/fdroidserver!341
Hans-Christoph Steiner [Tue, 19 Sep 2017 18:10:25 +0000 (20:10 +0200)]
travis-ci: always reinstall Java on OSX to get recent version
The Travis images have quite old versions of Java currently.
Hans-Christoph Steiner [Sun, 17 Sep 2017 10:54:43 +0000 (12:54 +0200)]
travis-ci: test on older OSX versions
Hans-Christoph Steiner [Tue, 19 Sep 2017 14:41:50 +0000 (16:41 +0200)]
tests: use ci-test-app with current Gradle Android Plugin
This works around the gradle 2.x bug where versions newer than 2.9 cannot
run things. This also then specifies the version of Gradle Android Plugin
that is included in Debian/stretch.
Hans-Christoph Steiner [Tue, 19 Sep 2017 18:01:15 +0000 (20:01 +0200)]
tests: support Java setups where MD5 is not disabled by default
For platforms using Java < 1.8.0_133, MD5 is still enabled for JAR
signatures. Its just too painful to manage all this, so support this
in the tests.
Hans-Christoph Steiner [Thu, 14 Sep 2017 12:34:29 +0000 (14:34 +0200)]
tests: don't run gpgsign tests on Travis CI's OSX, gpg always fails
Hans-Christoph Steiner [Tue, 19 Sep 2017 17:58:45 +0000 (19:58 +0200)]
travis-ci: make Trusty builds a first class citizen
Trusty is used in Travis-CI, Windows Subsystem for Linux, and many other
places, so its an important target platform to test on. This provides
testing for the backports in the Launchpad PPAs like:
* https://launchpad.net/~fdroid/+archive/ubuntu/fdroidserver
* https://launchpad.net/~fdroid/+archive/ubuntu/buildserver
Hans-Christoph Steiner [Tue, 19 Sep 2017 17:58:31 +0000 (19:58 +0200)]
travis-ci: update OSX CI build to work again
Hans-Christoph Steiner [Fri, 15 Sep 2017 21:25:07 +0000 (23:25 +0200)]
tests: support Ubuntu/trusty's python3.4-venv
Hans-Christoph Steiner [Sat, 16 Sep 2017 08:03:17 +0000 (10:03 +0200)]
tests: prefer GNU sed on BSD/OSX, BSD's sed has lame syntax
https://blog.remibergsma.com/2012/09/18/sed-inline-editing-different-on-mac-osx/
Hans-Christoph Steiner [Tue, 19 Sep 2017 08:57:29 +0000 (10:57 +0200)]
allow spaces in filenames
This fixes all the bugs I could find that prevented fdroid from
handling files with spaces in them. This is more important now that
fdroid supports random media files, and Repomaker
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 23:03:26 +0000 (01:03 +0200)]
scanner: promote jar and aar files present in the repo to errors
This makes sure we we don't include any prebuilt code in the build process.
Marcus Hoffmann [Sun, 3 Sep 2017 23:00:12 +0000 (01:00 +0200)]
remove gradle-wrapper.jar during scan
We make sure to not use the gradle wrapper anyway so this should have no
impact.
Marcus Hoffmann [Sun, 3 Sep 2017 22:57:38 +0000 (00:57 +0200)]
scanner: warn on aar files