chiark / gitweb /
Hans-Christoph Steiner [Thu, 5 Jun 2014 19:50:21 +0000 (15:50 -0400)]
update: add stricter checking when updating repo index using rsync
rsync uses the modification time and size of the file when deciding whether
to update a file. These are relatively easy to control in malicious code,
so instead make rsync use a full MD5 checksum when decided whether the
index needs to be updated. I suppose we could add an option to use
checksum checking on all files, but since the signed repo already provides
a checksum check, it seems not worth the added load on the process.
Also, renamed 'index' to 'indexxml' to make it clear what is the XML and
what is the JAR.
Ciaran Gultnieks [Thu, 5 Jun 2014 15:51:24 +0000 (15:51 +0000)]
Merge branch 'test-updates-and-related-bug-fixes' into 'master'
Test updates and related bug fixes
I just set up some big tests of generating repos based on feeding as many random APKs into `fdroid update` as possible. On our jenkins server, the tests copy all of the APKs that the jenkins server has generated and builds a repo from them. This process caught lots of little glitches in the whole process. While these little glitches are usually caused by problematic APKs, `fdroid update` should handle them gracefully. Hopefully this set of fixes accomplishes that.
Daniel Martí [Thu, 5 Jun 2014 08:02:30 +0000 (10:02 +0200)]
Be less clumsy when removing signingConfigs
Hans-Christoph Steiner [Wed, 4 Jun 2014 22:45:06 +0000 (18:45 -0400)]
tests: fix --android-home test to actually work
In this case, ANDROID_HOME is set to a fake, non-working version that will
be detected by fdroid as an Android SDK install. It should use the path
set by --android-home over the one in ANDROID_HOME, therefore if it uses
the one in ANDROID_HOME, it won't work because it is a fake one. Only
--android-home provides a working one.
Hans-Christoph Steiner [Wed, 4 Jun 2014 19:47:54 +0000 (15:47 -0400)]
update name/description in examples/config.py
It was confusing that by default, repos created with `fdroid init` had the
same name/description as f-droid.org/repo
Hans-Christoph Steiner [Tue, 3 Jun 2014 18:18:08 +0000 (14:18 -0400)]
some APKs do not have a name, like system APKs
It is not necessarily a good idea to try to distribute system APKs via
FDroid, but `fdroid update` should just ignore APKs it cannot handle rather
than die and prevent a repo from being fully created. This is necessary to
handle the automatic creation of repos, like for debug builds from a
Jenkins server.
Hans-Christoph Steiner [Tue, 3 Jun 2014 17:39:11 +0000 (13:39 -0400)]
update: improve warning about APKs set to be debuggable
This uses the actual XML code used to set this flag making the warning
message easily searchable on the interwebs.
Hans-Christoph Steiner [Tue, 3 Jun 2014 17:28:35 +0000 (13:28 -0400)]
apps with no <uses-sdk> get strange values of minSdkVersion
Using this example app which does not have <uses-sdk>:
https://android.googlesource.com/platform/development/+log/master/samples/ApiDemos/assets/HelloActivity.apk
aapt then returns "sdkVersion:'IceCreamSandwich'". minSdkVersion is only
ever supposed to be an integer, so this is a bizarre APK. It is included
only as a binary in the git repo for Android sample code. But who knows
what else is out there, so report and error and carry on with the update
process.
Hans-Christoph Steiner [Mon, 2 Jun 2014 20:18:12 +0000 (16:18 -0400)]
update: skip APKs that cannot be parsed instead of exiting
Some APKs can be corrupt or some system APKs do not have all the normal
info. Instead of quitting, `fdroid update` skips the non-parsable APKs and
optionally deletes them if --delete-unknown is specified.
Hans-Christoph Steiner [Mon, 2 Jun 2014 20:12:50 +0000 (16:12 -0400)]
make FDroidPopen output based on --verbose
FDroidPopen outputs by default, this should be controlled by the --verbose
flag so that most of the time, only meaningful messages are shown like
errors and such. For command output that should be shown everytime,
output=True can be set.
Hans-Christoph Steiner [Mon, 2 Jun 2014 17:46:00 +0000 (13:46 -0400)]
update: remove overly verbose message about icon sizing being correct
This seems like purely a debug message, I can't see why its useful in general
Hans-Christoph Steiner [Mon, 2 Jun 2014 17:24:24 +0000 (13:24 -0400)]
jenkins: run git pre-commit hook for pep8, pyflakes, etc
This provides a central script for running certain checks at commit time,
and in jenkins automated builds.
Hans-Christoph Steiner [Mon, 2 Jun 2014 17:21:54 +0000 (13:21 -0400)]
tests: specify dir for APKs as cmd line arg, and set jenkins to ~
This lets people easily set whatever dir they want, while letting jenkins
search through its whole workspace for any APKs that have been built. Also,
only include the latest version of a given packageName+versionCode.
Hans-Christoph Steiner [Fri, 30 May 2014 21:07:19 +0000 (17:07 -0400)]
use 'metadata' name throughout: --createmeta to --create-metadata
To keep the naming used within fdroid consistent, I renamed this long flag
to use the whole word 'metadata' since that is what is used everywhere else
Hans-Christoph Steiner [Fri, 30 May 2014 20:50:32 +0000 (16:50 -0400)]
tests: try `fdroid update` after adding an APK to an existing repo
Yes, this includes a binary file, but it is only for the tests, and it is
free software since I wrote it. The source is here:
https://github.com/eighthave/urzip
Hans-Christoph Steiner [Fri, 30 May 2014 19:53:11 +0000 (15:53 -0400)]
test: make sure `fdroid update -c` creates a full index.xml
Previously, `fdroid update -c` would only create the new metadata, but
would not add the new apps/apks to the repo. That required a second run of
`fdroid update`. This has been fixes, so this test makes sure it stays
fixed, in a very generic way.
Hans-Christoph Steiner [Fri, 30 May 2014 15:41:02 +0000 (11:41 -0400)]
init: make prompt for SDK path exit cleanly on Ctrl-C
This just makes a clean exit rather than showing a python stacktrace.
Hans-Christoph Steiner [Fri, 30 May 2014 01:43:16 +0000 (21:43 -0400)]
add more SDK checks: build-tools/19.0.3 and presense of aapt
Make sure that fdroid can find aapt in the current config, otherwise exit
with an error. Some users don't have build_tools set, and their SDK does
not include the build-tools in the default versioned dir, so this should
warn them of what is wrong.
Daniel Martí [Wed, 4 Jun 2014 11:29:01 +0000 (13:29 +0200)]
Fix crash in checkupdates with auto-updates
Daniel Martí [Sun, 1 Jun 2014 17:12:00 +0000 (19:12 +0200)]
Add warnings for repo clonings in build recipes
Daniel Martí [Sun, 1 Jun 2014 17:11:49 +0000 (19:11 +0200)]
Fix the script defaults
Daniel Martí [Sun, 1 Jun 2014 17:05:18 +0000 (19:05 +0200)]
No need to check for non-default build items
Daniel Martí [Sun, 1 Jun 2014 17:05:10 +0000 (19:05 +0200)]
Remove dead mvnflags code
Daniel Martí [Sun, 1 Jun 2014 14:37:33 +0000 (16:37 +0200)]
Add support for gitlab.com repos to import
Daniel Martí [Sun, 1 Jun 2014 13:40:33 +0000 (15:40 +0200)]
Store build comments by vercode, not version
vercodes are unique, versions aren't
Daniel Martí [Sun, 1 Jun 2014 13:38:11 +0000 (15:38 +0200)]
Don't allow for duplicate build entries
Daniel Martí [Sat, 31 May 2014 21:10:16 +0000 (23:10 +0200)]
Use ordered dicts for defaults in apps and builds
Daniel Martí [Sat, 31 May 2014 21:09:58 +0000 (23:09 +0200)]
Enable pep8 in pre-commit
Daniel Martí [Sat, 31 May 2014 21:00:27 +0000 (23:00 +0200)]
Fix pep8 warnings in makebuildserver
Daniel Martí [Fri, 30 May 2014 17:49:38 +0000 (19:49 +0200)]
Re-order app_defaults to match the writing order
Also fix a couple of issues:
* Update Check Name was never written to disk
* Maintainer Notes had no default and was used differently
Daniel Martí [Fri, 30 May 2014 16:51:59 +0000 (18:51 +0200)]
Simplify field/flag checking and bool flag usage
Daniel Martí [Fri, 30 May 2014 16:48:35 +0000 (18:48 +0200)]
Make unspecified license use regex
Daniel Martí [Thu, 29 May 2014 20:24:39 +0000 (20:24 +0000)]
Merge branch 'recent-bug-fixes' into 'master'
Recent bug fixes
Fix a couple of bugs from the tracker.
Hans-Christoph Steiner [Thu, 29 May 2014 19:29:57 +0000 (15:29 -0400)]
fixes #12: make `fdroid update -c` do complete update like `fdroid update`
Since the new metadata created by -c is added after the existing metadata
was already parsed, `fdroid update -c` was not doing a complete update of
the repo. This moves the metadata creation as early as possible, then
reruns the metadata parsing if new metadata was created.
refs #12 https://gitlab.com/fdroid/fdroidserver/issues/12
Hans-Christoph Steiner [Thu, 29 May 2014 17:40:06 +0000 (13:40 -0400)]
Fixes #8: if unknown APKs found, prompt to use -c or use --delete-unknown
This adds the option --delete-unknown for the current default behavior of
`fdroid update`: to delete any unknown APKs. Instead, it just outputs a
warning about the unknown APKs and suggests -c for adding it.
Fixes #8 https://gitlab.com/fdroid/fdroidserver/issues/8
Hans-Christoph Steiner [Thu, 29 May 2014 17:10:28 +0000 (13:10 -0400)]
fix PEP8 E128 continuation line under-indented for visual indent
Daniel Martí [Wed, 28 May 2014 07:33:14 +0000 (09:33 +0200)]
Fix some more pep8 warnings
Daniel Martí [Wed, 28 May 2014 07:30:55 +0000 (09:30 +0200)]
Fix E265 in config.py
Daniel Martí [Wed, 28 May 2014 07:28:28 +0000 (09:28 +0200)]
Add pre-commit hook with installer
Will enable pep8 once all the problems are gone
Daniel Martí [Tue, 27 May 2014 13:56:57 +0000 (15:56 +0200)]
Fix pyflakes errors in readmeta
Daniel Martí [Tue, 27 May 2014 13:17:37 +0000 (15:17 +0200)]
Make readmeta use srclibs and check for config.py too
Daniel Martí [Tue, 27 May 2014 08:10:15 +0000 (10:10 +0200)]
More strict string search regex
Daniel Martí [Tue, 27 May 2014 07:53:58 +0000 (09:53 +0200)]
Also use srclibs in checkupdates
Needed when Repo Type is srclib
Daniel Martí [Mon, 26 May 2014 06:09:22 +0000 (08:09 +0200)]
Warn about summaries that are not capitalized
Daniel Martí [Fri, 23 May 2014 07:47:11 +0000 (09:47 +0200)]
Fall back to launchable-activity label if application has none
This fixes apps like MiniZip not having a name
Daniel Martí [Wed, 21 May 2014 09:44:36 +0000 (11:44 +0200)]
Add android targets 5, 6 and 9
They are nice to have, and will be needed to build support-v4 from source
Ciaran Gultnieks [Tue, 20 May 2014 21:44:47 +0000 (22:44 +0100)]
Centralise management of srclib metadata
Ciaran Gultnieks [Tue, 20 May 2014 21:14:19 +0000 (22:14 +0100)]
Restore friendly error messages
Use --verbose if you really want a full traceback with your 'you made a
typo in an package ID' messages.
It would be better to do this based on exception types (i.e. our own
exceptions - MetadataException, BuildException, VCSException) would not
print a traceback, but unexpected exceptions would. But the types are
not available at the 'fdroid' level currently.
Ciaran Gultnieks [Tue, 20 May 2014 20:07:54 +0000 (21:07 +0100)]
Lose the other unused read_metadata parameter
Ciaran Gultnieks [Tue, 20 May 2014 16:55:48 +0000 (17:55 +0100)]
Remove mysterious keyword arguments
Ciaran Gultnieks [Tue, 20 May 2014 16:48:45 +0000 (17:48 +0100)]
Fix several read_metadata-related issues
Various calls with the wrong parameters, and also an unused parameter on
the function itself.
Daniel Martí [Tue, 20 May 2014 14:40:43 +0000 (16:40 +0200)]
Add gradle 1.12 for the plugin version 0.10
Also, use https for the gradle.org links
Daniel Martí [Fri, 16 May 2014 11:04:31 +0000 (13:04 +0200)]
lint: warn about empty descriptions
If some app has the default description because it's not going to be published
or will never have a working build, the whole app should be disabled.
Ciaran Gultnieks [Thu, 15 May 2014 09:26:35 +0000 (10:26 +0100)]
Support https://code.google.com in fdroid import
Ciaran Gultnieks [Tue, 13 May 2014 21:14:19 +0000 (22:14 +0100)]
Minor manual typo fix
Ciaran Gultnieks [Tue, 13 May 2014 20:13:10 +0000 (21:13 +0100)]
Add documentation for Update Check Ignore
Ciaran Gultnieks [Tue, 13 May 2014 19:04:22 +0000 (20:04 +0100)]
Add ability to ignore updates based on version name matching
Ciaran Gultnieks [Mon, 12 May 2014 22:01:53 +0000 (23:01 +0100)]
Fix too long lines in publish
Ciaran Gultnieks [Mon, 12 May 2014 22:00:20 +0000 (23:00 +0100)]
Remove excess usage description from gpgsign
Ciaran Gultnieks [Mon, 12 May 2014 21:58:54 +0000 (22:58 +0100)]
Remove unused imports
Ciaran Gultnieks [Mon, 12 May 2014 21:57:23 +0000 (22:57 +0100)]
Correct logging output for gpgsign when already signed
Ciaran Gultnieks [Mon, 12 May 2014 20:55:59 +0000 (21:55 +0100)]
Add 'fdroid gpgsign' command
Creates detached gpg signatures for any apks that don't have them
yet. Relevant configuration fields need to be set first.
Daniel Martí [Mon, 12 May 2014 13:49:23 +0000 (15:49 +0200)]
Stop the gradle version searches once one is found
Ciaran Gultnieks [Sun, 11 May 2014 13:46:47 +0000 (14:46 +0100)]
Add proprietary samsung jar to usual suspects
Daniel Martí [Wed, 7 May 2014 14:13:22 +0000 (16:13 +0200)]
A few more PEP8 fixes
Ciaran Gultnieks [Wed, 7 May 2014 13:55:38 +0000 (13:55 +0000)]
Merge branch 'master' into 'master'
last PEP8 fixes (everything but E501 line too long and E123 close bracket indent)
These two commits fix all the rest of the PEP8 errors and warnings except for:
* E123 closing bracket does not match indentation of opening bracket's line
* E501 line too long (x > 79 characters)
Almost all of the fixed issues were these errors:
* E124 closing bracket does not match visual indentation
* E125 continuation line does not distinguish itself from next logical line
* E126 continuation line over-indented for hanging indent
* E127 continuation line over-indented for visual indent
* E128 continuation line under-indented for visual indent
* E226 missing whitespace around arithmetic operator
If you would like to make it run as part of the automated builds, it would just be a matter of adding this line to `jenkins-build`:
```
pep8 --ignore=E123,E501,W fdroid fdroidserver/*.py examples/*.py
```
Hans-Christoph Steiner [Tue, 6 May 2014 17:56:44 +0000 (13:56 -0400)]
fix PEP8 "E226 missing whitespace around arithmetic operator"
Hans-Christoph Steiner [Tue, 6 May 2014 17:50:52 +0000 (13:50 -0400)]
fix PEP8 E124/E125/126/127/128 indentation issues
* E124 closing bracket does not match visual indentation
* E125 continuation line does not distinguish itself from next logical line
* E126 continuation line over-indented for hanging indent
* E127 continuation line over-indented for visual indent
* E128 continuation line under-indented for visual indent
Ciaran Gultnieks [Tue, 6 May 2014 16:14:20 +0000 (16:14 +0000)]
Merge branch 'master' into 'master'
fix pyflakes error and a bunch of PEP8 fixes
lots of little fixes here, the first commit fixes the minor error that `pyflakes` raised, then the rest are all PEP8 fixes, as reported by the `pep8` command line tool.
Hans-Christoph Steiner [Fri, 2 May 2014 03:48:12 +0000 (23:48 -0400)]
fix PEP8 "E261 at least two spaces before inline comment"
Hans-Christoph Steiner [Fri, 2 May 2014 03:45:23 +0000 (23:45 -0400)]
fix PEP8 "W391 blank line at end of file"
Hans-Christoph Steiner [Fri, 2 May 2014 03:42:56 +0000 (23:42 -0400)]
fix PEP8 "E303 too many blank lines (2)"
Hans-Christoph Steiner [Fri, 2 May 2014 03:41:44 +0000 (23:41 -0400)]
fix PEP8 "E302 expected 1 blank lines, found 0"
Hans-Christoph Steiner [Fri, 2 May 2014 03:39:33 +0000 (23:39 -0400)]
fix PEP8 "E302 expected 2 blank lines, found 1"
Hans-Christoph Steiner [Fri, 2 May 2014 02:36:12 +0000 (22:36 -0400)]
fix PEP8 "E401 multiple imports on one line"
Hans-Christoph Steiner [Fri, 2 May 2014 02:32:54 +0000 (22:32 -0400)]
fix PEP8 "E712 comparison to True should be 'if cond is True:' or 'if cond:'"
Hans-Christoph Steiner [Fri, 2 May 2014 02:32:19 +0000 (22:32 -0400)]
fix PEP8 "E703 statement ends with a semicolon"
Hans-Christoph Steiner [Fri, 2 May 2014 02:30:44 +0000 (22:30 -0400)]
fix PEP8 "E225 missing whitespace around operator"
Hans-Christoph Steiner [Fri, 2 May 2014 02:28:46 +0000 (22:28 -0400)]
fix PEP8 "E228 missing whitespace around modulo operator"
Hans-Christoph Steiner [Fri, 2 May 2014 02:27:58 +0000 (22:27 -0400)]
fix PEP8 "E251 unexpected spaces around keyword / parameter equals"
Hans-Christoph Steiner [Fri, 2 May 2014 02:26:54 +0000 (22:26 -0400)]
fix PEP8 "W291 trailing whitespace"
Hans-Christoph Steiner [Fri, 2 May 2014 02:24:48 +0000 (22:24 -0400)]
fix PEP8 "E202 whitespace before ']' or '}'"
Hans-Christoph Steiner [Fri, 2 May 2014 02:21:47 +0000 (22:21 -0400)]
fix PEP8 "E201 whitespace after '(' or '[' or '{'"
Hans-Christoph Steiner [Fri, 2 May 2014 02:16:32 +0000 (22:16 -0400)]
fix PEP8 "E231 missing whitespace after ','"
Hans-Christoph Steiner [Fri, 2 May 2014 02:06:59 +0000 (22:06 -0400)]
fix PEP8 "E203 whitespace before ':' or ','"
Hans-Christoph Steiner [Fri, 2 May 2014 02:02:40 +0000 (22:02 -0400)]
fix PEP8 "E711 comparison to None should be 'if cond is None:'"
Hans-Christoph Steiner [Fri, 2 May 2014 02:46:51 +0000 (22:46 -0400)]
fix "fdroidserver/build.py:41: redefinition of unused 'paramiko' from line 39"
pyflakes gave this error based on the `paramiko = None` statement. I used
a different way to test whether paramiko was successfully imported that is
directly based on the relevant Exceptions.
Daniel Martí [Tue, 6 May 2014 14:19:05 +0000 (16:19 +0200)]
Add missing -q/--quiet completions
Daniel Martí [Tue, 6 May 2014 14:08:15 +0000 (16:08 +0200)]
Also pre-compile list regex warnings
Daniel Martí [Tue, 6 May 2014 13:54:34 +0000 (15:54 +0200)]
Warn about leading spaces in descriptions
Ciaran Gultnieks [Thu, 1 May 2014 22:33:17 +0000 (23:33 +0100)]
Remove the other explicit vagrant references
Aside from the VM setup (which is now self-contained) the build process
only cares that it's handed a clean VM that it can access via ssh, given
a host/port/user/pubkey combination. There's no dependency outside the
getvm/releasevm functions on what kind of vm it is, what user the build
runs as, etc.
Ciaran Gultnieks [Thu, 1 May 2014 22:24:54 +0000 (23:24 +0100)]
Remove some explicit references to the vagrant user
Ciaran Gultnieks [Thu, 1 May 2014 22:04:51 +0000 (23:04 +0100)]
Separate the VM setup process from the build
Ciaran Gultnieks [Thu, 1 May 2014 21:09:17 +0000 (22:09 +0100)]
Fix a few whitespace errors in build.py
Ciaran Gultnieks [Wed, 30 Apr 2014 22:23:57 +0000 (23:23 +0100)]
More PEP8 compliance (build.py, partial)
Ciaran Gultnieks [Wed, 30 Apr 2014 19:53:34 +0000 (20:53 +0100)]
Remove the rest of the PEP8 errors from stats.py
Ciaran Gultnieks [Wed, 30 Apr 2014 10:46:28 +0000 (11:46 +0100)]
Remove strange semicolons
Ciaran Gultnieks [Tue, 29 Apr 2014 14:33:20 +0000 (15:33 +0100)]
Cache aggregate stats to save time
Daniel Martí [Tue, 29 Apr 2014 14:06:24 +0000 (16:06 +0200)]
Also remove 'disable' from auto-update builds
Daniel Martí [Tue, 29 Apr 2014 10:00:03 +0000 (12:00 +0200)]
Run git submodule sync before git submodule update
Fixes changes in submodule urls