chiark / gitweb /
Marcus Hoffmann [Fri, 20 Oct 2017 02:38:39 +0000 (04:38 +0200)]
makebuildserver: remove reference to f-droid.org/jessie64.box
Also improve error message when the initial vagrant up fails, this is
most likely due to the missing jessie64.box file.
Hans-Christoph Steiner [Wed, 18 Oct 2017 13:11:24 +0000 (13:11 +0000)]
Merge branch '391-fdroid-publish-unknown-execption' into 'master'
better error message in publish when repo_key is not set
Closes #391
See merge request fdroid/fdroidserver!352
Michael Pöhn [Mon, 16 Oct 2017 16:11:57 +0000 (18:11 +0200)]
better error message in publish when repo_key is not set
Hans-Christoph Steiner [Tue, 17 Oct 2017 15:41:20 +0000 (17:41 +0200)]
`make update` to update all translation files from source code
Hans-Christoph Steiner [Tue, 17 Oct 2017 16:24:26 +0000 (16:24 +0000)]
Merge branch 'weblate' into 'master'
Weblate
See merge request fdroid/fdroidserver!354
Hans-Christoph Steiner [Tue, 17 Oct 2017 16:24:25 +0000 (16:24 +0000)]
Weblate
Hans-Christoph Steiner [Tue, 17 Oct 2017 13:53:01 +0000 (15:53 +0200)]
jenkins-build-makebuildserver: use current version for test build
Torsten Grote [Tue, 17 Oct 2017 14:19:47 +0000 (14:19 +0000)]
Merge branch '1.0-fixes' into 'master'
1.0 fixes
Closes #357
See merge request fdroid/fdroidserver!353
Hans-Christoph Steiner [Fri, 13 Oct 2017 12:50:22 +0000 (14:50 +0200)]
include all argparse strings in translation template
The Python argparse library has its own strings, which are translatable
via gettext. This gets those sources strings from the library, and
includes them in this project. Since gettext is invoked and configured
in fdroidserver, fdroidserver needs to handle the translations for the
libraries it uses.
Hans-Christoph Steiner [Fri, 13 Oct 2017 12:55:07 +0000 (14:55 +0200)]
update translation template and add file context for each string
The file context lets the translators know which command the string applies
to. It does not have line numbers, since those are less useful, while
causing lots of merge conflicts.
Hans-Christoph Steiner [Tue, 10 Oct 2017 10:41:49 +0000 (12:41 +0200)]
update: support Fastlane's official location for screenshots
fastlane/android/metadata/locale/images/*Screenshots
https://github.com/fastlane/fastlane/blob/2.61.0/screengrab/lib/screengrab/runner.rb#L324
closes #357
Hans-Christoph Steiner [Tue, 10 Oct 2017 10:29:04 +0000 (12:29 +0200)]
update: fix detection of Triple-T screenshots
* https://github.com/westnordost/StreetComplete/issues/489
* https://forum.f-droid.org/t/screenshots-dont-show-up-in-client-using-gradle-play-publisher/881/2
#357
Hans-Christoph Steiner [Fri, 29 Sep 2017 15:50:23 +0000 (17:50 +0200)]
server: automatically create S3 bucket when using s3cmd
Hans-Christoph Steiner [Fri, 29 Sep 2017 15:49:48 +0000 (17:49 +0200)]
server: move strings to be gettext translatable
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.